설명
군인은 1년, 2년, 3년 또는 4년 동안 입대할 수 있으며 그 결정은 각 입대기간별로 얼마나 많은 병사를 입대시킬 것인가 입니다. 년. 이 문제는 스톡 또는 흐름 변수를 사용하여 공식화될 수 있습니다. 4개 여기에는 다양한 공식이 제시되어 있습니다. 가장 읽기 쉬운 공식은 주식 변수를 사용하는 공식입니다. 요구하면서도 변수가 많을수록 주식 공식에는 0이 아닌 항목이 더 적습니다. 행렬이며 계산적인 관점에서도 선호됩니다.
소형 모델 유형 :LP
카테고리 : 피망 슬롯 모델 라이브러리
메인 파일 : sparta.gms
$title 바그너의 군사 인력 계획(SPARTA,SEQ=108)
$onText
군인은 1년, 2년, 3년, 4년 동안 입대할 수 있으며, 그 결정은 다음과 같습니다.
각 입대기간별로 얼마나 많은 병사를 입대시킬 것인가 입니다.
년.
이 문제는 스톡 또는 흐름 변수를 사용하여 공식화될 수 있습니다. 4개
여기에는 다양한 공식이 제시되어 있습니다. 가장 읽기 쉬운
공식은 주식 변수를 사용하는 공식입니다. 요구하면서도
변수가 많을수록 주식 공식에는 0이 아닌 항목이 더 적습니다.
행렬이며 계산적인 관점에서도 선호됩니다.
Wagner, H M, 군사 인력 계획 예. 원칙에서는
경영 결정에 적용되는 운영 연구,
두 번째 판. 프렌티스 홀, 1975, p. 66.
키워드: 선형 프로그래밍, 다기간 인력 계획, 시나리오 분석,
군대, 일정
$offText
세트
t '기간(년)' / 1*10 /
l '입대 기간(년)' / len-1*len-4 /;
별칭 (l,lp), (t,tp);
Set ttl(t,tp,l) '입대 일정을 나타내는 변수 맵';
ttl(t,tp,l) = yes$(ord(tp) <= ord(t) 및 ord(tp) + ord(l) > ord(t));
디스플레이 ttl;
매개변수
infl(t) '인플레이션 지수' / 1 1.00, 2 1.05, 3 1.12, 4 1.71, 5 1.80
6 1.90, 7 1.97, 8 2.10, 9 2.22,10 2.38 /
req(t) '병력 요구사항' / 1 5, 2 6, 3 7, 4 6, 5 4
6 9, 7 8, 8 8, 9 6, 10 4 /
clen(l) '서비스 비용' / len-1 50, len-2 85, len-3 115, len-4 143 /;
변수
x(t,l) '연도 및 입대 기간별 모집'
e(t) '입대한 남자'
z '총 비용';
양수 변수 x;
방정식
비용 '비용 정의'
bal1(t) '병력 균형 - 지연 연산자를 사용한 흐름 균형'
bal2(t) '병력 균형 - 명시적 조건이 있는 흐름 균형'
bal3(t) '병력 균형 - 중간 상태의 흐름 균형'
bal4(t) '병력 잔액 - 재고 잔액';
비용.. z =e= sum((t,l), infl(t)*clen(l)*x(t,l));
bal1(t).. sum((l,lp), x(t-(ord(l)-1),lp+(ord(l)-1))) =g= req(t);
bal2(t).. sum((tp,l)$(ord(tp) <= ord(t) and (ord(tp) + ord(l)) > ord(t)), x(tp,l)) =g= req(t);
bal3(t).. sum(ttl(t,tp,l), x(tp,l)) =g= req(t);
bal4(t).. e(t) =e= e(t-1) + sum(l, x(t,l) - x(t-ord(l),l));
e.lo(t) = req(t);
모델
스파르타1 / 비용, bal1 /
스파르타2 / 비용, bal2 /
스파르타3 / 비용, bal3 /
스파르타4 / 비용, bal4 /;
z를 최소화하는 lp를 사용하여 sparta1을 해결합니다.
z를 최소화하는 lp를 사용하여 sparta2를 해결합니다.
z를 최소화하는 lp를 사용하여 sparta3을 해결합니다.
z를 최소화하는 lp를 사용하여 sparta4를 해결합니다.
매개변수 담당자 '요약 보고서';
rep('필수',' ',t) = req(t);
rep('입대',' ',t) = e.l(t);
rep('m-cost',' ',t) = e.m(t);
rep('recruits',l,t) = x.l(t,l);
디스플레이 담당자;