帮忙修改一下我的程序吧,一直运行不出来啊,好吧,我承认我是小白··
我的问题在附件中,帮忙看看吧。还有我写了一点关于附件中模型的程序,可怎么也运行不出来,请大侠指教···model:
sets:
order/1..10/:x,q,c,d,w,p;
endsets
max=@sum(order(i):x*(q-w*@if((c-d)#ge#0,c-d,0)));
@for(order(i):c(i)=@sum(order(j)|j#le#i:x(j)*p(j)));
@for(order:@bin(x));
data:
q=1,8,75,88,87,52,35,91,41,51;
c=27,41,9,1,34,96,8,37,16,36;
d=68,49,33,62,12,71,26,90,62,64;
w=48,96,38,22,65,38,54,83,80,28;
p=34,30,61,78,75,83,73,36,89,7;
enddata
end 我把等式约束改为不等式约束了,等式约束太强,几个式子没有交集,所以无法求解,改为不等式就可以了!model:
sets:
order/1..10/:x,q,c,d,w,p;
endsets
data:
q=1,8,75,88,87,52,35,91,41,51;
c=27,41,9,1,34,96,8,37,16,36;
d=68,49,33,62,12,71,26,90,62,64;
w=48,96,38,22,65,38,54,83,80,28;
p=34,30,61,78,75,83,73,36,89,7;
enddata
max=@sum(order(i):x(i)*(q(i)-w(i)*@if((c(i)-d(i))#ge#0,c(i)-d(i),0)));
@for(order(i):@sum(order(j)|j#le#i:x(j)*p(j))>=c(i));
@for(order(i):@bin(x(i)));
end madio 发表于 2013-3-31 17:18 static/image/common/back.gif
我把等式约束改为不等式约束了,等式约束太强,几个式子没有交集,所以无法求解,改为不等式就可以了!
太激动了,终于运行出来了,要哭了都······
还行问一下专家,改动之后表达的意思是一样的对吧?
那些数据怎么从excel中引用呢,如果我把excel中名字改为data1-10@ole('e:\yanzheng.xlsm')对吗? 虽然我把可行域扩大了,但是一旦找到了最优解就应该是差不多的,毕竟是在可行域的边界上达到最优解。
导入数据可以像下面这样做。
data:
q,c,d,w,p=@OLE('D:\yanzheng.XLS');
enddata madio 发表于 2013-4-1 11:01 static/image/common/back.gif
虽然我把可行域扩大了,但是一旦找到了最优解就应该是差不多的,毕竟是在可行域的边界上达到最优解。
导入 ...
我弄好了,还是得多学习例子啊!
页:
[1]