精华内容
下载资源
问答
  • 进化算法

    千次阅读 2019-02-25 17:46:01
    进化算法的角度来讲,目前已有遗传算法(GA),粒子群算法(PSO),蚁群算法(ACO)等一系列算法用来解决多目标优化问题,但用的比较多的还是遗传算法,粒子群算法也有。 一、将进化算法应用于多目标优化时,必须解决两...

    从进化算法的角度来讲,目前已有遗传算法(GA),粒子群算法(PSO),蚁群算法(ACO)等一系列算法用来解决多目标优化问题,但用的比较多的还是遗传算法,粒子群算法也有。

    一、将进化算法应用于多目标优化时,必须解决两个主要问题:

    1. 如何分别完成适应度分配和选择,以引导搜索走向帕累托最优集。

    2. 如何保持种群的多样性,以防止过早收敛,实现分布良好的均衡前沿。

    通常,基于第一个问题,可以对不同的方法进行分类,这样就可以区分标准选择、聚合选择和Pareto最优选择。标准选择,基于特定标准在目标之间进行切换选择。

    1)标准选择方法类:向量评估遗传算法(VEGA)(Schaffer, 1984, 1985)
    在这里插入图片描述
    2)聚集选择方法类:Hajela和Lin(1992)提出的EA是基于适应度共享的聚集选择(Goldberg和Richardson, 1987),其中个体通过加权客观值的总和进行评估。由于加权求和法的简单性,其应用范围似乎还很广泛。
    3)一种基于精英帕累托的策略,即强度帕累托进化算法(SPGA) (Zitzler and Thiele, 1999)。

    展开全文
  • 简单扼要的介绍了进化算法与全局优化的关系,讲解了EAs、GAs、PSO等算法
  • 进化算法-源码

    2021-02-18 13:50:51
    进化算法
  • 进化算法包括遗传算法、进化程序设计、进化规划和进化策略等等,进化算法的基本框架还是简单遗传算法所描述的框架,但在进化的方式上有较大的差异,选择、交叉、变异、种群控制等有很多变化,进化算法的大致框图可...
  • 多目标优化的微分进化算法-多目标优化的微分进化算法.rar 多目标优化的微分进化算法
  • 主要包含:遗传算法,遗传规划,进化策略,进化规划。
  • 原理最近在学习演化算法(Evolutionary algorithm),粒子群算法和遗传算法已经很熟悉了,而差分进化算法我还没认真研究过,趁着暑期实训的机会打算把差分进化算法做个总结,最后再将这三种算法做个比较。差分进化算法...

    原理

    最近在学习演化算法(Evolutionary algorithm),粒子群算法和遗传算法已经很熟悉了,而差分进化算法我还没认真研究过,趁着暑期实训的机会打算把差分进化算法做个总结,最后再将这三种算法做个比较。

    差分进化算法是演化算法的一种,它的思想和遗传算法比较像,算法分为以下几个流程:

    初始化

    演化算法的初始化一般都是随机初始化,个体一般表示为一个多维向量[x1,x2,...,xn],xi∈[li,hi][x1​,x2​,...,xn​],xi​∈[li​,hi​],lili​和hihi​为第i维变量的范围。一般而言,对第i维而言,可以先产生一个0-1的随机数rr,然后xi=li+r∗(hi−li)xi​=li​+r∗(hi​−li​)。

    评估

    演化算法的个体的好坏是通过适应值函数来决定的,对于最小化问题而言,个体的适应值越小,则越有优势;最大化问题可以转换为最小化问题,毕竟maxf(x)=−min(−f(x))maxf(x)=−min(−f(x))

    成熟&变异

    差分进化算法的成熟和变异与遗传算法有些不同,对种群中的每一个个体,选出除该个体之外的另外三个个体a,b,c,新个体的产生方式如下:

    mutant=a+mut∗(b−c)mutant=a+mut∗(b−c) mut为参数,一般取值为0.5-2。

    新产生的个体还需要进行变异操作,对新个体的多维向量的每一维,以一定的概率进行变异得到新的值,变异的新数值一般是取[0,1]内的随机数,然后按照初始化中的操作将其变为范围位于[li,hi][li​,hi​]的值。变异之后,需要将该变异值与原个体值进行比较,取其中适应值更好的一个作为新个体值。再将该新个体值与种群中最优的个体进行比较,更新最优的个体值。

    结束

    进化算法的结束一般有两种,其一是设定循环的最大次数,达到最大次数后中止算法;其二是设定阈值,假定相邻的两次循环中最优个体的适应值差在阈值以内,则认为算法收敛并中止算法。最后的最优个体值即是本次算法求得的最优解。

    实现

    我利用python实现该算法并进行测试。代码如下:

    import numpy as np

    import matplotlib.pyplot as plt

    def de(fobj, bounds, mut=0.8, crossp=0.7, popsize=20, its=1000):

    dimensions = len(bounds)

    pop = np.random.rand(popsize, dimensions)

    min_b, max_b = np.asarray(bounds).T

    diff = np.fabs(min_b - max_b)

    pop_denorm = min_b + pop * diff

    fitness = np.asarray([fobj(ind) for ind in pop_denorm])

    best_idx = np.argmin(fitness)

    best = pop_denorm[best_idx]

    for i in range(its):

    for j in range(popsize):

    idxs = [idx for idx in range(popsize) if idx != j]

    a, b, c = pop[np.random.choice(idxs, 3, replace = False)]

    mutant = np.clip(a + mut * (b - c), 0, 1)

    cross_points = np.random.rand(dimensions) < crossp

    if not np.any(cross_points):

    cross_points[np.random.randint(0, dimensions)] = True

    trial = np.where(cross_points, mutant, pop[j])

    trial_denorm = min_b + trial * diff

    f = fobj(trial_denorm)

    if f < fitness[j]:

    fitness[j] = f

    pop[j] = trial

    if f < fitness[best_idx]:

    best_idx = j

    best = trial_denorm

    yield best, fitness[best_idx]

    def fitness(x):

    return np.sum(x**2)/len(x)

    bound=[(-100,100)]*20

    results=de(fitness,bound)

    x,f=zip(*results)

    plt.plot(f)

    plt.show()1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    上述代码参考自这位大佬,他的代码写的很简洁,我没有改动就直接拿上来了。

    最后的效果如下:

    效果

    一般而言,当问题的维度比较小时,大概几十维的时候,演化算法的效果还是很可以的;当问题的维度变得很大,一般是几百维甚至上千维德时候,演化算法的效果就变得比较差了,需要较多的迭代次数才能得到一个较好的解,这也是"维数灾难"的一种体现。

    展开全文
  • 约束优化进化算法

    2021-02-23 13:56:50
    约束优化进化算法
  • 点击上方“蓝字”关注我们了解更多精彩差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。它也是基于群体的启发式搜索算法,群中的每个个体对应一个解向量。差分进化算法的进化流程则与...
    385ebcbd647dc02f1584ed86fe99ae6f.png点击上方“蓝字”关注我们了解更多精彩

    5886bf40f3ce550712fe29d84de5c871.png

    差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。它也是基于群体的启发式搜索算法,群中的每个个体对应一个解向量。差分进化算法的进化流程则与遗传算法非常类似,都包括变异、杂交和选择操作,但这些操作的具体定义与遗传算法有所不同。本原理前文《智能优化算法 — 差分进化算法》

    不同的进化策略具有不同的效果,随着研究者有组织的研究,总结出了一套进化策略如

    表示DE/best/1/bin——>表示DE/最优值作为基数也可随机选取(rand)/1个矢量差/二项差求矢量,还有一种是指数矢量差未列出,如exp。后面解释基本一致。

    表示DE/best/1/bin

    表示DE/rand-to-best/1/bin,黄色部分是随机和最优值相结合选取作为基数。

    表示DE/best/2/bin

    表示DE/rand/2/bin·····等。

    1.种群初始化设置初始进化代数t=0,在优化问题的可行解空间内按下式,随机产生满足约束条件的NP个个体X构成初始种群,NP的选取一般在维数D的5-10倍之间。

    4202b6878852ca5c788998d67bea6461.png

    2.变异操作变异操作是DE算法中的关键步骤,也是其与其他进化算法的主要区别所在。DE算法最基本的变异成分是父代的差分矢量,每个差分矢量对应父代种群中两个不同个体的差向量,差分矢量定义见下式:

    178d3e93e048e11d216faea947b558b0.png

    其中,r1,r2,r3∈{1, 2, …,NP}为随机选取的互不相同的正整数,且r1,r2,r3与当前目标个体矢量索引号i不同,由此可见,DE算法的种群规模必须大于4,否则将无法进行变异操作。Vi(t+1)为目标个体矢量Xi(t)对应的变异个体矢量,Xr3(t)称为基向量,F∈[0, 2]为常数,是DE算法的主要控制参数之一,称为变异因子或缩放因子,控制差异矢量的缩放幅度,也即对基向量影响的大小。

    b6d33a456391c433e76b7cb0d177b1c5.png

    3.交叉操作为进一步增加种群多样性,DE 算法将目标矢量个体Xi(t)与其对应的变异个体Vi(t+1)进行交叉操作,产生试验个体,即目标个体的候选个体Ui(t+1)。为保证目标个体Xi(t)的进化,必须保证试验个体Ui(t+1)中至少有一维分量由变异个体Vi(t+1)贡献,而其他维分量则由交叉概率因子CR决定。由此试验个体中每一维分量uij(t+1)按下式。

    1910f19726af28febcb7744427b8ab70.png其中,xij(t)表示父代种群中目标个体矢量Xi(t)中的第j维分量,vij(t+1)为变异个体Vi(t+1)中的第j维分量,其中i=1,…,NP,j=1,…,D。rand(j)∈[0,1]为第j维分量对应的随机数。交叉概率因子CR∈[0,1]是DE算法的另一个主要控制参数,它决定了变异个体Vi(t+1)在生成的试验个体Ui(t+1)中所占的比例。k为第i个个体对应的系数,一般是从序列[1, 2, …,D]中随机选择的一个整数,用来确保候选个体Ui(t+1)中至少有一维分量来自变异个体Vi(t+1)。

    4.选择操作(优胜劣汰)

    8a7a0f0a1bf19280e37ac3b4a5e45e11.png 

    Eg:求解f=x1^2+x2^2+……+xn^2,n=2,求解f=f=x1^2+x2^2,最优值为(0,0),可行域区间取[-20,20],如下图:

    1d1f9f884695da008bf7c718033e2c9b.png

    采用DE/rand/1/bin的进化策略,得到如下结果,文末赋代码链接:

    a335e2d736036e76eb9d09b0123b860a.png 72c8d07765c458e6d9a2942e8764c084.png

    Eg:求解Schaffer函数为例,同样采用不同的进化策略将会得到不同的效果。

    ecd54d0d283348b9f4f9200ded88d229.pngc539f08441640c9cf8547580495a494a.png

    Schaffer函数的最优值为1,只不过从等高线可以看出解x有很多。运行后的 收敛曲线如下,代码赋在文末:

    1122596c8544fe0578261ddec574175b.png

    链接:https://pan.baidu.com/s/1BUNnvmawX6m_5Ueter5nNQ

    提取码:5u1n

    复制这段内容后打开百度网盘手机App,操作更方便哦,代码仅供学习借鉴非商业用途!如有问题可后台回复,小编将尽快回复您!

    参考书籍:

    《差分进化算法及高维多目标优化应用 肖婧

    — 往期精彩 —

    数据结构 — 线性栈

    2020-06-08

    da08345f0679944f2584eed8ba9f71b7.png

    数据结构 — 链接存储的栈

    2020-06-08

    245bc92465901f3acdc5495322fd9a73.png

    数据结构 — 链接存储的队列

    2020-06-08

    3de7908958b550bc06977f7cc17acfed.png

    数据结构 — 队列

    2020-06-08

    3de7908958b550bc06977f7cc17acfed.png

    c09f742e2b75901b9df12a751042e5d6.png

    展开全文
  • 该2017版软件集成了竞赛争冠系列进化算法和差分进化算法等。值得提起和推荐的是,其中改进竞赛争冠进化算法是近期本人的研究佳作。与现行优良的进化算法相比,极具竞争力。 它具有寻优速度快、对算法参数不敏感、...
  • 目前,研究人员和从业人员可以使用多种进化算法。 尽管这些算法差异很大,但实际上所有算法都有一个共同点:它们是手动设计的。 基本问题是“是否有任何算法可以自动设计进化算法?” 这个问题的更完整定义是...
  • 量子进化算法

    2018-09-09 21:49:44
    用量子进化算法解决路径规划问题,程序非常容易看懂。量子计算,量子算法初学者参考。
  • 为了提高量子进化算法的全局收敛性能, 基于协同进化的思想, 并结合扩展紧致遗传算法, 提出了协同进化扩展紧致量子进化算法(CECQEA). 该算法利用多粒度机制进行量子染色体的旋转, 并依据边缘积模块(MPM) 进行交叉和...
  • 多目标进化算法(MOEA)概述

    万次阅读 多人点赞 2017-06-06 16:54:59
    多目标进化算法系列 1. 多目标进化算法(MOEA)概述 2. 多目标优化-测试问题及其Pareto前沿 3. 多目标进化算法详述-MOEA/D与NSGA2优劣比较 4. 多目标进化算法-约束问题的处理方法 对于大多数多目标...

    多目标进化算法系列

    1. 多目标进化算法(MOEA)概述
    2. 多目标优化-测试问题及其Pareto前沿
    3. 多目标进化算法详述-MOEA/D与NSGA2优劣比较
    4. 多目标进化算法-约束问题的处理方法
    5. 基于C#的多目标进化算法平台MOEAPlat实现
    6. MOEAD中聚合函数等高线分析
    7. MOEAD中一种使解更均匀分布的聚合函数介绍

    对于大多数多目标优化问题,其各个目标往往是相互冲突的,因此不可能使得所有的目标同时达到最优,而是一组各个目标值所折衷的解集,称之为Pareto最优集。以下为一些基本定义(以最小化优化问题为例):

    Definition 1: 多目标优化问题(multi-objective optimization problem(MOP))
    F(x)=(f1(x),...,fm(x))s.t.  xΩF(x)=(f_1(x),...,f_m(x))\\ s.t. \; x\in \Omega

    Definition 2: Pareto支配(Pareto Dominance)
    x支配y,记为 x \prec y ,当且仅当i{1,2,...,m}\forall {i} \in \{1,2,...,m\},fi(x)fif_i(x) \leq f_i(y), 且j{1,2,...,m}\exists {j} \in \{1,2,...,m\}, s.t.   fj(x)<fj(y)\; f_j(x)<f_j(y)

    Definition 3: Pareto最优解(Pareto Optimal Solution)
    如果一个解xx^* 被称之为Pareto optimal solution, 当且仅当 xx^* 不被其他的解支配。

    Definition 4: Pareto 集(Pareto Set)
    一个MOP,对于一组给定的最优解集,如果这个集合中的解是相互非支配的,也即两两不是支配关系,那么则称这个解集为Pareto Set 。

    Definition 5: Pareto 前沿(Pareto Front)
    Pareto Set 中每个解对应的目标值向量组成的集合称之为Pareto Front, 简称为PF

    Definition 6:近似集(Approximation Set)
    一般来说,准确的Pareto Set是很难得到的,其近似集相比来说容易得到,因此一般我们只需用一定数量的Approximation Set 来表示PS 。

    Definition 7: 近似前沿(Approximation Front)
    Approximation Set 中每个解对应的目标值向量组成的集合称之为Approximation Front 。

    目前来说,由于多目标问题的复杂性,传统的数学方法不能取得较为理想的结果,而进化算法在多目标优化问题上得到了很广泛的应用,通过种群的不断进化迭代,进化算法能得到一个Approximation Set,那么我们如何来评价得到的Approximation Set的优劣呢,以下为两方面的评价标准。
    Definition 7:收敛性(Convergence)
    Approximation Front 与 PF 的贴近程度。

    Definition 8: 分布性(Distribution)
    描述Approximation Front 在PF 的分布情况,包括多样性(Diversity)和均匀性(Uniformity)。

    具体来说,常用的两个指标分别是IGD(Inverted Generational Distance) 和 HV(Hypervolume)。其中,IGD需要知道PF数据,且其具体计算为每个PF中的点到其最近的Approximation Front中的点的距离之和的均值。同时,需注意,这两种方法都能同时度量解的分布性和收敛性。

    现在来讲讲主流的多目标进化算法。
    从进化算法的角度来讲,目前已有遗传算法(GA),粒子群算法(PSO),蚁群算法(ACO)等一系列算法用来解决多目标优化问题,但用的比较多的还是遗传算法,粒子群算法也有。
    从多目标问题本身来说,主要分类如下:

    • 基于Pareto支配关系
    • 基于分解的方法
    • 基于Indicator方法

    先来介绍下基于遗传算法的多目标优化算法的一些基本参数:
    种群大小:每次迭代都需保证种群大小是一致的,且其大小应由初始化设定。
    交叉概率:用于衡量两个个体交叉的概率。
    突变率:交叉产生的解发生突变的概率。
    标准的遗传算法每次迭代都会将上一代的个体丢弃,虽然这符合自然规律,但对于遗传算法来说,这样效果不是特别好,因此,精英保留策略将上一代个体和当前个体混合竞争产生下一代,这种机制能较好的保留精英个体。
    基于Pareto支配关系
    最经典的方法是NSGA-II,该方法由Kalyanmoy Deb等人于2002年提出(A Fast and Elitist Multiobjective Genetic Algorithm:
    NSGA-II),该方法主要包括快速非支配排序,将每次交叉突变产生的解和前一代的解合并,然后利用非支配排序分层,其伪代码如下:


    快速非支配排序算法流程
    输入:父代子代个体构成的种群PP
    FOR each pPp\in P
    \quad Sp=S_p=\varnothing
    \quad np=0n_p=0
    \quad FOR each qPq\in P
    \qquad IF pqp\prec q
    \quad\qquad Sp=Sp{q}S_p=S_p\bigcup \{q\}
    \qquad ELSEIF qpq\prec p
    \quad \qquad np=np+1n_p=n_p+1
    \qquad ENDIF
    \quad ENDFOR
    \quad IF np==0n_p==0
    \qquad prank=1p_{rank}=1
    \qquad F1=F1{p}F_1=F_1\bigcup \{p\}
    \quad ENDIF
    ENDFOR
    i=1i=1
    WHILE FiF_i\neq \varnothing
    \quad Q=Q=\varnothing
    \quad FOR each pFip\in F_i
    \qquad FOR each qSpq\in S_p
    \quad \qquad nq=nq1n_q=n_q-1
    \quad \qquad IF nq==0nq==0
    \qquad \qquad qrank=i+1q_{rank}=i+1
    \qquad \qquad Q=Q{q}Q=Q\bigcup \{q\}
    \quad \qquad ENDIF
    \qquad ENDFOR
    \quad ENDFOR
    \quad i=i+1i=i+1
    \quad Fi=QF_i=Q
    ENDWHILE
    输出:F1,F2,...,FiF_1,F_2,...,F_i


    再就是把每层相加直到超过种群个体,也即满足l=argminli=1l>Nl=argmin_l{\sum_{i=1}^{l}}>N 并且有 i=1l1<N\sum_{i=1}^{l-1}<N, 再在第ll层基于拥挤距离来选择解,拥挤距离伪代码如下:


    拥挤距离计算方法
    输入:ii层的解Rt=FlRt=F_l
    r=Rtr=|Rt|
    for each jj,set Rt[j]distance=0Rt[j]_{distance}=0
    FOR each objective mm
    \quad Rt=sort(Rt,m)Rt=sort(Rt,m)
    \quad Rt[1]distance=Rt[r]distance=Rt[1]_{distance}=Rt[r]_{distance}=\infty
    \quad FOR j=2:(r1)j=2:(r-1)
    \qquad Rt[j]distance=Rt[j]distance+(Rt[j+1].mRt[j1].m)/(fmmaxfmmin)Rt[j]_{distance}=Rt[j]_{distance}+(Rt[j+1].m-Rt[j-1].m)/(f_m^{max}-f_m^{min})
    \quad ENDFOR
    ENDFOR


    具体来说,NSGA-II使用快速非支配排序来保证收敛性,并且利用拥挤距离来保证分布性。特别说下,在迭代后期,大多数解都是非支配的,也即大多数解都在第一层。
    当然,随着NSGA-II的提出,很多基于此的算法如雨后春笋般大量涌现,特别是在处理高维多目标优化问题时这种想法得到很多的应用,如VaEA,RVEA,NSGA-III等。
    同时,SPEA2也是基于Pareto支配关系的一种较为流行的算法(SPEA2: Improving the Strength Pareto Evolutionary Algorithm),该算法使用一个外部保存集来保存较为优秀的解,同时,对每一个解,利用其支配的解的数量和基于KNN的邻近解的距离来给每一个解打分,得分越小的解更优。

    基于分解的方法
    该方法第一次系统地被提出是在2007年由Qingfu Zhang等人提出(MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition),该方法将MOP分解为多个子问题,这样就可以优化每个子问题来求解一个MOP。一般而言,基于分解的方法首先需要得到一组均匀分布的参照向量来指导选择操作。在此,有必要说说产生参照向量的方法。目前对于低维多目标优化问题,常用方法为Das and Dennis于1998年提出的systematic approach(Normal-boundary intersection: A new method for generating the pareto surface in nonlinear multicriteria optimization problems).
    对于每个参照向量,其指导选择的过程需要比较解的优劣,这就需要用到一些标量函数来定量衡量一个解对于这个参照向量的适应度值。常用的标量函数包括:

    • Weighted Sum Approach
    • Tchebycheff Approach
    • penalty-based boundary intersection (PBI) approach

    Weighted Sum Approach
    min  gws(xλ)=i=1mλifi(x)min \; g^{ws}(x|\lambda)=\sum_{i=1}^m\lambda_if_i(x)
    其中λ\lambda是参照向量,其运行机理如下图:

    这里需要注意,标准的Weighted Sum Approach不能处理非凸问题,因为由上图可知,对于非凸问题,每个参照向量的垂线与其前沿不可能相切。对于这个问题,Rui Wang等人与2016年提出相对应的改进(Localized weighted sum method for many-objective optimization),主要是约束替换范围。

    Tchebycheff Approach
    min  gte(xλ,z)=max  {λi(fi(x)zi)}min\; g^{te}(x|\lambda,z^*)=max\; \{\lambda_i (f_i(x) - z_i^*)\}
    其中λ\lambda是参照向量,其运行机理如下图:

    标准的Tchebycheff Approach得到的解不均匀,为此Yutao Qi等人于2014年提出一种解决方法(MOEA/D with Adaptive Weight Adjustment),λ=(1λ1i=1m1λi,....,1λmi=1m1λi)\lambda^* =(\frac{\frac{1}{\lambda_1}}{\sum_{i=1}^m\frac{1}{\lambda_i}},....,\frac{\frac{1}{\lambda_m}}{\sum_{i=1}^m\frac{1}{\lambda_i}}),通过这个参照向量的转换即可得到分布均匀的解。

    penalty-based boundary intersection (PBI) approach
    min  gpbi(xλ,z)=d1+θd2min\; g^{pbi}(x|\lambda,z^*)=d_1+\theta d_2

    其中d1d_1d2d_2如上图所示。一般来说,θ=5\theta = 5是比较常用的,Yuan Yuan等人提出的θDEA\theta -DEA算法对θ\theta的取值有较为详细的讨论(A New Dominance Relation-Based Evolutionary Algorithm for Many-Objective Optimization)。
    基于分解的进化方法框架如下:


    MOEA/D算法流程

    NN个均匀分布的权重向量:λ1,λ2,...,λN\lambda_1,\lambda_2,...,\lambda_N // NN 是种群大小
    P0P_0:随机初始化的种群
    zz^*:初始化的理想点
    TT:每个权重向量的邻居的个数
    B(i)=(i1,i2,...,iT)B(i)=(i_1,i_2,...,i_T)是第ii个权重向量的TT个邻居的编号
    t=0t = 0
    WHILE t<MaxIterationt < MaxIteration
    \quad FOR(i=1,2,...,Ni=1,2,...,N)
    \qquad构造新解:B(i)B(i)中随机选择两个索引k,lk,l,再基于xk,xlx^k,x^l生成新解yy
    \qquad更新zz^*对于j=1,2,...,mj=1,2,...,m,如果zj<f)j(y)z_j^*<f)j(y),则用fj(y)f_j(y)取代zjz_j^*
    \qquad更新近邻解:对于每一个jB(i)j\in B(i),如果g(yλj,z)g(xjλj,z)g(y|\lambda_j,z^*)\leq g(x^j|\lambda_j,z^*),那么则用解yy取代xjx^j
    \quad ENDFOR
    \quadt=t+1t = t + 1
    ENDWHILE
    输出结果


    基于Indicator方法
    相比于IGD指标,Hypervolume更容易用来作为一个测度在种群进化过程中用来选择个体,如IBEA[8]以及其快速计算HV的HypE[9],因为IGD需要知道真实的Pareto Front数据,而这对于一个未知多目标优化问题是相当困难的,但有些算法是用当前的非支配解来近似Pareto Front,如AR-MOEA[10]。

    至于具体的多目标进化算法后续将会详细介绍。

    ps:文献[12]是我的硕士论文,里面有较为详细的综述类的描述,对多个经典算法以及一些遗传操作都有介绍,还有衡量指标也是。

    QQ交流群:399652146

    参考文献
    [1] K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, “A fast and elitist multiobjective genetic algorithm: NSGA-II,” IEEE Trans. Evol. Comput., vol. 6, no. 2, pp. 182–197, Apr. 2002
    [2] E. Zitzler, M. Laumanns, and L. Thiele, “SPEA2: Improving the strength Pareto evolutionary algorithm,” in Proc. Evol. Methods Design Optim. Control Appl. Ind. Prob., Athens, Greece, 2002, pp. 95–100.
    [3] Qingfu Zhang and Hui Li. Moea/d: A multiobjective evolutionary algorithm based on decomposition. IEEE Transactions on evolutionary computation, 11(6):712–731, 2007.
    [4] Yutao Qi, Xiaoliang Ma, Fang Liu, Licheng Jiao, Jianyong Sun, and Jianshe Wu. MOEA/D with adaptive weight adjustment. Evolutionary computation, 22(2):231–264, 2014.
    [5] Kalyanmoy Deb and Himanshu Jain. An evolutionary many objective optimization algorithm using reference- point-based nondominated sorting approach, part i: Solving problems with box constraints. IEEE Trans. Evolutionary Computation, 18(4):577–601, 2014.
    [6] Yuan Yuan, Hua Xu, Bo Wang, and Xin Yao. A new dominance relation-based evolutionary algorithm for many-objective optimization. IEEE Transactions on Evolutionary Computation, 20(1):16–37, 2016.
    [7] Indraneel Das and John E Dennis. Normal-boundary intersection: A new method for generating the pareto surface in nonlinear multicriteria optimization problems. SIAM Journal on Optimization, 8(3):631–657, 1998
    [8] E. Zitzler and S. Kunzli, "Indicator-based selection in multiob- jective search,"in Proceedings of the 8th International Conference on Parallel Problem Solving from Nature, 2004, pp. 832–842.
    [9] J. Bader and E. Zitzler, “HypE: An algorithm for fast hypervolume-based many-objective optimization,” Evolutionary Computation, vol. 19, no. 1, pp. 45–76, 2011.
    [10] Tian Y, Cheng R, Zhang X, et al. An Indicator Based Multi-Objective Evolutionary Algorithm with Reference Point Adaptation for Better Versatility[J]. IEEE Transactions on Evolutionary Computation, 2017, PP(99):1-1.
    [11] 张作峰. 基于分解的多目标进化算法研究[D]. 湘潭大学, 2013.
    [12] 基于分解思想的多目标进化算法研究. 湖南大学, 2018

    展开全文
  • 数据 + 进化算法 = 数据驱动的进化优化?进化算法 PK 数学优化 https://baijiahao.baidu.com/s?id=1600164518587031730&amp;wfr=spider&amp;for=pc 数据 + 进化算法 = 数据驱动的进化优化?进化算法 PK ...
  • 混合进化算法

    2018-08-13 22:11:08
    仅供学习,赚取积分,demon包括混合进化算法的代码,以及10多个算例
  • 自从上两篇博客详细讲解了Python遗传和进化算法工具箱及其在带约束的单目标函数值优化中的应用以及利用遗传算法求解有向图的最短路径之后,我经过不断学习工具箱的官方文档以及对源码的研究,更加掌握如何利用遗传...
  • 前言自从上两篇博客详细讲解了Python遗传和进化算法工具箱及其在带约束的单目标函数值优化中的应用以及利用遗传算法求解有向图的最短路径之后,我经过不断学习工具箱的官方文档以及对源码的研究,更加掌握如何利用...
  • 协同进化算法及其应用.pdf 协同进化算法及其应用.pdf 协同进化算法及其应用.pdf
  • 分解类进化算法

    2018-10-18 11:30:40
    分解类进化算法综述。通过该文档可以快速方便的了解到分解类进化算法的研究现状。
  • 协同协同进化算法研究
  • 差分进化算法

    2018-09-19 15:09:49
    差分进化算法寻找函数最小点以及用来优化其他算法,差分进化算法是一种随机的启发式搜索算法,简单易用,有较强的鲁棒性和全局寻优能力。
  • 差分进化算法是一类当前较有实力的实参随机优化算法,已成功解决很多实际问题.由于算法结构简单易于执行,控制参数少且有较强的搜索能力,差分进化算法吸引了众多进化算法学者的关注.本文概述了差分进化算法的基本概念,...
  • 进化算法.zip

    2019-08-31 13:21:07
    进化算法课件,包含遗传算法、GP、模式定理和积木块假设、正交遗传算法、组合优化及多目标优化。蚁群算法及粒子群算法。
  • 差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。是一种模拟生物进化的随机模型,通过反复迭代,使得那些适应环境的个体被保存了下来。它的进化流程则与遗传算法非常类似,都包括变异...
  • 进化算法之遗传算法

    2020-03-30 17:00:41
    进化算法进化算法,也被成为是演化算法(evolutionary algorithms,简称EAs),它不是一个具体的算法,而是一个“算法簇”。进化算法的产生的灵感借鉴了大自然中生物的进化操作,它一般包括基因编码,种群初始化...
  • 本文you清华大学硕士大神金天撰写,欢迎大家转载,不过请保留这段版权信息,对本文内容有疑问欢迎联系作者微信:jintianiloveu探讨,多谢合作~导语差分进化算法是一种寻优算法,提出时间比遗传算法,粒子群算法晚,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,051
精华内容 2,820
关键字:

进化算法