遗传算法与组合优化

合集下载

组合优化算法及其在生产排程中的应用

组合优化算法及其在生产排程中的应用

组合优化算法及其在生产排程中的应用一、介绍在现代工业的生产中,生产排程是非常重要的一个环节。

它可以通过合理的安排,提高设备的运转效率和生产的产量,从而最大限度地利用有限资源。

为了优化生产排程,现代工业普遍采用了优化算法,其中组合优化算法是其中一种有效的算法。

本文将探讨组合优化算法及其在生产排程中的应用。

二、组合优化算法概述组合优化算法是一类优化算法,它的目标是在所有可能的解中寻找全局最优解。

组合优化算法应用于离散问题中,如在生产排程中,需要考虑的是设备的状态、工序的先后顺序和成品的交付时间等离散的因素。

在生产排程中,组合优化算法可以通过从所有可能的生产排程中找到最优的一个来保证产品的质量和效率。

三、组合优化算法的应用在生产排程中,组合优化算法的应用非常广泛。

以下是几个例子。

1. 遗传算法遗传算法使用生物的进化原理来寻找最优解。

在生产排程中,遗传算法会尝试通过交叉和突变等操作来改进当前的排程。

通过反复地遗传和进化,遗传算法会逐步收敛到最优解上。

2. 蚁群算法蚁群算法是另一种常用的组合优化算法,在寻找最优解时使用一种类似于蚂蚁寻找食物的机制。

在生产排程中,蚁群算法可以通过模拟多个蚂蚁在不同方向上移动来找到最佳解决方案。

通过不断地扩展蚂蚁感知的区域,蚁群算法可以逐步找到最优解。

3. 模拟退火算法模拟退火算法是一种随机搜索算法,在生产排程中可以通过不断地随机移动工序的顺序来找到全局最优解。

在模拟退火算法中,算法会尝试跳出局部最优解,以求找到更好的全局最优解。

四、实例分析:生产排程中的组合优化算法应用假设在一个工厂中,有三个设备和三个生产线,每个生产线有不同数量的工序需要完成。

在这种情况下,如何安排生产线的生产任务是一个十分复杂的问题。

为了解决这个问题,我们可以使用组合优化算法,其中遗传算法是一种常见的选择。

在使用遗传算法进行排程时,我们需要将排程表示成一个染色体。

在本例中,染色体可以看作是生产线完成工序的顺序。

遗传算法在金融投资组合优化中的应用

遗传算法在金融投资组合优化中的应用

遗传算法在金融投资组合优化中的应用随着金融市场的发展和投资者对风险管理的需求不断增加,金融投资组合优化成为了一个备受关注的问题。

在众多的优化方法中,遗传算法因其强大的优化能力和灵活性而备受瞩目。

本文将探讨遗传算法在金融投资组合优化中的应用,并介绍其原理和实际案例。

一、遗传算法的原理遗传算法是一种模拟自然进化过程的优化算法。

它通过模拟遗传、突变和选择等过程,逐步优化问题的解。

遗传算法的基本流程包括初始化种群、选择、交叉、变异和适应度评估等步骤。

通过不断迭代,遗传算法能够找到问题的最优解或近似最优解。

二、金融投资组合优化问题金融投资组合优化问题是指在给定的一组可选资产中,如何分配资金以最大化投资组合的收益或最小化投资组合的风险。

这是一个复杂的组合优化问题,需要考虑多个因素,如资产收益率、风险、相关性等。

三、遗传算法在金融投资组合优化中的应用1. 初始化种群在应用遗传算法解决金融投资组合优化问题时,首先需要初始化一个种群。

每个个体表示一个可能的投资组合,包括资产的权重分配。

2. 适应度评估接下来,需要对每个个体进行适应度评估。

适应度函数通常由投资者根据自身的投资目标和风险偏好来定义。

常见的适应度函数包括收益率、风险、夏普比率等。

3. 选择选择操作是根据适应度函数的值选择优秀的个体。

常见的选择方法包括轮盘赌选择、锦标赛选择等。

选择操作可以保留优秀的个体,同时也给予较差的个体一定的机会。

4. 交叉交叉操作模拟基因的交换,通过交换个体的染色体片段来产生新的个体。

