多目标优化学习:GA

多目标优化的基本概念

定义1-1(MOP):一般MOP由n个决策变量参数、k个目标函数和m个约束条件组成,其中目标函数、约束条件与决策变量之间是函数关系。最优化目标如下:
maxmize y=f(x)=(f1(x),f2(x),…,fk(x))
s.t. e(x)=(e1(x),e2(x),…,em(x))<0
x->决策向量
y->目标向量
X为决策空间,x1,…xn属于X
Y为目标空间,y1…yn属于Y
e(x)->决策的约束条件
解决MOP的最终手段只能是在各子目标之间进行协调权衡和折衷处理,使各子目标函数均尽可能达到最优(因此与单目标优化有着本质上的区别)
定义1-2(可行解集):可行解集x,定义为满足式(1.1)中的约束条件“力的决策向量并的集合,即
xf={x属于X|e(x)<=0}
Yf=f(xf)=Yx属于Xi{f(x)},Xf的可行区域对应的目标空间;

遗传算法的基本原理与方法

遗传算法是一种典型的人工智能算法,是一种特殊的演化算法,但是在描述遗传算法的文献中,其定义各不相同。本书将遗传算法定义为一种可以用交叉和突变算子优化固定长度向量的演化算法。计分函数可以区分优劣方案,以优化该固定长度的向量。这个定义说明了遗传算法的本质。

本质上为借鉴生物界进化规律的随机搜索方法。
通过操作,产生一群更适应环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代代繁衍进化,最后收敛到一群最适应环境的个体,求得问题最优解。
遗传算法步骤:
1、编码: 将问题中涉及的数据转化为编码数据
2、初始群体的生成: 随机生成N个串结构数据(随机生成N个串结构),每个串为一个体,N个个体为一个群体。遗传算法以这N个串结构数据为起点,设置进化代数计数器t=0,最大进化代数T,开始迭代。
3、适应度评价检测: 适应度函数表明个体或解的优劣性。对于不同的问题,适应度函数定义的方式不同。根据具体的问题,计算群体P(t)中各个个体的适应度
4、选择: 将选择算子作用于群体,根据适应度函数值的大小,选适应度高的个体进行下一步操作。
5、交叉: 将交叉算子用于群体,以交叉概率Pc随机选取群体中的个体在随机生成的位置进行交叉
6、变异: 将变异算子作用域群体,以变异概率Pw随机选取个体中的基与位进行变异,得到新的个体。
需要用到的变量: 群体初始规模N(个体数量),交叉概率Pc,变异概率Pm

变异、交叉是什么

n点交叉
在个体编码中随机选取n个点,进行编码片段互换
例:双点交叉
A:11/111/11 => A:11/000/11
B:00/000/00 B:00/111/00
多点交叉
A:11/11/111/111 => A:11/00/111/000
B:00/00/000/000 B:00/11/000/111
注:“/”为交叉点,即选取的点

变异
将个体的某个或某些基因点用某些数值进行替换,替换的具体数值为变异种类指定

遗传算法优点

得到的可行解适用广泛、可同时对多个点(个体)进行搜索、不会产生局部最优的僵局、不需要辅助信息

遗传算法缺点

效率较其他传统优化算法低、容易过早收敛、对于自己的精度可信度以及计算复杂性没有定量进行判断

标准遗传算法

**模式:*字符集{1,0,}所产生的能描述具有某些结构相似性的0,1字符串集的字符串称作模式
例如:
0001,可匹配的个体为10001和00001,
* 01 *,有2^3种可匹配,模式中" * "越少,模式阶数越高,确定性越高

选择算子

模拟”优胜劣汰“,适应度高度个体被遗传到下一代概率较大,反之则小
设在第f代种群A(t)中模H所能匹配的样本数为m,记为m(H,t)
每个个体(串)被选中的概率为fi/sum(f),即自身适应度在种群适应度和中的占比
被选中后,则模式H在第t+1代的样本数为
m(H,t+1)=m(H,t) * N * f(H)/sum(f)
f(H)为群体平均适应度
在选择算子作用下,平均适应度高于群体平均适应度的模式将呈指数级增长,否则将呈指数级减少

交叉算子

交叉运算是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体;
交叉运算是遗传算法区别于其他进化算法的重要特征,是产生新个体的主要方法。

遗传算子

在遗传进化的初期,通常会产生一些竞争力极强的超常个体,它们控制了选择过程,影响了算法的全局优化性能。
为避免这种情况应对适应度进行尺度变换

积木块假设

具有低阶、定义长度短,且适应度值高于群体平均适应度值的模式称为基因块或积木块。
积木块假设:个体的基因块通过选择、交叉、变异等遗传算子的作用,能够相互拼接在一起,形成适应度更高的个体编码串。
积木块假设说明了用遗传算法求解各类问题的基本思想,即通过积木块直接相互拼接在一起能够产生更好的解。

应用

可用于各类优化,相当于大力度版的贪心算法;
可以用于硬件循迹,但是庞大的计算量需要使用者把握;
可以用于神经网络聚合;

你可能感兴趣的:(算法,人工智能)