演化计算笔记
来源:互联网 发布:xampp 连接数据库 编辑:程序博客网 时间:2024/05/16 07:34
遗传算法:(传统过程)
一、解空间确定
二、编码:二进制编码、实数向量编码
三、初始化
四、计算适应度值
五、父体选择:轮盘赌
六、遗传算子:杂交、变异
技术细节:
一、编码:(用自然的方式编码)
数值优化时二进制好,TSP时自然数编码好
二进制编码确定位数方法:
依上式得到第j个变量xj编码为二进制时所需二进制位数。总的二进制位数为所有之和
缺点:
1.相邻整数的二进制编码的hamming距离较大,可以采用gray编码克服
2.在高维高精度问题求解中,串长太长
实数向量编码,排列编码,结构编码,树编码,图编码
二、适应函数
1.原始适应函数,即目标函数
2.简单适应函数,加减常量,倒数等
3.适应值比例变换f'(v)=g(f(v))
(1)线性比例变换:f'(v)=af(v)+b,ab可以根据最大最小平均适应度值的限定来确定,使得变换后的适应函数在我们要求范围内
(2)σ截断:,其中σ为标准差
(3) 幂函数变换:最好与最坏染色体的适应值之差随着 的增加而增加。
三、父体选择策略
基于适应值比例的选择策略
(1) 确定性选择:选择每个个体的期望个数
(2)轮盘赌选择:
(3) 随机通用采样(stochastic universal sampling):轮盘上放N个指针,以此选出N个个体
(4) Boltzmann选择
基于排名的选择策略
(1) 线性排名选择
(2) 指数排名选择
基于竞争的选择策略
(1) 锦标赛(tournament)选择:随机挑k个,选最好的
(2) Boltzmann锦标赛选择:
四、遗传算子设计
1. 二进制编码
(1) 杂交算子:点式杂交,交换一点或多点;均匀杂交,每一位都判定,是否交换
(2) 变异算子
2. 实数向量编码
(1) 杂交算子:
离散杂交,可模拟二进制的单点,均匀杂交
部分算术杂交,
x’=(x1,...,xk,ak+1xk+1+(1-ak+1)yk+1,...,anxn+(1-an)yn)
y’=(y1,...,yk,ak+1yk+1+(1-ak+1)xk+1,...,anyn+(1-an)xn)
整体算术杂交,
x’=(x1+(1-a1)y1,...,xk+(1-ak)yk,ak+1xk+1+(1-ak+1)yk+1,...,anxn+(1-an)yn)
y’=(y1+(1-a1)x1,...,yk+(1-ak)xk,ak+1yk+1+(1-ak+1)xk+1,...,anyn+(1-an)xn)
(2) 变异算子均匀变异,在取值范围内,随机选取一个数
非均匀变异,
t 是当前演化代数,δ(t,y)函数返回[0,y]中的一个值,并且随t的增加而趋于0。其中或者,
其中r 是[0,1]上的一个随机数,T表示最大演化代数。b是确定非均匀度的一个参数,通常b的取值为2~5。
在优化中的应用
1.拒绝法
拒绝法抛弃所有在演化过程中产生的不可行染色体。
2.修复法
修复法是通过一个修复程序对不可行个体进行修复,使之成为可行个体。修复后的个体可以只用作评估,也可以用来替代原个体进入种群。
算子修正法是指设计专门的遗传算子来保持种群中个体的可行性。
惩罚函数法是一种常用的处理约束条件的方法。本质上它是通过惩罚不可行解,将约束问题转化为无约束问题。广义目标函数F(x)=f(x)+P(x),对非可行解x有p(x)>0,而对可行解x有p(x)=0,即不产生惩罚。
许多方法用函数fi(x)(i=1,2,...,m)来构造惩罚函数,fi(x)按照下面的方式度量对第i个约束的违背程度:
(1) 静态惩罚函数
静态惩罚函数具有下列形式:
其中ci(i=1,2...m)是预先指定的常数,称为惩罚系数,也可以根据解的优劣进行设置。d是一个常数,通常取d=1或2。(2) 动态惩罚函数
Joines和Houck提出了如下形式的动态惩罚函数:,其中t为当前演化代数,C,α,β都为正常数,通常取C=0.5,α=β=2。
(3) 自适应惩罚函数
自适应惩罚函数的目的是希望利用演化搜索中的反馈信息自适应地调节惩罚系数,从而避免对惩罚系数的不恰当设置。
由Bean和Hadj-Alouane提出的一种自适应惩罚函数的形式如下:其中λ(t)与演化代数有关.
譬如可取λ(t)=(Ct)α,并且在每一演化代按下列公式更新:
其中best(i)表示在第i代时上述广义目标函数值是最好的个体,β1,β2>1,且β1!=β2以避免循环,k是一个正常数。
- 演化计算笔记
- 演化计算会议
- 演化计算&演化硬件相关会议评价
- 网站技术笔记-演化
- 计算工具的演化经历
- 云计算简史与演化
- c++设计和演化 笔记
- 演化架构和紧急设计(笔记)
- 大型网站技术架构演化笔记
- 网站架构演化 -- 我的笔记
- 演化与升华——康立山教授谈演化计算领域的研究与应用
- 关于计算机类期刊投稿心得 & 演化计算&演化硬件相关会议评价
- 关于计算机类期刊投稿心得 & 演化计算&演化硬件相关会议评价
- 演化计算(实例:多峰函数最值)
- 算法的演化 . 简化与统一 . 计算数学之美
- 计算广告与数据[二]广告系统的演化
- 算法的演化 . 简化与统一 . 计算数学之美
- 云计算从服务到公共资源的演化之路
- asp.net 防止SQL注入攻击
- 堆和栈的区别(转过无数次的文章)
- 线程与进程及其区别
- MFC实现不规则形状窗口(CF登陆窗口)
- UpdatePanel中的GridView导出成Excel
- 演化计算笔记
- c++ 获取系统时间
- CreateEvent和SetEvent及WaitForSingleObject的用法
- <四>UITableView 自定义cell
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- MySQL InnoDB 锁机制
- settype函数和gettype函数
- iBATIS的使用
- java常见问题小结