交叉操作可以增加种群的多样性,有助于避免陷入局部最优解。

5. 变异变异操作模拟基因的突变,通过改变个体的染色体中的一部分基因来产生新的个体。

变异操作可以引入新的解,有助于搜索更广的解空间。

6. 迭代优化通过不断地进行选择、交叉和变异操作,遗传算法能够逐步优化投资组合。

迭代次数越多,算法越有可能找到更优的解。

四、实际案例遗传算法在金融投资组合优化中已经得到了广泛的应用。

第七章遗传算法应用举例

第七章遗传算法应用举例

第七章遗传算法应用举例遗传算法是一种模拟自然选择和遗传机制的计算方法,它可以用来解决很多实际问题。

以下是几个遗传算法应用的实例。

1.旅行商问题(TSP):旅行商问题是一个经典的组合优化问题,目标是找到最短路径来访问一系列城市并返回原始城市。

遗传算法可以通过编码城市序列,并使用交叉、变异和选择操作进行优化。

通过进行迭代,遗传算法可以更优的路径,并得到近似最优的解。

2.机器学习特征选择:在机器学习中,特征选择是一种减少特征集合维度的方法,以提高模型的性能和泛化能力。

遗传算法可以用来选择最佳的特征子集,通过优化目标函数(例如分类准确率或回归误差)来评估子集的优劣,并通过交叉和变异操作不断改进。

3.组合优化问题:遗传算法也广泛应用于组合优化问题,如背包问题、任务调度、物流路径规划等。

通过定义适应度函数和优化目标,遗传算法可以最优的组合并提供近似解。

4.神经网络训练:神经网络是一种模拟人脑神经元相互连接和传递信息的计算模型。

训练神经网络需要调整网络权重和参数,以最小化损失函数。

遗传算法可以用作优化算法,通过定义染色体编码网络参数,并通过交叉和变异操作对网络进行进化,以找到更好的网络结构和参数。

5.机器调参:机器学习算法通常包含许多超参数需要调优,例如决策树的深度、神经网络的学习率等。

遗传算法可以用来超参数的最佳组合,并通过交叉和变异操作对超参数进行优化。

6.图像处理:遗传算法被广泛应用于图像处理领域,如图像增强、目标检测、图像分割等。

通过定义适应度函数和优化目标,遗传算法可以优化图像处理算法的参数和参数组合,以提高图像质量和算法效果。

7.电力系统优化:电力系统优化包括电力负荷优化、电力设备配置优化、电力网路规划等。

遗传算法可以用来优化电力系统的各种参数和变量,以提高电力系统的效率和可靠性。

总之,遗传算法是一种强大而灵活的优化算法,在许多领域都可以应用。

它通过模拟生物进化过程,通过选择、交叉和变异操作,问题的解空间,并找到最优或近似最优的解。

遗传算法如何解决组合优化问题

遗传算法如何解决组合优化问题

遗传算法如何解决组合优化问题遗传算法是一种模拟生物进化过程的优化算法,通过模拟自然选择、交叉和变异等机制,能够高效地解决组合优化问题。

本文将介绍遗传算法的基本原理、应用领域以及解决组合优化问题的具体方法。

一、遗传算法的基本原理遗传算法的基本原理是模拟生物进化过程中的自然选择、交叉和变异等机制。

首先,通过随机生成一组初始解,即种群,每个解都是问题的一个可能解。

然后,根据问题的评价函数,对种群中的每个个体进行评估,得到适应度值。

适应度值越高,说明个体对问题的解决越好。

接下来,根据适应度值对个体进行选择,选择优秀的个体作为父代,用于产生下一代。

选择的方式可以是轮盘赌选择、锦标赛选择等。

然后,通过交叉操作,将父代个体的基因片段进行交换,产生新的个体。

最后,对新个体进行变异操作,引入随机因素,增加种群的多样性。

重复进行选择、交叉和变异操作,直到满足终止条件,得到问题的最优解。

二、遗传算法的应用领域遗传算法广泛应用于组合优化问题的求解。

组合优化问题是在给定的约束条件下,寻找最优的组合方案。

例如,旅行商问题、背包问题、车辆路径问题等都是典型的组合优化问题。

