CPLEX에서 어떤값의 집합중에 하나를 가져야 한다는 표현은 까다로운 표현입니다 (값이 최소~최대의 범위로 표현되는 변수는 표현이 쉽습니다). 아래와 같이 표현하는 것도 하나의 방법인데, 정수 변수가 많이 늘어나게 됩니다. IloNumArray vals(env,4,1,2,3,6); IloNumVarArray vars(env,4,0,1,ILOINT); IloNumVar fi(env,0,IloInfinity); cplex.add( IloSum(vars) == 1 ); cplex.add( fi == IloScalProd(vars,vals) );
두번째 질문은 잘 이해가 안됩니다. L1의 최소값을 찾고 E2의 최대값을 찾는 경우라면 아래 둘중 하나를 사용하면 됩니다: cplex.add( IloMinimize(L1 - E2) ); cplex.add( IloMaximize(E2 - L1) );