변화 행렬에 대해서 다에 포함되지 않은 나의 솔루션을 내 일정에 문제가 CPLEX CP

0

질문

나의 거리는 매트릭스에 겹치지 않은 제약 조건을 보이지 않는 작동하는 모델에서 결과입니다. 나는 공식화의 거리는 매트릭스에 의하여 튜플을 설정합니다. 내가 노력이 2 가지 방법으로 볼 수 있습니다. 모두 tuple 정이 올바른 것으로 보고의 거리는 매트릭스에서 추가 noOverlap 제약 조건에 대한 dvar 시퀀스입니다.

그럼에도 불구하고 나는 보지 않는다 추가한 전환 사이의 거리에서 제품의 최적의 결과입니다. 작업을 계속 동일한 시간에 작업이 완료됩니다. 기다리는 대신에 대한 전환 시간입니다. 나는 이 전환을 매트릭스를 위한 기계 1 고 기계 2.

할 수 있는 사람이 있었을 말해 내가 무엇을 잘못했는지 내 모델을 정립? 내가 보았으로 예지만,그들은 보이면서 동일한 방법입니다. 그래서 나는 알고 내가 뭘 잘못입니다.

mod.


using CP;

// Number of Machines (Packing + Manufacturing)
int nbMachines = ...;
range Machines = 1..nbMachines;


// Number of Jobs
int nbJobs = ...;
range Jobs = 1..nbJobs;

int duration[Jobs,Machines] = ...;
int release = ...;
int due     = ...;

tuple Matrix { int job1; int job2; int value; }; 
//{Matrix} transitionTimes ={<1,1,0>,<1,2,6>,<1,3,2>,<2,1,2>,<2,2,0>,<2,3,1>,<3,1,2>,<3,2,3>,<3,3,0>};
{Matrix} transitionTimes ={ <i,j, ftoi(abs(i-j))> | i in Jobs, j in Jobs }; 

dvar interval task[j in Jobs] in release..due;
dvar interval opttask[j in Jobs][m in Machines] optional size duration[j][m];

dvar sequence tool[m in Machines] in all(j in Jobs) opttask[j][m];   

execute {
        cp.param.FailLimit = 5000;
}

 // Minimize the max timespan
dexpr int makespan = max(j in Jobs, m in Machines)endOf(opttask[j][m]);
minimize makespan;
 
subject to {
  // Each job needs one unary resource of the alternative set s (28)
  forall(j in Jobs){
    alternative(task[j], all(m in Machines) opttask[j][m]);
       }     
      forall(m in Machines){
     noOverlap(tool[m],transitionTimes);
       }     
   };

execute {
  writeln(task);
};

dat.

nbMachines = 2;
nbJobs = 3;

duration = [
        [5,6], 
        [3,4],
        [5,7]
            ];

release = 1;

due = 30;
 
``
1

최고의 응답

0

지정해야 합니다 간격 유형에 대한 각각의 순서. 귀하의 경우,형식의 작업 id:

int JobId[j in Jobs] = j;
dvar sequence tool[m in Machines] in all(j in Jobs) opttask[j][m] types JobId;
2021-11-22 15:50:24

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................