, 당신은 보조 변수를 사용할 수 있습니다 :
minimize z
s.t. z >= 2x, z >= 3y, 0 <= x, y <= 1
그것을 아래
M
가 충분히 큰 수이고, 작동해야하는 극대화 있다면;
u_{1,2}_{1,2}
은 2x와 3y를 정렬하는 "순열"을 나타내는 보조 변수 집합입니다. 숫자의 무리의
maximize (z_1_2 + z_2_2)
s.t.
z_1 = 2x
z_2 = 3y
z_1 = z_1_1 + z_1_2
z_2 = z_2_1 + z_2_2
u_1_1 + u_1_2=1
u_2_1 + u_2_2=1
u_1_1 + u_2_1=1
u_1_2 + u_2_2=1
z_1_1 <= M*u_1_1
z_1_2 <= M*u_1_2
z_2_1 <= M*u_2_1
z_2_2 <= M*u_2_2
z_1_1 + z_2_1 <= z_2_1 + z_2_2
0 <= x, y <= 1
u_{1,2}_{1,2} in {0,1} //u_i_k are binary variables.
최소 및 최대는 합계는 달리, 선형 양식을하지 않습니다, 나는 CPLEX 생각하지 않는다 또는 MILP는 일반적으로 이것에 대한 특별한 형태를 가지고있다. 이 특별한 예에서 더 적은 수의 이진 보조 변수가 충분할 수도 있지만 (예 : u_{1,2}_{1,2}
) 일반적으로이 순열 변수는 일련의 숫자 순서를 제공하고 순위에 따라 임의의 값을 선택할 수 있도록합니다 귀하의 경우 가장 큰 항목).
나는'z = 2x'와'z = 3y'라는 제약이 없다고 생각합니다. 그들을 추가하는 방법을 알고 있습니까? –
문제는 항상 실행 불가능하거나 제한이 없습니다. – tmyklebu
나는 버릇이없는 최소화 목표에 대해 생각하고있었습니다. 업데이트 에서처럼 더 복잡한 모델이 가능합니다. – tinlyx