kand.gms : 확률론적 프로그래밍

설명

정제소는 원자재를 혼합하여 다양한 제품을 만들 수 있습니다. 현재 경영진이 노력하고 있다.
각 원자재를 얼마나 구매하고 비축할지 결정하여,
미래의 제품에 대한 수요를 충족시키기 위해 혼합되었습니다. 수요는 다음과 같아야 한다
완전히 만족하며, 원자재 부족시 제품을 아웃소싱할 수 있습니다.
더 높은 비용. 총 얼마나 많은 원자재를 비축할 수 있는지에 대한 재고 제약이 있습니다.

소형 모델 유형 :LP


카테고리 : 슬롯 사이트 모델 라이브러리


메인 파일 : kand.gms

$title 확률론적 계획법(KAND,SEQ=187)

$onText
정유소에서는 원자재를 혼합하여 다양한 제품을 만들 수 있습니다. 현재 경영진이 노력하고 있다.
각 원자재를 얼마나 구매하고 비축할지 결정하여,
미래의 제품에 대한 수요를 충족시키기 위해 혼합되었습니다. 수요는 다음과 같아야 한다
완전히 만족하며, 원자재 부족시 제품을 아웃소싱할 수 있습니다.
더 높은 비용. 총 얼마나 많은 원자재를 비축할 수 있는지에 대한 재고 제약이 있습니다.

Kall, P 및 Wallace, SW, 확률론적 프로그래밍. 존 와일리와
아들, 영국 치체스터, 1994년.

키워드: 선형 계획법, 확률론적 계획법, 혼합 문제
$offText

세트
   i '원재료' / raw-1, raw-2 /
   j '제품' / p-1, p-2 /
   t '기간' / 시간-1, 시간-2 /
   n '노드' / n-1*n-12 /;

별칭(n,nn);

매개변수 c(i) '원재료의 현재 비용' / raw-1 2, raw-2 3 /;

테이블 a(j,i) '수익률'
         원시-1 원시-2
   p-1 2 6
   p-2 3 3.4;

표 f(j,t) '아웃소싱 비용'
         시간-1 시간-2
   p-1 7 10
   p-2 12 15;

스칼라 b '재고 용량' / 50 /;

테이블 stdat(n,*) '시나리오 트리 데이터'
        문제 p-1 p-2
   n-1 .3 200 180
   n-2 .4 180 160
   n-3 .3 160 140
   n-4 .2 200 180
   n-5 .5 180 160
   n-6 .3 160 140
   n-7 .3 200 180
   n-8 .4 180 160
   n-9 .3 160 140
   n-10 .4 200 180
   n-11 .4 180 160
   n-12 .2 160 140;

세트
   tn(t,n) '시간 노드 매핑' / time-1.(n-1*n-3), time-2.(n-4*n-12) /
   tree(n,n) / n-1.(n-4*n-6), n-2.(n-7*n-9), n-3.(n-10*n-12) /;

매개변수
   dem(n,j) '확률적 수요'
   prob(n) '노드 확률';

dem(n,j) = stdat(n,j);

prob(n)$tn('time-1',n) = stdat(n,'prob');
prob(n)$tn('time-2',n) = sum(tree(nn,n), stdat(nn,'prob')*stdat(n,'prob'));

디스플레이 문제;

변수
   x(i,t) 't 시간에 사용하기 위해 구매한 원자재'
   y(j,t,n) '아웃소싱 제품'
   비용;

양수 변수 x, y;

방정식
   obj '총 비용 정의'
   발 '구매 한도'
   dembal(j,t,n) '수요 잔고';

obj.. 비용 =e= sum((i,t), c(i)*x(i,t)) + sum((j,tn(t,n)), prob(n)*f(j,t)*y(j,tn));

bal..sum((i,t), x(i,t)) =l= b;

dembal(j,tn(t,n)).. sum(i, a(j,i)*x(i,t)) + y(j,tn) =g= dem(n,j);

모델 칸드 / 모두 /;

lp를 사용하여 kand min 비용을 해결합니다.

* SPOSL 시스템을 사용하려면 더미 링크를 삽입해야 합니다.
* 2단계와 3단계 사이. 이러한 링크가 없으면 SPOSL 시스템은
* 서로 다른 하위 문제 구조를 가진 2단계 문제만 식별합니다.
* EPS 값은 숫자 값이 포함된 제약 항목을 삽입하는 데 사용됩니다.
* 0입니다.

방정식 dembalx(j,t,n) '백링크를 포함하도록 수정된 수요 잔액';

dembalx(j,tn(t,n))..
   sum(i, a(j,i)*x(i,t)) + y(j,tn) =g= dem(n,j) + eps*sum(tree(nn,n), y(j,t-1,nn));

모델 kandsp / obj, bal, dembalx /;

lp를 사용하여 kandsp 최소 비용을 해결합니다.