나는 EE + EE와 FF 각 일부 C로 구성 FF, 내가 작성한 D.추가 제약 경계 예외에서 발생
코드와을 극대화 할 수있는 선형 최적화 목표를 가지고, I
EE_quantity: 0, FF_quantity: 7
을 ...하지만 난 다른 해결책이있을 알고 : 찾기 위해 해결사 얻을 수
는 다른 유효한 솔루션에 대한 사용자 입력의 유효성을 검사하기 위해EE_quantity: 1, FF_quantity: 6
, 나는 두 EE에 대한 제약 조건을 추가 및 FF.
SolverContext c2 = SolverContext.GetContext();
Model m2 = c2.CreateModel();
p.elements = elements_multilevel_productmix();
Decision C_quantity = new Decision(Domain.IntegerNonnegative, "C_quantity");
Decision D_quantity = new Decision(Domain.IntegerNonnegative, "D_quantity");
Decision EE_quantity = new Decision(Domain.IntegerNonnegative, "EE_quantity");
Decision FF_quantity = new Decision(Domain.IntegerNonnegative, "FF_quantity");
m2.AddDecisions(C_quantity, D_quantity, EE_quantity, FF_quantity);
m2.AddConstraints("production",
6 * C_quantity + 4 * D_quantity <= 100,
1 * C_quantity + 2 * D_quantity <= 200,
2 * EE_quantity + 1 * FF_quantity <= C_quantity,
1 * EE_quantity + 2 * FF_quantity <= D_quantity,
EE_quantity == 0,
FF_quantity == 7
);
m2.AddGoal("fixed_EE_FF", GoalKind.Maximize, "EE_quantity + FF_quantity");
Solution sol = c2.Solve(new SimplexDirective());
foreach (var item in sol.Decisions)
{
System.Diagnostics.Debug.WriteLine(
item.Name + ": " + item.GetDouble().ToString()
);
}
그것은 찾기 재단 정말이 특정 조합을 좋아하지 않는 것 같습니다 : 그래서 실행 가능한 예제 아래 코드에 EE_quantity == 0, FF_quantity == 7
을 추가했다. EE_quantity == 0
또는 FF_quantity == 7
만 사용하면 EE_quantity == 1, FF_quantity == 6
을 사용하는 것이 좋습니다. 그러나 둘 중 하나를 사용하고 그 중 하나를 0으로 설정하면 예외가 throw됩니다.
색인이 배열의 경계를 벗어났습니다.
여기에서 무슨 일이 일어나고있는거야? 그리고 특정 문제에 대한 "모든"해결책을 찾으려면 어떻게 지정해야합니까?