请教面试问题lingo程序里的两条语句的含义
这是一本lingo教材里给出的经典面试问题的的lingo程序,我试过了可以运行,但是理解不了其中的 x(i,j)+t(i,j)<x(i,j+1)) 和 x(i,j)+t(i,j)- x(k,j)<max*Y(i,k)) ?请高人指点下,谢谢!程序如下:model:Title 面试问题;sets:person/@file(paperfile2.ldt)/;!被面试者集合;stage/@file(paperfile2.ldt)/;!面试阶段集合;pxs(person,stage):T,x;!面试所需要的时间、面试开始时间;pxp(person,person)|&1#lt# &2:Y;!Y(i,k)=1:k在i前,0:否则;endsetsdata:T=@file(paperfile2.ldt);enddatamin=maxT;Max>=@max(pxs(i,j)| j #eq# @size(stage):x(i,j)+t(i,j)); !面试的最后结束时间;@for(pxs(i,j) | j #lt# @size(stage):x(i,j)+t(i,j)<x(i,j+1));!只有参加完前一阶段的面试才能进入下一个阶段;!同一时间只能面试一个同学;@for(stage(j):@for(pxp(i,k): x(i,j)+t(i,j)- x(k,j)<max*Y(i,k));@for(pxp(i,k): x(k,j)+t(k,j)- x(i,j)<max*(1-Y(i,k))););@for(pxp: @bin(y));End
第一句注释中已说明;
第二句,注意”pxp(person,person)|&1#lt# &2:Y;!Y(i,k)=1:k在i前,0:否则;“
故语句”@for(pxp(i,k): x(i,j)+t(i,j)- x(k,j)<max*Y(i,k));
@for(pxp(i,k): x(k,j)+t(k,j)- x(i,j)<max*(1-Y(i,k)));“
似乎是想利用类似于BigM Coeffecient Method来确定Y(i,k)的具体取值吧!
好像谢金星先生的书中有此例,应该有详细说明。
页:
[1]