조건에 대한 LP 공식


10

다음과 같은 LP가 있습니다.

/ * 목표 함수 * /
최소 : 1w + 2x + 0.5y + z;

/ * 변수 범위 * /
w + x <= T1;
w + y = U1;
x + z = U2;
T1 = 50;
U1 = 70;
U2 = 25;

이 경우 U1 + U2> T1이고 최적 솔루션은 y = 70 및 z = 25입니다. 값을 y 및 z에 할당하기 전에 w 및 x 변수에 값을 할당하는 조건을 적용하고 싶습니다. U1 + U2 <T1이면 w와 x에만 값과 y = z = 0을 갖기를 원합니다. LP 또는 MILP에서 이러한 제약 조건을 적용하는 방법이 있습니까?


왜 downvote인지 확실하지 않습니다 : LP에서 비록 좁은 질문이지만 합리적입니다
Suresh Venkat

답변:


11

다음은 두 가지 질문에 대한 답변입니다. 세부 사항은 사용중인 솔버에 따라 다릅니다.

  • 그 보장 X는 이전 값을 할당 YZ는 종종 해석에 의해 사용되는 변수의 순서를 나타내는 프로그램에 의해 수행 될 수있다. 즉, 솔버가 먼저 값을 찾으려고하는 변수를 지정합니다. 예를 들어 초코 솔버 (LP 또는 MILP 용 구속 조건 만족 문제 (CSP) 솔버가 아님)에서 가능하지만 다른 솔버도이 가능성을 제공한다고 확신합니다.엑스와이

  • GNU 선형 프로그래밍 키트는 실제로이 if-then-else조건문을 표현하는 구조를. 매뉴얼 에서 "조건부"를 찾으십시오 . 당신은 그러한 진술에 관심있는 조항들을 감쌀 수 있습니다 : if U1 + U2 < T2 then y = 0 and z = 0 else true. (실제로 이것을 시도하지 않았으므로 구문이 잘못되었을 수 있습니다.)

  • 두 번째 질문에 대한 대안적인 대답은 , U 2T 1 이 상수 라는 사실을 이용합니다 . LP 문제의 변형은 U 1 + U 2 < T 1 일 때와 U 1 + U 2 T 1 때 두 가지입니다 .1211+2<11+21


옵션 주셔서 감사합니다. 지금은 옵션 3을 사용하겠습니다.
Bala
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.