fz bug
This commit is contained in:
@@ -22,176 +22,53 @@
|
||||
namespace operations_research {
|
||||
void ShoppingBasketBug() {
|
||||
Solver s("ShoppingBasketBug");
|
||||
IntVar* const x15 = s.MakeIntVar(13, 18, "x15");
|
||||
IntVar* const x18 = s.MakeIntVar(13, 18, "x18");
|
||||
// IsLessEqualCstCt((((Watch<x[15] == 18>(0 .. 1) * 1132) + (Watch<x[18] == 18>(0 .. 1) * 1970)) + 3787), 4499, Is((((Watch<x[15] == 18>(0 .. 1) * 1132) + (Watch<x[18] == 18>(0 .. 1) * 1970)) + 3787) <= 4499)(0 .. 1))
|
||||
IntVar* const is_less =
|
||||
s.MakeIsLessOrEqualCstVar(
|
||||
s.MakeSum(
|
||||
s.MakeSum(
|
||||
s.MakeProd(s.MakeIsEqualCstVar(x15, 18), 1132),
|
||||
s.MakeProd(s.MakeIsEqualCstVar(x18, 18), 1970)),
|
||||
3787),
|
||||
4499);
|
||||
// IntElementConstraint([1130, 1602, 1354, 99999, 1117, 1132], (x[15](13..18) + -13), Var<IntElement([1130, 1602, 1354, 99999, 1117, 1132], (x[15](13..18) + -13))>(1117 1130 1132 1354 1602 99999))
|
||||
IntVar* const x15 = s.MakeIntVar(0, 2, "x15");
|
||||
IntVar* const x18 = s.MakeIntVar(0, 2, "x18");
|
||||
IntVar* const is1 = s.MakeIsEqualCstVar(x15, 2);
|
||||
IntVar* const is2 = s.MakeIsEqualCstVar(x18, 2);
|
||||
IntVar* const is_less = s.MakeIsLessOrEqualCstVar(
|
||||
s.MakeSum(s.MakeProd(is1, 2), s.MakeProd(is2, 2)), 1);
|
||||
std::vector<int64> values1;
|
||||
values1.push_back(1130);
|
||||
values1.push_back(1602);
|
||||
values1.push_back(1354);
|
||||
values1.push_back(99999);
|
||||
values1.push_back(1117);
|
||||
values1.push_back(1132);
|
||||
IntVar* const elem1 = s.MakeElement(values1, s.MakeSum(x15, -13)->Var())->Var();
|
||||
// IntElementConstraint([1908, 99999, 2093, 3060, 2256, 1970], (x[18](13..18) + -13), Var<IntElement([1908, 99999, 2093, 3060, 2256, 1970], (x[18](13..18) + -13))>(1908 1970 2093 2256 3060 99999))
|
||||
values1.push_back(10);
|
||||
values1.push_back(2);
|
||||
values1.push_back(12);
|
||||
IntVar* const elem1 = s.MakeElement(values1, x15)->Var();
|
||||
std::vector<int64> values2;
|
||||
values2.push_back(1908);
|
||||
values2.push_back(99999);
|
||||
values2.push_back(2093);
|
||||
values2.push_back(3060);
|
||||
values2.push_back(2256);
|
||||
values2.push_back(1970);
|
||||
IntVar* const elem2 = s.MakeElement(values2, s.MakeSum(x18, -13)->Var())->Var();
|
||||
// cast(MinIntExpr(BOOL____00117(0 .. 1), BOOL____00118(0 .. 1)), Var<MinIntExpr(BOOL____00117(0 .. 1), BOOL____00118(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00180(0 .. 1), BOOL____00181(0 .. 1)), Var<MinIntExpr(BOOL____00180(0 .. 1), BOOL____00181(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00243(0 .. 1), BOOL____00244(0 .. 1)), Var<MinIntExpr(BOOL____00243(0 .. 1), BOOL____00244(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00369(0 .. 1), BOOL____00370(0 .. 1)), Var<MinIntExpr(BOOL____00369(0 .. 1), BOOL____00370(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00432(0 .. 1), BOOL____00433(0 .. 1)), Var<MinIntExpr(BOOL____00432(0 .. 1), BOOL____00433(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00495(0 .. 1), BOOL____00496(0 .. 1)), Var<MinIntExpr(BOOL____00495(0 .. 1), BOOL____00496(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00621(0 .. 1), BOOL____00622(0 .. 1)), Var<MinIntExpr(BOOL____00621(0 .. 1), BOOL____00622(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00810(0 .. 1), BOOL____00811(0 .. 1)), Var<MinIntExpr(BOOL____00810(0 .. 1), BOOL____00811(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____00873(0 .. 1), BOOL____00874(0 .. 1)), Var<MinIntExpr(BOOL____00873(0 .. 1), BOOL____00874(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01062(0 .. 1), BOOL____01063(0 .. 1)), Var<MinIntExpr(BOOL____01062(0 .. 1), BOOL____01063(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01125(0 .. 1), BOOL____01126(0 .. 1)), Var<MinIntExpr(BOOL____01125(0 .. 1), BOOL____01126(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01251(0 .. 1), BOOL____01252(0 .. 1)), Var<MinIntExpr(BOOL____01251(0 .. 1), BOOL____01252(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01314(0 .. 1), BOOL____01315(0 .. 1)), Var<MinIntExpr(BOOL____01314(0 .. 1), BOOL____01315(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01377(0 .. 1), BOOL____01378(0 .. 1)), Var<MinIntExpr(BOOL____01377(0 .. 1), BOOL____01378(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01440(0 .. 1), BOOL____01441(0 .. 1)), Var<MinIntExpr(BOOL____01440(0 .. 1), BOOL____01441(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01503(0 .. 1), BOOL____01504(0 .. 1)), Var<MinIntExpr(BOOL____01503(0 .. 1), BOOL____01504(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01566(0 .. 1), BOOL____01567(0 .. 1)), Var<MinIntExpr(BOOL____01566(0 .. 1), BOOL____01567(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01629(0 .. 1), BOOL____01630(0 .. 1)), Var<MinIntExpr(BOOL____01629(0 .. 1), BOOL____01630(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01692(0 .. 1), BOOL____01693(0 .. 1)), Var<MinIntExpr(BOOL____01692(0 .. 1), BOOL____01693(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01755(0 .. 1), BOOL____01756(0 .. 1)), Var<MinIntExpr(BOOL____01755(0 .. 1), BOOL____01756(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01818(0 .. 1), BOOL____01819(0 .. 1)), Var<MinIntExpr(BOOL____01818(0 .. 1), BOOL____01819(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____01881(0 .. 1), BOOL____01882(0 .. 1)), Var<MinIntExpr(BOOL____01881(0 .. 1), BOOL____01882(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____02007(0 .. 1), BOOL____02008(0 .. 1)), Var<MinIntExpr(BOOL____02007(0 .. 1), BOOL____02008(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____02070(0 .. 1), BOOL____02071(0 .. 1)), Var<MinIntExpr(BOOL____02070(0 .. 1), BOOL____02071(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____02133(0 .. 1), BOOL____02134(0 .. 1)), Var<MinIntExpr(BOOL____02133(0 .. 1), BOOL____02134(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____02259(0 .. 1), BOOL____02260(0 .. 1)), Var<MinIntExpr(BOOL____02259(0 .. 1), BOOL____02260(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____02322(0 .. 1), BOOL____02323(0 .. 1)), Var<MinIntExpr(BOOL____02322(0 .. 1), BOOL____02323(0 .. 1))>(0 .. 1))
|
||||
// cast(MinIntExpr(BOOL____02385(0 .. 1), BOOL____02386(0 .. 1)), Var<MinIntExpr(BOOL____02385(0 .. 1), BOOL____02386(0 .. 1))>(0 .. 1))
|
||||
std::vector<IntVar*> ands;
|
||||
s.MakeBoolVarArray(28, "ands", &ands);
|
||||
// Sum(Var<IntElement([1130, 1602, 1354, 99999, 1117, 1132], (x[15](13..18) + -13))>(1117 1130 1132 1354 1602 99999), (Var<MinIntExpr(BOOL____00495(0 .. 1), BOOL____00496(0 .. 1))>(0 .. 1) * 398), (Var<MinIntExpr(BOOL____00243(0 .. 1), BOOL____00244(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____00432(0 .. 1), BOOL____00433(0 .. 1))>(0 .. 1) * 450), (Var<MinIntExpr(BOOL____02322(0 .. 1), BOOL____02323(0 .. 1))>(0 .. 1) * 390), (Var<MinIntExpr(BOOL____01125(0 .. 1), BOOL____01126(0 .. 1))>(0 .. 1) * 450), (Var<MinIntExpr(BOOL____00180(0 .. 1), BOOL____00181(0 .. 1))>(0 .. 1) * 490), (Var<MinIntExpr(BOOL____02259(0 .. 1), BOOL____02260(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____02133(0 .. 1), BOOL____02134(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____02070(0 .. 1), BOOL____02071(0 .. 1))>(0 .. 1) * 295), (Var<MinIntExpr(BOOL____02007(0 .. 1), BOOL____02008(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____01881(0 .. 1), BOOL____01882(0 .. 1))>(0 .. 1) * 345), (Var<MinIntExpr(BOOL____01818(0 .. 1), BOOL____01819(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____01755(0 .. 1), BOOL____01756(0 .. 1))>(0 .. 1) * 350), (Var<MinIntExpr(BOOL____01692(0 .. 1), BOOL____01693(0 .. 1))>(0 .. 1) * 390), (Var<MinIntExpr(BOOL____01629(0 .. 1), BOOL____01630(0 .. 1))>(0 .. 1) * 450), (Var<MinIntExpr(BOOL____01566(0 .. 1), BOOL____01567(0 .. 1))>(0 .. 1) * 390), (Var<MinIntExpr(BOOL____01503(0 .. 1), BOOL____01504(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____01440(0 .. 1), BOOL____01441(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____01377(0 .. 1), BOOL____01378(0 .. 1))>(0 .. 1) * 390), (Var<MinIntExpr(BOOL____01314(0 .. 1), BOOL____01315(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____00873(0 .. 1), BOOL____00874(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____00810(0 .. 1), BOOL____00811(0 .. 1))>(0 .. 1) * 450), (Var<MinIntExpr(BOOL____00621(0 .. 1), BOOL____00622(0 .. 1))>(0 .. 1) * 300), (Var<MinIntExpr(BOOL____00369(0 .. 1), BOOL____00370(0 .. 1))>(0 .. 1) * 400), (Var<MinIntExpr(BOOL____01251(0 .. 1), BOOL____01252(0 .. 1))>(0 .. 1) * 390), (Is((((Watch<x[15] == 18>(0 .. 1) * 1132) + (Watch<x[18] == 18>(0 .. 1) * 1970)) + 3787) <= 4499)(0 .. 1) * 290), Var<IntElement([1908, 99999, 2093, 3060, 2256, 1970], (x[18](13..18) + -13))>(1908 1970 2093 2256 3060 99999), (Var<MinIntExpr(BOOL____00117(0 .. 1), BOOL____00118(0 .. 1))>(0 .. 1) * 395), (Var<MinIntExpr(BOOL____02385(0 .. 1), BOOL____02386(0 .. 1))>(0 .. 1) * 399), (Var<MinIntExpr(BOOL____01062(0 .. 1), BOOL____01063(0 .. 1))>(0 .. 1) * 390)) == ScalProd([Var<IntElement([1130, 1602, 1354, 99999, 1117, 1132], (x[15](13..18) + -13))>, Var<MinIntExpr(BOOL____00495(0 .. 1), BOOL____00496(0 .. 1))>, Var<MinIntExpr(BOOL____00243(0 .. 1), BOOL____00244(0 .. 1))>, Var<MinIntExpr(BOOL____00432(0 .. 1), BOOL____00433(0 .. 1))>, Var<MinIntExpr(BOOL____02322(0 .. 1), BOOL____02323(0 .. 1))>, Var<MinIntExpr(BOOL____01125(0 .. 1), BOOL____01126(0 .. 1))>, Var<MinIntExpr(BOOL____00180(0 .. 1), BOOL____00181(0 .. 1))>, Var<MinIntExpr(BOOL____02259(0 .. 1), BOOL____02260(0 .. 1))>, Var<MinIntExpr(BOOL____02133(0 .. 1), BOOL____02134(0 .. 1))>, Var<MinIntExpr(BOOL____02070(0 .. 1), BOOL____02071(0 .. 1))>, Var<MinIntExpr(BOOL____02007(0 .. 1), BOOL____02008(0 .. 1))>, Var<MinIntExpr(BOOL____01881(0 .. 1), BOOL____01882(0 .. 1))>, Var<MinIntExpr(BOOL____01818(0 .. 1), BOOL____01819(0 .. 1))>, Var<MinIntExpr(BOOL____01755(0 .. 1), BOOL____01756(0 .. 1))>, Var<MinIntExpr(BOOL____01692(0 .. 1), BOOL____01693(0 .. 1))>, Var<MinIntExpr(BOOL____01629(0 .. 1), BOOL____01630(0 .. 1))>, Var<MinIntExpr(BOOL____01566(0 .. 1), BOOL____01567(0 .. 1))>, Var<MinIntExpr(BOOL____01503(0 .. 1), BOOL____01504(0 .. 1))>, Var<MinIntExpr(BOOL____01440(0 .. 1), BOOL____01441(0 .. 1))>, Var<MinIntExpr(BOOL____01377(0 .. 1), BOOL____01378(0 .. 1))>, Var<MinIntExpr(BOOL____01314(0 .. 1), BOOL____01315(0 .. 1))>, Var<MinIntExpr(BOOL____00873(0 .. 1), BOOL____00874(0 .. 1))>, Var<MinIntExpr(BOOL____00810(0 .. 1), BOOL____00811(0 .. 1))>, Var<MinIntExpr(BOOL____00621(0 .. 1), BOOL____00622(0 .. 1))>, Var<MinIntExpr(BOOL____00369(0 .. 1), BOOL____00370(0 .. 1))>, Var<MinIntExpr(BOOL____01251(0 .. 1), BOOL____01252(0 .. 1))>, Is((((Watch<x[15] == 18>(0 .. 1) * 1132) + (Watch<x[18] == 18>(0 .. 1) * 1970)) + 3787) <= 4499), Var<IntElement([1908, 99999, 2093, 3060, 2256, 1970], (x[18](13..18) + -13))>, Var<MinIntExpr(BOOL____00117(0 .. 1), BOOL____00118(0 .. 1))>, Var<MinIntExpr(BOOL____02385(0 .. 1), BOOL____02386(0 .. 1))>, Var<MinIntExpr(BOOL____01062(0 .. 1), BOOL____01063(0 .. 1))>], [1, 398, 395, 450, 390, 450, 490, 395, 395, 295, 395, 345, 395, 350, 390, 450, 390, 395, 395, 390, 395, 395, 450, 300, 400, 390, 290, 1, 395, 399, 390])(3025..211355)
|
||||
values2.push_back(2);
|
||||
values2.push_back(10);
|
||||
values2.push_back(5);
|
||||
IntVar* const elem2 = s.MakeElement(values2, x18)->Var();
|
||||
std::vector<IntVar*> vars;
|
||||
vars.push_back(elem1);
|
||||
vars.push_back(ands[0]);
|
||||
vars.push_back(ands[1]);
|
||||
vars.push_back(ands[2]);
|
||||
vars.push_back(ands[3]);
|
||||
vars.push_back(ands[4]);
|
||||
vars.push_back(ands[5]);
|
||||
vars.push_back(ands[6]);
|
||||
vars.push_back(ands[7]);
|
||||
vars.push_back(ands[8]);
|
||||
vars.push_back(ands[9]);
|
||||
vars.push_back(ands[10]);
|
||||
vars.push_back(ands[11]);
|
||||
vars.push_back(ands[12]);
|
||||
vars.push_back(ands[13]);
|
||||
vars.push_back(ands[14]);
|
||||
vars.push_back(ands[15]);
|
||||
vars.push_back(ands[16]);
|
||||
vars.push_back(ands[17]);
|
||||
vars.push_back(ands[18]);
|
||||
vars.push_back(ands[19]);
|
||||
vars.push_back(ands[20]);
|
||||
vars.push_back(ands[21]);
|
||||
vars.push_back(ands[22]);
|
||||
vars.push_back(ands[23]);
|
||||
vars.push_back(ands[24]);
|
||||
vars.push_back(is_less);
|
||||
vars.push_back(elem2);
|
||||
vars.push_back(ands[25]);
|
||||
vars.push_back(ands[26]);
|
||||
vars.push_back(ands[27]);
|
||||
|
||||
// Var<IntElement([1130, 1602, 1354, 99999, 1117, 1132], (x[15](13..18) + -13))>,
|
||||
// Var<MinIntExpr(BOOL____00495(0 .. 1), BOOL____00496(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00243(0 .. 1), BOOL____00244(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00432(0 .. 1), BOOL____00433(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____02322(0 .. 1), BOOL____02323(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01125(0 .. 1), BOOL____01126(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00180(0 .. 1), BOOL____00181(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____02259(0 .. 1), BOOL____02260(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____02133(0 .. 1), BOOL____02134(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____02070(0 .. 1), BOOL____02071(0 .. 1))>,
|
||||
|
||||
// Var<MinIntExpr(BOOL____02007(0 .. 1), BOOL____02008(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01881(0 .. 1), BOOL____01882(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01818(0 .. 1), BOOL____01819(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01755(0 .. 1), BOOL____01756(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01692(0 .. 1), BOOL____01693(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01629(0 .. 1), BOOL____01630(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01566(0 .. 1), BOOL____01567(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01503(0 .. 1), BOOL____01504(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01440(0 .. 1), BOOL____01441(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01377(0 .. 1), BOOL____01378(0 .. 1))>,
|
||||
|
||||
// Var<MinIntExpr(BOOL____01314(0 .. 1), BOOL____01315(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00873(0 .. 1), BOOL____00874(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00810(0 .. 1), BOOL____00811(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00621(0 .. 1), BOOL____00622(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____00369(0 .. 1), BOOL____00370(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____01251(0 .. 1), BOOL____01252(0 .. 1))>,
|
||||
// Is((((Watch<x[15] == 18>(0 .. 1) * 1132) + (Watch<x[18] == 18>(0 .. 1) * 1970)) + 3787) <= 4499),
|
||||
// Var<IntElement([1908, 99999, 2093, 3060, 2256, 1970], (x[18](13..18) + -13))>,
|
||||
// Var<MinIntExpr(BOOL____00117(0 .. 1), BOOL____00118(0 .. 1))>,
|
||||
// Var<MinIntExpr(BOOL____02385(0 .. 1), BOOL____02386(0 .. 1))>,
|
||||
|
||||
// Var<MinIntExpr(BOOL____01062(0 .. 1), BOOL____01063(0 .. 1))>
|
||||
std::vector<int64> coefs;
|
||||
coefs.push_back(1);
|
||||
coefs.push_back(398);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(450);
|
||||
coefs.push_back(390);
|
||||
coefs.push_back(450);
|
||||
coefs.push_back(490);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(295);
|
||||
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(345);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(350);
|
||||
coefs.push_back(390);
|
||||
coefs.push_back(450);
|
||||
coefs.push_back(390);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(390);
|
||||
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(450);
|
||||
coefs.push_back(300);
|
||||
coefs.push_back(400);
|
||||
coefs.push_back(390);
|
||||
coefs.push_back(290);
|
||||
coefs.push_back(90);
|
||||
coefs.push_back(1);
|
||||
coefs.push_back(395);
|
||||
coefs.push_back(399);
|
||||
|
||||
coefs.push_back(390);
|
||||
IntVar* const obj = s.MakeScalProd(vars, coefs)->Var();
|
||||
|
||||
|
||||
OptimizeVar* const optimize = s.MakeMinimize(obj, 1);
|
||||
SearchMonitor* const log = s.MakeSearchLog(10, optimize);
|
||||
SolutionCollector* const collector = s.MakeLastSolutionCollector();
|
||||
collector->Add(x15);
|
||||
collector->Add(x18);
|
||||
collector->Add(is_less);
|
||||
collector->Add(elem1);
|
||||
collector->Add(elem2);
|
||||
collector->Add(is1);
|
||||
collector->Add(is2);
|
||||
DecisionBuilder* const db1 =
|
||||
s.MakePhase(x15, x18, Solver::CHOOSE_MAX_SIZE, Solver::ASSIGN_MIN_VALUE);
|
||||
DecisionBuilder* const db2 = s.MakePhase(obj, Solver::CHOOSE_FIRST_UNBOUND,
|
||||
Solver::ASSIGN_MIN_VALUE);
|
||||
DecisionBuilder* const db = s.Compose(db1, db2);
|
||||
s.Solve(db, optimize, log, collector);
|
||||
LOG(INFO) << collector->solution(0)->DebugString();
|
||||
}
|
||||
} // namespace operations_research
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
google::ParseCommandLineFlags(&argc, &argv, true);
|
||||
|
||||
operations_research::ShoppingBasketBug();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user