spatequ.gms : 공간 평형

설명

이 프로그램은 선형 공급을 사용하는 공간 평형 모델용으로 작성되었습니다.
2개의 제품과 3개의 지역이 있는 수요입니다.

모델에는 이 문제를 해결하기 위한 여러 가지 접근 방식(LP, NLP 및 MCP)이 포함되어 있습니다.
문제.

소형 모델 유형 :MCP


카테고리 : 슬롯 커뮤니티 모델 라이브러리


메인 파일 : spatequ.gms

$title 공간 평형 (SPATEQU,SEQ=354)

$onText
이 프로그램은 선형 공급을 사용하는 공간 평형 모델용으로 작성되었습니다.
2개의 제품과 3개의 지역이 있는 수요입니다.

모델에는 이 문제를 해결하기 위한 여러 가지 접근 방식(LP, NLP 및 MCP)이 포함되어 있습니다.
문제.

Phan, S H, 목재가공산업 진흥을 위한 정책선택
베트남 북부가 곧 다가옵니다. 박사 논문,
2011년 호주 퀸즈랜드 대학교.

Phan, S H 및 Harrison, S, 제제 검토 및
분석을 위한 공간 평형 모델 적용
정책. 산림연구 22, 4 (2011).

수치 예는 다음에서 가져왔습니다.
Takayama, T 및 Judge, G G, 공간 평형 및 이차
프로그래밍. 농업경제학회지 46, 1 (1964), 67-93

작성자: Phan Sy Hieu, 2010년 11월

키워드: 선형 계획법, 비선형 계획법, 혼합 상보성
          문제, 공간 평형 모델
$offText

세트
   c '상품' / Com1, Com2 /
   r '지역' / Reg1, Reg2, Reg3 /;

별칭 (r,rr), (c,cc);

표 AlphaD(r,c) '수요 함수의 상수'
          Com1 Com2
   Reg1 200 300
   Reg2 100 200
   Reg3 160 250;

표 BetaD (r,c,cc) '수요 함수의 가격 계수'
               Com1 Com2
   Reg1.Com1 -10 1
   Reg1.Com2 1 -10
   Reg2.Com1 -5 1
   Reg2.Com2 1 -20
   Reg3.Com1 -8 1
   Reg3.Com2 1 -10;

표 BetadSq(r,c,cc) '2차 함수에 대한 수요 함수의 가격 계수'
                Com1 Com2
   Reg1.Com1 -5 1
   Reg1.Com2 1 -5
   Reg2.Com1 -2.5 1
   Reg2.Com2 1 -10
   Reg3.Com1 -4 1
   Reg3.Com2 1 -5;

표 AlphaS(r,c) '공급 함수의 상수'
           Com1 Com2
   Reg1 -50 -60
   Reg2 -50 -60
   Reg3 -50 -60;

표 BetaS (r,c,cc) '공급 함수의 가격 계수'
               Com1 Com2
   Reg1.Com1 10 0.5
   Reg1.Com2 0.5 15
   Reg2.Com1 20 0.5
   Reg2.Com2 0.5 25
   Reg3.Com1 10 0.5
   Reg3.Com2 0.5 15 ;

표 BetasSq(r,c,cc) '2차 함수에 대한 공급 함수의 가격 계수'
               Com1 Com2
   Reg1.Com1 5 0.5
   Reg1.Com2 0.5 7.5
   Reg2.Com1 10 0.5
   Reg2.Com2 0.5 12.5
   Reg3.Com1 5 0.5
   Reg3.Com2 0.5 7.5;

테이블 Tcost(r,rr,c) '상품 운송 비용'
               Com1 Com2
   Reg1.Reg1 0 0
   Reg1.Reg2 2 3
   Reg1.Reg3 2 3
   Reg2.Reg1 2 3
   Reg2.Reg2 0 0
   Reg2.Reg3 1 2
   Reg3.Reg1 2 3
   Reg3.Reg2 1 2
   Reg3.Reg3 0 0;

