人工智能
(项目设计)
专 业: 计算机科学与技术
班 级:
学 号:
姓 名:
人工智能项目设计
目 录
1 项目设计要求 ............................................................................................................................................ 3
2 项目设计内容 ............................................................................................................................................ 3
2.1 基于神经网络的优化计算:求 TSP 连续 HOPFIELD 神经网络...........................................................3
2.1.1问题的基本描述和讨论........................................................................................................................3
2.1.1.1 模型映射................................................................................................................................................................. 3
2.1.1.2 构造网络能量函数的动态方程.......................................................................................................................4
2.1.1.3 初始化网络.............................................................................................................................................................4
2.1.1.4 优化计算................................................................................................................................................................. 4
2.1.2程序源代码...............................................................................................................................................5
2.1.2.1 Main 函数.................................................................................................................................................................5
2.1.2.2 diff_u 函数................................................................................................................................................................6
2.1.2.3 energy 函数.............................................................................................................................................................6
2.1.3程序运行结果及分析.............................................................................................................................7
2.1.3.1 运行结果................................................................................................................................................................. 7
2.1.3.2 结果分析................................................................................................................................................................. 7
2.2 遗传算法应用 I:求函数的最小值.............................................................................................................8
2.2.1问题的基本描述和讨论........................................................................................................................8
2.2.2程序源代码...............................................................................................................................................9
2.2.3程序运行结果及分析..........................................................................................................................10
3 学习体会 .................................................................................................................................................. 10
参 考 文 献................................................................................................................................................ 11
2
人工智能项目设计
1 项目设计要求
(1)掌握人工智能的基本原理、方法和技术,具备应用之解决问题的基本能
力;
(2)下面题目任选其二,不局限于这些题目,也可以自选;
(3)采用编程语言:C, VC++, Java, Prolog, Matlab 等任选;
(4)即使参考网上的程序,也要经过自己理解、消化、完善和掌握;
(5)程序尽量优化和通用,符合常规逻辑;
2 项目设计内容
2.1 基于神经网络的优化计算:求 TSP 连续 Hopfield 神经网络
2.1.1 问题的基本描述和讨论
项目 1 所选问题为序号 7 基于神经网络的优化计算:求解 TSP 问题的连续
Hopfield 神经网络。旅行商(TSP)问题的描述是:推销员在 N 个城市中各经历
一次后再返回出发点,使得所经过的路径最短。
由于连续性 Hopfield 神经网络具有优化计算的特性,因此将 TSP 问题的目
标函数(即最短路径)与网络的能量函数相对应,将经过的城市顺序与网络的神
经元状态相对应。这样,由连续 Hopfield 神经网络的稳定性理论可知,当网络的
能量函数趋于最小值时,网络的神经元状态也趋于平衡点,此时对应的城市顺序
即为待求的最佳路线。
现在对于一个城市数量为 10 的 TSP 问题,设计一个可以对其进行组合优化
的连续 Hopfield 神经网络模型,利用该模型可以快速找到最优(或近似最优)的
一条路线。问题初始给定的条件是 10 个城市的二维位置坐标。首先根据城市坐
标计算出各个城市彼此之间的距离;之后根据具体问题手动构造网络能量函数和
动态方程并初始化网络;之后进行优化计算,分析结果。
2.1.1.1 模型映射
为了将 TSP 问题映射为一个神经网络的动态过程,Hopfield 采取了换位矩阵
的表示方法,用 N×N 矩阵表示商人访问 N 个城市。对于 N 个城市的 TSP 问题,
需要用 N×N 个神经元来实现,而每行每列都只能有一个 1,其余为 0,矩阵中
1 的和为 N,该矩阵称为换位矩阵。
3
2.1.1.2 构造网络能量函数的动态方程
人工智能项目设计
如前所述,设计的 Hopfield 神经网络的能量函数是与目标函数(即最短路径)
相对应的。同时,应该考虑到有效解(路线)的实际意义,即换位矩阵的每行每
列都只能有一个 1. 因此,网络的能量函数包含目标项(目标函数)和约束项(换
位矩阵)两部分。这里,将网络的能量函数定义为:
2+2=1
2+2
E=2=1
−1
−1
,+1
=1
=1
=1
=1
=1
=−=− =1
−1
−1
,+1
−=1
− =1
式中,前两项为问题的约束项;第三项为待优化的项目。
根据连续 Hopfield 神经网络的理论,可以构造出网络的动态方程为:
2.1.1.3 初始化网络
Hopfield 神经网络迭代过程对网络的能量函数及动态方程系数十分敏感,在
总结前人经验及多次试验的基础上,网络输入初始化选取如下:
=0ln −1 +,(,=1,2,…,;=0)
式中,0=0.1;为城市个数 10;为(−1,+1)区间的随机值。
2.1.1.4 优化计算
当网络的结构及参数设计完成后,迭代优化计算的过程就变得非常简单,具
体步骤如下。
步骤 1:导入 N 个城市的位置坐标并计算城市之间的距离;
步骤 2:网络初始化;
步骤 3:利用前述推导计算 ,并利用一阶欧拉法计算+1 = +
∆;
步骤 4:根据 = =12[1+(()0 )]计算();
步骤 5:利用前述推导计算能量函数E;
步骤 6:判断迭代次数是否结束,若迭代次数k>10000,则终止;否则k=
k+1,返回步骤 3.
4
人工智能项目设计
2.1.2 程序源代码
2.1.2.1 Main 函数
5
2.1.2.2 diff_u 函数
人工智能项目设计
2.1.2.3 energy 函数
6
人工智能项目设计
2.1.3 程序运行结果及分析
2.1.3.1 运行结果
最终经过指定次数的迭代,输出换位矩阵如下图 1 所示,符合初始预期目标。
根据换位矩阵,可以得出其所对应的路线为:5→6→7→10→8→9→4→3→1→2.
图 1 输出换位矩阵
能量函数随迭代过程变化的曲线如图 2 所示,从图中可以看出,网络的能量
随着迭代过程不断减少。当网络的能量变化很小时,网络的神经元也趋于平衡点,
此时对应的城市顺序即为待求的优化路径。
图 2 能量函数随迭代次数变化曲线
2.1.3.2 结果分析
结果表明,利用连续型 Hopfield 神经网络,可以快速准确地解决 TSP 问题。
同理,对于其他利用枚举法会产生“组合爆炸”的组合优化问题,利用连续型
Hopfield 神经网络也可以进行优化计算。
7
人工智能项目设计
2.2 遗传算法应用 I:求函数的最小值
2.2.1 问题的基本描述和讨论
对于未知的非线性函数,仅通过函数的输入输出数据难以准确寻找函数极值。
这类问题可以通过神经网络结合遗传算法或粒子群算法求解,利用神经网络的非
线性拟合能力和遗传算法、粒子群算法的非线性寻优能力寻找函数极值。
本次利用遗传算法寻优的非线性函数的表达式为
函数图形如图 3 所示。
z=(−301)2+(−301)2
图 3 非线性函数图形
从函数方程和图形可以看出,该函数的全局最小值为 0,对应的坐标为
301,301 . 虽然从函数方程和图形中很容易找出函数极值及极值对应坐标,但是
在函数方程未知的情况下函数极值及极值对应坐标就很难找到。
本次项目设计,通过对遗传算法的遗传操作改为学习粒子群算法的行为模式,
对于每一个个体,选择使其染色体向最优个体靠拢。经过试验,这种方法可以快
速得到最优解,大大提高了遗传算法收敛速度。具体步骤如下:
步骤 1:获取被寻优的非线性函数 y,并令适应度函数 f=1/y;
步骤 2:随机得到一定数量的种群;
步骤 3:计算每个个体的适应度,如果满足条件,转步骤 5,否则转步骤 4;
步骤 4:进行遗传操作;
步骤 5:输出最优个体并用三维图形表示;
8