参考答案的解析:
求助:
我的程序运行好像有问题:
- !Interview order;
- model:
- sets:
- student/1..4/;
- level/1..3/;
- linktime(student,level):x,t;
- linkorder(student,student):y;
- endsets
- data:
- t=13,15,20,
- 10,20,18,
- 20,16,10,
- 8, 10,15;
- enddata
-
- min = @smax(@for(student(i):x(i,3)+t(i,3)));
- @for(student(i):@for(level(j):x(i,j)+t(i,j)<=x(i,j+1)));
- @for(student(i):@for(level(j):@for(student(k):x(i,j)+t(i,j)-x(k,j)<=T*y(i,k))));
- @for(student(i):@for(level(j):@for(student(k):x(i,j)+t(i,j)-x(k,j)<=T*(1-y(i,k)))));
- @bin(y);
- end
- model:
- min=T;
- x41+8<x42;
- x42+10<x43;
- x31+20<x32;
- x32+16<x33;
- x21+10<x22;
- x22+20<x23;
- x11+13<x12;
- x12+15<x13;
- T>x43+15;
- T>x33+10;
- T>x23+18;
- T>x13+20;
- x31+20-x41<T*y34;
- x32+16-x42<T*y34;
- x33+10-x43<T*y34;
- x21+10-x31<T*y23;
- x22+20-x32<T*y23;
- x23+18-x33<T*y23;
- x21+10-x41<T*y24;
- x22+20-x42<T*y24;
- x23+18-x43<T*y24;
- x11+13-x21<T*y12;
- x12+15-x22<T*y12;
- x13+20-x23<T*y12;
- x11+13-x31<T*y13;
- x12+15-x32<T*y13;
- x13+20-x33<T*y13;
- x11+13-x41<T*y14;
- x12+15-x42<T*y14;
- x13+20-x43<T*y14;
- x41+8-x31<T*(1-y34);
- x42+10-x32<T*(1-y34);
- x43+15-x33<T*(1-y34);
- x41+8-x21<T*(1-y24);
- x42+10-x22<T*(1-y24);
- x43+15-x23<T*(1-y24);
- x31+20-x21<T*(1-y23);
- x32+16-x22<T*(1-y23);
- x33+10-x23<T*(1-y23);
- x21+10-x11<T*(1-y12);
- x22+20-x12<T*(1-y12);
- x23+18-x13<T*(1-y12);
- x31+20-x11<T*(1-y13);
- x32+16-x12<T*(1-y13);
- x33+10-x13<T*(1-y13);
- x41+8-x11<T*(1-y14);
- x42+10-x12<T*(1-y14);
- x43+15-x13<T*(1-y14);
- @bin(y34);@bin(y12);@bin(y13);@bin(y14);
- @bin(y23);@bin(y24);
- end