- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工神经网络实验二.doc
人工神经网络实验二
用CHNN算法求解TSP问题
李琳琳 自研42 2004211068
问题描述
利用连续型Hopfield反馈网络求解10城市的旅行商(TSP)问题。其中10个城市的坐标给定如下:
基本网络参数为:
算法实现
1.CHNN算法
应用CHNN网络解决优化问题一般需要以下步骤:
(1.)对于特定的问题,要选择一种合适的表示方法,使得神经网络的输出与问题的解相对应。
(2.)构造网络的能量函数,使其最小值对应于问题的最佳解。
(3.)将能量函数与CHNN算法标准形式相比较,推出神经网络权值与偏流表达式。
(4.)推出网络状态更新公式,并利用更新公式迭代求问题的最优解。
2.TSP问题
为使用CHNN网络进行TSP问题的求解,根据上述步骤,可将问题转化为:
(1.)对N个城市的TSP问题,用一个的换位阵描述旅行路线,换位阵中每行每列有且只有一个元素为1,其余全为0。为1的元素其横坐标x表示城市名,纵坐标i表示该城市在访问路线中的位置。
(2.)网络的能量函数由四部分组成,分别用来保证换位阵的合法性以及最终路线长度的最短。
(3.)将能量函数与标准形式相比较,得到网络权值与偏流表达式为:
(4.)从而,网络更新公式为:
3. 程序设计
根据上述推导在MATLAB中设计CHNN网络求解TSP问题的程序(程序代码见附页)。
程序说明
本程序中有以下两点需要说明。
迭代结束条件:理论上来说,当网络的能量函数不再减小时网络达到最优状态,但在实际中如果用能量函数的变化来判断程序的结束存在潜在的问题(如计算能量函数的复杂性以及误差导致判断不准确等),因此,本实验利用迭代次数控制程序结束,当迭代至1000次时,一次运行结束。
程序输出规则:由于不能保证每次迭代结束所到的解都是合法解,而当城市个数较多时人为检查合法性又非常的不方便,因此每次迭结束后在程序中检查该次解的合法性,若为合法解,则输出该解,程序结束;否则,再次求解。
参数调整:在实验中发现,当网络参数取为最初给定的值时,几乎得不到合法解,观察每次迭代结束后的解,发现大部分下只有8个每行每列有且只有一个1的情况,另外还有两列全部为0。这说明在能量函数中保证有N个1的合法性所占的比重相对较小,也就是参数C相对于A、B、D来说较小,因此,将基本参数C调整为1000,其余不变。
程序流程
初始化:城市个数、城市坐标、网络参数
用随机数初始化换位阵及状态阵
对状态阵及换位阵,进行1000步同步更新,得最终换位阵的解V
判断所得V的合法性,若为合法解,给出访问次序,旅行路线图及路线总长度,程序结束;否则,转到第ii步。
实验结果
1.基本结果
在城市个数取为10,网络的基本参数取为时运行程序并统计实验结果,得:
(图见下页)
运行次数 200 合法解次数 29 最优解次数 1 最优解(路线总长度) 2.6907 次优解次数 1 次优解(路线总长度) 2.7693 较优解(路线总长度) 2.7782 较优解(路线总长度) 2.8352 平均一次运行所需时间(s) 0.8813
图1 最优路线(2.6907) 图2 最优解换位阵
图3 次优路线(2.7693) 图4 次优换位阵
图5 较优路线(2.7782) 图6 较优换位阵
2.参数影响
(1.) 运行时间估计
在城市数目N及更新步长lamda固定的情况下,每求解一次V所用的时间是固定的,因此,比较每次出现合法解所用的时间可通过比较循环次数进行。在下面参数影响的讨论中,均通过循环次数比较相对时间长短。
(2.) 权系数A、B、C
权矩阵A、B、C、D的相对大小反映了对解的要求。其中A、B、C是为了保证合法解的项的权系数,A是保证每行最多一个1的权系数;B是保证每列最多一个1的权系数;C是保证共有N个1;D是保证路线总长度最短的项的权系数。
当C相对于A和B较小(A=B=500,C=200)时,实验很难出现合法解,多数解都有两列全为0,程序往往陷入死循环。这说明,解的合法性的第三项没有得到足够的重视。因此,逐渐加大C并观察实验结果,当C为500时,上述情况仍没有明显改善;当C取为1000时,合法解出现频率明显提高(200次实验中,平均每6.7次出现一次合法解),其中也出现了最优解(见1中的实验结果);当C取为2000是,平均每6次出现一次全法解,其中同样出现一次最优解。
总结,C较小不能保证解的合法性,C较大时出现
原创力文档


文档评论(0)