설명
프란시스코 오르테가, 로렌스 울시
단일 상품을 위한 분기 및 절단 알고리즘, 무능력,
고정 요금 네트워크 흐름 문제.
네트워크 41(2003), no. 3, 143-158.
https://dial.uclouvain.be/pr/boreal/en/object/boreal%3A4138
마이클 부시익, 후아니, 알렉세이 코프세비치
기술 노트: 메가 슬롯 분기 및 절단 기능을 사용하여 스타이너 트리 문제 해결.
기술 보고서, 메가 슬롯 Development Corp. 2003.
키워드: 혼합 정수 선형 계획법, 최소 비용 흐름 문제,
브랜치 앤 컷 및 휴리스틱 기능, 네트워크 최적화,
고정 요금
대형 모델 유형 :MIP
카테고리 : 메가 슬롯 모델 라이브러리
메인 파일 : bchfcnet.gms 포함: bchdicut.inc berlin2.inc
$title BCH 시설을 사용한 삭감으로 인한 고정 비용 네트워크 흐름 문제(BCHFCNET,SEQ=287)
$onText
프란시스코 오르테가, 로렌스 울시
단일 상품을 위한 분기 및 절단 알고리즘, 무능력,
고정 요금 네트워크 흐름 문제.
네트워크 41(2003), no. 3, 143-158.
https://dial.uclouvain.be/pr/boreal/en/object/boreal%3A4138
마이클 부시익, 후아니, 알렉세이 코프세비치
기술 노트: 메가 슬롯 분기 및 절단 기능을 사용하여 스타이너 트리 문제 해결.
기술 보고서, 메가 슬롯 Development Corp. 2003.
키워드: 혼합 정수 선형 계획법, 최소 비용 흐름 문제,
브랜치 앤 컷 및 휴리스틱 기능, 네트워크 최적화,
고정 요금
$offText
$eolCom //
세트
n '노드'
s '하위 호 인덱스'
arc(n,n,s) '호';
별칭 (n,nn,m), (s,ss);
매개변수
수요(n) '노드 수요'
fcost(n,n,s) '고정 비용'
vcost(n,n,s) '가변 비용'
xupp(n,n,s) '흐름의 상한'
yupp(n,n,s) '빌드 상한';
스칼라
u '수요 합계'
usetree '추가 방정식이 존재하는지 여부' / 0 /
usett1 '동일' / 0 /
usett2 '동일' / 0 /;
$include berlin2.inc
arc(m,n,s)$(fcost(m,n,s) 또는 vcost(m,n,s) 또는 xupp(m,n,s) 또는 yupp(m,n,s)) = yes;
* 컷 생성기에서 사용할 데이터 내보내기
Execute_unload 'net.gdx', nn ss arc 수요 fcost vcost u usetree usett1 usett2 xupp yupp;
변수
비용
x(n,n,s) '호 위의 흐름'
y(n,n,s) '호의 사용';
양수 변수 x;
이진변수 y;
방정식
obj '목표'
tt2(n) '요구가 없는 노드를 통한 흐름 없음'
bf(n,n,s) '이진 강제 제약 조건'
bal(n) '흐름 보존 제약 조건'
tree(n) '하나의 호를 통해서만 유출'
tt1(n) '요구 노드는 하나의 호를 통해서만 공급됩니다';
obj..sum(arc, vcost(arc)*x(arc) + fcost(arc)*y(arc)) =e= 비용;
bal(n).. sum(arc(m,n,s), x(m,n,s)) - sum(arc(n,m,s), x(n,m,s)) =e= 수요(n);
bf(호).. x(호) =l= xupp(호)*y(호);
tree(n)$usetree.. sum(arc(n,m,s), y(n,m,s)) =l= 1;
tt1(n)$(usett1 및 수요(n) > 0).. sum((m,s), y(m,n,s)) =e= 1;
tt2(n)$(usett2 및 수요(n) = 0).. sum((m,s), y(m,n,s)) =l= 1;
모델 마스터 / 모두 /;
$ifThenI %system.mip% == cplex $set 솔버 cplex
$else
$abort 'MIP 솔버 %system.mip%에는 BCH 기능을 사용할 수 없습니다.'
$endIf
master.opt파일 = 1;
$onEcho > %solver%.opt
밉간격 1
userCutCall bchdicut.inc minlp baron optCr 0.0 optCa 0.5 resLim 10 optFile = 1 lo = 2 --cplex = 1
userCutFirst 100
$offEcho
$onEcho > baron.opt
아이솔톨 0.99
숫자솔 20
gdxOut bchdicut
첫 번째Feas 1
$offEcho
xupp(호) = min(u,xupp(호));
x.up(호) = xupp(호);
y.up(arc)$yupp(arc) = yupp(arc);
master.optCr = 0;
MIP를 사용하여 마스터 최소화 비용을 해결합니다.