高维MOEA、偏好MOEA、动态多目标
高维MOEANSGA-III
偏好MOEAg-domainanceg-NSGA-IIr-dominance角度信息偏好算法
动态多目标许多问题除了有很多属性,而且和时间相关,随着时间的变化,问题本身也在变化,这类问题称为动态多目标优化
作者声明1如有问题,欢迎指正!
多目标进化算法
基于分解的MOEA三类聚合函数
权重聚合方法是一种常用的线性多目标聚合方法
切比雪夫方法是一种非线性多目标聚合方法
基于惩罚的边界交叉方法
基于支配的MOEA
NSGA
NSGA-II
NPGA
SPEA
PESA
PAES
MGAMOO
MOMGA
EMOEA
mBOA
基于指标的MOEA
Hypervolume
SMS-EMOA
IBEA
作者声明1如有问题,欢迎指正!
多目标进化群体的多样性
小生境技术
基于预选择机制的小生境技术,只有子代个体的适应度优于其父代个体时,子个体才能替代其父个体。
基于排挤机制的小生境技术,根据相似性替代群体中的个体。设置一个排挤因子,在进化群体中选取规模为1/排挤因子的个体组成一个排挤子集,计算新产生的个体与排挤子集中成员之间的相似性,并用新产生的个体替代排挤子集中与其相似的个体。
基于共享机制的小生境技术。定义一个共享函数,它表示两个个体之间的相似程度,越相似函数值越大,反之越小。一个个体的共享度是该个体与群体中其他个体之间共享函数值的总和。
用信息熵保持进化群体的分布性用聚集密度方法保持进化群体的分布性
计算相似度
用影响因子
使用聚集距离
用网格保持进化群体的分布性聚类方法保持进化群体的分布性作者声明1如有问题,欢迎指正!
基于聚类的MODA
聚类算法
个人理解将父代和子代混合在一起,然后构造出一个DNSet 如果NDSet小于子代个数,就会随机产生差值个个体 如果大于就是降低其大小。
伪代码
作者声明1如有问题,欢迎指正!
庄家法则构造Pareto最优解集
非支配关系个人理解 非支配个体就是在决策空间或者目标函数中,该个体不支配任何个体。
庄家法个人理解 将个体从构造集中删除,然后拿该个体与其他个体比较,首先将该个体支配的所有个体删除,然后在剩余个体中判断有无支配该个体的,如果有则不并入非支配集,否则并入。
伪代码
作者声明1如有问题,欢迎指正!
构造Pareto最优解的简单方法
Deb的非支配排序方法假设有一组进化集群P,同时还有一个解集p‘,将每一个p放入p’中,如果存在p‘中解被p支配则删除p’解,如果p’中存在一个个体支配p,则删除p。
伪代码
算法时间复杂度 o(n2)用排除法构造非支配集进化过程中每个个体X依次与非支配集NDSet以及构造集DNSet1中的个体Y比较如果X支配Y,将Y从NDSet1中删除。如果X不被任何一个个体所支配,则将X并入NDSet中。
伪代码
作者声明1如有问题,欢迎指正!
多目标进化算法 基础
适应度评价为了体现适者生存的原则,通常用适应度来表示其优劣,适应度越高,生存能力越强。必须建立适应度函数与目标函数的映射,并且目标优化的方向应向适应度增大的方向进行
举例
要求min g(x) 即g(x)的最小值 则其适应度函数应该为
其中Cmax 为一个输入值或者 理论最大值 或者随着迭代次数而不断的变化。
遗传操作
选择算子选择算子从当前进化群体中选择适应度高的个体,放入交配池中。
交叉算子交叉算子就从交配池中随机取出一个个体进行交配,根据位串长度 随机选择一个点或者多个点作为交叉位置,根据交叉概率实施交叉操作,配对个体在交叉点位置进行互相交换。
变异算子为了防止早熟收敛,引入变异算子,在二进制编码中 变异算子就是按照变异概率,反正等位基因的二进制字符串来进行实现的。例如将0 1互换。
支配关系决策变量之间的支配关系(x)个人理解 支配关系就是被支配的解的目标值小于等于支配解的目标值,且至少存在一个目标的被支配解的目标值小于支配解的目标值。
目标空间的支配关系(f)个人理解 与决策变量支配关系相同。
强支配关系与弱支配关系个人理解图2.2 由于x/*是固定的,随着X的变 ...
Leetcode 2两数相加
思路按照链表的顺序去取出val 进行相加 如果链表长度不同则后补0相加后进行进位判断
代码123456789101112131415161718192021222324252627282930313233343536373839/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ...
粒子群算法 PSO
粒子群算法粒子群算法(PSO),在PSO中,每个优化问题的潜在解都是搜索空间的一只鸟,被称为粒子,所有的粒子都有一个由适应度函数决定的适值,每个粒子还有一个速度决定它们“”飞行“”的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索,整个过程大致为,PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代的过程中,粒子通过跟踪两个极值来更新自己:第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个解是全局极值假设初始目标搜索空间(初始种群位置) D 维 N 列 X i = ( x i 1 , . . . x i D ) i = 1 , . . . N 第 i 个粒子的飞行速度记为 V i = ( v i 1 , . . . v i D ) i = 1 , . . . N 第 i 个粒子的最优位置个体最优记为 P b e s t = ( p i 1 , . . . p i D ) i = 1 , . . . N 全局最优记为 g b e s t = ( ...
模拟退火算法
模拟退火算法
其最终目的是选取最大值
爬山算法所谓爬山算法就是先随机找个一个点,然后计算其y值,然后随机给一个领域 在其左右邻域找到一个点 再次计算其y值,然后进行比较,找到最大的 循环下去即可。但是可能会出现局部最优解比如在上图中如果领域较小则会出现最优解在(0,7)附近。在其基础上出现了模拟退火算法。
模拟退火算法为了解决局部最优解,当领域中选择的值求出的y小于原y时,增加一个概率判断是否选择其为一个解 再去迭代它。概率的选择有很多形式我们采用玻尔兹曼常数退火算法p = e − △ f k T = e − f ( x 1 ) − f ( x 2 ) k T 注: k 为下降速度, T 为温度 f ( x 1 ) − f ( x 2 ) 为两个 y 之间的差值 \huge p=e^{-\frac{\triangle f}{kT}}=e^{-\frac{f(x1)-f(x2)}{kT}} \newline 注:k为下降速度,T为温度 \newline \qquad f(x1)-f(x2)为两个y之间的差值p=e−kT△f=e− ...