QQ登录

只需要一步,快速开始

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

Lingo可以求解多大规模的TSP问题?

[复制链接]
字体大小: 正常 放大

2

主题

12

听众

171

积分

升级  35.5%

  • TA的每日心情
    慵懒
    2016-6-29 20:41
  • 签到天数: 85 天

    [LV.6]常住居民II

    自我介绍
    正在努力学习数学建模,还望网友多多指教

    社区QQ达人

    群组MATLAB与数模算法实训

    跳转到指定楼层
    1#
    发表于 2015-7-29 17:47 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    在求解n个城市的TSP问题中,设置n为100,距离矩阵是用qrand生成的,有点惊讶,Lingo很快就找到全局最优解,,后来尝试n=200,也没用多久就得到Global solve,不是超过30个城市的话,求解都会变得困难吗?虽然在n=500时提示内存不足。。
    希望大家不吝赐教!
    1. model:
    2. sets:
    3. city/1..150/:u;
    4. link(city,city):dist,x;!距离矩阵,x为决策变量;
    5. endsets
    6. data:
    7. dist= @qrand();
    8. enddata
    9. min=@sum(link:dist*x);
    10. n=@size(city);
    11. @for(link:@bin(x));
    12. !不能从自己到自己;
    13. @for(city(i):x(i,i)=0);
    14. !每个城市出发一次回来一次;
    15. @for(city(k):@sum(city(i):x(i,k))=1;
    16.              @sum(city(j):x(k,j))=1;);
    17. !防止结果出现子巡回;
    18. @for(city(i):u(i)<=n-1);
    19. @for(city(i):@for(city(j)|j#ne#i#and#j#gt#1:
    20.                   u(i)-u(j)+n*x(i,j)<=n-1));
    21. end
    复制代码

    屏幕截图.jpg (35.67 KB, 下载次数: 315)

    屏幕截图.jpg

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

    2

    主题

    12

    听众

    171

    积分

    升级  35.5%

  • TA的每日心情
    慵懒
    2016-6-29 20:41
  • 签到天数: 85 天

    [LV.6]常住居民II

    自我介绍
    正在努力学习数学建模,还望网友多多指教

    社区QQ达人

    群组MATLAB与数模算法实训

    @liwenhui 求不沉啊

    点评

    liwenhui  实际应用我从来没有碰到过数量超过100的TSP问题,因为一旦超过100,通常它会有其它的特别的约束条件,这样就不是典型的TSP问题。对付非典型的问题,我会另谋出路。  详情 回复 发表于 2015-7-29 20:53
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

       n=500提示内存不足是因为matrix generator使用的内存不够了,可以在options中调整。
       这类TSP属于MILP问题,你这么建模的效率不是很高,加一些技巧后可以求解更大的规模,LINGO求解MILP的效率总的来说不算世界前列。
       不过,解TSP还是用专门解TSP的工具比较好,有些比较好的例子用先进的求解器在普通电脑上解几千个城市的TSP也就数十秒,而且内存消耗极低。
      收起(2)
    有什么好说的
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    xxaxiuxluo 发表于 2015-7-29 17:59
    @liwenhui 求不沉啊

    实际应用我从来没有碰到过数量超过100的TSP问题,因为一旦超过100,通常它会有其它的特别的约束条件,这样就不是典型的TSP问题。对付非典型的问题,我会另谋出路。
    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

      我说的非常好的例子是tsplib95中的pr2392,这是一个有2392个城市的tsp问题,state of the art的求解log如下:
    Host: Leiz-PC  Current process id: 3988
    Using random seed 99
    Problem Name: pr2392
    2392-city problem (Padberg/Rinaldi)
    Problem Type: TSP
    Number of Nodes: 2392
    Rounded Euclidean Norm (CC_EUCLIDEAN)
    Set initial upperbound to 381724 (from tour)
      LP Value  1: 364586.000000  (0.59 seconds)
      LP Value  2: 373801.992481  (1.36 seconds)
      LP Value  3: 376863.285634  (2.29 seconds)
      LP Value  4: 377455.478632  (3.92 seconds)
      LP Value  5: 377642.800694  (5.23 seconds)
      LP Value  6: 377768.062910  (7.10 seconds)
      LP Value  7: 377917.966208  (10.05 seconds)
      LP Value  8: 378016.160175  (16.10 seconds)
      LP Value  9: 378032.000000  (17.14 seconds)
    recomputing rownorms ...
      LP Value 10: 378032.000000  (17.33 seconds)
    New lower bound: 378032.000000
    recomputing rownorms ...
      LP Value  1: 378032.000000  (17.72 seconds)
    New upperbound from x-heuristic: 378032.00
    Final lower bound 378032.000000, upper bound 378032.000000
    Exact lower bound: 378032.000000
    DIFF: 0.000000
    Final LP has 3361 rows, 5704 columns, 26466 nonzeros
    Optimal Solution: 378032.00
    Number of bbnodes: 1
    Total Running Time: 20.23 (seconds)

    结果是378032, proven optimal !

    点评

    xxaxiuxluo  之前我还不知道有TSPLIB!  详情 回复 发表于 2015-7-30 09:01
    已有 1 人评分体力 收起 理由
    liwenhui + 10

    总评分: 体力 + 10   查看全部评分

    有什么好说的
    回复

    使用道具 举报

    2

    主题

    12

    听众

    171

    积分

    升级  35.5%

  • TA的每日心情
    慵懒
    2016-6-29 20:41
  • 签到天数: 85 天

    [LV.6]常住居民II

    自我介绍
    正在努力学习数学建模,还望网友多多指教

    社区QQ达人

    群组MATLAB与数模算法实训

    wujianjack2 发表于 2015-7-29 21:26
    我说的非常好的例子是tsplib95中的pr2392,这是一个有2392个城市的tsp问题,state of the art的求解log如 ...

    之前我还不知道有TSPLIB!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-19 12:11 , Processed in 0.525696 second(s), 82 queries .

    回顶部