290 likes | 961 Views
HOPFIELD 网络解决 TSP 问题. 蔡佳佳 吴凡. TSP. 旅行商问题 (TSP): 有 N 个城市及它们的距离 d i j . 求最短的哈密尔顿回路。. Hopfield 网络. Hopfield Net. vs TSP 利用 Hopfield Net. 来解未必能得到最优解,但可以得到较优解。 Hopfield Net. 解题的六个方面 状态变量 ◎ 状态要求 ◎ 状态表现 ◎ 状态函数 ◎ 网络架构 ◎ 网络动态 ◎. TSP 问题建模(状态变量).
E N D
HOPFIELD网络解决TSP问题 蔡佳佳 吴凡 蔡佳佳 吴凡
TSP • 旅行商问题 (TSP):有 N个城市及它们的距离 dij .求最短的哈密尔顿回路。 蔡佳佳 吴凡
Hopfield网络 • Hopfield Net. vs TSP • 利用Hopfield Net.来解未必能得到最优解,但可以得到较优解。 • Hopfield Net.解题的六个方面 • 状态变量◎ • 状态要求◎ • 状态表现◎ • 状态函数◎ • 网络架构◎ • 网络动态◎ 蔡佳佳 吴凡
TSP问题建模(状态变量) • TSP问题可以描述为:设n个城市A,B,C……两两城市间距离分别为Sij,从任一城市出发,访问每个城市一次并返回起点。假如有4个城市A,B,C,D,顺序为B→A→D→C→B。那么路线排列应该是 • TSP问题的解是n个城市的有序排列,可以用换位矩阵来表示一条访问路径。矩阵每行决定一个城市的位置,如上面的路径可以表示为: 蔡佳佳 吴凡
TSP问题建模(状态变量) • Vxi • 大写V:状态变量 • 小写x:城市 • i:拜访的顺序 蔡佳佳 吴凡
TSP问题建模(状态要求) • 设计限制 • 每个城市只去一次 • 每次只去一个城市 • N个城市都要到 • 找出一条从某城市出发,连贯这些城市,又回到原出发点的最短路径。 蔡佳佳 吴凡
TSP问题建模(状态表现) • 对于N个城市的旅行推销员的一个解答可用N2个神经元的状态变量来代表状态变量的排列矩阵元素 • 假设有四个城市(其神经元连接 方式,以右上角 神经元为例) 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 蔡佳佳 吴凡
TSP问题建模(状态函数) • 每个城市只能经过一次,因此不会有第i站等于第j站的情形 • 每个城市只能经过一次,因此第i站的城市不可能重复 • 每个城市都要到过一次 • 这实际上就是TSP问题用HOPFIELD网络建模的3个限制。即换位矩阵每行只有一个1,每列只有一个1,整个矩阵有N个1。 蔡佳佳 吴凡
TSP问题建模(状态函数) • 前面理论已经讲过了HOPFIELD模型要有一个能量函数,它和前馈的误差函数很接近。利用Liyapunov函数来构造这里的能量函数。 • 这里能量的一个重要部分是和路径有关的信息,那么可以设定一个式子 • 这个式子要达到一个极小值才可能满足要求。下标要对N取模运算。否则下标就出现无意义值。 蔡佳佳 吴凡
TSP问题建模(状态函数) • 还要考虑路径的合法性,这样就再加上3个约束条件: • 第一个是每行不多于一个1,第2个是每列不多于一个1,第3个是矩阵中1的个数是n个 蔡佳佳 吴凡
TSP问题建模(状态函数) • 采用Lagrange乘子法,将这个有约束优化问题转化为无约束的优化问题。A,B,C,D都是相应的加权系数。 蔡佳佳 吴凡
TSP问题建模(状态函数) • 其中前三项是所有TSP问题都必须有的约束,第四项因问题不同而不同。这里给出的第四项只能解决小规模的TSP问题。HOPFIELD给了一组10城市均匀分布的坐标并用这个公式实现。他声称20次模拟实验中有16次收敛到最优解或较优解。不过Wilson用同样的方法,并不能达到这个效果。总体结果很差。Aiyer通过分析网络特征值,从超空间角度解释了HOPFIELD网络求解TSP常陷入无效解的原因,并修改能量公式如后: 蔡佳佳 吴凡
TSP问题建模(状态函数) • 显然这个公式保证网络收敛到有效解是以复杂的能量函数为代价。现在的HOPFIELD网络改进关键都在这个含路径信息的计算块上面。 蔡佳佳 吴凡
TSP问题建模(状态函数) • 孙守宇,郑君里 ,HOPFIELD网络求解TSP的一种改进算法和理论证明, 电子学报,,1995 ,23 (1) :73~78 • 该论文提出一种改进的方案,首先,能量函数第3项只在网络输出全为0时才起作用,否则前两项已经保证了第3项成立,因此对前两项做修改: • 这样第3项完全可以省去。那么,TSP能量函数可以简化为下页所示: 蔡佳佳 吴凡
TSP问题建模(状态函数) 蔡佳佳 吴凡
TSP问题建模(状态函数) • 由于行列对称性,B=A。且第四项比Aiyer的简化了很多,式子仍然满足优化目标约束的要求。 • 这些参数的设置需要大量测试,前人的论文仅供参考。论文上设计的参数变化幅度很大,从不足1到数百甚至上千都有。具体情况需要自己测试来确定。 蔡佳佳 吴凡
TSP问题建模(网络架构) • 权值矩阵(对应11页的原始能量公式,那个公式隐含的定义了这个矩阵):当i=j时, 为1,否则为0。右边是外部激励电流 蔡佳佳 吴凡
TSP问题建模(网络架构) • 同样,改进的那篇论文中的连接权值矩阵也可以写出: 外部激励电流为 蔡佳佳 吴凡
TSP问题建模(网络架构) • 权值矩阵是个四维矩阵,不易明白,可以把它转化为一个二维矩阵。 w41 w42 w43 w44 w31 w32 w33 w34 w21 w22 w23 w24 w11 w12 w13 w14 蔡佳佳 吴凡
TSP问题建模(网络动态) • 设定初始状态数后,经由学习过程,进行状态值的改变,直到能量函數趋于最低时,此时状态值即为问题所求得的解答或近似解。 • 神经元的作用函数一般取双曲正切函数,这里取Sigmoid函数也可以。改变量与神经元输入对时间的偏导成正比。这和BP网络中权值的修改相似。BP网修改如下: 蔡佳佳 吴凡
TSP问题建模(网络动态) • HOPFIELD网络权值修改如下: • 有些源码上用h代替Δt。现在的问题就是式子最后这个偏导数怎么求。改进算法公式如下: 蔡佳佳 吴凡
HOPFIELD网络算法步骤: • 学习过程 • 设定网络参数 • 回想过程 • 设定网络参数 • 输入初始状态向量 • 计算新的状态向量 • 重复上一步直到满足要求 • 能量函数不再有明显变化 • 执行一定数目的学习次数 蔡佳佳 吴凡
HOPFIELD网络算法流程图 蔡佳佳 吴凡
HOPFIELD网络算法细节 • 一. 初始化输入向量 • 网络初始状态 可以采用两种方法: • 1 简单的随机数法,不过这个随机数有一定范围,太小太大都不合适,需要进行测试才能确定较优情况。 • 2 随机扰动方法设置初始值。开始先设置一个初始值 u00,然后对该值进行扰动,增加一个微小值δ,即 蔡佳佳 吴凡
HOPFIELD网络算法细节 • 采用随机扰动设置初值可以获得解,但随机扰动缺乏整体特性,往往不易得到较好解,且无法保证收敛性。一种改进的方法是给初始值增加一个偏置。该偏置由Wilson-Pawley公式给出: 蔡佳佳 吴凡
HOPFIELD网络算法细节 • 二 神经元值的计算和应用 由于每次神经元的值都在Sigmoid函数曲线上,并且每次都要进行转换,该函数包括两次指数运算,两次除法运算,三次加法运算,运算量很大,因此采用预先计算并保存,用时查找的方法。这方法可以大大提高速度,把运算减少到只有一次乘法和一次加法。 蔡佳佳 吴凡
HOPFIELD网络算法细节 • 三 判断路径的合法性 输出的数没有恰好的0和1,所以神经元的输出接近0和1就可以,比方说大于 0.99就看作1,小于0.01就看作0。 检查每行或每列1的个数时就把每行或每列的数相加求和后与1比较,在一个误差范围内就可以了,例如1±0.1。 蔡佳佳 吴凡
THE END 蔡佳佳 吴凡