QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13198|回复: 48
打印 上一主题 下一主题

组里边的朋友帮我看一下我们的lingo程序吧

[复制链接]

1

主题

3

听众

22

积分

群组LINGO

群组环境-数学-建模群

跳转到指定楼层
1#
发表于 2010-8-6 17:35 |只看该作者 |倒序浏览
我们暑期建模培训,老师布置了一个作业,是2003年b题露天矿生产的车辆安排第一问。我们的思路是先用“贪心算法”选出六个最优点(铲位),然后再分别选取剩下的四个铲位作为第七个点,对其分别进行lingo编程,由于小弟初学,lingo的一些基础都没掌握,希望各位朋友老师多多指教(第一次在咱们论坛发帖。。呵呵)。话不多说,看代码(附2003b题)——
  1. model:

  2. title 2003B露天矿生产的车辆安排;

  3. sets:
  4. chan /1,2,3,4,5,6,7/:ks,ys,chandi,grade;
  5. xie /1,2,3,4,5/:need,xiedian;
  6. link(chan,xie):d,x,k,n,t;
  7. endsets
  8. data:
  9. ks= 0.95 1.05 1.00 1.05 1.10 1.35 1.25;

  10. ys= 1.25 1.10 1.35 1.05 1.15 1.35 1.25;

  11. grade=30 28 29 32 31 33 31;
  12. d= 5.26 5.19 4.21 4.00 2.95 0.64 1.27

  13. 1.90 0.99 1.90 1.13 1.27 3.09 3.51

  14. 5.89 5.61 5.61 4.56 3.51 1.06 0.57

  15. 0.64 1.76 1.27 1.83 2.74 5.05 6.10

  16. 4.42 3.86 3.72 3.16 2.25 1.27 0.50;
  17. need=1.2 1.3 1.3 1.9 1.3 ;
  18. enddata
  19. !目标函数;
  20. min=@sum( chan (i):

  21. @sum ( xie (j):

  22. x(i,j)*154*d(i,j)));
  23. !卸点的产量要求;
  24. @for (xie(j):

  25. xiedian(j)>=@sum(chan(i):154*x(i,j)));
  26. !卸点的品位要求;
  27. @sum(chan (j):

  28. x(1,j)*(grade(j)-30.5) )<=0;

  29. @sum(chan (j):

  30. x(2,j)*(grade(j)-30.5) )<=0;

  31. @sum(chan (j):

  32. x(5,j)*(grade(j)-30.5) )<=0;

  33. @sum(chan (j):

  34. x(1,j)*(grade(j)-28.5) )>=0;

  35. @sum(chan (j):

  36. x(2,j)*(grade(j)-28.5) )>=0;

  37. @sum(chan (j):

  38. x(5,j)*(grade(j)-28.5) )>=0;
  39. !铲位允许最大开采量;
  40. !矿石;
  41. @for (chan (i): x(1,i)+x(2,i)+x(5,i)<=ks(i)*10000/154);
  42. !岩石;
  43. @for (chan (i): x(3,i)+x(4,i)<=ks(i)*10000/154);
  44. !一个班次最多装载次数小于等于480除以5;
  45. @sum(xie(i):
  46. x(1,i))<=96;
  47. @sum(xie(i):
  48. x(2,i))<=96;
  49. @sum(xie(i):
  50. x(3,i))<=96;
  51. @sum(xie(i):
  52. x(4,i))<=96;
  53. @sum(xie(i):
  54. x(5,i))<=96;
  55. @sum(xie(i):
  56. x(6,i))<=96;
  57. @sum(xie(i):
  58. x(7,i))<=96;
  59. !一个班次最多缷载次数小于等于480除以3;
  60. @sum(chan(j):
  61. x(j,1))<=160;
  62. @sum(chan(j):
  63. x(j,2))<=160;
  64. @sum(chan(j):
  65. x(j,3))<=160;
  66. @sum(chan(j):
  67. x(j,4))<=160;
  68. @sum(chan(j):
  69. x(j,5))<=160;
  70. !实际用去卡车数;
  71. (@sum(link (i,j):(3+5+120*d(i,j)/28)/480))<=20;
  72. !对实际作去卡车数取整;


  73. !一辆卡车一班次往返次数;
  74. @for (link(i,j):k(i,j)=480/(3+5+120*d(i,j)));
  75. !每条线路上卡车数;
  76. @for (link(i,j):n(i,j)=@floor(link(i,j):x(i,j)/link(i,j):k(i,j)));
  77. !从i到j的周期;
  78. @for (link(i,j):t(i,j)=(3+5+120*d(i,j)/28));
  79. !同一路线不发生冲突;
  80. @for (link(i,j):n(i,j)<=@floor(link(i,j):t(i,j)/5));

  81. end









复制代码

转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

0

主题

2

听众

30

积分

新人进步奖

2#
发表于 2010-8-26 11:33 |只看该作者
回复

使用道具 举报

shime        

0

主题

2

听众

29

积分

新人进步奖

3#
发表于 2010-8-26 11:34 |只看该作者
回复

使用道具 举报

hnhs100        

0

主题

2

听众

70

积分

新人进步奖

4#
发表于 2010-8-26 11:35 |只看该作者
回复

使用道具 举报

0

主题

2

听众

69

积分

新人进步奖

5#
发表于 2010-8-26 11:36 |只看该作者
我基本上是采用看英语文章的办法,先泛读,再精读,再一句一句看,最后再提纲挈领,总算是明白一点了,当然,也可能还是领悟错了。最后要说的一句话是:楼主,你很牛叉,希望你不是真的有病。   
回复

使用道具 举报

0

主题

2

听众

98

积分

新人进步奖

6#
发表于 2010-8-26 11:38 |只看该作者
我基本上是采用看英语文章的办法,先泛读,再精读,再一句一句看,最后再提纲挈领,总算是明白一点了,当然,也可能还是领悟错了。最后要说的一句话是:楼主,你很牛叉,希望你不是真的有病。   
回复

使用道具 举报

sam68        

0

主题

2

听众

29

积分

新人进步奖

7#
发表于 2010-8-26 11:46 |只看该作者
楼主的帖子实在是写得太好了。可是我立刻想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,牺牲小我,奉献大我。我要拿出这帖子奉献给世人赏阅,我要把这个帖子一直往上顶,往上顶!顶到所有人都看到为止!  
回复

使用道具 举报

ss256        

0

主题

2

听众

29

积分

新人进步奖

8#
发表于 2010-8-26 13:52 |只看该作者
回复

使用道具 举报

bigstar        

0

主题

2

听众

69

积分

新人进步奖

9#
发表于 2010-8-26 18:59 |只看该作者
楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了
回复

使用道具 举报

zwx        

0

主题

2

听众

71

积分

新人进步奖

10#
发表于 2010-8-26 19:17 |只看该作者
我基本上是采用看英语文章的办法,先泛读,再精读,再一句一句看,最后再提纲挈领,总算是明白一点了,当然,也可能还是领悟错了。最后要说的一句话是:楼主,你很牛叉,希望你不是真的有病。   
回复

使用道具 举报

qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-5-9 12:40 , Processed in 0.631480 second(s), 69 queries .

回顶部