matlab第20讲 数学建模-遗传算法

合集下载

matlab遗传算法学习和全局化算法

matlab遗传算法学习和全局化算法

1 遗传算法步骤1 根据具体问题选择编码方式,随机产生初始种群,个体数目一定,每个个体表现为染色体的基因编码2 选择合适的适应度函数,计算并评价群体中各个体的适应。

3 选择(selection)。

根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体4 交叉(crossover)。

将选择过后的群体内的各个个体随机搭配成对,对每一对个体,以一定概率(交叉概率)交换它们中的部分基因。

5 变异(mutation)。

对交叉过后的群体中的每一个个体,以某个概率(称为变异概率)改n 变某一个或某一些基因位上的基因值为其他的等位基因6 终止条件判断。

若满足终止条件,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止运算。

否则,迭代执行Step2 至Step5。

适应度是评价群体中染色体个体好坏的标准,是算法进化的驱动力,是自然选择的唯一依据,改变种群结构的操作皆通过适应度函数来控制。

在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。

个体的适应度越大,被遗传到下一代的概率就越大,相反,被遗传到下一代的概率就越小。

1 [a,b,c]=gaopt(bound,fun)其中,bound=[xm,xM]为求解区间上届和下届构成的矩阵。

Fun 为用户编写的函数。

a为搜索的结果向量,由搜索的出的最优x向量与目标函数构成,b为最终搜索种群,c为中间搜索过程变参数,其第一列为代数,后边列分别为该代最好的的个体与目标函数的值,可以认为寻优的中间结果。

2 ga函数。

[X,F, FLAG,OUTPUT] = GA(fun, n,opts).n为自变量个数,opts为遗传算法控制选项,用gaoptimset()函数设置各种选项,InitialPopulation可以设置初始种群,用PopulationSize 可以设置种群规模,SelectionFcn可以定义选择函数,3 gatool 函数用于打开,GATOOL is now included in OPTIMTOOL。

用MATLAB实现遗传算法程序

用MATLAB实现遗传算法程序

用MATLAB实现遗传算法程序一、本文概述遗传算法(Genetic Algorithms,GA)是一种模拟自然界生物进化过程的优化搜索算法,它通过模拟自然选择和遗传学机制,如选择、交叉、变异等,来寻找问题的最优解。

由于其全局搜索能力强、鲁棒性好以及易于实现并行化等优点,遗传算法在多个领域得到了广泛的应用,包括函数优化、机器学习、神经网络训练、组合优化等。

本文旨在介绍如何使用MATLAB实现遗传算法程序。

MATLAB作为一种强大的数学计算和编程工具,具有直观易用的图形界面和丰富的函数库,非常适合用于遗传算法的实现。

我们将从基本的遗传算法原理出发,逐步介绍如何在MATLAB中编写遗传算法程序,包括如何定义问题、编码、初始化种群、选择操作、交叉操作和变异操作等。

通过本文的学习,读者将能够掌握遗传算法的基本原理和MATLAB编程技巧,学会如何使用MATLAB实现遗传算法程序,并能够在实际问题中应用遗传算法求解最优解。

二、遗传算法基础遗传算法(Genetic Algorithm,GA)是一种模拟自然选择和遗传学机制的优化搜索算法。

它借鉴了生物进化中的遗传、交叉、变异等机制,通过模拟这些自然过程来寻找问题的最优解。

遗传算法的核心思想是将问题的解表示为“染色体”,即一组编码,然后通过模拟自然选择、交叉和变异等过程,逐步迭代搜索出最优解。

在遗传算法中,通常将问题的解表示为一个二进制字符串,每个字符串代表一个个体(Individual)。

每个个体都有一定的适应度(Fitness),适应度越高的个体在下一代中生存下来的概率越大。

通过选择(Selection)、交叉(Crossover)和变异(Mutation)等操作,生成新一代的个体,并重复这一过程,直到找到满足条件的最优解或达到预定的迭代次数。

选择操作是根据个体的适应度,选择出适应度较高的个体作为父母,参与下一代的生成。

常见的选择算法有轮盘赌选择(Roulette Wheel Selection)、锦标赛选择(Tournament Selection)等。

Matlab中的遗传算法与优化问题求解方法介绍

