![](https://img-blog.csdnimg.cn/51a0322b355d4963a8ee79a2a6fe8328.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
启发式算法
文章平均质量分 79
启发式算法
Jason Yien
求道问术
展开
-
MMO/NSGAII
过程 非支配解 简单讲: 最小化问题,任意目标函数我都比你小;任意目标函数我都不比你大,某个目标函数我还比你更小 最大化问题,任意目标函数我都比你小;任意目标函数我都不比你小,某个目标函数我还比你更大 类比: 比烂,所有方面我都比你更烂;所有方面我都不比你更好,某些方面还比你更烂 比优秀,所有方面我都比你优秀;所有方面我都不比你差,某些方面还比你更优秀 非支配排序 f1,f2f_1, f_2f1,f2是两个目标函数 根据解被其他解支配的次数从低到高排序,最低是0 被0个解支配的解组成第1前沿原创 2022-05-01 21:43:39 · 348 阅读 · 0 评论 -
启发式算法/总结
总结 算法名称 启发 原理 特点 SA模拟退火算法 高温金属退火过程中分子的随机扰动范围随温度的降低而减少 1.如何逃离局部最优到达全局最优,在局部最优点一步走多远2.解的变化范围随温度的降低而减少+使用metropolis principle采纳不好的解 GA遗传算法 生物进化过程中染色体的选择(适者生存),交叉复制(交配)和变异(基因变异)的过程 0. 考虑了种群最优解,在种群最优解基础之上进行操作,期待产生更好的解1. 选择:适应能力强的个体被选择的概率大-适应度大的染色体被选择原创 2022-03-25 20:43:50 · 951 阅读 · 0 评论 -
启发式算法/人工鱼群算法
原理 人工鱼群算法模拟的鱼群在觅食时的行为 寻找:在视野范围内随机游动寻找更好的食物 追尾:往视野范围内食物更好的鱼游去 聚集:往视野范围内鱼群中心靠近(认为,鱼越多的地方食物越好) 移动:在视野范围内随机移动 代码 步骤: 初始化种群 开始觅食 寻找:在视野范围内寻找更好的食物+避免拥挤 追尾:向视野范围内食物更好的鱼游去+避免拥挤 聚集:向视野范围内小鱼群中心游去+避免拥挤 移动:视野范围内随机移动+避免拥挤 达到截止条件(迭代次数,截止适应度)退出 代码: import numpy as np i原创 2022-03-20 19:55:29 · 477 阅读 · 0 评论 -
启发式算法/人工蜂群算法
原理 介绍: limit:采蜜蜂蜜源被跟随蜂选择一定次数后蜜源质量仍然低于跟随蜂蜜源把这些采蜜蜂变成工蜂 num:固定保留+随机保留采蜜蜂之后剩余的采蜜蜂数量 分工: 工蜂负责采蜜 侦查蜂负责在田野里寻找蜜源(全局搜索) 采蜜蜂负责保留蜜源信息和招募跟随蜂 跟随蜂负责在它选择的采蜜蜂周围寻找新蜜源(局部搜索) 过程 开始大家都是工蜂 派出一部分工蜂作为侦查蜂,在田野里寻找蜜源 蜜源平均质量以上的侦查蜂变采蜜蜂,平均质量一下的侦查蜂变工蜂 采蜜蜂跳舞招募跟随蜂(从工蜂中派出一部分工蜂作为跟随蜂)在原创 2022-03-19 09:43:23 · 1037 阅读 · 0 评论 -
启发式算法/蚁群优化算法
原理 总述 环境:蚁群,信息素,食物,障碍物 觅食规则(方向选择):能见度方向寻找食物;往信息素浓度高的方向寻找食物;往没有障碍物的方向移动 能见度 能见度η\etaη:与城市距离成反比 ηa,b(t)=1da,b \eta_{a,b}(t)=\frac{1}{d_{a,b}} ηa,b(t)=da,b1 a,ba,ba,b:city_a,city_b ddd:distance ttt:第t次迭代 信息素 信息素相关公式: 信息素更新:τa,b(t+1)=(1−ρ)τa,b(t)+Δτa,b(t)原创 2022-03-13 17:01:36 · 695 阅读 · 0 评论 -
启发式算法/模拟退火
原理 简介 爬山算法: 总是将当前位置高度和前后位置高度对比,如果当前位置高度比前后位置都高,那么就认为到达了最优位置,然而他山更比此山高,这个位置很可能只是局部最优(一座小山) 好比你来到了世界上最矮的山-静山之巅,左右四顾已经没有比静山之巅更高的地方 静山位于山东寿光市西南8公里,孙家集街道云马家庄之间,海拔高度0.6米 进一步: 如果你站在静山之巅能够随性远行,离开局部最优,你会发现山东还有泰山,中国还有珠穆朗玛峰 模拟退火算法内部就含有这种随机性,在某一温度下的迭代过程中,分子的能量可能比上原创 2022-03-12 12:28:22 · 4117 阅读 · 0 评论 -
启发式算法/遗传算法
原理 简介 选择 根据适应度,选择染色体,作为交叉复制步骤的输入 轮盘赌算法: 介绍: 计算个体概率: p(xi)=fitness(xi)∑j=1Nfitness(xj) p(x_i)=\frac{fitness(x_i)}{\sum\limits_{j=1}^Nfitness(x_j)} p(xi)=j=1∑Nfitness(xj)fitness(xi) 计算累计概率: qi=∑j=1ip(xj) q_i=\sum\limits_{j=1}^ip(x_j) qi=j=1∑ip(xj)原创 2022-03-10 17:04:41 · 489 阅读 · 0 评论 -
启发式算法/差分进化算法
原理 介绍 介绍 种群初始化:初代染色体,[x_min,x_max)之间的符合均匀分布的随机数 变异:染色体(解向量)做差分运算;使用种群中三条不同的染色体结合变异因子做差分运算,形成变异染色体;考虑了种群染色体信息 交叉:变异染色体和原染色体交叉;使用交叉因子交叉染色体中的基因,形成交叉染色体;考虑了种群所有基因信息 选择:比较交叉染色体和原染色体选择适应度高的染色体作为下代染色体 建模 变异: vm(g+1)=xr1(g)+F⋅(xr2(g)−xr3(g))s.t. m≠r1≠r2≠r3原创 2022-03-06 19:07:54 · 454 阅读 · 0 评论 -
启发式算法/粒子群优化算法
原理 介绍 鸟群在区域内随机搜索食物,每只鸟都不知道食物在什么位置。因此,每只鸟朝着距离食物最近的鸟的周围飞去搜索食物 建模 粒子:鸟当做粒子 速度:粒子在空间中以一定速度飞行 位置:根据粒子的速度和之前位置得到下一个位置 适应度:个体最佳适应度,群体最佳适应度 粒子的当前位置:xi(k)=positioni(k)=[x1i x2i ... xni]T粒子最佳适应度位置:pi(k)=best_positioni(k)=[p1i p2i ... pn原创 2022-03-05 22:03:27 · 291 阅读 · 0 评论 -
启发式算法/灰狼优化算法
原理 代码 import random import numpy class GreyWolfOptimizer(object): """ 灰狼优化器 """ def __init__(self, lb, ub, dim, grey_wolf_num, iter_num): """ 初始化函数 构建解空间和求解者 :param lb: 解空间下界 :param ub: 解空间上界 :para原创 2022-03-04 12:04:24 · 1393 阅读 · 0 评论