遗传算法通过搜索解空间中的候选解,能够有效地找到问题的最优解。

三、遗传算法解决组合优化问题的具体方法1. 表示问题的解空间在遗传算法中,需要将问题的解表示为染色体,染色体由基因组成。

基因是问题的一个组成部分,可以是一个数值、一个字符或一个符号。

染色体的长度与问题的规模相关,每个基因的取值范围由问题的约束条件确定。

2. 评价函数的设计评价函数是遗传算法中的关键部分,用于评估每个个体的适应度。

评价函数的设计需要考虑问题的特点,将问题的目标转化为适应度值。

适应度值可以是问题的目标函数值,也可以是问题的约束函数值。

适应度值越高,个体的生存概率越大。

3. 选择操作选择操作是根据个体的适应度值,选择优秀的个体作为父代。

常用的选择方式有轮盘赌选择、锦标赛选择等。

轮盘赌选择根据个体的适应度值,按比例选择个体。

遗传算法应用

遗传算法应用

遗传算法应用遗传算法是一种模拟自然进化过程的优化算法,通过模拟基因的遗传、交叉和变异等操作来搜索最优解,在各个领域都有广泛的应用。

本文将探讨遗传算法在以下三个领域的具体应用:优化问题、机器学习和组合优化。

一、优化问题遗传算法在解决各种优化问题中发挥了重要作用。

例如,在工程设计中,我们经常需要确定最优的参数配置以满足一定的约束条件。

通过将参数编码成染色体,并利用交叉和变异等操作,遗传算法可以搜索到最优的参数组合,从而达到最优化的目标。

此外,遗传算法还可以用于解决旅行商问题、背包问题等经典的组合优化问题。

通过将问题抽象成染色体和适应度函数,遗传算法可以在搜索空间中快速找到最优解,显著提高问题求解的效率和准确性。

二、机器学习遗传算法在机器学习领域也得到了广泛应用。

机器学习算法的目标通常是通过学习样本数据来构建模型,并用于预测和分类等任务。

在传统的机器学习方法中,参数的选择通常是由人工经验或者网格搜索等方式确定的。

而遗传算法可以通过自动优化参数配置,减少人工干预的程度。

例如,在神经网络的训练中,遗传算法可以用于确定网络的结构、激活函数的选择以及超参数的设置等。

通过遗传算法优化神经网络的参数,可以提高网络的性能和泛化能力。

三、组合优化组合优化问题是指在给定一组元素或者对象的情况下,找到最佳的组合方式以使得某个目标函数达到最优。

在实际应用中,组合优化问题广泛存在于物流调度、电力系统优化等领域。

遗传算法在组合优化问题中具有独特的优势。

通过将优化问题抽象成染色体编码和适应度函数,遗传算法可以在大规模的搜索空间中搜索到全局最优解。

同时,遗传算法还可以通过群体的进化来提高搜索的效率,并避免陷入局部最优解的问题。

总结:遗传算法作为一种优化算法,在不同领域均有着广泛的应用。

通过模拟基因的遗传操作,遗传算法可以在优化问题、机器学习和组合优化等领域中找到最优解。

其优势在于可以处理大规模的搜索空间,并且不容易陷入局部最优解。

遗传算法与优化计算

遗传算法与优化计算

遗传算法与优化计算随着计算机技术和科学的发展,优化计算成为了各个学科领域中必不可少的一部分。

它能够帮助我们更快、更精确的寻找最优解,解决各种问题。

而遗传算法作为一种常见的优化计算算法,近年来引起了广泛的关注。

一、遗传算法的基本原理遗传算法的基本原理源于达尔文的“适者生存”理论。

它将基因的选择和进化的过程抽象出来,转化成计算机算法。

遗传算法通过对问题的可行解的染色体编码、随机选择、遗传变异、遗传交叉等操作进行模拟,从而达到寻找最优解的效果。

在遗传算法中,第一步是将问题的可行解表示成染色体,可以是二进制、十进制或其他编码。

第二步是通过选择操作,选择优良的个体进行生存,有些个体可能因为落后而被淘汰。

第三步是对优良的个体进行变异和交叉操作,从而产生新的后代。

