2013-05-09 5 views
3

AMPL 모델링에 문제가 있습니다. x가 0과 다른 경우 다른 변수 x가 0과 같을 때 equall을 0으로 가정하는 이진 변수 u를 정의하는 방법을 알려줄 수 있습니까?다른 변수와 관련하여 AMPL에서 이진 변수를 할당하는 방법

논리 표현식을 사용하려고했지만 내가 사용하고있는 솔버 (cplex 및 minos)가 허용하지 않습니다.

내 생각이었다 :

subject to: 
u || x != u && x 

답변

3

M를 타고는 '큰'정수 (또는 x >= 1x 연속 경우) 상수 등 x 보유 x < M로, 그리고 가정합니다. 다음 두 제약 조건을 사용할 수 있습니다.

u <= x  (if x=0, then u=0) 
x <= M*u (if x>0, then u=1) 

u 이진 변수.

지금 x이 1보다 반드시 더 지속적이고없는 경우 (예를 들어, 여기에 첫 번째 제약 조건이 x=0.3u=1가 확인되지 않을 것이다) 위의 제약 조건을 적용해야합니다.

일반적인 아이디어는 (대부분의 경우) (해당되는 경우 ab 부울 변수가있는 경우, 다음 문 "ab을 의미한다"는 b>=a로 기록 될 수 있다는 사실을 이용하여, 불평등과 그 논리적 제약을 대체 할 수 있다는 것입니다 a=1, 그 다음 b=1).

관련 문제