PSO应用TSP(引入交换子)
在退火算法解决简单优化问题一文中提到在一般智能算法应用于实际问题时,需要着重注意以下几个方面,并根据具体问题决定实现思路。
- 构造初始解
- 目标函数最优
- 产生新解(重点)
目标函数
即商人行进耗费也可称之为适应度。根据邻接矩阵以及行进路径得到行进耗费
function [tsp_ans] = calculate_ans(path,d)
tsp_ans = 0;
n = size(path,2);
for i = 2:ntsp_ans = tsp_ans+ d(path(i-1),path(i));
end
end
构造初始解
randperm函数可生成随机排列
新解的产生
与连续区间不同,tsp的新解(离散)产生需借助BBS来实现
SS = (SO1+SO2+SO3+SO4+SO5+……+SON)
SON表示交换的第N步
例SON为(1,2)表示解的1,2位置元素互换。可知交换子的顺序不可变换即B+SS=A。若SS中的交换子顺序变换则最后结果也很可能发生变化。
以X = 3 4 2 1 5, pbest = 1 2 3 4 5 为例
定义SS = [(1,4),(2,3),(3,4),(1,1)] (1,1)可忽略
3 4 2 1 5 + SS1 = 1 4 2 3 5
1 4 2 3 5 + SS2 = 1 2 4 3 5
1 2 4 3 5 + SS3 = 1 2 3 4 5
1 2 3 4 5 + SS4 = 1 2 3 4 5
则B+ SS = A实现
交换子求解代码请参考本文
由上面B + SS = A求解过程可知
设 BB = B+ [SS1+SS2+……+SSK] (K<=N)
K越大BB越接近A的状态
定义 v (0.0<v<1.0);L = round(v*N);
BBS[1:L]则为此次选出交换子序列使得x接近pbest;
可知v越大x越接近pbest,可根据v来调整x接近最优值的速度。
PSO应用TSP(引入交换子)相关推荐
- 利用PSO求解TSP问题
简介 PSO(粒子群算法)是群智能算法的一种,其他的群智能算法还有蚁群算法,遗传算法等.其他的智能算法还有模拟退火.之前看过一段时间的PSO,商务智能课程最后的大作业便想用一下,刚好在github上看 ...
- pso解决tsp matlab,计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc...
计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc 摘要:TSP是一个典型的NPC问题.本文首先介绍旅行商问题和粒子群优化算法的基本概念.然后构造一种基于交换子和交换序[1]概念 ...
- 通过 PSO实现TSP问题优化
clc; clear; close all; warning off; data=load('Oliver30.txt'); a=data(:,2); b=data(:,3); C=[a b]; ...
- 基于 PSO 算法解决 TSP 项目
PSO (Particle Swarm Optimization) 算法即粒子群优化算法,源于对鸟群捕食行为的学习.基本思想是:个体获取的局部信息提供给群体,群体根据所有局部信息获得一个动态的全局最优 ...
- 超快激光微加工的Burst Mode和PSO功能
本期本媒介绍超快激光微加工中两个重要的功能 - Burst Mode和PSO,它们间接影响着超快激光的加工质量和产能. 单词解释 0 1 Burst Mode 在激光行业里,通常简称"脉冲串 ...
- 粒子群算法(PSO)的C++实现
粒子群算法(PSO)的C++实现 粒子群算法(PSO----Particle Swarm Optimization)是常用的智能算法之一,它模拟了 鸟群觅食 行为,是一种具有随机性的 仿生算法 .PS ...
- 粒子群算法求解旅行商问题
算法原理 旅行商问题是一个经典的NP问题,假设有N个城市,需要确定一个访问顺序,使得每个城市都访问一面,最后回到起点城市,且保证行走的总距离最短. 假设随机生成10个城市坐标,城市之间的 ...
- 【MATLAB第3期】源码分享#数学建模常用算法程序整理
- 本次分享内容包含神经网络.层次分析.移动平均.聚类.非线性优化问题.常微分方程问题.主成分分析.自动元胞机.图论.排队问题等. 本次分享MATLAB及PYTHON编程语言解决数学建模问题使用的基本 ...
- 【优秀作业】粒子群算法(Python)
粒子群优化算法 一.概述 粒子群优化算法(Particle Swarm Optimization,PSO)的思想来源于对鸟捕食行为的模仿,最初,Reynolds.Heppner 等科学家研究的是鸟类飞 ...
最新文章
- 开启AngularJs之旅
- shiro之第一个程序认证
- 发布与订阅消息--Redis学习笔记八
- 10.切片slice.rs
- Iterator迭代器接口讲解
- 在vue中使用express-mock搭建mock服务
- VB6升级到VB2010之一:变量升级~
- cisco路由器如何查看内网流量情况
- 【图论】Graph Fourier Transform
- 8086CPU 的寻址方式(重点)
- 你好2010,再见2009
- 2020高中计算机会考成绩查询,2020会考成绩查询网站入口 学业水评考试成绩查询方法...
- CF1379C Choosing flowers
- “七剂中医”治疗原理
- Flume+Kafka+Strom基于伪分布式环境的结合使用
- xmlhttp方法抓取下一页问题
- Android studio案例Android商城
- SPSS统计作图教程:百分条图/堆积条图
- python 网格交易源码_GitHub - zhiaozhou/grid-trading: 网格交易(期货) ,基于网格交易方法的交易策略...
- 中国人民公安大学 网络对抗技术实验报告一
热门文章
- 文件包含(LFI/RFI)
- mysql 根据分数分等级_数分面试-SQL篇
- 51c语言字符,51单片机C语言教程(九) 语句应用
- 【漏洞发现-1】操作系统之漏洞探针类型及利用
- Linux常用命令——uname命令
- 说说在 Python 中如何处理文件系统路径
- 服务器单独运行jar包方法
- IDEA中如何给代码添加Copyright
- 西工大计算机学院博士考试,【经验指导】西北工业大学2019年博士研究生报考指南及考博注意事...
- Jenkins基础:Jenkinsfile使用实例:5:使用when进行条件分支处理