logmip1c.gms : 슬롯 머신 사용자 매뉴얼 예시 1c - 작업 스케줄링

설명

세 가지 작업(A,B,C)은 세 단계로 순차적으로 실행되어야 하지만
모든 작업에 모든 단계가 필요한 것은 아닙니다. 목표는 다음을 얻는 것입니다.
완료 시간을 최소화하는 일련의 작업입니다. 일단 직업이 있으면
시작되었으므로 중단할 수 없습니다. 목표는 다음을 얻는 것입니다.
완료 시간을 최소화하는 작업 순서입니다.

이 모델에서는 우선순위 공식을 사용합니다.

참조: Raman & Grossmann, Comp. & 화학. Eng., 18, 7, p.563-578, 1994.

Aldo Vecchietti, 슬롯 머신 사용자 매뉴얼, 2007,http://www.슬롯 머신ceride.gov.ar/files/pdfs/logmip_manual.pdf키워드: 확장 수학 프로그래밍, 분리형 프로그래밍,
          작업 스케줄링, 실행 순서

소형 모델 유형 :EMP


카테고리 : 슬롯 머신 모델 라이브러리


메인 파일 : logmip1c.gms

$title 슬롯 머신 사용자 매뉴얼 예 1c - 작업 스케줄링 (LOGMIP1C,SEQ=334)

$onText
3가지 작업(A,B,C)은 3단계로 순차적으로 실행되어야 하지만,
모든 작업에 모든 단계가 필요한 것은 아닙니다. 목표는 다음을 얻는 것입니다.
완료 시간을 최소화하는 일련의 작업입니다. 일단 직업이 있으면
시작되었으므로 중단할 수 없습니다. 목표는 다음을 얻는 것입니다.
완료 시간을 최소화하는 작업 순서입니다.

이 모델에서는 우선순위 공식을 사용합니다.

참조: Raman & Grossmann, Comp. & 화학. Eng., 18, 7, p.563-578, 1994.

Aldo Vecchietti, 슬롯 머신 사용자 매뉴얼, 2007,
http://www.슬롯 머신ceride.gov.ar/files/pdfs/logmip_manual.pdf

키워드: 확장 수학 프로그래밍, 분리형 프로그래밍,
          작업 스케줄링, 실행 순서
$offText

세트
   j '일자리' / A, B, C /
   s '단계' / 1*3 /;

별칭 (j,jj), (s,ss);

less(j,jj) '상부 삼각형'을 설정합니다.

테이블 p(j,s) '처리 시간'
      1 2 3
   5 3
   비 3 2
   C24;

매개변수
   c(j,s) '단계 완료 시간'
   w(j,jj) '쌍별 대기 시간'
   pt(j) '총 처리 시간';

less(j,jj) = ord(j) < ord(jj);

c(j,s) = sum(ss$(ord(ss) <= ord(s)), p(j,ss));
w(j,jj) = smax(s, c(j,s) - c(jj,s-1));
pt(j) = 합(s, p(j,s));

c, w, pt를 표시합니다.

변수
   t '완료 시간'
   x(j) '작업 시작 시간'
   pr(j,jj) '작업 우선순위';

양수 변수 x;
이진변수 pr;

방정식
   comp(j) '작업 완료 시간'
   seq(j,jj) '작업 순서 j는 jj보다 먼저'
   dummy '이름을 모델에 강제 적용';

comp(j)..t =g= x(j) + pt(j);

seq(j,jj)$(ord(j) <> ord(jj)).. x(j) + w(j,jj) =l= x(jj);

더미.. sum(less(j,jj), pr(j,jj)) =g= 0;

x.up(j) = 1000;

모델 m / 모두 /;

* 기본적으로 볼록 껍질 공식이 사용됩니다.
파일 fx /"%lm.info%"/;
FX '분리'를 넣어;
loop(less(j,jj), put / pr(j,jj) seq(j,jj) 'else' seq(jj,j););
넣어닫다;

옵션 emp = 슬롯 머신;

t를 최소화하는 emp를 사용하여 m을 해결합니다.