连续型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。

TSP旅行商问题的Hopfield求解过程的更多相关文章

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

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

  2. RNN求解过程推导与实现

    RNN求解过程推导与实现 RNN LSTM BPTT matlab code opencv code BPTT,Back Propagation Through Time. 首先来看看怎么处理RNN. ...

  3. h.264 mvp求解过程

    h.264标准中由于分为宏块分割块(8x8),子宏块分割块(4x4),所以各种各样的求解过程比较繁琐 下面整理出标准中mvp的求解过程 8.4.1.3 已知条件有当前块的属性:位置.块类型需要得到当前 ...

  4. 深度学习(二)BP求解过程和梯度下降

    一.原理 重点:明白偏导数含义,是该函数在该点的切线,就是变化率,一定要理解变化率. 1)什么是梯度 梯度本意是一个向量(矢量),当某一函数在某点处沿着该方向的方向导数取得该点处的最大值,即函数在该点 ...

  5. ACS蚁群算法求解对称TSP旅行商问题的JavaScript实现

    本来以为在了解蚁群算法的基础上实现这道奇怪的算法题并不难,结果实际上大相径庭啊.做了近三天时间,才改成现在这能勉强拿的出手的模样.由于公式都是图片,暂且以截图代替那部分内容吧,mark一记. 1 蚁群 ...

  6. 数学建模 TSP(旅行商问题) Lingo求解

    model: sets: cities../:level; link(cities, cities): distance, x; !距离矩阵; endsets data: distance ; end ...

  7. Python动态展示遗传算法求解TSP旅行商问题(转载)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/jiang425776024/articl ...

  8. 基于GA遗传算法的TSP旅行商问题求解

    import random import math import matplotlib.pyplot as plt import city class no: #该类表示每个点的坐标 def __in ...

  9. TSP旅行商问题

    求解的问题,burma.tsp里面的内容 1 16.47 96.10 2 16.47 94.44 3 20.09 92.54 4 22.39 93.37 5 25.23 97.24 6 22.00 9 ...

随机推荐

  1. windows7内核驱动开发试验环境配置

    首先配置环境参照这个: http://blog.csdn.net/qing666888/article/details/50858272 然后在win10里可能由于没有做测试签名因此一直没有成功加载驱 ...

  2. 经典的找不到符号(symbol)错误 #iOS开发

    使用BmobSDK的过程中,编译时出现了以下错误信息,意思是 -[BmobSRWebSocket _innerPumpScanner] 这个方法引用了 "_utf8_nextCharSafe ...

  3. HR常用事务代码

    HR TCODE 描述     PA30 维护人力资源主数据 PA40 人事活动

  4. perl chomp

    在寻找k_word时,为了去打末尾的换行符,使用chomp;但 在windows下创建的的文件,读取一行,如一行为  weather  把它赋值为$str,然后print length($str),得 ...

  5. Visual studio 生成事件的使用 、xcopy 实现 dll 复制操作、

    IF NOT "$(ConfigurationName)"=="publish" exit /B 0if not exist $(TargetPath)publ ...

  6. Oracle归档模式和非归档模式

    一 什么是Oracle归档模式? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志 ...

  7. XE3随笔18:实例 - 解析 Google 关键字搜索排名

    同上例类似, 通过 'http://clients1.google.cn/complete/search?&q=' + "关键字" 可以获取 Google 的关键字搜索排名 ...

  8. 如何让aspnet服务加载静态资源html(我的动态网页静态化) 转

    我们知道,IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件. 当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后 ...

  9. odoo 10 生产自动领料

    分析源码 当 原材料的 补货规则 的 "补货位置" location_id 是 生产单 的 原材料 "目标位置 ", 并且 原材料的 补货规则 的 " ...

  10. 说说C#的async和await 解决卡顿问题 转

    C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: 可以看到,async和await关键字只是把上面的代码变得更简单易懂而已. public cla ...