这种基于群体自适应的方法可以最终得到一个全局最优解或局部最优解。

二、遗传算法的应用遗传算法在各种领域都有着广泛的应用,比如优化控制和组合优化等。

以下是几个应用遗传算法的例子:1.车辆路径优化问题在市中心,旅游车辆需要遵守一定的规则,不能随意进入某些区域。

车辆路径优化问题就是需要找到一种最短路径,使得车辆在规定的规则下从起点到终点。

2.人工神经网络遗传算法被用于神经网络空间的搜索,借鉴了人类的自然进化历程。

这种想法是根据遗传算法的进化过程,通过评价神经网络的误差性能,集成遗传算法搜索和人工神经网络模型的参数学习过程。

3.参数优化在科学实验和仿真中,经常需要优化参数以达到最优性能。

遗传算法可以被应用于这一问题,通过最优化参数以优化计算的结果。

三、遗传算法与其他算法的比较与其他优化计算算法相比,遗传算法具有以下优点:1.不容易跳出局部最优解由于遗传算法采用了类似于随机搜索的方式,可以避免局部最优解的陷阱。

2.计算量较小遗传算法的计算量相对较小,不需要对大量的解进行评估。

因此,对于大规模的问题,遗传算法有着显著的优势。

3.并行化遗传算法可以实现并行化,使用多个进程或多个线程同时进行跑遗传算法,效率更高。

(完整word版)遗传算法及在物流配送路径优化中的应用

(完整word版)遗传算法及在物流配送路径优化中的应用

遗传算法及在物流配送路径优化中的应用一、遗传算法1.1遗传算法定义遗传算法(Genetic Algorithm)是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型, 是一种通过模拟自然进化过程搜索最优解的方法, 它是有美国Michigan大学J.Holland教授于1975年首先提出来的, 并出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》, GA这个名称才逐渐为人所知, J.Holland教授所提出的GA通常为简单遗传算法(SGA)。

遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的, 而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。

每个个体实际上是染色体(chromosome)带有特征的实体。

染色体作为遗传物质的主要载体, 即多个基因的集合, 其内部表现(即基因型)是某种基因组合, 它决定了个体的形状的外部表现, 如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。

因此, 在一开始需要实现从表现型到基因型的映射即编码工作。

由于仿照基因编码的工作很复杂, 我们往往进行简化, 如二进制编码, 初代种群产生之后, 按照适者生存和优胜劣汰的原理, 逐代(generation)演化产生出越来越好的近似解, 在每一代, 根据问题域中个体的适应度(fitness)大小选择(selection)个体, 并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation), 产生出代表新的解集的种群。

这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境, 末代种群中的最优个体经过解码(decoding), 可以作为问题近似最优解。

1.2遗传算法特点遗传算法是一类可用于复杂系统优化的具有鲁棒性的搜索算法, 与传统的优化算法相比, 主要有以下特点:1. 遗传算法以决策变量的编码作为运算对象。

遗传算法与混合整数规划的结合在供应链优化中的应用

遗传算法与混合整数规划的结合在供应链优化中的应用

遗传算法与混合整数规划的结合在供应链优化中的应用随着全球化的发展,供应链管理变得越来越重要。

供应链优化旨在通过合理的资源配置和流程设计,提高供应链的效率和降低成本。

在供应链优化中,遗传算法和混合整数规划是两种常用的优化方法。

本文将探讨这两种方法的结合在供应链优化中的应用。

一、遗传算法在供应链优化中的应用遗传算法是一种模拟自然界进化过程的优化算法,通过模拟遗传、变异和选择等基本生物学原理,寻找问题的最优解。

在供应链优化中,遗传算法可以用于解决以下问题:1. 供应链网络设计:通过遗传算法,可以确定供应链中的节点和路径,以最小化总体成本或最大化总体利润。

遗传算法可以考虑多个因素,如运输成本、库存成本和服务水平等,从而找到最佳的供应链网络设计方案。

2. 供应链路径选择:在供应链中,存在多条路径可以选择,遗传算法可以帮助确定最佳路径,以最小化运输成本和时间。

通过模拟进化过程,遗传算法可以找到最佳路径组合,从而提高供应链的效率。

