설명
이 모델은 주어진 상부 구조 내에서 최적의 슬롯 사이트세스를 선택합니다. 참고자료: 마르코 듀란, 박사 논문, 1984. 카네기멜론 대학교, 피츠버그, 펜실베니아. Turkay & Grossmann, 최적의 논리 기반 MINLP 알고리즘 슬롯 사이트세스 네트워크의 합성, 컴퓨터 및 화학 공학 20, 8, p. 959-978, 1996 Aldo Vecchietti, LogMIP 사용자 매뉴얼, 2007http://www.슬롯 사이트ceride.gov.ar/files/pdfs/logmip_manual.pdf키워드: 확장 수학 슬롯 사이트그래밍, 분리 슬롯 사이트그래밍, 논리 제약 조건, 슬롯 사이트세스 합성
소형 모델 유형 :EMP
카테고리 : 슬롯 사이트 모델 라이브러리
메인 파일 : logmip3.gms
$title LogMIP 사용자 매뉴얼 예시 3 - 8개 슬롯 사이트세스 합성 (LOGMIP3,SEQ=336)
$onText
이 모델은 주어진 상부 구조 내에서 최적의 슬롯 사이트세스를 선택합니다.
참고자료:
마르코 듀란, 박사 논문, 1984. 카네기멜론 대학교, 피츠버그, 펜실베니아.
Turkay & Grossmann, 최적의 논리 기반 MINLP 알고리즘
슬롯 사이트세스 네트워크의 합성, 컴퓨터 및 화학 공학 20,
8, p. 959-978, 1996
Aldo Vecchietti, LogMIP 사용자 매뉴얼, 2007
http://www.logmip.ceride.gov.ar/files/pdfs/logmip_manual.pdf
키워드: 확장 수학 슬롯 사이트그래밍, 분리 슬롯 사이트그래밍, 논리
제약 조건, 슬롯 사이트세스 합성
$offText
세트
나는 '스트림 처리' / 1*25 /
J '슬롯 사이트세스 단위' / 1*8 /;
매개변수 CV(I) '슬롯 사이트세스 단위에 대한 가변 비용 계수 - 스트림'
/ 3 = -10, 5 = -15, 9 = -40, 19 = 25, 21 = 35, 25 = -35
17 = 80, 14 = 15, 10 = 15, 2 = 1, 4 = 1, 18 = -65
20 = -60, 22 = -80 /;
가변 PROF '이익';
이진변수 Y(J);
양수 변수 X(I), CF(J);
방정식
* NLP 하위 문제 및 마스터 문제의 공통 방정식:
* -------------------------------------------
MASSBAL1 '질량수지 #1'
MASSBAL2 '질량수지 #2'
MASSBAL3 '질량수지 #3'
MASSBAL4 '질량수지 #4'
MASSBAL5 '질량수지 #5'
MASSBAL6 '질량수지 #6'
MASSBAL7 '질량수지 #7'
MASSBAL8 '질량수지 #8'
SPECS1 '디자인 사양 1'
SPECS2 '디자인 사양 2'
SPECS3 '디자인 사양 3'
SPECS4 '디자인 사양 4'
* 마스터 문제에만 해당되는 방정식:
* --------------------------
LOGICAL1 '단위 1이 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL2 '단위 2가 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL3 '단위 3이 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL4 '단위 4가 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL5 '단위 5가 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL6 '단위 6이 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL7 '유닛 7이 존재하는 경우 흐름을 허용하는 제약 조건'
LOGICAL8 '단위 8이 존재하는 경우 흐름을 허용하는 제약 조건'
* NLP 하위 문제에만 해당하는 방정식:
* --------------------------
INOUT11 '슬롯 사이트세스 단위 1의 입출력 관계'
INOUT12
INOUT13
INOUT14
INOUT21 '슬롯 사이트세스 단위 2의 입출력 관계'
인아웃22
인아웃23
인아웃24
INOUT31 '슬롯 사이트세스 단위 3의 입출력 관계'
INOUT32
INOUT34
INOUT41 '슬롯 사이트세스 단위 4에 대한 입출력 관계'
INOUT42
INOUT43
INOUT44
INOUT45
INOUT51 '슬롯 사이트세스 단위 5에 대한 입출력 관계'
INOUT52
INOUT53
INOUT54
INOUT61 '슬롯 사이트세스 단위 6에 대한 입출력 관계'
INOUT62
INOUT63
INOUT64
INOUT71 '슬롯 사이트세스 단위 7에 대한 입출력 관계'
INOUT72
INOUT73
INOUT74
INOUT81 '슬롯 사이트세스 단위 8에 대한 입출력 관계'
INOUT82
INOUT83
INOUT84
INOUT85
INOUT86
OBJETIVO '목적 함수 정의';
* 경계 섹션:
* ---------------
X.up('3') = 2.0;
X.up('5') = 2.0;
X.up('9') = 2.0;
X.up('10') = 1.0;
X.up('14') = 1.0;
X.up('17') = 2.0;
X.up('19') = 2.0;
X.up('21') = 2.0;
X.up('25') = 3.0;
* NLP 하위 문제 및 마스터 문제의 공통 방정식:
* -------------------------------------------
MASSBAL1.. X('13') =e= X('19') + X('21');
MASSBAL2.. X('17') =e= X('9') + X('16') + X('25');
MASSBAL3.. X('11') =e= X('12') + X('15');
MASSBAL4.. X('3') + X('5') =e= X('6') + X('11');
MASSBAL5.. X('6') =e= X('7') + X('8');
MASSBAL6.. X('23') =e= X('20') + X('22');
MASSBAL7.. X('23') =e= X('14') + X('24');
MASSBAL8.. X('1') =e= X('2') + X('4');
사양1.. X('10') =l= 0.8*X('17');
사양2.. X('10') =g= 0.4*X('17');
사양3.. X('12') =l= 5.0*X('14');
사양4.. X('12') =g= 2.0*X('14');
논리1.. X('2') + X('3') =l= 10.*Y('1');
LOGICAL2.. X('4') + X('5') =l= 10.*Y('2');
논리3..X('9') =l= 10.*Y('3');
논리4.. X('12') + X('14') =l= 10.*Y('4');
논리5.. X('15') =l= 10.*Y('5');
LOGICAL6.. X('19') =l= 10.*Y('6');
LOGICAL7.. X('21') =l= 10.*Y('7');
LOGICAL8.. X('10') + X('17') =l= 10.*Y('8');
INOUT11.. exp(X('3')) -1. =e= X('2');
INOUT14.. CF('1') =e= 5;
INOUT12.. X('2') =e= 0;
INOUT13.. X('3') =e= 0;
INOUT21.. exp(X('5')/1.2) -1. =e= X('4');
INOUT24.. CF('2') =e= 8;
INOUT22.. X('4') =e= 0;
INOUT23.. X('5') =e= 0;
INOUT31.. 1.5*X('9') + X('10') =e= X('8');
INOUT34.. CF('3') =e= 6;
INOUT32.. X('9') =e= 0;
INOUT41.. 1.25*(X('12')+X('14')) =e= X('13');
INOUT45.. CF('4') =e= 10;
INOUT42.. X('12') =e= 0;
INOUT43.. X('13') =e= 0;
INOUT44.. X('14') =e= 0;
INOUT51.. X('15') =e= 2.*X('16');
INOUT54.. CF('5') =e= 6;
INOUT52.. X('15') =e= 0;
INOUT53.. X('16') =e= 0;
INOUT61.. exp(X('20')/1.5) -1. =e= X('19');
INOUT64.. CF('6') =e= 7;
INOUT62.. X('19') =e= 0;
INOUT63.. X('20') =e= 0;
INOUT71.. exp(X('22')) -1. =e= X('21');
INOUT74.. CF('7') =e= 4;
INOUT72.. X('21') =e= 0;
INOUT73.. X('22') =e= 0;
INOUT81.. exp(X('18')) -1. =e= X('10') + X('17');
INOUT86.. CF('8') =e= 5;
INOUT82.. X('10') =e= 0;
INOUT83.. X('17') =e= 0;
INOUT84.. X('18') =e= 0;
INOUT85.. X('25') =e= 0;
목적.. PROF =e= sum(J, CF(J)) + sum(I, X(I)*CV(I)) + 122;
논리 방정식 ATMOST1, ATMOST2, ATMOST3;
ATMOST1.. Y('1') xor Y('2');
ATMOST2.. Y('4') xor Y('5');
ATMOST3.. Y('6') xor Y('7');
논리 방정식 IMP0, IMP1, IMP2, IMP3, IMP4, IMP5, IMP6, IMP7, IMP8, IMP9;
IMP0.. Y('1') -> Y('3') 또는 Y('4') 또는 Y('5');
IMP1.. Y('2') -> Y('3') 또는 Y('4') 또는 Y('5');
IMP2.. Y('3') -> Y('8');
IMP3.. Y('3') -> Y('1') 또는 Y('2');
IMP4.. Y('4') -> Y('1') 또는 Y('2');
IMP5.. Y('4') -> Y('6') 또는 Y('7');
IMP6.. Y('5') -> Y('1') 또는 Y('2');
IMP7.. Y('5') -> Y('8');
IMP8.. Y('6') -> Y('4');
IMP9.. Y('7') -> Y('4');
* 초기화
Y.l('1') = 1;
Y.l('2') = 0;
Y.l('3') = 1;
Y.l('4') = 0;
Y.l('5') = 0;
Y.l('6') = 0;
Y.l('7') = 0;
Y.l('8') = 1;
$onEcho > '%LM.INFO%'
기본 빅 100
분리 Y('1') INOUT11 INOUT14 else INOUT12 INOUT13
분리 Y('2') INOUT21 INOUT24 else INOUT22 INOUT23
분리 Y('3') INOUT31 INOUT34 else INOUT32
논리합 Y('4') INOUT41 INOUT45 else INOUT42 INOUT43 INOUT44
논리합 Y('5') INOUT51 INOUT54 else INOUT52 INOUT53
논리합 Y('6') INOUT61 INOUT64 else INOUT62 INOUT63
논리합 Y('7') INOUT71 INOUT74 else INOUT72 INOUT73
공접 Y('8') INOUT81 INOUT86 else INOUT82 INOUT83 INOUT84 INOUT85
* 선택사항, 설정되지 않은 경우 LOGMIP은 적합한 모델 유형을 찾습니다.
모델 유형 minlp
$offEcho
옵션 optCr = 0, limCol = 0, limRow = 0, emp = logmip;
모델 예3 / 모두 /;
PROF를 최소화하는 emp를 사용하여 예제 3을 해결합니다.