Matlab中的遗传算法与优化问题求解方法介绍

Matlab中的遗传算法与优化问题求解方法介绍引言随着科技的不断进步,优化问题在各个领域中的应用越来越广泛。

在实际问题中,我们往往需要找到一个最优解或者接近最优解的近似解。

为了解决这类问题,遗传算法作为一种自适应的搜索算法,被广泛应用于各个领域。

而Matlab作为一种功能强大的数学软件,提供了丰富的遗传算法工具箱,为优化问题的求解提供了便利。

本文将介绍Matlab中的遗传算法和一些常用的优化问题求解方法。

一、遗传算法概述遗传算法是源于达尔文的进化论思想的一种优化算法。

它是通过模拟自然选择、交叉、变异等生物遗传的过程来搜索最优解的方法。

遗传算法由编码、适应度评估、选择、交叉和变异等基本操作组成。

1. 编码:遗传算法使用二进制编码或者其他离散编码,将问题的解表示为一串二进制码或离散码。

2. 适应度评估:将编码得到的解转化为问题的实际解,并计算该解的适应度,即问题的目标函数值。

3. 选择:根据适应度对解进行选择,适应度越大的解,被选中的概率越大。

4. 交叉:从父代中选择两个个体,通过某种交叉方式生成子代。

5. 变异:对子代进行变异操作,以增加解的多样性。

二、Matlab中的遗传算法函数在Matlab的遗传算法工具箱中,包含了一系列的遗传算法函数,可以快速实现遗传算法优化问题的求解。

1. ga函数:这是Matlab中最基本的遗传算法函数,用于求解普通的优化问题。

它可以通过改变种群大小、交叉概率、变异概率等参数来调整算法的性能。

2. gamultiobj函数:这个函数是用于解决多目标优化问题的。

它使用了帕累托前沿的概念,可以得到一系列的非支配解,以帮助决策者选择最优解。

3. gaplotbestf函数:这个函数可以绘制遗传算法的收敛曲线,直观地展示算法求解的过程。

三、优化问题求解方法除了遗传算法外,Matlab还提供了其他一些常用的优化问题求解方法。

1. 粒子群算法(PSO):这是一种群体智能算法,通过模拟鸟群或鱼群的行为,寻找最优解。

Matlab遗传算法及实例

Matlab遗传算法及实例

Matlab遗传算法及实例Matlab遗传算法工具箱函数及实例讲解转:最近硏究了一下遗传算法,因为要用遗传算法来求解多元非线性模型。

还好用遗传算法的工具箱予以实现了,期间也遇到了许多问题。

借此与大家分享一下。

首先,我们要熟悉遗传算法的基本原理与运算流程。

基本原理:遗传算法是一种典型的启发式算法,属于非数值算法范畴。

它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。

它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。

遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。

从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。

如此模仿生命的进化进行不断演化,直到满足期望的终止条件。

运算流程:Step 1 :对遗传算法的运行参数进行赋值。

参数包括种群规模、变量个数、交叉概率、变异概率以及遗传运算的终止进化代数。

Step 2 :建立区域描述器。

根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。

Step 3 :在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。

Step 4 :执行比例选择算子进行选择操作。

Step 5 :按交叉概率对交叉算子执行交叉操作。

Step 6 :按变异概率执行离散变异操作。

Step 7 :计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。

Step 8 :判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果其次,运用遗传算法工具箱。

运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库。

目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学幵发的遗传算法工具箱GATBXGAOT以及Math Works公司推出的GADS实际上,GAD鉞是大家所看到的Matlab中自带的工具箱。

matlab中的遗传算法

matlab中的遗传算法

matlab中的遗传算法【原创版】目录一、引言二、遗传算法的基本原理1.种群概念2.适应度函数3.选择操作4.交叉操作5.变异操作三、MATLAB 中遗传算法的实现1.准备工作2.遗传算法的实现四、遗传算法的应用案例1.旅行商问题2.装载问题五、遗传算法的优缺点六、结论正文一、引言遗传算法(Genetic Algorithm,GA)是一种模拟自然界生物进化过程的优化算法,其主要思想是将进化过程中的自然选择、交叉和变异等遗传操作应用到问题的求解过程中,从而实现对问题的优化求解。

