2017-01-29 1 views
2

Excel에서 solver를 사용하여 뮤추얼 펀드 비용을 최소화하는 선형 프로그램을 만들려고합니다. 내 결정 변수는 각 펀드에 투자 한 금액입니다. 투자 된 것이 있다면 기금 최저액을 충족해야합니다. 어떻게 프로그램 할 수 있습니까?Linear Programming Decision Variable> 0 then> = 3000

금액 기금 1 투자> = 양 투자가> 0 기금 1 다음 양 펀드에 투자하는 경우 1> = 3000 다른 양 = 0

어떤 도움이 크게 인식되어 투자. 감사. 제약

답변

3

이러한 유형 xx의 가능한 값에 대한 상한 M 선택 기금 1에 투자 금액에 대응하는 결정 변수 인 것으로 가정하자 Big M Method

의 변형에 의해 강제된다. 예를 들어 투자 할 금액이 $ 1,000,000이라면 M = 1,000,000x에 최소 상한선이있을 필요는 없습니다. M = 2,000,000도 잘 작동합니다 (보통 M이 부당하게 큰 경우 더 빠른 수렴과 적은 반올림 오류가 발생하지만).

0 또는 1 (즉, 2 진 결정 변수)으로 제한되는 새로운 변수 y을 도입하십시오. 모델에 다음과 같은 두 가지 제약 조건을 추가 한 다음 두 번째 추가 제약 멀리 0에서 y을 강제

x >= 3000*y 
x <= M*y 

x>0 경우, 따라서 그것은 y = 1 이후 y이 이진 강제로. 그러나 y = 1 인 경우이 두 번째 제약 조건은 으로 감소합니다. 이는 M을 선택하면 자동으로 적용되므로 x에 실제 제약 조건을 추가하지 않습니다. 하지만이 경우 y = 1부터 첫 번째 제약 조건은 x >= 3000이됩니다. 따라서 두 제약 조건이 함께 x > 0으로 x >= 3000을 강제합니다. 중요한 것은 - 비선형 if 기능을 사용하지 않아도됩니다. MILP (Mixed Integer Linear Programming) 문제로 만들지 만, Excel 솔버는 아무런 문제없이 처리 할 수 ​​있습니다 (바이너리 변수의 수가 너무 커지지 않는 한).