基于遗传算法的多式联运组合优化精品毕业设计(完整版)

更新时间:2024-05-20 03:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四章 基于遗传算法的集装箱多式联运运输组合优化模型

的求解

4.1 遗传算法简介

4.1.1 遗传算法

遗传算法(Genetic Algorithm,GA)是在20世纪六七十年代由美国密歇根大学的Holland J.H.教授及其学生和同事在研究人工自适应系统中发展起来的一种随机搜索方法,通过进一步的研究逐渐形成了一个完整的理论和方法体系",取名为基本遗传算法(Simple Genetic Algorithm)。在接下来几年的研究过程中Holland在研究自然和人工系统的自适应行为的过程中采用了这个算法,并在他的著作《自然系统和人工系统的适配》中对基本遗传算法的理论和方法进行了系统的阐述与描写,同时提出了在遗传算法的理论研究和发展中具有极为重要的作用的模式理论,它的编码技术和遗传操作成为了遗传算法被广泛并成功的应用的基础,经过许多学者多年来的研究,遗传算法逐渐成熟起来,到现在已经成为了一个非常大的体系,广泛的应用于组合优化、系统优化、过程控制、经济预测、模式识别以及智能控制等多个领域。De Jong于1975年在他的博士论文中设计了一系列针对于各种函数优化问题的遗传算法的执行策略,详细分析了各项性能的评价指标。在此基础上,美国伊利诺大学的Goldberg于1989年系统全面的阐述了遗传算法理论,并通过例证对遗传算法的多领域应用进行了分析,为现代遗传算法的研究和发展奠定了基础。

遗传算法是一种模仿基于自然选择的生物进化过程的随机方法,它以类似于基因的编码作为种群的个体,首先,随机的产生初始种群的个体,从这个群体开始进行搜索,根据类似于生物适应能力的适应度函数值的大小,按照不同问题各自的特点,在当前的种群中运用适当的选择策略选择适应能力大的个体,其中所选择出来的个体经过遗传操作、交叉操作以及变异操作产生下一代种群个体。如此反复,像生物的进化过程一样逐代进化,直到满足期望的终止条件为止。

4.1.2遗传算法的基本结构

遗传算法是由种群、染色体、适应度函数三个基本要素所组成的,其中种群是由作为个体的染色体组合而成的,适应度函数是对解的优劣程度进行评价的一个函数。遗传算法不同于其他搜索算法之处在于,它的搜索过程中的每一步操作都是对整个种群进行的搜索,然后再按照每个染色体被选为优质个体的概率重新安排个体在种群中的顺序,最后根据优胜劣汰、适者生存的生物进化原理对种群进行演化操作,这时候,首先需要根据个体的适应度函数从当前的种群中挑选出相对优等的染色体,其中个体被选择的概率是根据适应度函数来确定的,对选择出来的优质个体,通过一定的交叉、变异操作产生新的个体,其中,交叉操作是对已选出的优等染色体编码进行位置的互换,变异操作是对某一染色体上某个编码位置进行随机的变化。经过选择、交叉、变异操作之后,新产生的一些染色体构成了新的种群。

遗传算法的实现过程主要包括编码、初始化种群、适应度计算、选择、交叉、变异等六个主要的遗传操作。利用遗传算法对问题进行求解的流程如图4.1所示,具体操作步骤如下所述:

开 始 个 体 编 码 产 生 种 群 计算个体的适应度函数值 是 结 束 满足终止条件 群 体 更 新 否 遗 传 操 作

图4.1遗传算法的过程

第一步,确定种群(population)的规模。首先根据特定问题的大小以及可行解的多少确定合适的种群规模,也就是在应用遗传算法求解问题时初始种群中个体的数量。

第二步,对个体进行编码,产生初始种群。编码是遗传算法进化过程的基础,影响着算法的搜索能力、种群的多样性等性能。在对个体编码的时候需要根据特定问题的具体特点确定适当的编码方法,如二进制编码、浮点数编码、字符编码等编码方法(如二进制编码、浮点数编码、字符编码等编码方法),随机地产生由可行解组成的初始种群,这是应用遗传算法进行优化求解的开始,然后,该算法会通过一些模拟生物进化过程中的优胜劣汰规律的操作,包括遗传操作、选择操作、交叉操作、变异操作(包括遗传操作、选择操作、交叉操作、变异操作),得出种群中的最优个体,即为问题的最优解。

第三步,设计适应度函数(fitness function)。适应度函数是用来计算群体中的个体对环境的适应程度的函数,适应度值在遗传算法中表示个体被遗传到下一代种群的概率大小,它是个体进化的主要依据。个体的适应度值是用来对种群中的每个染色体的优劣程度进行评价的唯一依据,对种群的操作包括选择、交叉、变异等操作都是根据个体的适应度值来进行的。一般来说,适应度值越大,遗传到下一代的可能性就会越大,在求得个体的适应度值之后,一般都会将个体按照适应度值进行排序,以便于下一步所进行的选择操作。

第四步,选择操作(selection)。在对种群进行个体的选择之前,首先确定在进行选择的时候所根据的规则和方法,选择操作一般以将个体的适应度值作为依据,按照所选定的选择方法从当前的种群中选出适应度高的优质个体,作为进行下一代遗传操作的种群中的父代进一步繁殖子孙。遗传算法中的选择操作在本质上就是一种优胜劣汰的操作,选择操作所依据的原则是适应性强,即为个体为下一代的贡献能力大。

