Python의 PuLP에서 If-Then-Else-If ... 조건을 구성하려고합니다.If-Then-ElseIf-Then 혼합 정수 선형 프로그래밍
나는 MIP에서 If-Then
과 If-Then-Else
을 보았다. 그러나 선택 사항을 다음 제약 조건 세트로 전파하는 방법과 2 개 이상의 의사 결정 분기를 처리하는 방법을 이해하려고합니다.
x와 y 내 의사 결정 변수입니다. 나는 간단한 경우 - 당시 다른 상황에 대해 "빅 M"기술을 사용하는 방법을 알고
if x=0: C2>0
elif x=1: C10>0
elif x=2: C3>0
if x=0 and y=0:
C4>0;
C8>0;
C10>0
elif x=0 and y=1:
C5>0;
C8>0;
C10>0
elif x=2 and y=0:
C6>0;
C9>0;
C10>0
elif x=2 and y=1:
C7>0;
C9>0;
C10>0
:로 는 기본적으로,이 읽습니다. 문제가 있었다면 그래서 예를 들어, : 2 개 이상의 지점이 있다면 그것으로 더 이상 곱셈 없다, 그래서
- :
Problem: if (x = 1) then (A < 0) else (B < 0) Solution: problem += A < M1*(1-x) problem += B < M2*x
내가 이해할 수없는 것은, 어떻게 이것을 변경 x 및 (1-x)이다.
- 원래 결정 아래에 후속 분기가있는 경우 위에서 결정한 값에 따라 결정이 내려집니다. 그들은 대신 {0, 1}에서의 바이너리 그래서
가
x
변수를 재구성 :FIRST :