精华内容
下载资源
问答
  • 多目标遗传算法

    2018-12-01 15:56:14
    多目标遗传算法!运行效果明显,可用于算法对比,算法有效性已经过验证!
  • 多目标遗传算法优化多目标遗传算法优化多目标遗传算法优化
  • Matlab有关多目标遗传算法目标优化-多目标遗传算法.pdf 有关多目标遗传算法,,希望对大家有用。 Figure20.jpg Figure21.jpg
  • 基于NSGAII方法的多目标遗传算法程序-基于NSGA-II方法的多目标遗传算法程序,.rar 有偿代做,请联系QQ 1170906655 ,中介勿扰! 基于NSGA-II方法的多目标遗传算法程序,.rar
  • 多目标遗传算法(NSGA-III)matlab源代码 多目标遗传算法(NSGA-III)matlab源代码 多目标遗传算法(NSGA-III)matlab源代码 多目标遗传算法(NSGA-III)matlab源代码已验证
  • 针对多目标遗传算法存在的缺陷, 提出了基于改进混沌优化的多目标遗传算法. 引入基于改进Tent 映射的 自适应变尺度混沌优化方法细化搜索空间和高效寻优, 结合非支配排序的群体分级机制和精英保留等目标优化策...
  • 多目标遗传算法及MATLAB代码

    万次阅读 多人点赞 2020-01-03 23:12:49
    需要求一个比较复杂的矩阵,一般方法解不出来,故尝试用多目标遗传算法(Multiobjective Genetic Algorithm)求解。不是专门做研究遗传算法的,根据自己需求进行了简单学习,并做如下笔记。 i 遗传算法理解 遗传...

    需要求一个比较复杂的矩阵,一般方法解不出来,故尝试用多目标遗传算法(Multiobjective Genetic Algorithm)求解。不是专门做研究遗传算法的,根据自己需求进行了简单学习,并做如下笔记。

    i 遗传算法理解

    遗传算法属于一种搜索算法,通过不断试错,当结果满足提前设置精度时,停下来。理论上而言,只要计算时间足够长,计算能力足够大,穷举法就可以实现这一目标,并不需要这些听上去高大上的算法。关键问题是,如何快速收敛。遗传算法(Genetic algorithm)是一种从生物学获得灵感(往往运用最广的算法,核心都很简单,毕竟简单才方便推广),通过选择(selection)、交叉(crossover)和变异(Mutation)等操作让收敛速度加快,具体理论和操作前辈们早已论证,详见参考文献。类似算法还有模拟退火算法(Simulated Annealing)、粒子群算法(Paricle Swarm)等。

     

    ii 基本概念解释

    1. 概念

    染色体(chromosome):可能的解,编码化的解称为基因型(genetic type)解;实际的解称为表现型(pheno type)解

    种群数(population size):随机生成的初始解的个数;

    适值函数(fitness function): 评价染色体优劣性的函数,可以简单理解为与目标值的差异

    目标函数(objective function):限定函数,用于限制求解变量的函数

    决策变量(decision variables):所需要求解的变量,也就是求解问题的维数

    遗传操作(genetic_operator)包括:

    交叉(corssover):两个染色体之间部分基因互换;交叉率(crossover probability)交叉操作的概率。

    变异(mutation):单个染色体中部分基因变化,保持多样性;变异率(mutaiton probability)变异操作的概率。

    选择(selection):选择出适应性高的染色体,进行下一代操作。

    最大代数(maximum generaiton):进化循环次数,最大迭代次数。

     

    2. Pareto解或非支配解(non-dominated solution)

    最大值问题,对于解X,

    若不存在X1,使得F(X1)>F(X),则X为弱Pareto最优解,此时F(X1)可以等于F(X)

    若不存在X1,使得F(X1)>=F(X),则X为Pareto最优解,也称非劣解

     

    3. 多目标遗传算法种类

    本文讨论非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm II),NSGA-II(参考文献【2】和《网络模型与多多目标遗传算法》P165)

     

    iii NSGA-II求解步骤和MATLAB代码 

    首先,根据自己的问题定义目标函数(objective_description_function)和评价函数(evaluate_objective),然后运行主函数即可。主函数由如下几个函数组成。

    主函数  nsga_2 (i.e. 非支配排序遗传算法的求解步骤)

    • STEP 1: initialize_variables,随机生成染色体种群,随机解
    • STEP 2: non_domination_sort_mod,解的非支配排序
    • STEP 3: tournament_selection,精英策略的竞赛选择
    • STEP 4: genetic_operator,基因操作
    • STEP 5: replace_chromosome,替换第一代染色体,进入下一次迭代

     

    MATLAB代码

    参考Aravind Seshadri 发布的代码

    Aravind Seshadri (2020). NSGA - II: A multi-objective optimization algorithm, MATLAB Central File Exchange. Retrieved January 6, 2020.

    CSDN joekepler 有将上述部分代码做中文注释

    NSGA2 算法MATLAB完整代码 中文注释详解

    大家可以中英文对照参考着看,很好理解的。Aravind Seshadri写的相当详细,自惭形秽,我就不写了。

     

    【参考文献】

    1. (入门了解)  超详细的遗传算法(Genetic Algorithm)解析  
    2. Kalyanmoy Deb, et al., A fast and Elitist multiobjective genetic algorithm: NSGA-II 
    3. 雷英杰 等,MATLAB遗传算法工具箱及应用,西安电子科技大学出版社【其中很多函数已经被包装进GA,不能用了】
    4. [日] 玄光男,等,网络模型与多目标遗传算法,清华大学出版社
    5. [日] 玄光男,等,遗传算法与工程优化,清华大学出版社
    6. MATLAB Global Optimizaiton Toolbox 
    7. NSGA2 算法MATLAB完整代码 中文注释详解 
    8. Aravind Seshadri (2020). NSGA - II: A multi-objective optimization algorithm, MATLAB Central File Exchange. Retrieved January 6, 2020.
    展开全文
  • 网络模型与多目标遗传算法参考资料,内含《网络模型与多目标遗传算法(玄光男)》等经典文献。
  • 多目标遗传算法应用案例,简单易懂易上手。其中还有清晰的案例。
  • 在进化过程中的每一代,采用精英选择和个体迁移策略加快个目标的并行搜索,提出了控制Pareto最优解数量并保持个体多样性的有限精度法,同时还提出了多目标遗传算法的终止条件.数值实验说明所提出的算法能较快地找到一...
  • 如何开发多目标遗传算法。(其中附带了多目标遗传算法的程序)。以及遗传工具箱的应用!
  • 多目标遗传算法作为目前优化技术中较为常见的一种算法,其对于系统的操作参数进行优化,并且结合工况参数得到较为良好的优化结果,在我国煤化工业中有着较为广泛的应用。通过采用多目标遗传算法对煤炭气化过程中的控制...
  • 基于多目标遗传算法的LoRa参数匹配优化.pdf
  • NSGA-II 多目标遗传算法MATLAB实现,实测可以运行,可以参考
  • 多目标遗传算法代码

    2013-05-18 10:23:19
    多目标遗传算法,C语言描述,k.deb NSGA——II分层操作,拥挤距离法。非控制关系。
  • 为了能够提高地下铲运机的性能,深入地研究了多目标遗传算法在铲运机性能优化设计中的应用。分析了地下铲运机的主要性能参数;建立了地下铲运机目标优化的数学模型;然后,分析了改进多目标遗传算法的基本原理;利用...
  • 构建出光学薄膜的目标优化膜系,设计一种新型、高效的多目标遗传算法(DMOGA)用于模型的求解。该算法使用基于支配关系的选择策略、基于动态聚集距离削减非支配解集规模、动态调整算法运行参数等策略使得DMOGA不仅...
  • 多目标遗传算法工具箱,里面有相关的代码,可用于优化代理模型寻优,分享出来
  • 多目标遗传算法对测试函数进行测试,内涵测试函数代码,遗传算法代码,画出前端最优解图
  • 多目标遗传算法研究

    千次阅读 2019-02-17 10:27:49
    多目标遗传算法研究
                   

    第四章 多目标遗传算法研究

    §4.1 多目标优化算法简介

            实际的工程优化问题大多数是多目标优化问题,目标之间一般都是互相冲突的。多目标优化很早就得到了人们的重视,到目前已经发展了较多的求解多目标优化的方法。下面先介绍多目标优化最重要的关于非劣解以及非劣解集的定义。

    定义1 为多目标优化的可行域),不存在另一个可行点 ,使得 成立( 为目标数),且其中至少有一个严格不等式成立,则称 是多目标优化的一个非劣解(Noninferior Solution)。所有非劣解构成的集叫非劣解集(Noninferior Set)。

            一个多目标优化如果存在非劣解,往往存在无穷多个,形成非劣解集。在求解实际问题时,过多的非劣解是无法直接应用的。决策者只能选择令其最满意的一个非劣解作为最终解。求最终解主要有三类方法,一类是求非劣解的生成法,即先求出大量的非劣解,构成非劣解的一个子集,然后按照决策者的意图找出最终解,另一类为交互法,不先求出很多的非劣解,而是通过分析者与决策者对话的方式,逐步求出最终解。最后一类是事先要求决策者提供目标之间的相对重要程度,算法以此为依据,将多目标问题转化为单目标问题进行求解,该类方法也可以被认为是第一类方法的一个子方法,该类方法的难点在于,如何得到决策者真实的权重信息,本章将提出一种基于模糊逻辑的,能比较好反映决策者权重的多目标遗传算法。

            生成法主要有加权法﹑约束法﹑加权法和约束法结合的混合法以及多目标遗传算法。而交互法主要有用于求解线性约束多目标优化的Geoffrion法﹑求解线性多目标优化的逐步法(STEM)和Zionts-Wallenius方法以及代替价值交换法。

    作者认为相对而言生成法对决策者更有吸引力,首先目前没有比较好的多目标非线性优化的交互法,其次在只给决策者有限信息的前提下,往往要求决策者回答一些似是而非的问题,决策者在交互过程中将会很被动,也就是说交互法在某种程度上将问题的矛盾转嫁给了决策者。如果我们能求得非劣解的一个较好的近似解集,决策者就有了一个对问题比较全面的认识,从而能更好地进行决策和折衷。

    生成法中,常用的加权法有其固有的缺点,对于非劣解集的某些区域不可能求出。如图4.1就是一个两个目标的例子,箭头所指非劣解曲线凹的部分无法用加权法求出,出现该现象的原因是,加权法实际上是优化各个目标函数正线性组合而成的单个目标。即采用正加权系数计算的单目标最优必然是非劣解,而某些非劣解可能找不到一组正加权系数来进行求解。采用约束法可以避免该现象,但是计算代价过大,且过程很繁杂,应用前景也不乐观。利用多目标遗传算法求解非劣解集是最近几年新出现的一种求解思路,目前还处在研究

     

     

     

     

     

     

     

     

     


    4.1 加权法无法求出全部非劣解的例子

    的初始阶段,但是初步的计算结果非常令人振奋,故本章另一个研究重点就放在了多目标非劣解集算法的研究上。

    §4.2基于模糊逻辑的多目标遗传算法

    §4.2.1 模糊逻辑简介

            模糊逻辑(Fuzzy Logic)是一种新型的分类方法(分类是集合论的基本概念之一)。模糊逻辑模仿人类的智慧,引入隶属度的概念,描述介于“真”与“假”中间的过渡过程。在模糊逻辑中,事件不以集合的极限值分类,而是给每一个元素赋予一个介于01之间的实数,描述其属于一个集合的强度。具体的介绍可以参考文献【116】。

    §4.2.2 基于模糊逻辑的多目标遗传算法的思路和具体实现

            通过前面的介绍,我们知道采用模糊逻辑是一种很好的反应决策者主观意愿的工具。可以用模糊逻辑的方法反应决策者对于各个目标之间重要性的“权衡”信息。众所周知,遗传算法是依据个体的适应度进行,可以认为适应度就是决策者对于个体的综合评价,因而可以依据模糊逻辑的方法,直接构造决策者对于遗传个体的适应度的取值,即决策者对个体的综合评价。并以此作为遗传进化的依据和动力。下面是初步的算法步骤:

    1)分别求出各单目标的最优解;

    2)以(1)中的单目标的最优解和决策者协商,给出各个目标满意度的隶属函数;

    3)通过模糊逻辑表达决策者的想法,将各目标的满意度和个体的适应度联系起来;

    4)以(3)定义的适应度为基础采用遗传算法进行求解;

            之所以首先求解各个单目标的最优解,是希望能给决策者一个比较清晰的概念,即如果单独优化某个目标,可能的最优解是多少。有了这个信息,决策者才能给出令人置信的关于不同目标的满意度的隶属曲线。如果求解单目标优化的难度很大,也可以给出对单目标最优的一个估计值。

            具体的计算方法和模糊控制的计算方法基本相同,也分为模糊化(Fuzzification)﹑模糊推理(Fuzzy-Inference)和去模糊化(Defuzzification)三部分组成。在作者算法中,模糊推理采用的是最大最小法,而去模糊化采用的是面积重心法。详见参考文献【116】。

            下面以十杆桁架双目标优化为例详细叙述算法过程。

             参考图3.4,位移目标是指节点123﹑4的最大 向位移最小。这里最大 向位移指的是绝对值最大。

            这样我们就有了两个目标,即同时极小化位移和重量,可以建立比较简单的模糊逻辑如下:

    1)如果重量轻并且位移小那么设计的适应度高;

            显然上式同时对两个目标都提出了要求。而如果我们只关心重量则可以建立如下的模糊逻辑:

    2)如果重量轻不管位移大或小设计的适应度都应高;

            我们可以将模糊逻辑表示得更加精细,更符合决策者实际的想法:

    3-1)如果重量轻而且位移小那么设计的适应度很高;

    3-2)如果重量轻而且位移中等那么设计的适应度高;

    3-3)如果重量轻而且位移大那么设计的适应度一般;

    3-4)如果重量中等而且位移小那么设计的适应度高;

    3-5)如果重量中等而且位移中等那么设计的适应度中等;

    3-6)如果重量中等而且位移大那么设计的适应度低;

    3-7)如果重量大而且位移小那么设计的适应度中等;

    3-8)如果重量大而且位移中等那么设计的适应度低;

    3-9)如果重量大而且位移大那么设计的适应度很低;

            我们可以建立相应的表格表示以上逻辑:

    重量

    位移

    设计适应度

    Good

    Good

    Very High

    Good

    Normal

    High

    Good

    Bad

    Normal

    Normal

    Good

    High

    Normal

    Normal

    Normal

    Normal

    Bad

    Low

    Bad

    Good

    Normal

    Bad

    Normal

    Low

    Bad

    Bad

    Very Low

    4.1 模糊逻辑表

            采用模糊逻辑的方法实际上将目标函数映射到决策者的效用函数上,一般来说决策者的效用函数的精确描述是很困难的,目前多目标优化研究的一个重要领域就是如何合理构造决策者的效用函数。但是要决策者用带有模糊性的语言对自己的偏好加以描述却比较容易的。采用模糊逻辑的另外一个优点就是,决策者可以直观地观察到自己如果改变了模糊逻辑后,决策的变化。即求出的解始终是与决策者的真实想法接近的。在非劣解集范围较大的情况下,采用模糊逻辑可能是唯一实际可行的办法。

    §4.2.3 算例

            在上一章已经求得十杆问题的最轻重量为1598.93lb,相应的最大位移为7.171639 ,我们也可以求得最小位移为0.977492 ,相应的最大重量为15349.4496 。下面是是位移最小和重量最轻的设计点的比较。

     

    位移最小设计(

    最轻设计(

    1

    40.0000

    7.9396

    2

    40.0000

    0.1

    3

    40.0000

    8.0956

    4

    40.0000

    3.9613

    5

    0.1

    0.1

    6

    40.0000

    0.1

    7

    40.0000

    5.7554

    8

    40.0000

    5.5994

    9

    40.0000

    5.5994

    10

    40.0000

    0.1

    重量(

    15349.4496

    1598.93

    位移(

    0.977492

    7.171639

    4.2

            从上表可以很明显地看出,位移和重量是两个互相冲突的目标。

            在已知单目标极值的情况下我们采取一简单的模糊逻辑来确定个体的适应度,如果重量轻并且位移小那么适应度高。

            为简单起见,假定重量轻的隶属函数为线性的,如图4.2所示。

    1

    1598.93

    15349.4496

    重量

     

     

     

     

     

     

     

     

     


    4.2 重量轻的隶属函数

            假定位移小的隶属函数也为线性,如图4.4所示。

            个体适应度的取值范围定义为[0,1],适应度高的隶属函数也假定为线性,如图4.3所示。

            群体规模取100,代数为500代,复制概率为0.2,变异概率为0.01,随机运行十次得到如下结果:

    随机运行十次得结果如下:

    重量(

    位移(

    4567.742671

    2.288459

    4645.949119

    2.349095

    4688.605046

    2.378970

    4714.601695

    2.381532

    4887.722703

    2.460164

    展开全文
  • NSGA2多目标遗传算法

    2015-03-30 10:58:26
    多目标遗传算法,MATLAB编程。
  • 多目标遗传算法NSGA

    万次阅读 多人点赞 2017-05-01 22:19:47
    多目标遗传算法NSGA因所读的一篇论文中,为了解决目标的最优解问题,作者使用了一种称为NSGA-II(Improved Non-dominated Sorting Genetic Algorithm)的遗传算法,花了两天时间了解下,此为何物。其中NSGA以及NSGA-...

    多目标遗传算法NSGA

    因所读的一篇论文中,为了解决多目标的最优解问题,作者使用了一种称为NSGA-II(Improved Non-dominated Sorting Genetic Algorithm)的遗传算法,花了两天时间了解下,此为何物。其中NSGA以及NSGA-II的原理说明内容大部分取自2008年李莉的硕士论文《基于遗传算法的多目标寻优策略的应用研究》,故将此文定为转载。

    首先需要了解一种称之为‘dominate’的关系:
    设一个最大化目标函数为 F(x)=(F1(x),F2(x),...,Fk(x)) , 因为是一个多目标最优的问题,所以这里的目标数量 k2 。假定 x0 , x1 是解空间 X 中的两个解。如果i[1,k]使得 Fi(x0)>Fi(x1) 成立,并且 i[1,k] 时, Fi(x0)Fi(x1) 也成立,那么就称解 x0 占优(dominate) x1 。如果在所有的解空间 X 中找不到其他能占优x0的解,那么我们称解 x0 是一个efficient solution。该 x0 在空间中对应的点,称为 non-dominated point。个人感觉efficient solution其实就是一个Pareto最优解,即,不可能在使得至少一个人收益变得更好情况下而保证其他人的收益不变差。
    一般而言,在多目标优化的问题里, efficient solution往往不是唯一的,那么所有efficient solutions的集合,我们称为efficient set。相对应地,所有non-dominated points组成的点集,称为Pareto front(帕累托前沿)。

    题外话:一般多目标规划问题,其实都可以建模为找Pareto 最优解的问题。

    在一个庞大的解空间中找出所有的Pareto解(Pareto front)是一个NP-hard问题,因此一些有意思启发式算法就诞生了,而本文这里所讲的遗传算法(Genetic Algorithm)就是其中之一。

    NSGA(Non-dominated Sorting Genetic Algorithm)

    NSGA非支配排序遗传算法就是一种以基本遗传算法为基础的多目标寻优策略,因为其在多目标寻优领域的优势,成为人们的研究热点。

    下面将简要说明NSGA的原理[[1]]。
    NSGA主要由三部分构成,分别为:

    • 种群分层
      假定寻找最大化目标函数为 F(x)=(F1(x),F2(x),...,Fm(x)) ,种群规模为 n
      (1)设i=1
      (2)对于所有的 j=12n ji ,按照以上定义比较个体 xi 和个体 xj 之间的支
      配(dominate)与非支配(non-donimated)关系;
      (3)如果不存在任何一个个体 xj 优于 xi ,则 xi 标记为非支配个体;
      (4)令 i=1+1 ,转到步骤(2),直到找到所有的非支配个体。
      通过上述步骤得到的非支配个体集是种群的第一级非支配层,然后,忽略这些已经
      标记的非支配个体(即这些个体不再进行下一轮比较),再遵循步骤(1)一(4),就会得到第二
      级非支配层。依此类推,直到整个种群被分层。

    • 共享小生境技术
      为了在演化过程中保持群体的多样性,NSGA中引入了共享小生境技术。
      假设第 p 级非支配层上有np个个体,每个个体的虚拟适应度值为 fp
      (1)算出同属于一个非支配层的个体 xi 和个体 xj 的欧几里得距离:

      dij=l=1l=m(Fl(xi)Fl(xj)FulFdl)2

      其中 m 目标个数,Ful,Fdl分别为 Fl 的上界和下界。
      (2)共享函数(Sharing Function)是表示两个个体间关系密切程度的函数,两个个体 xi xj 间的共享函数 sh(dij) :
      sh(dij)=1(dijσshare)α0,dijσsharedij>σshare

      σshare 的值表示了 xi xj 群体的相似度。
      dij 表示个体 xi xj 间的欧式距离。
      α 用于对 sh(dij) 的调整。
      由此可见:
      sh(dij) 越大表明二者关系密切,即相似度高
      (3)然后我们计算出节点 i 与其他所有节点的累积相似度,称为共享度ci:
      ci=j=1npsh(dij),i=1,2,...,np

      (4)计算出个体 xi 的共享适应度值:
      fp(xi)=fp(xi)/ci

      同理我们可以计算出所有个体在小生境条件下的适应度,从而提高了种群在演化时的多样性,因为相似度高的种群,其适应度会得到适当地减小。

    整体NSGA工作流程如下图所示(至于遗传算法的具体内容,如果以后接触到,再做详细地了解):
    这里写图片描述

    展开全文
  • moead遗传算法matlab代码,包括很多目标测试函数。多目标
  • MATLAB多目标遗传算法

    2018-03-28 16:00:39
    NSGA非支配排序遗传算法就是一种以基本遗传算法为基础的多目标寻优策略,因为其在多目标寻优领域的优势,成为人们的研究热点。
  • 针对多目标遗传算法存在的局部搜索能力弱和易早熟的问题,采取理论分析方法,提出了一种新的基于混沌局部搜索的多目标遗传算法(MOGA-CLS)。对按支配关系形成的第1、2层Pareto解进行混沌搜索获得更优解,并采用基于聚集...
  • 考虑将最初用于峰优化的Species机制引入到多目标遗传算法中,通过借鉴现有目标算法的相关思想,设计并提出了一种新的Species 方法,包括基于Pareto最优性和拥挤度思想的Species种子确定策略及适应性的Species构造...

空空如也

空空如也

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

多目标遗传算法