변수
   DINT(r,c) '수요함수의 적분'
   SINT(r,c) '공급 함수의 적분'
   TC '총 운송비'
   Qd(r,c) '수요량'
   Qs(r,c) '공급량'
   X(r,rr,c) '지역 간 이동량'
   P(r,c) '가격'
   OBJ '총 운송을 뺀 총 경제 잉여의 객관적인 가치';

양의 변수 X, P;

방정식
   DEM(r,c) '수요함수'
   DEMLOG(r,c) '수요 함수 비선형'
   DEMINT(r,c) '수요함수의 적분'
   SUP(r,c) '공급 기능'
   SUPLOG(r,c) '공급 함수 비선형'
   SUPINT(r,c) '공급 함수의 적분'
   SDBAL(c) '공급 및 수요 수량 제약'
   PDIF(r,rr,c) '지역 간 가격 차이'
   TRANSCOST '교통비 방정식'
   SX(r,c) '수송량 및 공급량'
   DX(r,c) '수송량과 수요량'
   OBJECT 'NLP의 목적 방정식'
   IN_OUT(r,c) '거래 흐름'
   DOM_TRAD(r,rr,c) '국내 거래가격 관계';

DEM(r,c).. AlphaD(r,c) + sum(cc, (BetaD(r,c,cc)*P(r,c))) =e= Qd(r,c);

DEMLOG(r,c).. AlphaD(r,c) + sum(cc, (BetaD(r,c,cc)*log(P(r,c)))) =e= Qd(r,c);

DEMINT(r,c).. DINT(r,c) =e= AlphaD(r,c)*P(r,c) + sum(cc, BetadSq(r,c,cc)*P(r,cc))*P(r,c);

SUP(r,c).. AlphaS(r,c) + sum(cc, (BetaS(r,c,cc)*P(r,c))) =e= Qs(r,c);

SUPLOG(r,c).. AlphaS(r,c) + sum(cc, (BetaS(r,c,cc)*log(P(r,c)))) =e= Qs(r,c);

SUPINT(r,c).. SINT(r,c) =e= AlphaS(r,c)*P(r,c)+ sum(cc, BetasSq(r,c,cc)*P(r,cc))*P(r,c);

SDBAL(c).. sum(r,Qd(r,c)) =e= sum(r, Qs(r,c));

TRANSCOST.. TC =e= sum((r,rr,c), X(r,rr,c)*TCost(r,rr,c));

OBJECT.. OBJ =e= sum((r,c), DINT(r,c) - SINT(r,c)) - TC;

PDIF(r,rr,c).. P(r,c) - P(rr,c) =l= TCost(r,rr,c);

SX(R,C).. sum(RR,X(R,RR,C)) =e= Qs(R,C);

DX(r,c)..sum(rr, X(rr,r,c)) =e= Qd(r,c);

IN_OUT(r,c).. Qs(r,c) + sum(rr, X(rr,r,c) - X(r,rr,c)) =e= Qd(r,c);

DOM_TRAD(r,rr,c).. P(r,c) + TCost(r,rr,c) =g= P(rr,c);

모델
   P2R3_Linear / DEM, SUP, SDBAL, PDIF, TRANSCOST, SX, DX /
   P2R3_LinearLog / DEMLOG, SUPLOG, SDBAL, PDIF, TRANSCOST, SX, DX /
   P2R3_비선형 / P2R3_선형, DEMINT, SUPINT, OBJECT /
   P2R3_MCP / DEM, SUP, IN_OUT.P, DOM_TRAD.X /;

TC를 최소화하는 lp를 사용하여 P2R3_Linear를 해결합니다.
TC를 최소화하는 nlp를 사용하여 P2R3_LinearLog를 해결합니다.
OBJ를 최대화하는 nlp를 사용하여 P2R3_NonLinear를 해결합니다.

X.fx(r,r,c) = 0;

mcp를 사용하여 P2R3_MCP를 해결합니다.