carseq.gms : 자동차 시퀀싱

설명

많은 자동차가 생산될 예정입니다. 그들은 동일하지 않습니다. 왜냐하면
다양한 옵션을 기본 모델의 변형으로 사용할 수 있습니다. 는
조립 라인에는 다양한 옵션을 설치하는 다양한 스테이션이 있습니다.
(에어컨, 선루프 등). 이 스테이션은 설계되었습니다.
도로를 따라 지나가는 자동차의 최대 일정 비율을 처리하기 위해
조립 라인. 또한, 특정 옵션이 필요한 차량은
그렇지 않으면 방송국이 대처할 수 없습니다.
따라서 차량의 수용능력이 확보될 수 있도록 순서대로 배열해야 합니다.
각 스테이션의 절대 초과되지 않습니다. 예를 들어, 특정 역이
라인을 따라 지나가는 차량의 최대 절반만 처리할 수 있습니다.
시퀀스는 2대 중 최대 1대의 자동차에 해당 옵션이 필요하도록 구축되어야 합니다.
문제는 NP-하드인 것으로 나타났습니다(Gent 1999).

이것은 Dincbas, et al.에 제시된 예입니다. 더 많은 인스턴스를 사용할 수 있습니다.
CSPLib에서 다운로드할 수 있습니다(문제 prob001).

대형 모델 유형 :MINLP


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


메인 파일 : carseq.gms

$title 자동차 시퀀싱(CARSEQ,SEQ=407)

$onText
다수의 자동차가 생산될 예정입니다. 그들은 동일하지 않습니다. 왜냐하면
다양한 옵션을 기본 모델의 변형으로 사용할 수 있습니다. 는
조립 라인에는 다양한 옵션을 설치하는 다양한 스테이션이 있습니다.
(에어컨, 선루프 등). 이 스테이션은 설계되었습니다.
도로를 따라 지나가는 자동차의 최대 일정 비율을 처리하기 위해
조립 라인. 또한, 특정 옵션이 필요한 차량은
그렇지 않으면 방송국이 대처할 수 없습니다.
따라서 차량의 수용능력이 확보될 수 있도록 순서대로 배열해야 합니다.
각 스테이션의 절대 초과되지 않습니다. 예를 들어, 특정 역이
라인을 따라 지나가는 차량의 최대 절반만 처리할 수 있습니다.
시퀀스는 2대 중 최대 1대의 자동차에 해당 옵션이 필요하도록 구축되어야 합니다.
문제는 NP-하드인 것으로 나타났습니다(Gent 1999).

이것은 Dincbas, et al.에 제시된 예입니다. 더 많은 인스턴스를 사용할 수 있습니다.
CSPLib에서 다운로드해야 합니다(문제 prob001).

Dincbas et al., Dincbas, M., Simonis, H. 및 Van Hentenryck, P.
제약 논리 프로그래밍에서 자동차 순서 문제를 해결합니다.
제8차 유럽인공지능회의(ECAI 88)에서는
Y. Kodratoff, Ed. Pitmann Publishing, 런던, 뮌헨, 독일, 290-295, 1988

키워드: 혼합 정수 선형 계획법, 혼합 정수 비선형 계획법,
          생산계획, 자동차제조, 라인문제
$offText

세트
   p '위치'
   오 '옵션'
   c '클래스';

매개변수
   maxc(o) '한 블록에 해당 옵션이 있는 최대 자동차 수'
   bs(o) 'maxc의 최대 개수가 참조하는 블록 크기'
   classData(c,*) '클래스 데이터';

$인스턴스를 설정하지 않은 경우 $set 인스턴스
$ifThen '%instance%'==''
   세트
      p '위치' / pos1*pos10 /
      o '옵션' / opt1*opt5 /
      c '클래스' / class1*class6 /;

   매개변수
      maxc(o) '한 블록에 해당 옵션이 있는 최대 자동차 수'
              / (opt1,opt3,opt5) 1, (opt2,opt4) 2 /
      bs(o) 'maxc의 최대 개수가 참조하는 블록 크기'
              / opt1 2, (opt2,opt3) 3, (opt4,opt5) 5 /;

   테이블 classData(c,*) '클래스 데이터'
               차량 수 opt1 opt2 opt3 opt4 opt5
      1급 1 1 0 1 1 0
      클래스2 1 0 0 0 1 0
      클래스3 2 0 1 0 0 1
      클래스4 2 0 1 0 1 0
      클래스5 2 1 0 1 0 0
      클래스6 2 1 1 0 0 0;
$else
$onEcho > cs.awk
시작  nr=1