遗传算法在解决复杂问题、非线性问题以及大规模问题等方面具有较强的优势,因此在各个领域得到了广泛的应用。

本文将介绍遗传算法的基本原理以及在MATLAB 中的实现。

二、遗传算法的基本原理1.种群概念遗传算法以一个种群作为优化过程的载体。

种群中的个体代表问题的解,每个个体由一组参数表示。

在优化过程中,种群会不断进化,最终收敛到问题的最优解。

2.适应度函数适应度函数是遗传算法的核心部分,用于评价种群中个体的优劣。

适应度函数的取值范围为 [0, 1],其中 1 表示最优解,0 表示最劣解。

在遗传算法的优化过程中,适应度函数用于选择优秀的个体,从而指导种群的进化。

3.选择操作选择操作是基于适应度函数的一种选择策略,用于选择下一代的父代个体。

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

4.交叉操作交叉操作是遗传算法中产生新个体的主要方式,通过将选中的优秀个体进行交叉操作,产生具有更好适应度的新个体。

常见的交叉方法有单点交叉、多点交叉、均匀交叉等。

5.变异操作变异操作是在遗传算法中引入随机性的一种方式,通过随机改变某些基因的值,使新个体在进化过程中具有一定的多样性。

变异操作的强度由变异概率控制。

三、MATLAB 中遗传算法的实现1.准备工作在 MATLAB 中实现遗传算法,首先需要定义适应度函数、选择操作、交叉操作和变异操作等。

此外,还需要设置遗传算法的参数,如迭代次数、种群大小、交叉概率、变异概率等。

Matlab中的遗传算法实现与优化

Matlab中的遗传算法实现与优化

Matlab中的遗传算法实现与优化引言遗传算法是一种模拟生物遗传和自然选择的计算方法,被广泛应用于优化和搜索问题。

在Matlab中,我们可以利用其强大的编程功能和优秀的优化工具箱来实现和优化遗传算法。

一、遗传算法简介遗传算法的基本思想是通过模拟自然选择和遗传操作,逐步演化出最优解。

它包含了种群的初始化、适应度评估、选择、交叉和变异等步骤。

1. 种群初始化在遗传算法开始前,我们需要初始化一个种群。

每个个体都表示一个可能的解。

个体的表达方式可以是二进制、浮点数等。

2. 适应度评估适应度函数用于评估每个个体的适应度,即其解决问题的能力。

适应度函数可以根据具体问题进行设计。

例如,对于求解最优化问题,适应度函数可以是目标函数的值。

3. 选择选择操作根据个体的适应度,以一定的概率选择父代个体。

适应度高的个体被选中的概率更大,从而保留优秀的基因。

4. 交叉交叉操作模拟了基因的杂交。

通过对两个个体的基因进行交叉,产生新的子代个体。

交叉操作可以保留原始个体的优点,同时引入新的变化。

5. 变异变异操作模拟了基因的突变。

通过对个体的基因进行随机变化,引入新的多样性。

变异操作有助于避免陷入局部最优解。

6. 迭代优化通过重复进行选择、交叉和变异,逐步优化种群中的个体,直到满足停止准则。

二、Matlab中的遗传算法实现在Matlab中,我们可以使用优化工具箱中的遗传算法函数来实现和优化遗传算法。

1. 遗传算法函数Matlab中的遗传算法函数包括`ga`、`gamultiobj`和`patternsearch`等。

其中,`ga`是最常用的单目标遗传算法函数,而`gamultiobj`用于多目标优化问题。

`ga`函数的基本调用形式为:```[x, fval] = ga(fun, nvars)```其中,`fun`为适应度函数,`nvars`为变量的个数。

`ga`函数会返回最优解`x`和最优值`fval`。

2. 适应度函数的设计适应度函数的设计对于遗传算法的性能至关重要。

matlab遗传算法整数约束

matlab遗传算法整数约束

matlab遗传算法整数约束遗传算法是一种通过模拟进化过程来解决优化问题的算法。

在许多实际问题中,我们需要找到满足一定约束条件的整数解。

本文将介绍如何使用MATLAB编程语言实现遗传算法,并给出一个整数约束的示例问题。

我们需要定义问题的目标函数和约束条件。

