연속 및 이진 변수와 관련된 문제가 있습니다. 일단 목적 함수를 만들면 CPLEX가 솔루션을 찾지 못하게하는 제약 조건을 추가합니다. 내가 뭘 잘못하고 있는지 알려줘.CPLEX가 동등 제약 조건을 만족하는 솔루션을 찾지 못함
IloNumExpr cbin1 = cplex.prod(EB_s[a-1],binHandelSprzedaj[a-1]);
cplex.addEq(EB[a],cbin1);
"binHandelSprzedaj"이진 변수의 배열이다. "EB_s"및 "EB"는 연속 cplex float 변수의 배열입니다.
"cbin1"대신 "EB_s [a-1]"또는 "binHandelSprzedaj [a-1]"을 입력하면 코드가 작동합니다. 내가 이차 구속으로 끝나기 때문이라고 생각합니다. 그러나 CPLEX에서 제공하는 예제 중 하나 인 "QCPex1"은 솔루션에 "덜 균등 한"2 차 제약 조건을 제공하며 코드는 필자가 작성한 것과 매우 유사합니다. 왜 코드가 작동하지 않는지 이해할 수 없습니다. 왜냐하면 구속 조건이 2 차 또는 2 진 및 연속 변수의 혼합이거나 "동일"유형의 구속 조건이기 때문입니다.
오류 메시지 수신 : CPLEX 오류 5002 : 목적에 Q 내가 최적화에 큰 멍청한 놈이야
반 명확한 긍정적 없습니다. 이 문제를 어떻게 처리합니까? 나는 CPLEX가 나를 위해 가능한 한 많은 수학을했으면 좋겠다. (어쩌면 당신이 제안 할 수있는 몇 가지 마법의 명령 일 수도있다.)최종 형태의 제약 조건은보다 복잡하므로 간단한 변수 완화 (여기에 제시된 내용은 http://orinanobworld.blogspot.com/2010/10/binary-variables-and-quadratic-terms.html)가 작동하지 않습니다. 같을 것이다 완전히 정의 문제에 구속 :
A = B + C + D + 이진 *의 F를 (1 - 이진) * g
- g는 연속 변수들이다.
도움이 될 것입니다.
감사합니다. 지금까지 작동합니다. :) – t4u