多目标优化问题的求解(多目标优化问题求解方法研究)
大家好!今天让创意岭的小编来大家介绍下关于多目标优化问题的求解的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、学习多目标优化需要掌握哪些python知识
多目标优化
目标优化问题一般地就是指通过一定的优化算法获得目标函数的最优化解。当优化的目标函数为一个时称之为单目标优化(Single-
objective Optimization Problem,
SOP)。当优化的目标函数有两个或两个以上时称为多目标优化(Multi-objective Optimization Problem,
MOP)。不同于单目标优化的解为有限解,多目标优化的解通常是一组均衡解。
多目标优化算法归结起来有传统优化算法和智能优化算法两大类。
1. 传统优化算法包括加权法、约束法和线性规划法等,实质上就是将多目标函数转化为单目标函数,通过采用单目标优化的方法达到对多目标函数的求解。
2. 智能优化算法包括进化算法(Evolutionary Algorithm, 简称EA)、粒子群算法(Particle Swarm Optimization, PSO)等。
Pareto最优解:
若x*∈C*,且在C中不存在比x更优越的解x,则称x*是多目标最优化模型式的Pareto最优解,又称为有效解。
一般来说,多目标优化问题并不存在一个最优解,所有可能的解都称为非劣解,也称为Pareto解。传统优化技术一般每次能得到Pareo解集中的一个,而
用智能算法来求解,可以得到更多的Pareto解,这些解构成了一个最优解集,称为Pareto最优解。它是由那些任一个目标函数值的提高都必须以牺牲其
他目标函数值为代价的解组成的集合,称为Pareto最优域,简称Pareto集。
Pareto有效(最优)解非劣解集是指由这样一些解组成的集合:与集合之外的任何解相比它们至少有一个目标函数比集合之外的解好。
求解多目标优化问题最有名的就是NSGA-II了,是多目标遗传算法,但其对解的选择过程可以用在其他优化算法上,例如粒子群,蜂群等等。这里简单介绍一下NSGA-II的选择算法。主要包含三个部分:
1. 快速非支配排序
要先讲一下支配的概念,对于解X1和X2,如果X1对应的所有目标函数都不比X2大(最小问题),且存在一个目标值比X2小,则X2被X1支配。
快速非支配排序是一个循环分级过程:首先找出群体中的非支配解集,记为第一非支配层,irank=1(irank是个体i的非支配值),将其从群体中除去,继续寻找群体中的非支配解集,然后irank=2。
2. 个体拥挤距离
为了使计算结果在目标空间比较均匀的分布,维持种群多样性,对每个个体计算拥挤距离,选择拥挤距离大的个体,拥挤距离的定义为:
L[i]d=L[i]d+(L[i+1]m−L[i−1]m)/(fmaxm−fminm)
L[i+1]m是第i+1个个体的第m目标函数值,fmaxm 和 fminm是集合中第m个目标函数的最大和最小值。
3. 精英策略选择
精英策略就是保留父代中的优良个体直接进入子代,防止获得的Pareto最优解丢失。将第t次产生的子代种群和父代种群合并,然后对合并后的新种群进行非支配排序,然后按照非支配顺序添加到规模为N的种群中作为新的父代。
二、利用MATLAB求多目标线性函数优化问题,求高手告知!最好能给出代码
利用MATLAB求多目标线性函数优化问题,可以用
fgoalattain函数。求解方法:
1、建立自定义函数文件,其内容
function f = myfun(x)
f(:,1) = a*x(1)+b*x(2)+c*x(3)+d*x(4)
f(:,2) =e*x(1)+f*x(2)+g*x(3)+h*x(4)
2、建立自定义函数文件,其内容
function [c,ceq] =mycon(x)
ceq=1-(x(1)+x(2)+x(3)+x(4))
3、建立执行文件,其内容
x0=[x10,x20,x30,x40]
[x,f] = fgoalattain(myfun,x0,[],[],[],[],[],[],[0,0,0,0],[1,1,1,1],mycon)
三、pso的多目标优化
在多目标优化问题中,每个目标函数可以分别独立进行优化,然后为每个目标找到最优值。但是,很少能找到对所有目标都是最优的完美解,因为目标之间经常是互相冲突的,只能找到Pareto最优解。
PSO算法中的信息共享机制与其他基于种群的优化工具有很大的不同。在遗传算法(GA)中,染色体通过交叉互相交换信息,是一种双向信息共享机制。但是在PSO算法中,只有gBest(或nBest)给其他微粒提供信息,是一种单向信息共享机制。由于点吸引特性,传统的PSO算法不能同时定位构成Pareto前锋的多个最优点。虽然通过对所有目标函数赋予不同的权重将其组合起来并进行多次运行,可以获得多个最优解,但是还是希望有方法能够一次同时找到一组Pareto最优解。
在PSO算法中,一个微粒是一个独立的智能体,基于其自身和同伴的经验来搜索问题空间。前者为微粒更新公式中的认知部分,后者为社会部分,这二者在引导微粒的搜索方面都有关键的作用。因此,选择适当的社会和认知引导者(gBest和pBest)就是MO-PSO算法的关键点。认知引导者的选择和传统PSO算法应遵循相同的规则,唯一的区别在于引导者应按照Pareto支配性来确定。社会引导者的选择包括两个步骤。第一步是建立一个从中选取引导者的候选池。在传统PSO算法中,引导者从邻居的pBest之中选取。而在MO-PSO算法中更常用的方法是使用一个外部池来存储更多的Pareto最优解。第二步就是选择引导者。gBest的选择应满足如下两个标准:首先,它应该能为微粒提供有效的引导来获得更好的收敛速度;第二,它还需要沿Pareo前锋来提供平衡的搜索,以维持种群的多样性。文献中通常使用两种典型的方法:(1)轮盘选择模式,该方式按照某种标准进行随机选择,其目的是维持种群的多样性;(2)数量标准:按照某种不涉及随机选择的过程来确定社会引导者。
Moore最早研究了PSO算法在多目标优化中的应用,强调了个体和群体搜索二者的重要性,但是没有采用任何维持多样性的方法。Coello在非劣最优概念的基础上应用了一个外部“容器”来记录已找到的非支配向量,并用这些解来指导其它微粒的飞行。Fieldsend采用一种称为支配树的数据结构来对最优微粒进行排序。Parsopoulos应用了权重聚合的方法。Hu应用了动态邻域,并在此基础上利用扩展记忆,按词典顺序依次优化各个目标。Ray使用聚集机制来维持多样性,并用一个多水平筛来处理约束。Lu使用了动态种群策略。Bartz-Beielstein采用归档技术来提高算法性能。Li在PSO算法中采用NSGA-II算法中的主要机制,在局部最优微粒及其后代微粒之间确定局部最优微粒;并此基础上又提出一种新的算法,在适应值函数中使用最大最小策略来确定Pareto支配性。张利彪使用多个目标函数下各最优位置的均值来指导微粒飞行。Pulido使用多个子种群并采用聚类技术来求解多目标规划问题。Mahfouf采用加权聚合方法来计算微粒的适应值,并据此确定引导微粒的搜索。Salazar-Lechuga使用适应值共享技术来引导微粒的搜索。Gong提出微粒角度的概念,并使用最小微粒角度和微粒密度来确定局部最优和全局最优微粒。基于AER模型,Zhang提出一种新的智能PSO模型,来将种群驱向Pareto最优解集。Ho提出一种新的适应值分配机制,并使用寿命(Age)变量来保存和选择最优历史记录。Huang将CLPSO算法应用到多目标规划中。Ho提出另一种基于Pareto的与尺度无关的适应值函数,并使用一种基于正交试验设计的智能运动机制(IMM)来确定微粒的下一步运动。Branke系统研究了多种个体最优微粒的选择方法对MOPSO算法性能的影响。张勇考虑储备集更新策略在多目标PSO算法中的关键作用,提出一种两阶段储备集更新策略。
原萍提出一种分布式PSO算法—分割域多目标PSO算法(DRMPSO),并将其应用到基站优化问题。向量评价PSO算法(VEPSO)是一种受向量评价遗传算法(VEGA)的启发提出的一种算法,在VEPSO算法中,每个种群仅使用多个目标函数之一来进行评价,同时各种群之间互相交互经验。将每个种群分配到一台网络PC上,即可直接使VEPSO算法并行化,以加速收敛。Vlachogiannis应用并行VEPSO算法来确定发电机对输电系统的贡献。熊盛武利用PSO算法的信息传递机制,在PSO算法中引入多目标演化算法常用的归档技术,并采用环境选择和配对选择策略,使得整个群体在保持适当的选择压力的情况下收敛于Pareto最优解集。
由于适应值的计算非常消耗计算资源,为了减少计算量,需要减少适应值评价的次数。Reyes-Sierra采用适应值继承和估计技术来实现该目标,并比较了十五种适应值继承技术和四种估计技术应用于多目标PSO算法时的效果。
保持MOPSO中的多样性的方法主要有两种:sigma方法和ε-支配方法。Villalobos-Arias在目标函数空间中引入条块划分来形成聚类,从而保持多样性。
四、用matlab求解多目标优化问题的程序,如何对目标函数进行加权?
对各个目标值的权重进行计算,如有三个目标x1,x2,x3,每个目标的权重设分别为a(1),a(2),a(3),则最终的目标函数为a(1)*x1+a(2)*x2+a(3)*x3。具体权重怎么设置有很多种方法,也可以根据各个目标的重要性进行人为的设定,设定完后三个目标的权重之和要为1,即:a(1)+a(2)+a(3)=1.
以上就是关于多目标优化问题的求解相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
下面哪种方法不能进行多目标优化(以下哪种方式不能实现提高任务并行度的目标)