2013-05-08 5 views
1

AMPL에서 일부 변수 x [e]가 있습니다. x [e]> 0 일 때 1과 같고 x [e]가 0 일 때 0과 같은 이진 변수 w [e] e] = 0.이 제약을 만들기 위해 많은 노력을했지만, 나는 무엇인가를 찾지 못했습니다. 이것이 가능한가?AMPL의 다른 변수에서 생성 된 변수

답변

1

나는 당신의 문제를 다음과 같은 방법으로 해결 한 : 이것이 우리의 이진 변수가

var u binary; 

0 또는 1 그리고 우리는 다음과 같은 넣어 제한 될 것입니다 : 이제 X 축 =

subject to U_constraint : 
    x <= 999999 * u; 

을 0이면 AMPL은 u = 0으로 만들고 x! = 0 일 때 분명히 u = 1이됩니다.

+0

좋은 직장 @bond_t! – Mithrand1r

+0

x = 0 일 때 u가 1이되지 않도록하려면 어떻게해야합니까? –

+0

진실은 2013 년부터 AMPL을 사용하지 않았기 때문에 대학 프로젝트에서이 방법을 사용하여 실제로이 방법을 생각해 내지 못했습니다. 실수를 발견하면 공유하십시오. 다른 사람들을 위해이 답을 수정하겠습니다. –