고 싶어를 추가하려고 하거리 매트릭스는 간단한 일정에서 문제가 CPLEX 를 사용하여 CP 그러나를 관리할 수 없습니다 이지 않고 오류를 내는 새로운 dvar 시퀀스입니다.
를 포함한 설정 시간 사이의 제품은 1,2 및 3 에 따라 달라지는 순서는 제품이 예정되어 있습니다. 설치한 다른 시퀀스에 주어진 distancematrix.나의 거리를 정의 행렬로 튜플 삼중에서 모 파일로 매트릭스에서 dat 파일이지만 모두 옵션 작동하지 않습니다.
새로운 설정 dvar 시퀀스에 대한 이 설정 시간이라는 설정해야를 대표의 순서 모든 작업 J 여부를 테스트합니다. 그러나 나는 오류 메시지가'기능 noOverlap dvarsequence,[범위][범위]가 존재하지 않습니다. 내가 이해하지 못하는 내가 뭘 잘못 때문에,나는 정의 dvar 서열과 매트릭스에 그래서 나의 이해를 작동해야
수 있는 누군가가 나를 도울까요? 와 함께 붙어 이 문제입니다.
찾아주세요 아래에 있습니다. 고 dat. 파일이 있습니다.
사전에 감사합니다! 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 = ...;
int distanceMatrix[1..nbJobs][1..nbJobs] = ...;
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];
dvar sequence setup[j in Jobs] in all (m in Machines,j in Jobs)opttask[j][m];
execute {
cp.param.FailLimit = 5000;
}
// Minimize the total processing cost (24)
dexpr int day = sum(j in Jobs, m in Machines) duration[j][m] * presenceOf(opttask[j][m]);
minimize day;
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]);
noOverlap(setup[j],distanceMatrix);
}
// No overlap on machines
forall(m in Machines){
noOverlap(tool[m]);
}
// forall(m in Machines,j in Jobs)
};
execute {
writeln(task);
};
dat.
nbMachines = 2;
nbJobs = 3;
duration = [
[5,1],
[3,4],
[5,7]
];
release = 1;
due = 30;
distanceMatrix = [
1:[0,2,0],
2:[4,0,6],
3:[0,2,0]
]};