CPLEX-C#으로 MILP 문제를 해결하고 싶습니다. 내 문제의 크기가 크고 CPU 시간을 개선하기 위해 초기 솔루션을 사용하고 싶습니다. 이 솔루션을 cplex에 추가하고 주어진 초기 솔루션으로 문제를 해결하기를 원합니다. I 다차원 배열 결정 변수 X[i][j]
(이진 결정 변수)가 상기 값 start[i][j]
동일하고이 코드C# (콘서트 기술)에서 주어진 초기 솔루션으로 CPLEX를 시작하십시오.
try
{
startvar = new INumVar[numberOfAllNode * numberOfAllNode];
startval = new double[numberOfAllNode * numberOfAllNode];
for (int i = 0, idx = 0; i < numberOfAllNode; i++)
for (int j = 0; j < numberOfAllNode; j++)
{
startvar[idx] = X[i][j];
startval[idx] = start[i][j];
idx++;
}
startvar = null;
startval = null;
cplex.AddMIPStart(startvar, startval,Cplex.MIPStartEffort.SolveMIP);
}
catch (ILOG.Concert.Exception)
{
throw;
}
: 다음 코드를 사용했다. start[i][j]
의 값은 매개 변수로 double [] array
으로 저장됩니다. 나는이 코드를 실행하면 다음과 같은 오류가 나타나있다 :이 코드를 삽입해야 할 모델의 어느 부분에 1) :
Warning: No solution found from 1 MIP starts.
Root node processing (before b&c):
Real time = 5.07 sec. (2238.50 ticks)
Parallel b&c, 4 threads:
Real time = 0.00 sec. (0.00 ticks)
Sync time (average) = 0.00 sec.
Wait time (average) = 0.00 sec.
------------
Total (root+branch&cut) = 5.07 sec. (2238.50 ticks)
Couldn't Solve The Problem!
나는이 개 질문이? (필자는 모든 제약 후 평균과 목표 값과 호출 addMin 또는 addMax 또는 그들 앞에 추가?)
2) 내가 오류 다음 한 startvar = null; startval = null;
을 칭찬 할 때 : 당신이 할 수있는 경우
An unhandled exception of type 'ILOG.CPLEX.Cplex.UnknownObjectException' occurred in CPLEX.exe
Additional information: CPLEX Error: object is unknown to IloCplex
내가 감사하겠습니다 이 문제를 해결하기 위해 도움을 받으십시오.
답장을 보내 주셔서 감사합니다. 내 문제는 3 개의 의사 결정 변수 (2 개의 이진수와 1 개의 계속형 변수)가 있습니다. MIPSTART에서는 그 중 하나 (X [i] [j])에 대해서만 값을 제공합니다. 나머지 두 변수의 초기 값을 입력해야합니까? –
모든 변수에 값을 제공 할 필요가 없다고 생각합니다. 보고 한 오류는 모델에없는 변수에 대한 mipstart 값을 제공하려고 시도 할 때 얻을 수있는 것입니다. 또한 2 진수 2 개 변수와 1 개의 연속 변수 만 가질 수 있습니다. 코드에서 변수의 수는 numberOfAllNode * numberOfAllNode 인 정사각형이어야합니다. numberOfAllNode의 크기는 얼마나됩니까? – TimChippingtonDerrick