emppython1.gms : 인덱스 슬롯 나라 구문과 Python 파서를 갖춘 세 가지 간단한 슬롯 나라 모델

설명

1) 슬롯 나라 Python 구문을 사용한 평형 모델
2) 슬롯 나라 Python 구문을 사용하여 simplevi.gms 예제를 공식화합니다.
3) 슬롯 나라 Python 구문을 사용하는 최적화 및 vi 에이전트의 조합

기고자: 김영대 (2019/02/17)

소형 모델 유형 :GAMS


카테고리 : GAMS 슬롯 나라 라이브러리


메인 파일 : emppython1.gms

$title 색인화된 슬롯 나라 구문과 Python 구문 분석기를 갖춘 세 가지 간단한 슬롯 나라 모델(EMPPYTHON1,SEQ=104)
$onText

1) 슬롯 나라 Python 구문을 사용한 평형 모델
2) 슬롯 나라 Python 구문을 사용하여 simplevi.gms 예제를 공식화합니다.
3) 슬롯 나라 Python 구문을 사용하는 최적화 및 vi 에이전트의 조합

기고자: 김영대 (2019/02/17)

$offText

* 주요 플랫폼(Windows, Linux, Mac)에서는 GMSPYTHONLIB가 자동으로 설정됩니다. 
* sysdir/GMSPython에서 내부 Python 설치를 사용합니다.
$if setEnv GMSPYTHONLIB $abort.noError 내장 코드 Python을 사용할 준비가 되지 않았습니다.
$log --- Python 라이브러리 %sysEnv.GMSPYTHONLIB% 사용

$title 슬롯 나라 Python 구문을 사용한 평형 모델

i / 1*3 / 설정;
별칭(i,j);

변수 obj(i);
양의 변수 x1(i);

방정식 defobj1(i);

defobj1(i)..
    obj(i) =E= x1(i)*(1 - sum(j, x1(j)));

모델 m1 / defobj1 /;

$onEcho > empinfo.txt
평형
최대 obj(i) st x1(i), defobj1(i)
$offEcho

$libInclude empmodel empinfo.txt

x1.up(i) = 1;
슬롯 나라를 사용하여 m1을 해결합니다.

$title 슬롯 나라 Python 구문을 사용하여 simplevi.gms 예제 공식화
세트
   k / k1, k2 /
   l / l1 * l3 /;

테이블 A(k,l)
       l1 l2 l3
k1 1 1
k2 1 1;

매개변수 b(k) /
k1 6
k2 9
/;

양의 변수
 x2(l) '원시 변수, perp to f(l)'
 ;

방정식
 F(l)
 g(k)
 ;

F(l).. 2 * x2(l) =n= 0 ;
g(k).. 합계 l, A(k,l)*x2(l) =g= b(k) ;

모델 m2 / F, g /;

$onEcho > empfile.txt
vi F(l), x2(l), g(k)
$offEcho

$libInclude empmodel empfile.txt

슬롯 나라를 사용하여 m2를 해결합니다.

$title 슬롯 나라 Python 구문을 사용하는 최적화 및 vi 에이전트의 조합

* 예제 1의 i, 별칭 j 및 변수 obj(i)를 설정합니다.

변수 y;
양의 변수 x3(i);

방정식 defobj3(i), defext;

defobj3(i)..
    obj(i) =E= x3(i)*(1 - sum(j, x3(j))) + y;

디덱스..
    1 - 합(j, x3(j)) - y =E= 0;

$onEcho > empfile.txt
평형
최대 obj(i) st x3(i), defobj3(i)
vi defext, y
$offEcho

$libInclude empmodel empfile.txt

모델 m3 / defobj3, defext /;

x3.up(i) = 1;
슬롯 나라를 사용하여 m3을 해결합니다.