假设我们要求解的问题是在一定范围内找到使得目标函数取得最大值的整数解。

目标函数可以是任意的数学函数,如线性函数、非线性函数等。

约束条件可以包括等式约束和不等式约束,限制了解的取值范围。

接下来,我们需要定义遗传算法的基本元素,包括染色体表示、初始化种群、适应度评价、选择、交叉和变异等操作。

对于整数约束问题,染色体可以用一个整数数组表示,每个元素对应一个变量的取值。

种群可以由多个染色体组成,初始种群可以通过随机生成整数数组来实现。

适应度评价可以通过计算目标函数值来衡量染色体的优劣。

选择操作可以根据适应度值来确定优秀染色体的概率选择。

交叉操作可以通过交换染色体的某些片段来产生新的染色体。

变异操作可以通过改变染色体中的某个元素值来引入新的解。

在MATLAB中,我们可以使用遗传算法工具箱来实现遗传算法。

首先,我们需要定义一个函数来描述问题的目标函数和约束条件。

然后,我们可以使用`ga`函数来求解整数约束问题。

该函数的输入参数包括目标函数、变量的取值范围、约束条件等。

通过设置适当的参数,我们可以控制遗传算法的执行过程。

下面,我们以一个简单的整数约束问题为例进行演示。

假设我们要求解的问题是在区间[0, 10]内找到使得函数f(x) = x^2取得最大值的整数解。

我们可以定义目标函数和约束条件如下:```matlabfunction y = myfun(x)y = -x.^2; % 目标函数,取负号使得求解最大值问题endfunction [c, ceq] = mycon(x)c = []; % 不等式约束条件ceq = []; % 等式约束条件end```然后,我们可以使用遗传算法工具箱中的`ga`函数来求解整数约束问题:```matlablb = 0; % 变量下界ub = 10; % 变量上界intcon = 1; % 整数约束[x, fval] = ga(@myfun, 1, [], [], [], [], lb, ub, @mycon, intcon); ```以上代码中,`@myfun`表示目标函数,`1`表示变量的个数,`[]`表示不等式约束条件,`lb`和`ub`表示变量的下界和上界,`@mycon`表示约束条件,`intcon`表示整数约束。

MATLAB中的遗传算法和优化方法

MATLAB中的遗传算法和优化方法

MATLAB中的遗传算法和优化方法概述:遗传算法是一种常见的优化方法,通过模拟生物进化过程来求解最优解。

在MATLAB中,遗传算法和其他优化方法一起被广泛应用于各个领域,如工程设计、数据分析、机器学习等。

本文将介绍MATLAB中遗传算法的原理和应用,并比较它与其他优化方法的优缺点。

第一部分:遗传算法的基本原理1.1 基因编码遗传算法的核心在于基因编码。

在MATLAB中,基因编码可以通过二进制、十进制或其他方式实现。

二进制编码是最常用的一种方式,通过0和1表示基因的不同状态。

1.2 适应度函数适应度函数用于衡量个体的适应性,即个体对问题的解决程度。

在MATLAB 中,适应度函数可以根据具体问题的要求进行定义和评估。

适应度函数越高,个体的生存能力越强,有更大的概率被选择和交叉。

1.3 选择、交叉和变异选择、交叉和变异是遗传算法的三个基本操作。

选择操作根据适应度函数选择优秀的个体,并根据其适应度进行概率加权选择。

交叉操作模拟生物的基因交换,通过重新组合个体的基因来产生新的个体。

变异操作则引入一定的随机性,以避免陷入局部最优解。

第二部分:MATLAB中的遗传算法2.1 遗传算法工具箱MATLAB提供了专门用于遗传算法的工具箱,包括遗传算法、多目标优化、进化策略等。

这些工具箱提供了一系列可直接调用的函数和示例,使得遗传算法的实现变得简单和高效。

2.2 遗传算法的应用案例在工程设计领域,遗传算法被广泛应用于优化传感器网络、控制系统、机器人路径规划等。

在数据分析领域,遗传算法可以用于参数估计、特征选择等问题。

在机器学习领域,遗传算法可以用于优化神经网络的权重、结构等。

这些应用案例都充分展示了遗传算法在各个领域的优势和应用价值。

