ILP의 논리적 제약

Aug 16 2020

다음 제약 조건을 작성하고 싶습니다.

허락하다 $z$ 다음과 같은 정수 변수 여야합니다. $0\le z\le M$, 및 $t$ 이진 변수 여야합니다. $M$big-M을 나타냅니다. 논리적 제약은 다음과 같습니다.

  • 만약 $z \leq M$$z > 0$ 그때 $t=1$;

  • 만약 $z=0$ 그때 $t=0$.

이거 $z≤Mt$충분한? 그만큼$t$$z$ 변수는 내 목적 함수가 아니라 변수입니다. $t$ 목적 함수의 다른 변수에 연결되어 있습니까?

감사합니다. 도와 주셔서 감사합니다.

답변

4 RobPratt Aug 16 2020 at 02:50

Big-M 제약 $z \le M t$ 시행한다 $z > 0 \implies t = 1$, 동등하게 그 반대 $t = 0 \implies z = 0$,하지만 그 반대는 아닙니다. $$z = 0 \implies t = 0. \tag1$$ 시행하기 위해 $(1)$, 그것의 반대를 고려하십시오 $$t = 1 \implies z > 0 \tag2,$$ big-M 제약을 통해 시행 할 수있는 $$\epsilon - z \le (\epsilon - 0)(1 - t),$$ 동등하게 $$z \ge \epsilon t,$$ 어디 $\epsilon > 0$ 가장 작은 값을 나타내는 공차입니다. $z$ 긍정적이라고 생각할 것입니다.