- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于粒子群算法求解TSP问题(JAVA)
一、TSP问题
TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路 径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
TSP问题是一个组合优化问题。该问题可以被证明具有NPC计算复杂性。TSP问题可以分为两类,一类是对称TSP问题(Symmetric TSP),另一类是非对称问题(Asymmetric TSP)。所有的TSP问题都可以用一个图(Graph)来描述:
V={c1, c2, …, ci, …, cn},i = 1,2, …, n,是所有城市的集合.ci表示第i个城市,n为城市的数目;
E={(r, s): r,s∈ V}是所有城市之间连接的集合;
C = {crs: r,s∈ V}是所有城市之间连接的成本度量(一般为城市之间的距离);
如果crs = csr, 那么该TSP问题为对称的,否则为非对称的。
一个TSP问题可以表达为:
求解遍历图G = (V, E, C),所有的节点一次并且回到起始节点,使得连接这些节点的路径成本最低。
二、粒子群算法
1、基本思想
粒子群算法简称PSO,它的基本思想是模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道 食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被 优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
PSO 初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个就是粒子本身所找到的最优解,这 个解叫做个体极值pBest。另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分作为粒子 的邻居,那么在所有邻居中的极值就是局部极值。
2、粒子公式
在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置:
v[i] = w * v[i] + c1 * rand() * (pbest[i] - present[i]) + c2 * rand() * (gbest - present[i]) ? ?
present[i] = present[i] + v[i]?
其中v[i]代表第i个粒子的速度,w代表惯性权值,c1和c2表示学习参数,rand()表示在0-1之间的随机数,pbest[i]代表第i个粒子搜索到的最优值,gbest代表整个集群搜索到的最优值,present[i]代表第i个粒子的当前位置。
3、个人见解
截 止目前为止,粒子群优化算法大体上可以分为两大类,一类是最初的基本粒子群优化算法,一类是改进后的广义粒子群优化算法,其实PSO最初的设计主要用于处 理连续优化问题,如求函数极值,在复杂的组合优化问题上它的应用相当有限,后来经过众多学者的改进才将其应用于求解TSP和单机调度之类的问题。广义粒子 群算法模型和遗传算法相当类似,目前网上有关于粒子群算法求解TSP的很多论文或代码都是基于广义粒子群算法的,说简单点就是进化思想,用交叉变异代替了 基本粒子群算法的迭代公式,当然他们也还是有粒子群优化的本质思想的,如与全局最优编码交叉,与局部最优编码交叉,变异等都是源自于基本粒子群算法的迭代 公式。
三、粒子群优化算法求解TSP问题
关于基本粒子群优化算法的使用,可参考最近这篇文章自话粒子群算法, ,既然是求解TSP,使用基本的粒子群算法迭代公式肯定是不行的,在这里我也不想写一个与遗传算法差不多的粒子群算法,确实没必要,只要看了解遗传算法,分分钟就能写出来,在这里我想使用一种,比较特别的迭代方式,先来看看它的迭代公式:
我们使用TSP问题依然来自于tsplib上的att48,这是一个对称TSP问题,城市规模为48,其最优值为10628.其距离计算方法下图所示:
好,下面是具体代码:
package noah;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputS
您可能关注的文档
- 复变函数与积分变换 初等函数.ppt
- 复变函数与积分变换 解析函数的概念.ppt
- 复变函数与积分变换 拉普拉斯变换.ppt
- 光电检测用光源.ppt
- 光电探测器光敏电阻.ppt
- 光电探测器及光电导探测器.ppt
- 光度学与辐射度学丶半导体丶效应.ppt
- 光伏特探测器.ppt
- 光伏特探测器2.ppt
- 光辐射及半导体基础(2).ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
1.按照实验室质量管理体系的要求,进行实验室日常的检测工作; 2.负责气相色谱仪、气相色谱质谱仪的日常使用、维护; 3.负责对实验室的检测样品数据确认及出具原始记录; 4.熟悉气相室工作流程和相关质量控制要求; 5.对气相室进行流程的优化提高本组工作效率; 6.负责新项目的开发和能力验证及考核的相关工作; 7.环境安全相关法律法规,了解气相组检测相关的产品标准、检测标准; 8.掌握 GC 的使用原理及使用和维护; 9.第三方检测实验室工作流程和相关质量控制要求。
文档评论(0)