第三部分:遗传算法与其他优化方法的比较3.1 遗传算法与蚁群算法遗传算法和蚁群算法都属于启发式算法,都能够帮助求解复杂的优化问题。

与遗传算法相比,蚁群算法模拟了蚂蚁寻找食物的行为,具有更强的自适应性和分布式特性。

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

24
3.8053
A7
29
8.0155
A12
12
0
A8
30
3.0608
A13
23
0.5
A14
21
3.265
A16
14
6.7417
A15
28
4.7518
四、案例应用
建模案例:交巡警服务平台的设置与调度
源代码说明如下: 主程序为:fengsuo.m; 新编写初始种群的生成算子(crt_zp); 将交叉算子(recombin)、变异算子(mut)、重插
本题模型可以描述为:
min
Max
1im
ti
,
zi
,
m
min ti,zi i 1
s.t.
1
zi
zi
z
m
j
1i m i j
四、案例应用
建模案例:交巡警服务平台的设置与调度
为了简化这么一个从 m 个交巡警服务平台中挑选出 n 个来的过程,可以虚拟出 m n 待封锁的路口,所有平
入算子(reins)重新编写有序交叉算子 (order_crossover)、变异算子(mute_yth)、重插入 算子(reins_yth)。
一、遗传算法基本理论
生物进化
遗传算法
环境
适应值函数
适者生存,优胜 劣汰
适应值函数越大的解被保留的概率越大
个体
问题的一个可行解
染色体
可行解的编码
基因
编码的元素
群体
被选定的一组可行解
种群
根据适应值函数选择的一组可行解
交叉
以交叉方式由双亲产生后代的过程
变异
编码的某些分量发生变化的过程
一、遗传算法基本理论
交叉算子
例如: 对两条全1和全零的12位染色体,假如产生的 交叉点位置为4,则执行的交叉操作如下图所示:
变异算子
遗传变异操作首先在种群中随机选择一个个体,对该 个体以一定的概率(称为变异概率 pm ,一般地, pm 介于 1/ 种群规模与 1/染色体长度之间,平均约为 0.0001~0.1。)
二、遗传算法工具箱
四、案例应用
建模案例:交巡警服务平台的设置与调度
使用一个数字(例如1,2,……,20)代表一个城市,通过对 这20个数字排序构造路径,选择合适的遗传算子产生路径。 有序交叉(Order Crossover)算子( Davis(1985)提出)
首先,随机产生交叉点: p1(238|7154|69) p2(947|1856|32)
15
16
17
18
19
二进制码 01111 01000 10000 11000 10001 11001 10010 11011 10011 11010
原始值
20
21
22
23
24
二进制码 10100 11110 10101 11111 10110 11101 10111 11100 11000 10100
二、遗传算法工具箱
交叉算子
子种群的支持 实用函数
函数 recdis recint reclint recmut recombin xovdp xovdprs xovmp xovsh xovshrs xovsp xovsprs migrate bs2rv
功能 离散重组 中间重组 线性重组 具有变异特征的线性重组 高级重组算子 两点交叉算子 减少代理的两点交叉 通常多点交叉 洗牌交叉 减少代理的洗牌交叉 单点交叉 减少代理的单点交叉 在子种群间交换个体 二进制串到实值的转换
三、遗传算法应用
一元函数的优化问题
例:利用遗传算法计算函数 f (x) x cos(5 x) 3.5在区间[1,2.5]上的最值
最大值运行结果:
源代码请见本目录:exp12_1_1.m
三、遗传算法应用
一元函数的优化问题
例:利用遗传算法计算函数 f (x) x cos(5 x) 3.5在区间[1,2.5]上的最值
12
10
8
6
0
50
100
150
200
250
300
350
400
450
500
迭代次数
四、案例应用
建模案例:交巡警服务平台的设置与调度
封锁调度方案
封锁平台 封锁路口 封锁时间 封锁平台 封锁路口 封锁时间
A2
38
3.9822
A9
16
1.5325
A4
62
0.35
A10
22
7.7079
A5
48
2.4758
A11
其中, Cmin 为目标函数 f (x) 的最小估计值。
针对目标函数最大化问题,则令
Fitness(
f
(x))

