既然LINGO可以求解出TSP问题的最优解,那么我们为啥还要用ACO,PSO,GA等等方法去求他的最优解近似解呢
第一. 确实是因为城市太少,你可以尝试下100个城市以上的;第二.Lingo采用的应该是类似枚举法的算法,只不过要高级点,像整数规划一般由分支定界法,能剪去不合理的空间,减少搜索量,实质上算法复杂度还是指数级的,但是像ACO,PSO,GA等算法是一种随机性算法,最优解的近似解具有一定概率能找到,有点像蒙特卡洛方法,比如一个搜索空间为10000000(本来枚举数),搜索到全局最优解近似解的概率为0.0001(如果是全局最优解的话为1/10000000), 采用蒙特卡洛搜索100000次,搜到最优近似解的概率为1-0.9999^100000 = 0.999;搜索量为原有的1/100,又因为这些被称为智能算法,搜索具有一定的智能方向作为指导,实际上进一步减少了搜索量,因此速度较快。
■网友
通常,数学建模比赛中的问题其计算规模 用lingo求解是基本没问题。但我个人觉得主要出于以下两点很多人不同lingo而用其他的算法或工具。1、是lingo能求解的模型有统一的格式要求,必须用lingo语言能表达的方式建模才能在lingo中使用,这就要求使用者的建模能力比较强。实际当中,很多人建模能力不够,无法建造出符合标准的模型。于是转而换工具或算法。比如,有的约束条件很苛刻需要用一组不等式来表表述,难以运用。而用ga这类算法的时候往往对约束条件表达很有柔性,很容易实现。一言蔽之:建模能力不行,暴力计算总可以了吧。2、lingo的算法内定好的,都是成熟、稳定的方法。在比赛中这类算法往往呈现不出“高级”,这时就用ga、Sa这些算法来增色。其实,我个人觉得,很多问题完全没必要用那些算法的。
■网友
lingo显得不够高级,在算法上,你得显出逼格来才能引起别人的注意
■网友
lingo 用的是分支定界 得到的是精确解启发式算法一般都是局部最优。lingo 有时候会慢很多,启发式有时候会比较快
推荐阅读
- 英雄联盟盒子/大脚为啥要下线换肤功能?
- 关于考研和工作,有些迷茫。
- 既然c程序编译为机器码直接操作硬件,为啥不同操作系统下需要重新编译
- 注销豆瓣之前,有啥简便的备份方法吗
- 既然已有ip追查等确认身份的手段,为啥还要推行网络实名备案
- 实习辞职了,公司变卦不给工资。各位大神咋办呢
- 电动车|既然增加电池容量就能增加续航,厂家为何不无脑增加电容量?
- 物流服务可以分为哪几类
- 既然 Markdown 语言编写的是纯文本文件,那么为啥不直接保存为 txt 文件而要使用 md 格式
- 东北大学大一学生面临专业选择问题