내가 노력하고 추가 Endbeforestartconstraint 내 contrained 프로그래밍 문제입니다. 그러나 나는 오류 메시지가 나의 끝 beforestart 지 않은 배열 형식입니다. 내가 이해하지 못하는 이 나가 거의 복사한 제약 조건과 데이터 sched_seq 예 CPLEX,나는 단지 그것을 변경하는 정수입니다.
내가 무엇을 하려고 달성하 제약 조건이 작업 3 고 작업 1 기 전에 수행하는 작업을 2 시작됩니다.
어떻게 해결할 수 있는 배열에 대한 오류가 이러한 제약 조건?
찾아주세요 아래의 관련 부분을 내 코드
tuple Precedence {int pre;int post;};
{Precedence} Precedences = {<3,2>,<1,2>};
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]
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]);
}
// No overlap on machines
forall(j in Jobs)
forall(p in Precedences)
endBeforeStart(opttask[j][p.pre],opttask[j][p.post]);
forall(m in Machines){
noOverlap(tool[m],transitionTimes);
}
};
execute {
writeln(task);
dat.
nbMachines = 2;
nbJobs = 3;
duration = [
[5,6],
[4,4],
[5,8]
];
release = 1;
due = 30;