数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: amao

[推荐]《优化建模与LINDO/LINGO软件》

[复制链接]
发表于 2005-11-16 07:19:04 | 显示全部楼层
<>不错</P>
<>我喜欢</P>
发表于 2005-11-17 02:31:55 | 显示全部楼层
<>好书,好书.谢谢啦!</P>
发表于 2005-11-17 20:42:51 | 显示全部楼层
<BR>高手一定要关照这个啊!!!<BR>首先非常感谢各位浏览我的问题。我的lingo运行不出,如果你们也运行不出,看看哪里错了,谢谢。<BR>capacity是指的是配送中心的规模,如果建立,则yn为1且capacity为大于8000,如果不建立,则yn为0且capacity为0,能不能告诉我,怎么建立这种关系。下面是具体参考模型(也许高手不用看就已经知道怎么建立这种关系的式子了),我指的是Lingo软件,当然其他的软件的编程也可告知,谢谢。<BR>以下是我建立的一个简单地配送中心的模型。<BR>Sets:<BR>center/dc1,dc2,dc3/: yn,capacity,a,b,c,t;<BR>customer/cu1,cu2,cu3/: demand;<BR>routes(center,customer):price,length,volume;<BR>Endsets<BR><a href="mailtMin=@sum(center(i):capacity(i)*a(i)/t(i" target="_blank" >Min=@sum(center(i):capacity(i)*a(i)/t(i</A>))<BR><a href="mailt+@sum(center(i):capacity(i)*b(i" target="_blank" >+@sum(center(i):capacity(i)*b(i</A>))<BR><a href="mailt+@sum(center(i)@sum(customer(j):volume(i,j))*c(i" target="_blank" >+@sum(center(i)@sum(customer(j):volume(i,j))*c(i</A>)))<BR><a href="mailt+@sum(routes(i,j):price(i,j)*length(i,j)*volume(i,j" target="_blank" >+@sum(routes(i,j):price(i,j)*length(i,j)*volume(i,j</A>));<BR>@for(center(i)bin(yn(i)));<BR>@for(center(i)|yn(i)#eq#1:capacity(i)&gt;=8000);<BR>@for(center(i)|yn(i)#eq#0:capacity(i)=0);<BR>@for(center(i)sum(customer(j):volume(i,j))&lt;=capacity(i));<BR>@for(customer(j)sum(center(i):volume(i,j))=demand(j));<BR>data:<BR>demand=8000 7000 5500;<BR>a=4;<BR>b=2;<BR>c=2;<BR>t=20;<BR>rice=0.2 0.25 0.18<BR>0.8 0.5 0.4<BR>1.3 0.8 0.7;<BR>Length=45 55 40<BR>15 25 30<BR>10 18 20;<BR>enddata
发表于 2005-11-22 03:10:50 | 显示全部楼层
呵呵,不错啊
发表于 2005-11-25 01:40:23 | 显示全部楼层
<>谢谢了</P>[em01]
发表于 2005-11-25 02:25:59 | 显示全部楼层
谢谢楼主 呵呵~~[em05]
发表于 2005-11-27 17:25:02 | 显示全部楼层
<>呵呵!!</P>
发表于 2005-11-27 19:16:11 | 显示全部楼层
[em04]谢老师的东西就是不错啊顶[em07]
发表于 2005-11-30 15:22:59 | 显示全部楼层
谢谢!我正在找呢!
发表于 2005-11-30 16:35:19 | 显示全部楼层
<>第11楼问题的回答:</P>
<>请将源程序中的两行程序</P>
<>@for(center(i)|yn(i)#eq#1:capacity(i)&gt;=8000);<BR>@for(center(i)|yn(i)#eq#0:capacity(i)=0);</P>
<P>用以下两行等价地替换:</P>
<P>@for(center(i):capacity(i)&lt;=20500*yn(i));<BR>@for(center(i):capacity(i)&gt;=8000*yn(i));</P>
<P>这样处理后得到的是线性约束,很容易求解(20500是demand之和,表示capacity的上限,这是显然的)。</P>

<P>类似的方法在谢金星、薛毅编写出版的《优化建模与LINDO/LINGO软件》 中有很多例子,是通用的方法。</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-28 10:58 , Processed in 0.055232 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表