1 / 28

HOPFIELD 网络解决 TSP 问题

HOPFIELD 网络解决 TSP 问题. 蔡佳佳 吴凡. TSP. 旅行商问题 (TSP): 有 N 个城市及它们的距离 d i j . 求最短的哈密尔顿回路。. Hopfield 网络. Hopfield Net. vs TSP 利用 Hopfield Net. 来解未必能得到最优解,但可以得到较优解。 Hopfield Net. 解题的六个方面 状态变量 ◎ 状态要求 ◎ 状态表现 ◎ 状态函数 ◎ 网络架构 ◎ 网络动态 ◎. TSP 问题建模(状态变量).

cisco
Download Presentation

HOPFIELD 网络解决 TSP 问题

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HOPFIELD网络解决TSP问题 蔡佳佳 吴凡 蔡佳佳 吴凡

  2. TSP • 旅行商问题 (TSP):有 N个城市及它们的距离 dij .求最短的哈密尔顿回路。 蔡佳佳 吴凡

  3. Hopfield网络 • Hopfield Net. vs TSP • 利用Hopfield Net.来解未必能得到最优解,但可以得到较优解。 • Hopfield Net.解题的六个方面 • 状态变量◎ • 状态要求◎ • 状态表现◎ • 状态函数◎ • 网络架构◎ • 网络动态◎ 蔡佳佳 吴凡

  4. TSP问题建模(状态变量) • TSP问题可以描述为:设n个城市A,B,C……两两城市间距离分别为Sij,从任一城市出发,访问每个城市一次并返回起点。假如有4个城市A,B,C,D,顺序为B→A→D→C→B。那么路线排列应该是 • TSP问题的解是n个城市的有序排列,可以用换位矩阵来表示一条访问路径。矩阵每行决定一个城市的位置,如上面的路径可以表示为: 蔡佳佳 吴凡

  5. TSP问题建模(状态变量) • Vxi • 大写V:状态变量 • 小写x:城市 • i:拜访的顺序 蔡佳佳 吴凡

  6. TSP问题建模(状态要求) • 设计限制 • 每个城市只去一次 • 每次只去一个城市 • N个城市都要到 • 找出一条从某城市出发,连贯这些城市,又回到原出发点的最短路径。 蔡佳佳 吴凡

  7. TSP问题建模(状态表现) • 对于N个城市的旅行推销员的一个解答可用N2个神经元的状态变量来代表状态变量的排列矩阵元素 • 假设有四个城市(其神经元连接 方式,以右上角 神经元为例) 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 蔡佳佳 吴凡

  8. TSP问题建模(状态函数) • 每个城市只能经过一次,因此不会有第i站等于第j站的情形 • 每个城市只能经过一次,因此第i站的城市不可能重复 • 每个城市都要到过一次 • 这实际上就是TSP问题用HOPFIELD网络建模的3个限制。即换位矩阵每行只有一个1,每列只有一个1,整个矩阵有N个1。 蔡佳佳 吴凡

  9. TSP问题建模(状态函数) • 前面理论已经讲过了HOPFIELD模型要有一个能量函数,它和前馈的误差函数很接近。利用Liyapunov函数来构造这里的能量函数。 • 这里能量的一个重要部分是和路径有关的信息,那么可以设定一个式子 • 这个式子要达到一个极小值才可能满足要求。下标要对N取模运算。否则下标就出现无意义值。 蔡佳佳 吴凡

  10. TSP问题建模(状态函数) • 还要考虑路径的合法性,这样就再加上3个约束条件: • 第一个是每行不多于一个1,第2个是每列不多于一个1,第3个是矩阵中1的个数是n个 蔡佳佳 吴凡

  11. TSP问题建模(状态函数) • 采用Lagrange乘子法,将这个有约束优化问题转化为无约束的优化问题。A,B,C,D都是相应的加权系数。 蔡佳佳 吴凡

  12. TSP问题建模(状态函数) • 其中前三项是所有TSP问题都必须有的约束,第四项因问题不同而不同。这里给出的第四项只能解决小规模的TSP问题。HOPFIELD给了一组10城市均匀分布的坐标并用这个公式实现。他声称20次模拟实验中有16次收敛到最优解或较优解。不过Wilson用同样的方法,并不能达到这个效果。总体结果很差。Aiyer通过分析网络特征值,从超空间角度解释了HOPFIELD网络求解TSP常陷入无效解的原因,并修改能量公式如后: 蔡佳佳 吴凡

  13. TSP问题建模(状态函数) • 显然这个公式保证网络收敛到有效解是以复杂的能量函数为代价。现在的HOPFIELD网络改进关键都在这个含路径信息的计算块上面。 蔡佳佳 吴凡

  14. TSP问题建模(状态函数) • 孙守宇,郑君里 ,HOPFIELD网络求解TSP的一种改进算法和理论证明, 电子学报,,1995 ,23 (1) :73~78 • 该论文提出一种改进的方案,首先,能量函数第3项只在网络输出全为0时才起作用,否则前两项已经保证了第3项成立,因此对前两项做修改: • 这样第3项完全可以省去。那么,TSP能量函数可以简化为下页所示: 蔡佳佳 吴凡

  15. TSP问题建模(状态函数) 蔡佳佳 吴凡

  16. TSP问题建模(状态函数) • 由于行列对称性,B=A。且第四项比Aiyer的简化了很多,式子仍然满足优化目标约束的要求。 • 这些参数的设置需要大量测试,前人的论文仅供参考。论文上设计的参数变化幅度很大,从不足1到数百甚至上千都有。具体情况需要自己测试来确定。 蔡佳佳 吴凡

  17. TSP问题建模(网络架构) • 权值矩阵(对应11页的原始能量公式,那个公式隐含的定义了这个矩阵):当i=j时, 为1,否则为0。右边是外部激励电流 蔡佳佳 吴凡

  18. TSP问题建模(网络架构) • 同样,改进的那篇论文中的连接权值矩阵也可以写出: 外部激励电流为 蔡佳佳 吴凡

  19. TSP问题建模(网络架构) • 权值矩阵是个四维矩阵,不易明白,可以把它转化为一个二维矩阵。 w41 w42 w43 w44 w31 w32 w33 w34 w21 w22 w23 w24 w11 w12 w13 w14 蔡佳佳 吴凡

  20. TSP问题建模(网络动态) • 设定初始状态数后,经由学习过程,进行状态值的改变,直到能量函數趋于最低时,此时状态值即为问题所求得的解答或近似解。 • 神经元的作用函数一般取双曲正切函数,这里取Sigmoid函数也可以。改变量与神经元输入对时间的偏导成正比。这和BP网络中权值的修改相似。BP网修改如下: 蔡佳佳 吴凡

  21. TSP问题建模(网络动态) • HOPFIELD网络权值修改如下: • 有些源码上用h代替Δt。现在的问题就是式子最后这个偏导数怎么求。改进算法公式如下: 蔡佳佳 吴凡

  22. HOPFIELD网络算法步骤: • 学习过程 • 设定网络参数 • 回想过程 • 设定网络参数 • 输入初始状态向量 • 计算新的状态向量 • 重复上一步直到满足要求 • 能量函数不再有明显变化 • 执行一定数目的学习次数 蔡佳佳 吴凡

  23. HOPFIELD网络算法流程图 蔡佳佳 吴凡

  24. HOPFIELD网络算法细节 • 一. 初始化输入向量 • 网络初始状态 可以采用两种方法: • 1 简单的随机数法,不过这个随机数有一定范围,太小太大都不合适,需要进行测试才能确定较优情况。 • 2 随机扰动方法设置初始值。开始先设置一个初始值 u00,然后对该值进行扰动,增加一个微小值δ,即 蔡佳佳 吴凡

  25. HOPFIELD网络算法细节 • 采用随机扰动设置初值可以获得解,但随机扰动缺乏整体特性,往往不易得到较好解,且无法保证收敛性。一种改进的方法是给初始值增加一个偏置。该偏置由Wilson-Pawley公式给出: 蔡佳佳 吴凡

  26. HOPFIELD网络算法细节 • 二 神经元值的计算和应用 由于每次神经元的值都在Sigmoid函数曲线上,并且每次都要进行转换,该函数包括两次指数运算,两次除法运算,三次加法运算,运算量很大,因此采用预先计算并保存,用时查找的方法。这方法可以大大提高速度,把运算减少到只有一次乘法和一次加法。 蔡佳佳 吴凡

  27. HOPFIELD网络算法细节 • 三 判断路径的合法性 输出的数没有恰好的0和1,所以神经元的输出接近0和1就可以,比方说大于 0.99就看作1,小于0.01就看作0。 检查每行或每列1的个数时就把每行或每列的数相加求和后与1比较,在一个误差范围内就可以了,例如1±0.1。 蔡佳佳 吴凡

  28. THE END 蔡佳佳 吴凡

More Related