请教LINGO高手呀

SETS:
JOB/ J1..J4/: PT,POSIT;
POSITION/1..11/:OTIME,CTIME;
JXP( JOB, POSITION): X;
ENDSETS

DATA:
PT = 2 5 7 3;
ENDDATA

@FOR( JOB(I): @SUM( POSITION( K): X( I, K)) = 1);
@FOR( POSITION(K): @SUM(JOB( I): X( I, K)) <=1);
@FOR(JOB(I):POSIT(I)=@SUM(POSITION(K): X(I,K)*K));
@FOR(POSITION( K):@SUM(JOB(I):X(I,K)*PT(I))=OTIME(K));
@FOR(JOB(I):CTIME(I)=@sum(POSITION( K)|K #le#POSIT(I):OTIME(K)));

min=@sum(JOB(I):CTIME(I));

@FOR( JXP: @BIN( X));
END

为什么“@sum(POSITION( K)|K #le#POSIT(I) ”这里用POSIT(I) 会有问题,怎么解决呀?有其他方式达到目的也行呀

1.你好,依据你的定义:

【1】 JOB/ J1..J4/: PT,POSIT;
【2】 POSITION/1..11/:OTIME,CTIME;
@FOR(JOB(I):【CTIME(I)】=@sum(POSITION( K)|K #le#POSIT(I):OTIME(K)));
这句中变量CTIME的下标集是POSITION,故@FOR(JOB(I):CTIME(I)...)就有问题咯~

2. 根据你前后语句的逻辑,我推测可能是定义错误吧,即误将CTIME定义到POSITION集中;若
估计正确,将其移到JOB集下,即:
【1】 JOB/ J1..J4/: PT,POSIT,CTIME;
【2】 POSITION/1..11/:OTIME;

3. 这样仍然有问题,但是如果将限制语句【K #le#POSIT(I)】重新修改,即用一个临时变量
TEMP代替POSIT(I),即@FOR语句中:TEMP=POSIT(I),并在数据DATA部分添加一个初
始化语句:TEMP=0。
具体地:
【1】 DATA:
PT = 2 5 7 3;
TEMP=0;
ENDDATA
【2】 @FOR(JOB(I):
TEMP=POSIT(I);
CTIME(I)=@sum(POSITION( K)|K #le#TEMP:OTIME(K))
);

4. 然后可以运算,但遗憾的是,该问题没有可行解。

3. 希望我的回答对你有帮助,祝好运!
温馨提示:内容为网友见解,仅供参考
无其他回答

初学者向Lingo高手请教关于Lingo程序的小问题,非常感谢!
第三个问题不太理解啥意思,我只见过4维问题,你可以看《优化模型与lindo\/lingo软件》一书,比较好~~~上面有3,4维问题的模型。

求助lingo高手,用的lingo11,一直出现错误代码29,求高手解救
这个意思是数据给少了,需要105个数据

lingo程序运行不出来出现错误,请高手帮忙!谢谢
1. 由于缺乏数据段,可能导致程序难以运行。错误可能源于数据段的处理。2. 在最后一句中,"n"似乎是一个无关的变量,并未在其他约束条件中出现。这可能是需要修改的另一处错误。3. 楼主需要注意的一个问题是,目标函数是非线性的,而且处理的数据是一个1000*100的矩阵。使用Lingo软件解这个问题可能会...

求助各位LINGO高手,为什么每次运行程序时都会出现问题,在线等待帮助...
应该是没有定义“集”,或者是定义的“集”没放对位置。要看了程序才知问题具体所在。从Error Text看来,楼主在另一处循环或求和语句中也使用可变量 " i ",这在lingo中不允许,也就是说,各处循环(包括求和)等需用不同的循环变量。

求助lingo高手,这个程序哪里错误
错误有下:1,max 后面要跟 = ,正确的为 max = 2, 乘号* 不能省略,如目标函数应写为:max = 10*x1+9*x2+30*x3+20*x4-15*x5-4*x6-3*x7 ;3,每行结束时一定要用分号 ; 来结束,如上行,4,约束的标号不能写,如 2)15x5+12x6+10x7<=2000 只能写成 15*x5+12*x6+10*x7<...

Lingo程序有问题,请高手帮忙!!!急!!!
倒数第二行改成@for(fenpei:kai=@IF(((@sum(mianshi:p*p)#eq#2)#or#(@sum(mianshi:p*p)#eq#3)),1, 0));应该是程序有问题 你应该注意程序的可读性,现在这样的很不规范

请教各位LINGO高手,在lingo中,K属于1到3,I属于1到K-1怎么表示,就是求和...
k,i是变量还是集合下标呢?以下是变量的情况:bnd(1,k,3);!1<=k<=3;1<=i;i<=k-1;如果有要求k,i为整数的话,再加下面两句 gin(k);!k取整数;gin(i);!i取整数;

求lingo高手解答
开始集的定义就不对 r0(recycle,0):G;h0(handle,0):T;这个两句不符合lingo语法 括号里面必须要是集

lingo编程错误,请高手帮忙看看
你的语法真的错了好多 我就改了一下 但还是没有结果 你自己再改改吧 model:sets:time\/t1 t2 t3 t4 t5 t6 t7\/:w,h;kind\/k1 k2 k3 k4\/:m,minw,maxw,c1,c2,b;links(time,kind):x,sw,d;endsets data:w=12000,32000,25000,36000,25000,30000,18000;h=6,3,3,2,4,4,2...

初学者向Lingo高手请教关于Lingo计算时小问题
or Surplus Dual Price 1 3.000000 -1.000000 2 0.000000 0.000000 3 1.000000 0.000000 4 0.000000 0.000000 这个题目很简单,因为我没学过lingo,只是接触过一下下

相似回答
大家正在搜