vietman.gms : Vietoriscz Manne 비료 모델 1961

설명

이 모델은 최적의 크기와 위치를 찾도록 설계되었습니다.
암모니아와 비료 공장. 세 가지 공식이 제안됩니다.
MIP, 확장 LP 및 열거형이 사용됩니다.

대형 모델 유형 :MIP rmip


카테고리 : 피망 슬롯 모델 라이브러리


메인 파일 : vietman.gms

$title Vietorisz/Manne 비료 모델 1961(VIETMAN,SEQ=30)

$onText
이 모델은 최적의 크기와 위치를 찾도록 설계되었습니다.
암모니아와 비료 공장. 세 가지 공식이 제안됩니다.
MIP, 확장 LP 및 열거형이 사용됩니다.

Manne, AS 및 Vietoriscz Thomas, 화학 공정, 공장 위치,
그리고 규모의 경제. Manne, AS 및 Markowitz, H M, Eds,
프로세스 분석 연구. John Wiley and Sons, 뉴욕 및 런던,
1963년, p. 136.

키워드: 혼합 정수 선형 계획법, 완화된 혼합 정수 선형 계획법,
          위치문제, 미시경제학
$offText

세트
   i '암모니아 및 비료 공급원' / 0*5 /
   id(i) '국내 출처 - 식물' / 1*5 /
   k '수요 중심지' / 1*12 /;

별칭 (i,j), (id,jd);

표 fc(i,*) '식물 건립 고정 비용'
      암모니아 비료
   1 1760 810
   2 1656 951
   3 1626 754
   4 1784 856
   5 1782 852;

표 c(i,j) '암모니아의 생산 및 운송 비용'
          1 2 3 4 5
   0 56.0 47.4 47.6 54.4 51.0
   1 20.4 33.6 34.5 26.9 29.5
   2 33.4 20.2 26.7 31.3 28.1
   3 35.3 27.7 21.2 35.0 32.2
   4 41.8 46.4 49.1 35.3 42.1
   5 43.0 41.8 44.9 40.7 33.9;

표 d(j,k) '비료 생산 및 운송 비용'
          1 2 3 4 5 6 7 8 9 10 11 12
   0 86.1 76.4 76.8 87.0 83.6 90.3 75.4 76.4 81.2 96.4 82.4 86.4
   1 32.2 44.0 45.8 31.5 34.1 42.0 43.0 40.3 37.8 42.9 36.6 30.8
   2 36.6 24.4 29.2 37.6 34.2 41.0 26.1 24.2 29.9 48.9 31.9 37.6
   3 37.0 27.9 23.1 41.3 38.4 40.9 24.7 26.8 29.6 52.8 32.6 41.3
   4 38.5 41.9 48.0 23.2 32.2 48.5 44.6 44.1 43.1 34.5 42.4 28.9
   5 44.0 35.3 41.1 33.2 29.8 54.1 37.7 37.1 42.8 44.6 44.4 32.6;

매개변수 r(k) '비료 수요' / 1 9.2, 7 168.6, 2 59.9, 8 50.0
                                     3 95.8, 9 34.0, 4 185.3, 10 11.1
                                     5 344.1, 11 109.5, 6 66.1, 12 47.0 /;

스칼라 빅;
bigm = sum(k, r(k));

디스플레이 빅;

$s제목 모델
변수
   x(i,jd) '암모니아 선적'
   y(j,k) '비료 선적'
   u(i,j,k) '태그된 제품 배송'
   z(jd) '비료 결정'
   w(id) '암모니아 결정'
   tc '총 비용';

양수 변수 x, y, u;

이진변수 z, w;

방정식
   fd(k) '최종수요잔고'
   fd1(k) '최종 수요 잔액(태그됨)'
   ab(jd) '암모니아 균형'
   ia(id) '정수 제약조건 암모니아'
   ia1(id,k) '정수 제약 조건 암모니아(태그 지정)'
   ifu(jd) '정수 제약 비료'
   ift(jd,k) '정수 제약 비료(태그됨)'
   ta '총 비용 잔액'
   ta1 '총 비용 잔액(태그됨)';

ab(jd).. sum(i, x(i,jd)) =g= sum(k, y(jd,k));

fd(k)..sum(j, y(j,k)) =g= r(k);

ia(id).. bigm*w(id) =g= sum(jd, x(id,jd));

ifu(jd).. bigm*z(jd) =g= sum(k, y(jd,k));

ta.. tc =e= sum(id, fc(id,"암모니아")*w(id))
                   + 합계(jd, fc(jd,"비료")*z(jd))
                   + 합계((i,jd), c(i,jd)*x(i,jd))
                   + 합계((j,k), d(j,k)*y(j,k));

fd1(k) .. sum((i,j), u(i,j,k)) =g= r(k);

ia1(id,k).. r(k)*w(id) =g= sum(jd, u(id,jd,k));

ift(jd,k).. r(k)*z(jd) =g= sum(i, u(i,jd,k));

ta1.. tc =e= sum(id, fc(id,"암모니아")*w(id))
                   + 합계(jd, fc(jd,"비료")*z(jd))
                   + 합계((i,j,k), (c(i,j)+d(j,k))*u(i,j,k));

모델
   vietmip 'mip 버전' / fd, ab, ia, ifu, ta /
   viettag '확장 버전' / fd1, ia1, ift, ta1 /;

mip를 사용하여 tc를 최소화하는 vietmip을 해결합니다.

rmip를 사용하여 tc를 최소화하는 viettag를 해결합니다.

$sTitle 열거
세트
   c32 '레이블 1 ~ 32' / 1*32 /
   유형 '제품 유형' / 암모니아, 비료 /;

별칭(c32,c32p);

매개변수
   pow2(id) '2의 거듭제곱'
   com32(c32,i) '조합'
   tfix(c32,type) '위치의 총 고정 비용'
   minamm(c32,i) '최소 암모니아 비용'
   minfer(c32,c32p) '최소 비료 비용'
   fccom(c32,c32p) '고정 비용 조합'
   tcost(c32,c32p) '총 비용'
   최고의 '최저 비용'
   best3p(c32,c32p) '3% 이내의 최상의 조합';

pow2(id) = power(2,card(id)-ord(id));
com32(c32,i) = 1;
com32(c32,id) = mod(floor((ord(c32)-1)/pow2(id)+.001),2);
tfix(c32,type) = sum(id, fc(id,type)*com32(c32,id));
minamm(c32,id) = smin(i$com32(c32,i), c(i,id));
minfer(c32,c32p) = sum(k, r(k)*smin(i$com32(c32p,i), d(i,k) + minamm(c32,i)));
fccom(c32,c32p) = tfix(c32,"암모니아") + tfix(c32p,"비료");
tcost(c32,c32p) = fccom(c32,c32p) + minfer(c32,c32p);
최고 = smin((c32,c32p), tcost(c32,c32p));
best3p(c32,c32p) = tcost(c32,c32p)$(tcost(c32,c32p) <= 1.03*best);

pow2, com32, tfix, minamm, minfer, fccom, tcost, best, best3p를 표시합니다.