Cmax
0
f
(x)
Cmax f (x) others
其中, Cmax 为目标函数 f (x) 的最大估计值。
选择算子
遗传算法的本质就是模拟了“物竞天择”的自然选择学说,选择 提供了遗传算法的驱动力。选择的思想就是适应值越高的染色体获得 选择(复制)的机会越大。关于选择方式,Holland 提出对轮盘赌选 择是最经典的。
最小值运行结果:
源代码请见本目录:exp12_1_1.m
三、遗传算法应用
多元函数的优化问题
例:利用遗传算法求解多峰的 Shubert 函数 f (x, y) 在区域[10,10][10,10] 上的最
5
5
其中 f (x, y) k cos k 1 x k g k cos k 1 y k 。
采用格雷编码(Gray Encoding)可以避免这一缺陷。 格雷码的特点是任意两个连续的两个整数的编码值之间 只有一个位是不同的,其他位都完全相同。
格雷编码
格雷编码是一种基于二进制编码的循环码,它需要对 普通的二进制编码从最右一位起,依次将每一位与其左边 一位作异或运算,作为对应格雷编码在该位的值,最左边 一位保持不变。
创建种群 适应度计算
选择函数 变异算子
函数 crtbase crtbp crtrp ranking scaling reins
rws select
sus mut mutlate mutbga
功能 创建基向量 创建任意离散随机种群 创建实值初始种群 基于秩的适应度计算 基于比率的适应度计算 一致随机和基于适应度的重插入 轮盘选择 高级选择例程 随机遍列采样 离散变异 高级变异函数 实值变异
染色体编码(chromosome coding)与解码(decode)
二进制编码:是最简单也最常用的编码方式,它 采用一个二进制字符串来表征解。
例如:在区间[a,b] 内根据解的精度进行长度为n的二进制编码:
0000……000=0

┆┆
1111……111= 2n -1
则编码 b1b2
bn
解码后对应值为:
数学建模与数学实验
遗传算法
后勤工程学院数学教研室
实验目的
学习遗传算法的基本原理与方法。
实验内容
1、遗传算法基本理论 2、遗传算法工具箱 3、遗传算法应用 4、案例应用
遗传算法(Genetic Algorithm 简称GA)起源于对 生物系统所进行的计算机模拟研究,是由一种基于生 物遗传和进化机制的适合于复杂系统优化的自适应概 率优化算法。 特点:
k 1
k 1
三、遗传算法应用
最大值运行结果:
源代码请见本目: exp12_1_2.m
三、遗传算法应用
最小值运行结果:
源代码请见本目: exp12_1_2.m
四、案例应用
建模案例:交巡警服务平台的设置与调度
对于重大突发事件,需要调度全区20个交巡警服务 平台的警力资源,对进出该区的13条交通要道实现快速 全封锁。实际中一个平台的警力最多封锁一个路口,请 给出该区交巡警服务平台警力合理的调度方案。
最后,交叉划分点之间的部分 c1(329|7154|86) c2(923|1856|74)
然后,双亲中划分点中间的 部分复制到后代中: c1(×××|7154|××) c2(×××|1856|××)
四、案例应用
建模案例:交巡警服务平台的设置与调度
各子代种群最优解
交通要道封锁调度优化过程
18
16
14
x

a

ba 2n 1
n k 1
bk
2k 1
精度为: b a
染色体编码(chromosome coding)与解码(decode)
普通的二进制编码方式可能具有较大的汉明 (Hamming)距离,也称作汉明悬崖。
例如:当原始值x为15和16时,它的5位二进制表示为01111 和10000,此时改变了二进制编码的所有位。
原始值
5
6
7
8
9
二进制码 00101 00111 00110 00101 00111 00100 01000 01100 01001 01101
原始值
10
11
12
13
14
二进制码 01010 01111 01011 01110 01100 01010 01101 01011 01110 01001
原始值
四、案例应用
建模案例:交巡警服务平台的设置与调度
假设已知 m 个交巡警服务平台到 n 个待封锁路口的时间为
T tij mn ,若安排第 i 个平台去封锁第 zi 个路口,则将其顺序排列
为分配方案:F z1z2 L zm ,其中1 zi m ,且 i j 有 zi z j 。
相关文档
最新文档