连续型Hopfield在matlab中没有直接的工具箱,所以我们们根据Hopfield给出的连续行算法自行编写程序。本文中,以求解旅行商

问题来建立Hopfield网络,并得到解,但是该解不一定是最优解,用Hopfield得到的解可能是次优解,或没有解。直接上问题:

8个城市的坐标:

0.100000000000000 0.100000000000000
0.900000000000000 0.500000000000000
0.900000000000000 0.100000000000000
0.450000000000000 0.900000000000000
0.900000000000000 0.800000000000000
0.500000000000000 0.500000000000000
0.100000000000000 0.450000000000000
0.450000000000000 0.100000000000000

求这8个城市的旅行商解。

在求解前,先简单引入一下连续性Hopfield网络的特点。

一般神经网络(RBF或BP)是单项的,而Hopfield网络特点在于有反馈,而最终得到的结果是一个网络的收敛值。

对于一个Hopfield网络来说,关键是在于确定它在稳定条件下的权系数。

ps:说白了,神经网络就是不断的改变权系数来逼近样本。

这里我们不介绍Hopfield网络的物理实现,因为该网络是一种模电物理模型,具体硬件知识我也不怎么清楚。我们只需要关心

两个问题:

1,单个神经元输入输出是什么(或者说怎么变化)

2,整个网络的变化状态(能量)

对于一个N节点的CHNN模型来说,其神经元状态变量的动态变化可用下述非线性微分方程组来描述

这个等式来自于Ui节点的电流,流入节点电流等于流出。Vi表示电压的变化。

这就是我们关心的能量函数。

这两个等式看不懂也没什么大问题,我们只要知道根据这两个等式推出的结论就可以。

结论:该网络是逐渐稳定的,随着时间推移,网络的能量E随着减小的方向运动,其最终状态就是E的极小值。

这里给出证明:

观察E的变化趋势,即求,而,其中

所以,不难发现,E的变化率是递减的,即上述结论正确。

根据连续Hopfield天生的特点,我们不禁想到如果把一个最优化问题的目标函数转换成网络的能量函数,把问题的变量对应于网络的状态,那么Hopfield神经网络就能够用于解决优化组合问题。


接下来给出算法步骤:

这里需要反复迭代计算4~8步

这里具体代码见URL:http://files.cnblogs.com/files/panpansky/TSP_hopfield.rar

运算结果分析:

图一                                                                     图二                                                                        图三

图一表示城市1~8分别进行的顺序:4-6-7-1-8-3-2-5,图二是具体的路线图,图三表示能量的变化,其实在迭代至30次左右,能量已经趋于平稳。

以上代码和数据均来自http://www.ilovematlab.cn/thread-44738-1-1.html。

转载于:https://www.cnblogs.com/panpansky/p/4641534.html

TSP旅行商问题的Hopfield求解过程相关推荐

  1. 多旅行商问题——公式和求解过程概述

    英文:The multiple traveling salesman problem an overview of formulations and solution procedures 摘要: 多 ...

  2. 遗传算法求解TSP旅行商问题

    旅行商问题 旅行商问题(traveling salesman problem,TSP)可描述为:已知N个城市之间的相互距离,现有一个商人必须遍访这N个城市,并且每个城市只能访问一次,最后又必须返回出发 ...

  3. 贪心算法求解 TSP 旅行商问题及其实现

    文章目录 一.TSP 概述 1. TSP 2. 数学模型 3. TSP分类 二.贪心算法 1. 算法思路 2. 算法框架 3. 问题 三.贪心算法求解 TSP 一.TSP 概述 1. TSP 旅行商问 ...

  4. 人工蜂群算法求解TSP旅行商问题C++(2020.11.13)

    ABC算法求解TSP问题的C++实现 1.输入数据文件:bayg29.tsp 2.头文件 3.所需的类 3.1 城市类City 3.2 包含城市的地图类Graph 3.3 蜜蜂类Bee 3.4 人工蜂 ...

  5. MATLAB遗传算法GA求解TSP旅行商问题,可选PMX交叉、OX交叉及其它多种交叉方式,在算法中引入2-opt变异算子

    MATLAB遗传算法GA求解TSP旅行商问题,可选PMX交叉.OX交叉及其它多种交叉方式,在算法中引入2-opt变异算子.进化逆转算子提高算法局部搜索能力,利用国际通用的TSPLIB数据集中的eil5 ...

  6. 【建模算法】基于遗传算法求解TSP问题(matlab求解)

    [建模算法]基于遗传算法求解TSP问题(matlab求解) TSP (traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况下的时间复杂度随着问题规模的增 ...

  7. java寻优算法_模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径...

    模拟退火算法SA原理及python.java.php.c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径 模拟退火算法(Simulated Annealing,SA)最早的思 ...

  8. 遗传算法(GA)分析总结(Matlab+C#模拟解决TSP旅行商问题)

    遗传算法 1.1.简介 1.2.遗传算法的基本要素 1.3.染色体的编码方式 1.3.1.二进制编码 1.3.2.实数编码 1.4.适应度函数 1.5.遗传算子 1.5.1.选择算子策略 1.5.2. ...

  9. python用禁忌搜索算法实现TSP旅行商问题

    使用python禁忌搜索算法实现TSP旅行商问题 计算智能课程作业,使用python实现禁忌搜索算法实现TSP旅行商问题 问题简介: 给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起 ...

最新文章

  1. 新加坡暂停建设新的数据中心
  2. android 无法显示SD卡目录,Android studio无法在SD卡上创建新目录?
  3. java 中线程池的种类,原理以及源码解析(1)
  4. σ 代数与测度(measures)
  5. linux execl 错误信息,Excel:自动隐藏错误结果的显示信息(转)
  6. python美女源代码_单身程序员,每晚用python抓取百万张美女图片,连女友都不想找了...
  7. git添加远程库遇到的问题
  8. 主流浏览器以及兼容问题
  9. 计算机考研408-2010
  10. ESS 控制台之访问控制篇
  11. 甲骨文再传裁员,补偿N+6,昔日硅谷巨头缘何败走中国
  12. 安装ubuntu系统中磁盘分区
  13. 浅析ERP系统—供应链
  14. pika异步consumer简单使用
  15. 【退役贴】再见了ACM,再会了算法竞赛
  16. kali下经典的ddos攻击软件_Kali-DDoS工具集合
  17. 2020年中国电影市场票房全球最高;辛芷蕾成为瑞士莲亚太区品牌代言人 | 美通企业日报...
  18. 静态时序分析(STA)
  19. Fiddler 工具使用
  20. 【整理】细胞培养常规方法:上皮细胞、内皮细胞、神经胶质、骨骼肌细胞、心肌细胞、巨噬细胞、肾小球细胞、裸小鼠移植瘤单细胞培养细胞

热门文章

  1. C语言实现行列式和代数余子式
  2. SQL语句查询条数不足10行时如何自动补充空行
  3. gFTP不能显示中文文件(夹)名的解决方法
  4. 写篇技术博客被简书锁定是一种什么样的体验
  5. OpenSSL 1.1.1 新特性: 全面支持国密SM2/SM3/SM4加密算法
  6. Arcgis server——arcgis server manager忘记密码
  7. 技术篇-符号制作-线符号制作
  8. 移动端前端UI框架推荐
  9. matlab数据分类与识别,Matlab图像识别/检索系列(3)—10行代码完成caltech图象集分类和识别...
  10. 电路计算机辅助设计上海电力学院,上海电力学院电路计算机辅助设计1.doc