3. 供应链库存管理:库存管理是供应链优化中的一个重要问题。

通过遗传算法,可以确定最佳的库存策略,以最小化库存成本和缺货风险。

遗传算法可以考虑供应链中的各种因素,如需求波动、供应不确定性和服务水平要求等,从而找到最佳的库存管理方案。

二、混合整数规划在供应链优化中的应用混合整数规划是一种数学优化方法,用于解决同时包含连续变量和整数变量的优化问题。

在供应链优化中,混合整数规划可以用于解决以下问题:1. 生产计划调度:在供应链中,生产计划调度是一个关键问题。

通过混合整数规划,可以确定最佳的生产计划,以最大化产能利用率和最小化生产成本。

混合整数规划可以考虑多个因素,如生产能力、订单需求和生产时间等,从而找到最佳的生产计划调度方案。

2. 供应链配送优化:在供应链中,配送优化是一个重要问题。

通过混合整数规划,可以确定最佳的配送方案,以最小化配送成本和配送时间。

混合整数规划可以考虑多个因素,如运输距离、货物容量和配送时间窗口等,从而找到最佳的供应链配送方案。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章 遗传算法与组合优化4.1 背包问题(knapsack problem )4.1.1 问题描述0/1背包问题:给出几个尺寸为S 1,S 2,…,S n 的物体和容量为C 的背包,此处S 1,S 2,…,S n 和C 都是正整数;要求找出n 个物件的一个子集使其尽可能多地填满容量为C 的背包。

