毕业设计开题报告
计算机科学与技术
旅游线路优化设计
一、选题的背景、意义
随着科技的不断发展和进步,现在的计算机越来越趋向于智能化发展,未来将会出现许多智能的计算机,这些智能机器功能各异,能够满足人们对生活和应用的需求,一些现实问题可以在电脑上解决。
旅游线路优化也叫巡回旅行商问题(Traveling Salesman Proble- m,TSP),也称为货郎担问题[1-3]。
它是一个较古老的问题,最早可以追溯到1759年Euler 提出的骑士旅行问题。
货郎担问题可以解释为,一位推销员从自己所在城市出发,必须遍访所有城市且每个城市只能访问一次之后又返回到原来的城市,求使其旅行费用最小(或旅行距离最短)的路径。
1948年,由美国兰德公司推动,TSP成为近代组合优化领域的一个典型难题。
它是一个具有广泛应用背景和重要理论价值的组合优化问题。
TSP的搜索空间随着城市规模数n的增加而增大,这类组合优化问题称之为NP完全问题。
在如此庞大的搜索空间中寻求近似最优解,对于常规方法和现有的计算工具而言,存在着诸多的计算困难。
因此,借助遗传演化算法,模仿大自然界生物的繁殖、杂交及其变异的演化过程来解决TSP问题,显得非常必要。
基于以上原因,本人采用经典遗传算法理论及个体实数编码方法设计了此算法,试图进一步探索TSP组合优化问题的有效解决方案。
与其他的算法相比,遗传算法与之在本质上有着不同之处:遗传算是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
旅游线路优化设计,能让旅客在遍历所有景点的情况下,让旅行的开销实现最小化。
二、研究的基本内容与拟解决的主要问题
本课题是设计现实旅游线路优化。
根据一个区域内全部景点的地理分布,以及各个景点之间的旅行开销,在实现所有景点遍历的前提下,达到旅行开销最小化。
鉴于传统搜索方法难以解决复杂和非线性问题的原因,要求在设计中运用遗传算法(GA)这一借鉴生物界自然选择和自然遗传机制的随机化搜索算法。
具体来说,本课题要研究的是如何运用遗传算法的相关知识来对一个区域的所有景点
进行排序,使得线路最短。
本系统要解决的主要问题:[4,5]
(1)初始化种群。
(2)选择。
(3)交叉。
(4)变异。
(5)终止。
三、研究的方法与技术路线、研究难点,预期达到的目标
1. 研究方法
主要指收集、鉴别、整理文献,并通过对文献的研究,形成对事实科学认识的方法。
该方法主要用于系统开发的前期。
首先,通过阅读大量遗传算法的文献和关于本实验的一些资料,结合现实进行对比看哪个比较简单,总结个步骤的基本功能及不足。
以此确定毕业设计的基本方法。
然后,根据相关文献,对程序进行需求分析和可行性分析,从而确定自己的研究方向和实现方法。
运用Java的面向对象思想将系统实现。
面向对象程序设计(OOP)就是使用对象进行程序设计,对象代表现实世界中可以明确标识的一个实体。
在windows操作系统平台下,运用Java的相关开发平台,把系统的功能设计出来,然后用Java的相关技术来实现。
2. 技术路线
技术路线图如下图所示。
遗传算法是通过借鉴生物界自然选择和自然遗传机制而产生的一种计算方法I与其他的优化算法一样,遗传算法也是一种迭代算法,从选定的初始解出发,通过不断地迭代,逐步改进当前解,直到最后搜索到最优解或满意解。
其迭代过程是从一组初始解(群体)出发,采用类似于自然选择和有性繁殖的方法,在继承原有优良基因的基础上生成具有更好性能的下一代解的群体,遗传算法的运算过程为:对给定问题,给出变量的编码方法,定义适应度函数。
①初始化。
令:t=0,给出交叉概率Pc,及变异概率Pm,随机生成M个个体作为初始群体P(0);②个体评价。
计算P(t)中各个体的适应度;③选择。
对群体P(t)进行选择操作,得到中间群体;④交叉。
把交叉操作作用于中间群体。
⑤变异。
把变异操作作用于交叉之后所得到的群体,则得到第(t+1)代群体P(t+1);⑥若没有到达终止条件是,则令
t=t+1,否则以进化过程中所得到的具有最大适应度的个体作为最优解,运算停止[6-8]。
1)初始化群体。
在初始化群体之前,需要确定变量的编码方法及适应度函数。
在遗传算法界有一个共识:旅行的二进制表达对TSP不是最适合的,这里以城市的遍历次序作为算法编码,即(i1,i1,i3…in)是{1,2,…n}的全排列。
2)个体适应度计算,计算个体的适应度,即与种群中某一个个体r相对应的哈密顿圈长的倒数。
3)比例选择操作。
具体执行过程为:①计算种群中所有个体的适应度总和;②计算每个个体的相对适应度大小,即各个个体咋选择中的概率;③使用模拟轮盘赌操作,来确定各个个体被选中的次数,得到中间群体。
4)交叉操作。
对选择操作得到的中间群体进行以下操作:①随机选择两个交叉点;②子代保持两交叉点之间的基因不变;③循环移动表中元素;④从表中除去父代已有的元素;⑤把表中元素复制到子代中。
5)变异操作。
在基因中随机的选取N个单位进行变异;再从基因中找出重叠的基因进行修改。
6)终止控制。
当基因适应度曲线达到平缓时终止。
技术路线图
3. 研究难点
遗传算法中运用到的主要的操作有三个:选择、交叉和变异[9,10]。
在选择的时候,要用到适应度函数,这个关系到染色体的优胜劣汰的选择,对种群进化有着很大的影响,而这函数确定是一个比较难的难点。
在交叉的时候,首先,如果它的区间适应度的中点与优良个体的很接近,那么这个个体的交叉概率是很大的。
其次,一个个体的交叉概率会很小如果评估优良个体的区别和评估一个种群的差别很大,这意味着在这些个体中有很大的离散度。
最后,随着种群的演化个体的交叉概率会很小。
种群演化的目的是确保在后面的演化阶段中算法的收敛。
由于种群的基因是按城市编号来编码的,所以在交叉的时候,编号会产生重复。
例如:
F0 1 2∣ 3 4 5 6∣7 8 F1 4 3∣ 2 1 5 6∣8 7
其子代会变成O0 1 2 2 1 5 6 7 8 O1 4 3 3 4 5 6 8 7
这部符合我们的城市遍历问题,所以要插入一段代码使得各基因不会重复。
在变异时,为了使基因不会产生重复,我们不能单个基因进行变异,起码要两个基因进行交叉变异。
在终止控制方面也是一个较难的问题,以代数来控制迭代次数比较武断,不能准确的控制,有可能还没有产生近视解就已经结束了。
所以我准备用适应度函数曲线来控制结束。
4. 预期目标
本系统要求实现旅游线路优化,使线路的总长度能得到最小。
四、论文详细工作进度和安排
第七学期第10周至第18周(2011年01月06日前):文献检索和资料收集,完成毕业论文(设计)文献综述、开题报告和外文翻译;
第八学期第1周至第3周(2011年03月11日前):撰写论文提纲,完成毕业论文(设计)初稿、需求分析和概要设计;
第八学期第4周至第12周(2011年05月13日前):详细设计、系统调试、和毕业论文(设计)完成定稿;
第八学期第13周(2011年05月20日前):完成应用软件系统的设计和毕业论文(设计)送指导老师和评阅老师评阅,准备答辩;
第八学期第14周:参加毕业论文(设计)答辩
五、主要参考文献
[1]周辉仁唐万生魏颖辉,基于GA的最小旅行时间的多旅行商问题研究,计算机应用研究,2009年第7期.
[2]陈国良,王煦法,庄镇泉:遗传算法及其应用,国防出版社,2001,2.
[3]周明,孙树栋:遗传算法原理及应用,国防科技出版社,1999,6.
[4]潘正君等:演化计算,清华大学出版社,广西科学技术出版社,1998.
[5]王正志,薄涛:进化计算,国防科技大学出版社,2000,11.
[6]米凯利维茨 ,译者周家驹: 演化程序――遗传算法和数据编码的结合,科学出版社,2001,1.
[7]玄光男程润伟于歆杰周根贵:遗传算法与工程优化,清华大学出版社,2004,1.
[8]De Jong K A.An Analyais of the Behavior of a Class of genetic Adaptive Systems:[Ph.D Dissertation]. Michigan:University of Michigan,1975.
[9]刘飞,遗传算法实现过程详解,《福建电脑》,2010年01期.
[10]RudolphC. Conergence properties of Canonical Genetic Algorithms[J].IEEET rans.Neural Networks,1994(1).。