第五步,交叉操作(crossover)。交叉操作是对两个父代染色体的部分结构进行替换重组生成新的个体的运算过程,是遗传算法中产生新的个体的重要方式。具体的操作过程是这样的,首先将已经选择出来的个体,按照一定的方法搭配成对,以一定的交叉概率对每一对染色体中的部分基因进行交换重组,产生可

以描述父辈个体特性的新个体。

第六步,变异(mutation)操作。变异操作本身是一种局部随机搜索方法,其目标是保持种群个体的多样性,保证遗传算法的有效性。具体操作过程是将从群体中随机选出来的某一个个体按照一定的变异率对其染色体结构中的某个或某几个串值进行随机的改变产生新的个体,保持个体的多样性。

第七步,判断终止的条件。如果个体达到了运算终止的条件,那么该搜索过程也就完成了,然后输出群体中具有最大适应度值的个体,这就是问题的最优解,到此整个遗传算法的搜索过程也就结束了,如果没有达到终止条件,则对第二步到第六步迭代执行。 4.1.3 遗传算法的优势

1975年Holland提出并研究遗传算法主要有两个目标:第一是用简单的位串编码的形式来实现对各种复杂的结构的表示;第二要通过简单的变换来改进这种复杂的结构。遗传算法是一种具有运算速度快、容错性强、有较强的鲁棒性的、简便的随机搜索算法,在求解并优化各类结构对象的过程中优势显著。相比传统的枚举法、启发式算法、搜索方法等主要的优化算法而言,遗传算法具有以下六大优势:(1)遗传算法具有自组织性、自适应和自学习性。在运用遗传算法对问题进行求解的时候,算法将利用已经确定的编码方案、适应度函数自己组织进化过程对问题的解进行搜索,在进化的过程中按照一定的概率进行基因重组和基因突变等遗传操作。遗传算法的这种特性使得该算法能够根据环境的变化自动的发现规律;(2)传算法是以决策变量的编码为其运算对象的。因此,算法才能够根据染色体和基因的原理通过模拟生物的遗传进化过程来完成问题的求解和优化过程;(3)并行性。遗传算法在本质上是并行性的。遗传算法是按照并行的方式对种群进行搜索,主要表现在两方面,一是内在并行性(inherent parallelism)遗传算法适合大规模的并行运算。可以先让多台计算机各自进行独立的种群进化计算,各自运算完成后相互之间才进行通信比较以选择最佳的个体,二是内含并行性(implicit parallelism)遗传算法的种群方式搜索,能够同时对解空间内的多个区域进行搜索,在搜索的过程中相互交流信息,这种并行方式极大的降低了遗传算法计算过程的时间复杂度;(4)算法简单。遗传算法无需进行求导、求微积分或者其他的辅助运算等数学方面的要求,而是直接以目标函数和所确定的适应度

函数为方向进行搜索,而且遗传算法可以直接应用于问题的求解过程;(5)遗传算法对问题的求解,产生的可以是一个最优解,也可以是多个潜在解,因此问题最终的解是可以由使用者根据具体的情况进行选择确定的。(6)遗传算法适用范围广泛,任何形式的目标函数,包括单目标和多目标函数,和约束条件都可以运用遗传算法来求解。 4.1.4 遗传算法的应用

由于遗传算法具有以上所述的种种优势,同时遗传算法作为一种全新的搜索与优化方法,广泛的应用于很多的学科领域,尤其是在对复杂系统的简单化及优化操作上。最近这几年里,由于遗传算法对问题的具体领域没有什么特别的要求,其在函数优化、组合优化、机器人智能控制、生产调度问题等不同的领域都得到了成功的应用。

(1)函数优化。

函数优化作为遗传算法的经典应用领域,是评价遗传算法性能的最常用的算例,如今各种复杂形式的函数被许多的学者构造出来作为测试函数用来对遗传算法性能进行评价。既有连续函数、凸函数、确定函数,也包括离散函数、凹函数、随机函数等。在运用遗传算法对非线性、多目标、多模型的函数优化问题进行求解会比其他优化算法更方便、简单并且能够得到更好的解。

(2)组合优化

组合优化问题是运筹学的一个经典分支,它是采用数学方法对一个离散问题进行求解寻找最优分组、筛选或次序等,这类问题的搜索空间会随着问题规模的变大而迅速的增大,因此用枚举法等传统的优化算法求解会比较困难,甚至可能得不到精确的最优解。而采用遗传算法可以得到令人们满意的解,求解起来也比较简单、方便。实践证明,在求解组合优化问题中的NP完全问题时是非常有效的,比如说在对旅行商问题、装箱问题、背包问题等问题进行求解中都已经取得了非常好的效果。

(3)机器人智能控制

遗传算法本身就是起源于对人工自适应系统的研究过程中,因而机器人智能控制也就理所当然地成为了遗传算法的一个重要应用领域。目前,遗传算法已经广泛应用在移动机器人的路径规划方面、关节的运动轨迹、细胞机器人的结构优

本文来源:https://www.bwwdw.com/article/cji7.html

Top