遗传算法基本理论与matlab实现

更新时间:2023-06-11 14:44:01 阅读量: 实用文档 文档下载

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

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

遗传算法简介张军

数学建模工作室 2013-7-25

数学建模培训讲义

第1页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

非线性规划的基本概念 定义 如果目标函数或约束条件中至少有一个是非线性函数 时的最优化问题就叫做非线性规划问题.

一般形式:

m in f X

gi X 0 i 1,2,..., m ; s.t. (1) h j X 0 j 1,2,..., l. 其中 X x1, x2 , , xn T E n,f , gi , h j 是定义在 En 上的实值函

数,简记: f : En E1, gi : En E1, h j : En E1 其它情况: 求目标函数的最大值或约束条件为小于等于零 的情况,都可通过取其相反数化为上述一般形式.数学建模工作室 2013-7-25

数学建模培训讲义

第2页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

评注 非线性规划的求解一般要比线性规划的求解困难 的多,不像线性规划那样有适应于一般情况的单 纯形法。 我们知道线性规划的可行域一般是个凸集,其最 优解在可行域的边界上达到;而非线性规划问题 的可行域一般不是凸集,最优解也不一定在边界 上达到。 现在的各种各样的算法都是针对各自特定的适用 范围的,这也是正处在研究发展中的学科领域。数学建模工作室 2013-7-25

数学建模培训讲义

第3页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

罚函数法 罚函数法基本思想是通过构造罚函数把 约束问题转化为一系列无约束最优化问题,

进而用无约束最优化方法去求解.这类方法称为序列无约束最小化方法.简称为SUMT

法.其一为SUMT外点法,其二为SUMT内点法.数学建模工作室 2013-7-25

数学建模培训讲义

第4页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

SUTM外点法 对一般的非线性规划: min f X

gi X 0 s.t. h j X 0m

i 1,2,..., m; j 1,2,...,l.2

(1)

可设:T X , M f X M

min 0, gi X i 1

M

h X l j j 1

2

(2)

将问题()转化为无约束问题: min T X , M 1 nX E

(3)

其中T(X,M)称为罚函数,M称为罚因子,带M的项称为罚项,这 里的罚函数只对不满足约束条件的点实行惩罚:当 D 时,满 X 足各 i X 0, hi X 0 ,故罚项=0,不受惩罚.当 D 时, g X gi X 必有 0或hi X 0 的约束条件,故罚项>0,要受惩罚.数学建模工作室 2013-7-25

数学建模培训讲义

第5页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

SUTM内点法(障碍函数法)

考虑问题:

min f X s.t. g X 0 i

i 1,2,..., m

(1)

设集合D 0 X | g i X 0, i 1,2, , m ,D 0是可行域中 所有严格内点的集合。构造障碍函数 I X , r :I X , r f X r lng i X 或 I ( X , r ) f ( X ) r i 1 i 1 m m

1 gi X

其中称r lng i X 或 r i 1 i 1

m

m

1 为障碍项,r为障碍因子 gi X

X D

这样问题()就转化为求一系列极 1 值问题: k min0 I X , rk 得 X (rk)数学建模工作室 2013-7-25

数学建模培训讲义

第6页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

关于优化问题

遗传算法

传统的优化方法(局部优化) 共轭梯度法、拟牛顿法、单纯形方法 全局优化方法 漫步法(Random Walk)、模拟退火法、GA

比较:传统的优化方法1)依赖于初始条件。 2)与求解空间有紧密关系,促使较快地收敛到局部 解,但同时对解域有约束,如可微或连续。利用 这些约束,收敛快。 3)有些方法,如Davison-Fletcher-Powell直接依 赖于至少一阶导数; 共轭梯度法隐含地依赖于梯 第7页 数学建模工作室 度。 数学建模培训讲义 mecca_zj@ 2013-7-25

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

全局优化方法

1)不依赖于初始条件; 2)不与求解空间有紧密关系,对解域,无可微或连 续的要求。求 解稳健,但收敛速度慢。能获得全 局最优。适合于求解空间不知的情况

数学建模工作室 2013-7-25

数学建模培训讲义

第8页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

遗传算法基本原理模拟自然界优胜劣汰的进化现象,把搜索空间映射为遗传 空间,把可能的解编码成一个向量——染色体,向量的每个 元素称为基因。 通过不断计算各染色体的适应值,选择最好的染色体,获 得最优解。

遗传算法的基本运算 ⑴ 选择运算 ⑵ 交换操作 ⑶ 变异数学建模工作室 2013-7-25