数学形式:最大化 ∑=n i i iX S 1满足,1C X S n i i i ≤∑= n i X i ≤≤∈1},1,0{广义背包问题:输入由C 和两个向量C =(S 1,S 2,…,S n )和P =(P 1,P 2,…,P n )组成。

设X 为一整数集合,即X =1,2,3,…,n ,T 为X 的子集,则问题就是找出满足约束条件∑∈≤T i i C X,而使∑∈Ti i P 获得最大的子集T ,即求S i 和P i 的下标子集。

在应用问题中,设S 的元素是n 项经营活动各自所需的资源消耗,C 是所能提供的资源总量,P 的元素是人们从每项经营活动中得到的利润或收益,则背包问题就是在资源有限的条件下,追求总的最大收益的资源有效分配问题。

广义背包问题可以数学形式更精确地描述如下:最大化 ∑=n i i iX P 1满足,1C X S n i i i ≤∑= n i X i ≤≤∈1},1,0{背包问题在计算理论中属于NP —完全问题,其计算复杂度为O (2n ),若允许物件可以部分地装入背包,即允许X ,可取从0.00到1.00闭区间上的实数,则背包问题就简化为极简单的P 类问题,此时计算复杂度为O (n )。

4.1.2 遗传编码采用下标子集T 的二进制编码方案是常用的遗传编码方法。

串T 的长度等于n(问题规模),T i (1≤i ≤n )=1表示该物件装入背包,T i =0表示不装入背包。

基于背包问题有近似求解知识,以及考虑到遗传算法的特点(适合短定义距的、低阶的、高适应度的模式构成的积木块结构类问题),通常将P i ,S i 按P i /S i 值的大小依次排列,即P 1/S 1≥P 2/S 2≥…≥P n /S n 。

4.1.3 适应度函数在上述编码情况下,背包问题的目标函数和约束条件可表示如下。

目标函数:∑==ni i i P T T J 1)(约束条件:C S T n i i i ≤∑=1按照利用惩罚函数处理约束条件的方法,我们可构造背包问题的适应度函数f (T )如下式: f (T ) = J (T ) + g (T )式中g (T )为对T 超越约束条件的惩罚函数,惩罚函数可构造如下:式中E m 为P i /S (1≤i ≤n )i 的最大值,β为合适的惩罚系数。

4.2 货郎担问题(Traveling Salesman Problem ——TSP )在遗传其法研究中,TSP 问题已被广泛地用于评价不同的遗传操作及选择机制的性能。

之所以如此,主要有以下几个方面的原因:(1) TSP 问题是一个典型的、易于描述却难以处理的NP 完全(NP-complete )问题。

有效地解决TSP 问题在可计算理论上有着重要的理论价值。

(2) TSP 问题是诸多领域内出现的多种复杂问题的集中概括和简化形式。

因此,快速、有效地解决TSP 问题有着极高的实际应用价值。

(3) TSP 问题因其典型性已成为各种启发式的搜索、优化算法的间接比较标准,而遗传算法就其本质来说,主要是处理复杂问题的一种鲁棒性强的启发式随机搜索算法。

因此遗传算法在TSP 问题求解方面的应用研究,对于构造合适的遗传算法框架、建立有效的遗传操作以及有效地解决TSP 问题等有着多方面的重要意义。

问题描述:寻找一条最短的遍历n个城市的路径,或者说搜索整数子集X={1,2,…,n}(X的元素表示对n个城市的编号)的一个排列π(X) = {v1,v2,…,v n},使取最小值。

式中的d(v i, v i+1)表示城市v i到城市v i+1的距离。

4.2.1 编码与适应度函数编码1.以遍历城市的次序排列进行编码。

如码串1 2 3 4 5 6 7 8表示自城市l开始,依次经城市2,3,4,5,6,7,8,最后返回城市1的遍历路径。

显然,这是一种针对TSP问题的最自然的编码方式。

这一编码方案的主要缺陷在于引起了交叉操作的困难。

2.采用“边”的组合方式进行编码。

例如码串2 4 5 3 6 8 7 1的第1个码2表示城市1到城市2的路径在TSP圈中,第2个码4表示城市2到城市4的路径在TSP圈中,以此类推,第8个码1表示城市8到城市1的路径在TSP圈中。

这一编码方式有着与前面的“节点”遍历次序编码方式相类似的缺陷。

3.间接“节点”编码方式。

以消除“一点交叉”策略(或多点交叉策略)引起的非法路径问题。

码串长度仍为n,定义各等位基因的取值范围为(n –i + 1),i为基因序号,解码时,根据相应基因位的取值,从城市号集合中不回放地取一个城市号,直至所有城市号被取完。

由于这种编码方式特征遗传性较差,因此现行的研究中很少采用。

适应度函数适应度函数常取路径长度T d的倒数,即f=1/T d若结合TSP的约束条件(每个城市经过且只经过一次),则适应度函数可表示为:f=1/(T d+α*N t),其中N t是对TSP路径不合法的度量(如取付N t为未遍历的城市的个数),α为惩罚系数,常取城市间最长距离的两倍多一点(如2.05*d max)。

4.2.2 交叉策略问题:基于TSP问题的顺序编码(其它编码如以边的组合状态进行编码也呈现相似特性),若采取简单的一点交叉或多点交叉策略,必然以极大的概率导致未能完全遍历所有城市的非法路径。

如8城市的TSP问题的两个父路径为1 2 3 4 | 5 6 7 88 7 6 5 | 4 3 2 1若采取一点交叉,且交叉点随机选为4,则交叉后产生的两个后代为8 7 6 5 5 6 7 81 2 3 4 4 3 2 1显然,这两个子路径均未能遍历所有8个城市,都违反TSP问题的约束条件。

可以采取上述构造惩罚函数的方法,但试验效果不佳。

可能的解释:这一方法将本已十分复杂的TSP问题更加复杂化了。

因为满足TSP问题约束条件的可行解空间规模为n!;而按构造惩罚函数的方法,其搜索空间规模变为n n;随着n 的增大n!与n n之间的差距是极其惊人的。

解决这一约束问题的另一种处理方法是对交叉、变异等遗传操作做适当的修正,使其自动满足TSP的约束条件。

常用的几种交叉方法:1.部分匹配交叉(PMX,Partially Matched Crossover)法PMX操作是由Goldberg和Lingle于1985年提出的。

在PMX操作中,先依据均匀随机分布产生两个位串交叉点,定义这两点之间的区域为一匹配区域,并使用位置交换操作交换两个父串的匹配区域。

实例:如两父串及匹配区域为A=9 8 4 | 5 6 7 | 1 3 2 0B=8 7 1 | 2 3 0 | 9 5 4 6首先交换A和B的两个匹配区域,得到A’=9 8 4 | 2 3 0 | l 3 2 0B’=8 7 1 | 5 6 7 | 9 5 4 6对于A’、B’两子串中匹配区域以外出现的遍历重复,依据匹配区域内的位置映射关系,逐一进行交换。

对于A’有2到5,3到6,0到7的位置符号映射,对A’的匹配区以外的2,3,0分别以5,6,7替换,则得A”=9 8 4 | 2 3 0 | 1 6 5 7同理可得:B”=8 0 1 | 5 6 7 | 9 2 4 3这样,每个子串的次序部分地由其父串确定。

2.顺序交叉法(OX,Order Crossover)法与PMX法相似,Davis(1985)等人提出了一种OX法,此方法开始也是选择一个匹配区域:A=9 8 4 | 5 6 7 | 1 3 2 0B=8 7 1 | 2 3 0 | 9 5 4 6并根据匹配区域的映射关系,在其区域外的相应位置标记H,得到A’=9 8 4 | 5 6 7 | 1 H H HB’=8 H 1 | 2 3 0 | 9 H 4 H再移动匹配区至起点位置,且在其后预留相等于匹配区域的空间(H数目),然后将其余的码按其相对次序排列在预留区后面,得到A”=5 6 7 H H H 1 9 8 4B”=2 3 0 H H H 9 4 8 1最后将父串A,B的匹配区域相互交换,并放置到A”,B”的预留区内,即可得到两个子代:A”’=5 6 7 | 2 3 0 | 1 9 8 4B”’=2 3 0 | 5 6 7 | 9 4 8 1虽然,PMX法与OX法非常相似,但它们处理相似特性的手段却不同。

PMX法趋向于所期望的绝对城市位置,而OX法却趋向于期望的相对城市位置。

3.循环交叉(CX,cycle crossover)法Smith等人提出的CX方法与PMX方法和OX方法有不同之处。

循环交叉的执行是以父串的特征作为参考,使每个城市在约束条件下进行重组。

设两个父串为C=9 8 2 1 7 4 5 0 6 3D=1 2 3 4 5 6 7 8 9 0不同于选择交叉位置,我们从左边开始选择一个城市C’=9一一一一一一一一D’=1一一一一一一一一再从另一父串中的相应位置,寻找下一个城市:C’=9一一1一一一一一一一D’=1一一一一一一一一9一再轮流选择下去,最后可得C’=9 2 3 1 5 4 7 8 6 1 0D’=1 8 2 4 7 6 5 1 0 9 34.基于知识的交叉方法这种方法是一种启发式的交叉方法,按以下规划构造后代:(1)随机地选取一个城市作为子代圈的开始城市。

(2)比较父串中与开始城市邻接的边,选取最小的边添加到圈的路径中。

(3)重复第(2)步,如果发现按最小边选取的规划产生非法路径(重复经过同一城市),则按随机法产生一合法的边,如此反复,直至形成一完整的TSP圈。

使用这一方法,可获得较好的结果。

在200个城市的TSP优化方面,已产生接近由模拟退火程序计算出的最优结果。

不过,这一方法使用了基于问题的一些知识,损失了遗传算法的通用性和鲁棒性。

关于TSP问题的遗传交叉方法还有各种各样的变形方法,一般来说,交叉方法应能使父串的待征遗传给子串,子串应能部分或全部地继承父串的结构特征和有效基因。

4.2.3 变异技术从遗传算法的观点来看,解的进化主要靠选择机制和交叉策略来完成,变异只是为选择、交叉过程中可能丢失的某些遗传基因进行修复和补充,变异在遗传算法的全局意义上只是一个背景操作。

针对TSP问题,主要的变异技术如下述。

1.位点变异变异仅以一定的概率(通常较小)对串的某些位作值的变异。

2.逆转变异在串中,随机选择两点,再将这两点内的子串按反序插入到原位置中,如串A的逆转点为3,6,则经逆转后,变为A’A =1 2 3 | 4 5 6 | 7 8 9 0A’=1 2 3 | 6 5 4 | 7 8 9 0这种变异操作对于TSP问题,就调整前后引起的TSP圈的长度变化而言用于最细微的调整,因而局部优化的精度较高;但码串绝对位置所呈现的“模式”变化较大,所需的计算也稍为复杂一点。

相关文档
最新文档