一、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问题的更多相关文章

  1. Hopfield神经网络

    神经网络分类 多层神经网络:模式识别 相互连接型网络:通过联想记忆去除数据中的噪声 1982年提出的Hopfield神经网络是最典型的相互连结型网络. 联想记忆 当输入模式为某种状态时,输出端要给出与 ...

  2. Hopfield 神经网络及稳态性的证明

    根据其提出者,John Joseph Hopfield 命名.Hopfield 在 1982 年提出的划时代的:Neural networks and physical systems with em ...

  3. 五.反馈(Hopfield)神经网络

    前馈网络一般指前馈神经网络或前馈型神经网络.它是一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层,数据正想流动,输出仅由当前的输入和网络权值决 ...

  4. Hopfield神经网络实现污染字体的识别

    这个网络的内部使用的是hebb学习规则 贴上两段代码: package geym.nn.hopfiled; import java.util.Arrays; import org.neuroph.co ...

  5. TSP旅行商问题的Hopfield求解过程

      连续型Hopfield在matlab中没有直接的工具箱,所以我们们根据Hopfield给出的连续行算法自行编写程序.本文中,以求解旅行商 问题来建立Hopfield网络,并得到解,但是该解不一定是 ...

  6. 神经网络hopfield的学习

    Hopfield神经网络使用说明. 该神经网络有两个特点: 1,输出值只有0,1 2,Hopfield没有输入(input) 这里解释一下第二个特点,什么叫没有输入?因为在使用Hopfield网络的时 ...

  7. Hopfield模型

    1982年,J.Hopfield提出了可用作联想存储器的互连网络,这个网络称为Hopfield网络模型,也称Hopfield模型.Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接 ...

  8. Hopfield 网络(上)

    讲的什么 这部分主要对 Hopfield 网络作一大概的介绍.写了其模型结构.能量函数和网络的动作方式.主要参考了网上搜到的一些相关 PPT.   概述 早在 1982 年,Hopfield 发表的文 ...

  9. 目前所有的ANN神经网络算法大全

    http://blog.sina.com.cn/s/blog_98238f850102w7ik.html 目前所有的ANN神经网络算法大全 (2016-01-20 10:34:17) 转载▼ 标签: ...

随机推荐

  1. Populating Next Right Pointers in Each Node leetcode java

    题目: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode ...

  2. MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...

  3. Spring Boot集成JasperReports生成PDF文档

    由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲染生成PDF文档.本人文采欠缺,写作能力 ...

  4. 八一八android与Linux的关系

    Linux与Androld的关系 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一 ...

  5. python3 中对arrow库的总结(转发)

    https://blog.csdn.net/soft_kind/article/details/80614896 arrow库的官方文档:http://arrow.readthedocs.io/en/ ...

  6. Android教你怎样一步步打造通用适配器

    前言 在Android开发中ListView是最为经常使用的控件之中的一个,基本每一个应用都会涉及到它,要使用ListView列表展示,就不可避免地涉及到另外一个东西--Adapter,我们都知道,A ...

  7. 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

    http://blog.csdn.net/zouxy09/article/details/20319673 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression) z ...

  8. redis信息相关集群

    转: http://www.runoob.com/redis/redis-install.html //redis的安装与运维相关 http://zhou123.blog.51cto.com/4355 ...

  9. Cognos11中关于CJAP第三方认证的相关配置

    cognos11同样适用于自定义java程序的第三方认证,而且在测试方面给了直观的测试接口,如下图所示 当用户配置好了自定义java程序的认证之后,程序会提示用户输入我们自己的认证库用户信息例如adm ...

  10. 逻辑回归应用之Kaggle泰坦尼克之灾

    机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾 标签: 机器学习应用 2015-11-12 13:52 3688人阅读 评论(15) 收藏 举报 本文章已收录于:  机器学习知识库  分类 ...