logmip4.gms : 무료 슬롯 게임 사용자 매뉴얼 예시 4 - Job Shop Scheduling

설명

이 모델은 일련의 작업이 있는 작업장 일정을 해결합니다. (5)
단계(5)의 순서대로 처리되어야 하지만 모든 작업이 그런 것은 아닙니다.
모든 단계가 필요합니다. 제로 대기 환승 정책은 다음 사이에 가정됩니다.
단계. 실현 가능한 솔루션을 얻으려면 다음을 제거해야 합니다.
직업 간의 모든 충돌. 두 가지 작업을 수행할 필요가 없습니다.
언제 어느 단계에서나. 목표는 간격을 최소화하는 것입니다.
모든 작업을 완료하는 시간입니다.

참고자료:

Raman & Grossmann, 컴퓨터 및 화학 공학 18, 7, p.563-578, 1994.

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

소형 모델 유형 :EMP


카테고리 : 무료 슬롯 게임 모델 라이브러리


메인 파일 : logmip4.gms

$title 무료 슬롯 게임 사용자 매뉴얼 예 4 - Job Shop Scheduling (LOGMIP4,SEQ=337)

$onText
이 모델은 일련의 작업이 있는 작업장 일정을 해결합니다(5).
단계(5)의 순서대로 처리되어야 하지만 모든 작업이 그런 것은 아닙니다.
모든 단계가 필요합니다. 제로 대기 환승 정책은 다음 사이에 가정됩니다.
단계. 실현 가능한 솔루션을 얻으려면 다음을 제거해야 합니다.
직업 간의 모든 충돌. 두 가지 작업을 수행할 필요가 없습니다.
언제 어느 단계에서나. 목표는 간격을 최소화하는 것입니다.
모든 작업을 완료하는 시간입니다.

참고자료:

Raman & Grossmann, 컴퓨터 및 화학 공학 18, 7, p.563-578, 1994.

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

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

세트
   나는 '일자리' / A, B, C, D, E, F, G /
   J '단계' / 1*5 /;

별칭 (I,K), (J,M);

L(I,K,J) '단계 j와 k 사이의 j단계에서 균열을 방지하기 위한 부분 집합'을 설정합니다.
             / A.B.3, A.B.5, A.C.1, A.D.3, A.E.3, A.E.5, A.F.1, A.F.3, A.G.5
               B.C.2, B.D.2, B.D.3, B.E.2, B.E.3, B.E.5, B.F.3, B.G.2, B.G.5
               CD.2, C.D.4, C.E.2, C.F.1, C.F.4, C.G.2, C.G.4
               D.E.2, D.E.3, D.F.3, D.F.4, D.G.2, D.G.4
               E.F.3, E.G.2, E.G.5
               F.G.4 /;

테이블 TAU(I,J) 'j 단계에서 작업 i의 처리 시간'
       1 2 3 4 5
   3 5 2
   ㄴ 3 4 3
   ㄷ 6 3 6
   디 8 5 1
   전자 4 6 2
   여 2 5 7
   깨854;

가변 MS 'makespan';

이진 변수 Y(I,K,J) '작업 i와 k 사이의 순서 변수';
양의 변수 T(I);

방정식
   FEAS(I) '모든 처리 시간보다 긴 makespan'
   NOCLASH1(I,K,J) 'i가 k보다 앞에 있는 경우'
   NOCLASH2(I,K,J) 'k가 i보다 앞에 오는 경우'
   더미;

FEAS(I).. MS =g= T(I) + 합계(M, TAU(I,M));

NOCLASH1(I,K,J)$((ord(I) < ord(K)) 및 L(I,K,J))..
   T(I) + 합계(M$(ord(M) <= ord(J)), TAU(I,M)) =l=
   T(K) + 합계(M$(ord(M) < ord(J)), TAU(K,M));

NOCLASH2(I,K,J)$((ord(I) < ord(K)) 및 L(I,K,J))..
   T(K) + 합계(M$(ord(M) <= ord(J)), TAU(K,M)) =l=
   T(I) + 합계(M$(ord(M) < ord(J)), TAU(I,M));

더미..
   sum((I,K,J)$((ord(I) < ord(K)) 및 L(I,K,J)), Y(I,K,J)) =g= 0;

모델 JOBSHOP / 모두 /;

* 무료 슬롯 게임의 기본값을 덮어쓸 빠르고 더러운 BigM을 찾으세요.
스칼라 BIGM;
BIGM = 합계((I,J), TAU(I,J));

파일 fx /"%lm.info%"/;
putClose fx '기본 bigm' BIGM '분리 Y NOCLASH1 else NOCLASH2';

옵션 optCr = 0.0, optCa = 0.0, emp = 무료 슬롯 게임;

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

Y.l, T.l을 표시합니다.