下标从1开始!!
:相当于不等于!=
eps表示的是一个数可以分辨的最小精度,返回1.0和下一个精度最高的双精度浮点数的差值, 即2^(-52)。
Inf和-Inf分别代表正无穷和负无穷
y= 函数计算指定向量或矩阵的长度y。如果参数变量x是向量,则返回其长度;如果参数变量是非空矩阵,则length(x)与max(size(x))等价
矩阵取值
矩阵计算
取整函数
生成随机数函数
排序函数
按升序对 的元素进行排序。
复制函数
生成重复数矩阵
代表人物汇总
算法名 | 英文名 | 代表人物 |
---|---|---|
遗传算法GA | Genetic Algorithm | J.H.Holand |
差分进化算法DE | Differential evolution | Storn |
免疫算法IA | Immune algorithm | Burnet |
蚁群算法ACO | Ant Colony optimization | M.Dorigo,V.Maniezzo,A.Colorni |
粒子群算法PSO | Particle swarm optimization | James Kennedy,Rusell Eberhart |
模拟退火算法SA | Simulated annealing | Metropolis |
禁忌搜索算法TS | Tabu Search | Glover |
神经网络算法NN | Neural Newwork | McCulloch,Pitts,J.J.Hopfield |
算法特点汇总
算法名字 | 特点 | 优缺点 |
---|---|---|
遗传算法 | 群体搜索策略和简单的遗传算子 | 全局搜索能力强,局部搜索能力较弱,早熟,算法收敛性无法保证 |
差分进化算法 | ||
免疫算法 | ||
蚁群算法 | ||
粒子群算法 | 收敛速度快但容易陷入局部最优解 | |
模拟退火算法 | ||
禁忌搜索算法 | ||
神经网络算法 |
? 遗传算法模拟生物在自然环境中的遗传和进化的过程,从而形成自适应全局优化搜索算法,它借用了生物遗传学的观点,通过自然选择,遗传,变异等机制,实现各个个体适应性的提高
名词解释
遗传学术语 | 遗传算法术语 |
---|---|
群体 | 可行解集 |
个体 | 可行解 |
染色体 | 可行解的编码 |
基因 | 可行解编码的分量 |
基因形式 | 遗传编码 |
适应度 | 评价函数值 |
选择 | 选择操作 |
交叉 | 交叉操作 |
变异 | 变异操作 |
一种回放式随机采样方法。每个个体进入下一代的概率等于它的适应度值与整个种群中个体适应度值和的比例
轮盘赌选择法是最简单也是最常用的选择方法,在该方法中,各个个体的选择概率和其适应度值成比例,适应度越大,选中概率也越大。但实际在进行轮盘赌选择时个体的选择往往不是依据个体的选择概率,而是根据“累积概率”来进行选择。
例子:
该选择策略,是在交配产生的新子代和父代中,通过合并子代和父代,并且按照个体的适应度进行排序,选择适应度最佳的前 NP 个个体作为新的种群,达到更好的收敛的效果。
例子:
单点交叉通过选取两条染色体,在随机选择的位置点上进行分割并交换右侧的部分,从而得到两个不同的子染色体。
例子:
(空格处代表该处为随机生成的交叉点,往后的基因需要进行交换操作)
待交叉染色体: 11111 22222
? 33333 44444
交换后染色体: 11111 44444
? 33333 22222
君主交叉就是在种群内选择出最优个体,用最优个体作为君主染色体,并随机生成交叉位点,然后将君主染色体的特定位点上的基因遗传给子代染色体。
例子:
(中间空格分隔的基因代表随机生成的交叉位点,该位点上的基因需要遗传给子代染色体)
待交叉染色体: 101000 1 101
? 011001 0 011
交换后染色体: 101000 1 101
? 011001 1 011
通过变异率计算第i个个体的j个基因二进制位上会发生变异,即取反
描述:
对新种群内的所有染色体每个基因进行变异操作,先通过随机值和变异率去判断该基因是否会发生变异,再通过随机值在基因的取值范围内进行改变。
例子:
奇偶交叉GA1
君主交叉GA2
GA算法求解旅行商问题
差分演化算法是一种基于群体差异的启发式随机搜索算法,将问题的求解表示成"染色体"的适者生存过程,通过"染色体"群的一代代不断进化,包括复制、交叉和变异等操作,最终收敛到"最适应环境"的个体,从而求得问题的最优解或满意解。
? 种群数量Np:一般来说,种群数量越大,种群的多样性也就越大,寻优能力也就越强,但也会增加计算的难度。为了算法具有足够的不同的变异向量,Np >=4。一般取5D~10D。(D为变量维数)
? 变异算子F:变异算子 F∈[0, 2] 决定偏差向量的缩放比例。F过小,可能造成算法“早熟”,容易陷入局部最优;F过大,算法很难快速收敛到最优值。F=0.5通常是一个较好的初始选择。如果种群过早收敛,那么 F 或 Np 应该增大。
? 交叉算子CR:交叉算子 CR∈[0, 1]控制着一个试验向量参数来自随机选择的变异向量而不是原来的向量的概率。CR越大,发生交叉的概率越大。CR的一个较好选择是 0.1,但较大的 CR通常会加速收敛。为了尝试获得一个快速解,可以先尝试 CR=0.9 或 CR=0.1。
描述:
描述:
在 DE/rand/1/bin 的基础上,针对变异算子进行自适应计算。此自适应计算的方法可以基于变异代数,对于变异代数越高的变异操作,可以考虑减小变异算子,从而做到更好的收敛效果。
将变异算子中随机选择的三个个体Xb,Xm,Xw进行计算得变异种群数组
描述:
同时采用随机选择和概率遗传两种方法,随机选择通过随机选择一位基因进行变异替换,概率遗传通过概率值决定是否采用变异后的基因进行交叉。这样可以确保子代至少有一个基因来自变异。
二项式交叉
贪婪准则:对原种群和变异后种群每个个体一对一进行判断,取适应度更高的作为下一代种群
DE/rand/1/bin + 自适应变异
免疫算法是模仿生物免疫机制,结合基因的进化机理,人工构造出的一种新型智能优化算法。采用群体搜索策略,通过迭代计算,最终以较大的概率得到问题的最优解。相比于其他算法,免疫算法利用自身产生多样性和维持机制的特点,保证了群体多样性,克服了‘早熟’问题,可以得到全局最优解。具有自适应性,随机性并行性,全局收敛性,种群多样性等特点。
生物免疫系统 | 免疫算法 |
---|---|
抗原 | 优化问题 |
抗体(B细胞) | 优化问题的可行解 |
亲和度 | 可行解的质量 |
细胞活化 | 免疫选择 |
细胞分化 | 个体克隆 |
亲和度成熟 | 变异 |
克隆抑制 | 克隆抑制 |
动态维持平衡 | 种群刷新 |
前 NP / 2 个激励度高的个体指针对 NP/2 个激励度高的个体进行交叉和变异,目的是试图产生激励度更高的个体。随机生成指针对另一半的个体产生采用随机生成的方式,保证了种群中不断有新个体的加入。
对于实数编码,亲和度通常可以使用抗体向量间的欧氏距离来计算
抗体浓度公式
其中N为种群规模,S(abi, abj)表示抗体间的相似度,具体表示如下
相似度检查
若小于相似度阈值,则设为1
激励度算子就是抗体的综合评价,计算方式如下,二者取其一,其本质目的是为了共同考虑亲和度和浓度,从而筛选下一代的抗体
描述:
在需要变异的个体染色体中,通过添加一个扰动,从而使其偏离原来的位置落入原个体相邻的另外一个位置中,从而实现变异源领域的搜索。
实数编码算法变异计算
描述:
对于克隆产生的所有个体进行亲和度的计算,然后保留亲和度最高的个体,从而实现交叉操作。
例子:
蚁群算法是一种仿生学算法,是由自然界中蚂蚁觅食的行为而启发的。
在自然界中,蚂蚁觅食过程中,蚁群总能够按照寻找到一条从蚁巢和食物源的最优路径。蚂蚁在寻找食物的过程中往往是随机选择路径的,但它们能感知当前地面上的信息素浓度, 并倾向于往信息素浓度高的方向行进。信息素由蚂蚁自身释放,是实现蚁群内间接通信的物质。
由于较短路径上蚂蚁的往返时间比较短,单位时间内经过该路径的蚂蚁多,所以信息素的积累速度比较长路径快。因此,当后续蚂蚁在路口时,就能感知先前蚂蚁留下的信息,并 倾向于选择一条较短的路径前行。
这种正反馈机制使得越来越多的蚂蚁在巢穴与食物之间的 最短路径上行进。由于其他路径上的信息素会随着时间蒸发,最终所有的蚂蚁都在最优路径上行进。
采用的是轮盘赌的方式,其概率的计算是基于信息素和距离权重的,公式如下(![img](file:///C:\Users\79304\AppData\Local\Temp\ksohtml1764\wps2.png) 为信息素,![img](file:///C:\Users\79304\AppData\Local\Temp\ksohtml1764\wps3.png) 为距离权重)
信息素增量计算公式,其中 Q 信息素强度系数,![img](file:///C:\Users\79304\AppData\Local\Temp\ksohtml1764\wps4.png) 为第 k 只蚂蚁在本轮周游中所走过的路径的长度
信息素蒸发量计算公式,其中 ![img](file:///C:\Users\79304\AppData\Local\Temp\ksohtml1764\wps5.png) 表示路径上信息素的蒸发系数,![img](file:///C:\Users\79304\AppData\Local\Temp\ksohtml1764\wps6.png)表示信息素的持久性系数
蚁群算法解决旅行商问题
粒子群算法模拟鸟群的捕食行为,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解,在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。
第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,
另一个极值是整个种群找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小,即所求值
能量即目标函数,能量最低态即最优解,
温度是Metropolis算法的一个重要控制参数,开始时T大,可以接受较差恶化解;随着T减小,只能接受较好的恶化解了
根据Metropolis准则,粒子在温度T时趋于平衡的概率为 ,其中 为温度 时的内能,ΔE为其改变数, 为 常数。 准则常表示为
基本思想:
采用邻域选优的搜索方法,为了逃离局部最优解,算法必须能够接受劣解,也就是每一次得到的解不一定优于原来的解。
但是,一旦接受了劣解,算法迭代即可能陷入循环。为了避免循环,算法将最近接受的一些移动放在禁忌表中,在以后的迭代中加以禁止。即只有不再禁忌表中的较好解(可能比当前解差)才能接受作为下一代迭代的初始解。
随着迭代的进行,禁忌表不断更新,经过一定的迭代次数后,最早进入禁忌表的移动就从禁忌表中解禁退出。
tall:运行计时
mean:平均
gen:代数
fes:函数评价次数
trace:最优值
注意输出信息最终应该包括:
测试的函数名Fname算法参数取值,如D, Pc, Pm, NP,MAXG, MAXRUN等
表3最优函数值bestfun, 最差函数值worstfun,平均值meanfun,标准差stdfun,算法总体平均用时meantotaltimes(s)
表4首次获得至今最优解值对应的平均代数meanbestGen,对应的函数评价次数meanbestFEs,对应的用时meanbesttime(s),统计得到的成功次数success%
公司名称: 天富娱乐-天富医疗器械销售公司
手 机: 13800000000
电 话: 400-123-4567
邮 箱: admin@youweb.com
地 址: 广东省广州市天河区88号