Hopfield神经网络和TSP问题
一、TSP问题
旅行商问题,又叫货郎担问题。它是指如下问题:在完全图中寻找一条最短的哈密尔顿回路。
哈密尔顿回路问题:给定一个图,判断图中是否存在哈密尔顿回路。
哈密尔顿回路:寻找一条回路,经过图中所有点且每个点只经过一次。
欧拉回路:寻找一条回路,经过图中所有的边且每条边只经过一次。
判断一个图是否存在欧拉回路只需要判断每个顶点的出度和入度是否相同。
判断一个图是否存在一条哈密尔顿回路是一个NP问题。
旅行商问题和哈密尔顿回路问题最大的区别在于:旅行商研究的图是完全图,必然存在一条哈密尔顿回路。哈密尔顿回路问题的研究对象是一般的图。
由此,可以构造一个难上加难的问题:在无向图中寻找最短的哈密尔顿回路,这必然也是NP问题。
二、Hopfield神经网络
神经网络系列分成好多种:
- 前馈神经网络
- 反馈神经网络
- 不分前后的神经网络
Hopfield神经网络就是不分前后的神经网络,它的每个神经元之间都是全连接的,构成一个完全图,N个神经元就有$N \times N$个权值。
Hopfield神经网络根据激活函数不同可以划分为:离散型Hopfield神经网络(Discrete Hopfield Neural Network,DHNN)和连续型Hopfield神经网络(Continuous Hopfield Neural Network)。离散型Hopfield神经网络的激活函数是离散的,连续型Hopfield神经网络的激活函数是连续的。
离散型Hopfield神经网络主要用于死记硬背,说好听点就是用于联想记忆、存储知识。
连续型Hopfield神经网络主要用于优化,类似模拟淬火、遗传算法、蚁群算法。1985年Hopfield将连续型Hopfield神经网络用于求解大规模旅行商问题并取得不错成果,开创了神经网络在最优化领域的应用先河。连续型Hopfield神经网络其实就是不断地迭代,使得整个系统的能量逐渐减少。这种方法会陷入局部最优。
三、对Hopfield神经网络的理解
任何优化问题都需要找到明确的目标。神经网络方法把分类、聚类、回归等一切问题都转化成了最优化问题,神经网络的唯一作用就是求解最优化问题。因为神经网络都是定义一个loss,然后更改权值去使得loss最小。
起初,人们不把“损失”叫“损失”,而是称之为“能量”。能量和损失其实完全是一回事。Hopfield神经网络最突出的特点就是它跟电路硬件关系密切。Hopfield提出的主要思想是我们可以使用硬件电路来模拟神经网络的优化过程,这个过程速度极快。因为这个过程使用的电路不是数字电路而是模拟电路。这是Hopfield神经网络最大的贡献。而用软件实现Hopfield神经网络时,可谓毫无亮点,简直就是阉割版全连接神经网络。
四、大规模TSP问题的求解
虽然用Hopfield网络求解大规模TSP问题十分困难,然而处理N=10或20个城市则比较容易。一个自然的想法是把N>100的TSP问题先用分类算法分成若干子类,每一子类10~20个城市,然后把每一个子类看成类似于城市的一个区,再用神经网络求每一区的TSP。而各城区之间的连接也将是一个较小的规模的TSP。用这种分类和分级的方法可使神经网络有效地用于大规模TSP问题的求解。实践证明这一方法也适用于其他的大规模组合优化问题。
参考资料
也不知道这群人谁抄谁,这么垃圾的模型研究的人这么多
金灿. 基于离散Hopfield神经网络的数字识别实现[J]. 计算机时代, 2012(3):1-3.
王韬. 基于连续型Hopfield神经网络的噪声字符识别[J]. 系统仿真学报, 2003, 15(9):1288-1290.
江铁, 曹龙汉, 孙奥. 基于离散Hopfield神经网络的噪声数字识别[J]. 计算机科学, 2012, 39(b06):526-528.
傅德胜, 张学勇. 基于Hopfield神经网络噪声数字的识别[J]. 通信技术, 2010, 43(1):126-128.
车洁, 窦新宇, 彭国志,等. 基于离散Hopfield神经网络的车牌字符识别[J]. 城市建设理论研究:电子版, 2013(14).
钟杰, 房智. Hopfield神经网络在噪声字符识别中的应用[J]. 内江科技, 2009, 30(1):76-76.
刘艳红. 基于离散型Hopfield神经网络的车牌汉字识别方法研究[D]. 东北师范大学, 2013.
王小峰. 基于离散Hopfield神经网络的数字识别研究[J]. 忻州师范学院学报, 2012, 28(2):21-24.
朱献文. 基于遗传算法和Hopfield神经网络的字符识别方法[J]. 电子设计工程, 2011, 19(18):57-59.
https://zh.wikipedia.org/wiki/Hopfield%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
https://blog.csdn.net/weixin_39707121/article/details/79042714
https://blog.csdn.net/weixin_39707121/article/details/79041536
https://blog.csdn.net/app_12062011/article/details/54290484
Hopfield神经网络和TSP问题的更多相关文章
- Hopfield神经网络
神经网络分类 多层神经网络:模式识别 相互连接型网络:通过联想记忆去除数据中的噪声 1982年提出的Hopfield神经网络是最典型的相互连结型网络. 联想记忆 当输入模式为某种状态时,输出端要给出与 ...
- Hopfield 神经网络及稳态性的证明
根据其提出者,John Joseph Hopfield 命名.Hopfield 在 1982 年提出的划时代的:Neural networks and physical systems with em ...
- 五.反馈(Hopfield)神经网络
前馈网络一般指前馈神经网络或前馈型神经网络.它是一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层,数据正想流动,输出仅由当前的输入和网络权值决 ...
- Hopfield神经网络实现污染字体的识别
这个网络的内部使用的是hebb学习规则 贴上两段代码: package geym.nn.hopfiled; import java.util.Arrays; import org.neuroph.co ...
- TSP旅行商问题的Hopfield求解过程
连续型Hopfield在matlab中没有直接的工具箱,所以我们们根据Hopfield给出的连续行算法自行编写程序.本文中,以求解旅行商 问题来建立Hopfield网络,并得到解,但是该解不一定是 ...
- 神经网络hopfield的学习
Hopfield神经网络使用说明. 该神经网络有两个特点: 1,输出值只有0,1 2,Hopfield没有输入(input) 这里解释一下第二个特点,什么叫没有输入?因为在使用Hopfield网络的时 ...
- Hopfield模型
1982年,J.Hopfield提出了可用作联想存储器的互连网络,这个网络称为Hopfield网络模型,也称Hopfield模型.Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接 ...
- Hopfield 网络(上)
讲的什么 这部分主要对 Hopfield 网络作一大概的介绍.写了其模型结构.能量函数和网络的动作方式.主要参考了网上搜到的一些相关 PPT. 概述 早在 1982 年,Hopfield 发表的文 ...
- 目前所有的ANN神经网络算法大全
http://blog.sina.com.cn/s/blog_98238f850102w7ik.html 目前所有的ANN神经网络算法大全 (2016-01-20 10:34:17) 转载▼ 标签: ...
随机推荐
- iOS开发-UIActivityIndicatorView简单使用
软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorVie ...
- ORM数据库框架 LitePal SQLite MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
总是报:ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB 是由于这个a.progressAndPlan字段clob字段. 第一种解决方法: a.progressAndPlan 改 ...
- [转]nodejs深入学(7)理解Buffer
原文: https://www.jianshu.com/p/e3f14cdf78f1 --------------------------------------------------------- ...
- Hadoop:安装ftp over hdfs
https://blog.csdn.net/sptoor/article/details/11484855 https://blog.csdn.net/tengxing007/article/deta ...
- thinkcmf 角色授权支持分类
ThinkCMF中的权限是以后台菜单为基础来进行设置的(menu table),即如果你需要一个自定义的权限,那么你需要在后台菜单里添加一项菜单,然后在角色管理里可以针对角色进行授权 而现在遇到一 ...
- Flask刷新问题
修改页面中内容,特别是图片后,总是刷新不了.调试时,我常常通过修改端口来解决,从80-99不断改. 服务器部署,也遇到同样问题,重启web服务器,重启计算机都不行,网页已经改过来了,但是图片还是老图片 ...
- 如何将.NET 4.0写的Windows service和Web API部署到docker上面
Web API. 看这篇文章: https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvc Win ...
- Python爬虫实战(三):爬网易新闻
代码: # _*_ coding:utf-8 _*_ import urllib2 import re #import sys #reload(sys) #sys.setdefaultencoding ...
- 解剖 CPU(另)
http://itbbs.pconline.com.cn/notebook/11026377.html 话不多说,这个处理器,就是今天我们要厮杀的对象! 1. 案板上的她,静静等等手术的进行! 2. ...