数学建模培训讲义

第9页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

●选择运算——从旧的种群中选择适应度高的染色体,放入匹配集(缓冲 区),为以后染色体交换、变异,产生新的染色体作准备。 选择方法——适应度比例法(转轮法) 按各染色体适应度大小比例来决定其被选择数目的多少。 某染色体被选的概率:Pc

Pc

f ( xi )

f ( xi )

xi 为种群中第i个染色体,

数学建模工作室 2013-7-25

数学建模培训讲义

第10页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

具体步骤1)计算各染色体适应度值 2)累计所有染色体适应度值,记录中间累加值S - mid 和最

后累加值 sum = ∑f(xi)3) 产生一个随机数 N,0〈 N 〈 sum 4) 选择对应中间累加值S - mid 的第一个染色体进入交换集 5) 重复(3)和(4),直到获得足够的染色体。

举例:⒈具有6个染色体的二进制编码、适应度值、Pc累计 值。数学建模工作室 2013-7-25

数学建模培训讲义

第11页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

染色体的 适应度和所占的比例

用转轮方法进行选择

数学建模工作室 2013-7-25

数学建模培训讲义

第12页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

⒉10个染色体种群按比例的选择过程 染色体被选的概率染色体编号 适应度 被选概率

180.1 8

22

317

470.0 9 34

520.0 2 36

60.1 6 48

70.1 4 59

870.0 9 66

930.0 3 69

1070.09 76

12 11

0.02 0.2 2 10 27

适应度累计

被选的染色体个数随机数所选染色 体号码 数学建模工作室 2013-7-25

23 49

76

13

1

27 57

3

7

10

3

1

3

7

数学建模培训讲义

第13页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

●交换操作复制不能创新,交换解决染色体的创新 方法:随机选择二个染色体(双亲染色体),随机指定一点或多 点, 进行交换,可得二个新的染色体(子辈染色体).

新的子辈染色体: A’ B’ ●变异

11010001 01011110

模拟生物在自然界环境变化,引起基因的突变.在染 色体二进制编码中,1变成0;或0变成1.突变产生染色 体的多样性,避免进化中早期成熟,陷入局部极值点, 第14页 数学建模工作室 数学建模培训讲义 mecca_zj@ 2013-7-25 突变的概率很低.

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

GA的流程

数学建模工作室 2013-7-25

数学建模培训讲义

第15页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

简单遗传算法(GA)的基本参数①种群规模 P: 参与进化的染色体总数. ②代沟G: 二代之间不相同的染色体数目,无重叠G = 1;

有重叠 0 < G <1③选择方法: 转轮法,精英选择法,竞争法. ④交换率: Pc 一般为60~100%. ⑤变异率: Pm 一般为0.1~10% 举例: 变异概率取0.001数学建模工作室 2013-7-25

数学建模培训讲义

第16页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

初始种群和它的适应度值

染色体的交换操纵

数学建模工作室 2013-7-25

数学建模培训讲义

第17页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

举例:

数学建模工作室 2013-7-25

数学建模培训讲义

第18页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

步骤1)编码:确定二进制的位数;组成个体(染色体)qmax qmin qmax qmin N 1 n 二进制位数取决于运算 精度 , q 2 bn qmin n n 2 1 2 1 n 0 q 是x 或 y, qmax 和qmin 是q的最大值和最小值。 qmax 和qmin 分别为8和0。 bn 是相应于 q的第 n位的二进制的值,

步骤2)选择种群数P 和初始个体,计算适应度值, P = 20;

数学建模工作室 2013-7-25

数学建模培训讲义

第19页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

遗传算法工具箱

数学建模工作室 2013-7-25

数学建模培训讲义

第20页 mecca_zj@

介绍了遗传算法的基本理论,并且结合matlab内遗传算法的函数举例了用GA求优化问题

主要函数 GA Genetic algorithm solver. X = GA(FITNESSFCN,NVARS) finds the minimum of FITNESSFCN using GA. NVARS is the dimension (number of design variables) of the FITNESSFCN. FITNESSFCN accepts a vector X of size 1-byNAVRS, and returns a scalar evaluated at X. X = GA(FITNESSFCN,NAVRS,OPTIONS) finds the minimum for FITNESSFCN with the default optimization parameters replaced by values in the structure OPTIONS. OPTIONS can be created with the GAOPTIMSET function.

数学建模工作室 2013-7-25

数学建模培训讲义

第21页 mecca_zj@

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

Top