1

CPLEX Java API에서 MIP 시작을 효율적으로 사용하는 방법을 찾을 수 없습니다.ILOG CPLEX Optimizer Java API에서 MIP 사용하기

하나의 제약 조건을 변경하거나 목적을 변경하여 여러 번 해결해야하는 선형 문제가있어서 솔루션 (MIP 시작)에서 시작하여 계산 속도를 높일 수있는 좋은 방법이라고 생각했습니다.

그래서 처음에는 문제를 해결 한 후 모든 변수를 IloNumVar 배열에 저장하고 double을 cplex.addMIPStart를 사용하여 다른 cplex 객체에 전달했습니다.

경고 : 1 MIP 시작에서 찾을 수 없습니다 솔루션

문제는 그것이 느리게을하고 저에게이 메시지를 제공 아무것도 속도를하지 않는 것입니다.

아마도 MIP에 모든 변수를 제공하지 말아야 할 것입니다. 그러나 변수를 제공 할 변수를 어떻게 알 수 있습니까?

나는 또한 MIP 시작 노력을 변경하는 시도했지만 어떤 변화를하지 않는 것

...

왜 빨리 계산을하지 않는 이유는 무엇입니까? 몇 가지 차이점이있는 많은 문제를 해결할 더 좋은 방법이 있습니까?

+0

이 항목을 OR- 교환으로 교차 게시했음을 유의해야합니다. – raoulcousins

답변

2

이 메시지는 일반적으로 모델의 의사 결정 변수에 값을 지정하지 않았거나 cplex에 지정한 값을 사용할 수 없다는 것을 의미합니다. 변수를 IloNumVar.setBounds를 사용하여 모델을 풀어보고 실행 가능성을 확인할 수 있습니다. 그게 불가능하다면, iis 파일을 쓸 수 있습니다. CPLEX는 시도하지만 밉 스타트를 사용할 수 없으므로 느리게 실행됩니다. 좋은 MIP 시작은 솔루션 시간을 극적으로 개선 할 수 있습니다. 특히 cplex가 처음 실현 가능한 솔루션을 찾기가 어려우며 MIP 시작이 최적에 가까운 목적 함수 값을 갖지만, 많은 경우에 차. 따뜻한 시작 MIP는 따뜻한 시작 LP보다 훨씬 어렵습니다.