HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    算法优化问题(算法优化问题有哪些)

    发布时间:2023-04-22 02:15:30     稿源: 创意岭    阅读: 64        

    大家好!今天让创意岭的小编来大家介绍下关于算法优化问题的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    算法优化问题(算法优化问题有哪些)

    一、多目标优化算法

    姓名:袁卓成;学号:20021210612; 学院:电子工程学院

    转自 https://blog.csdn.net/weixin_43202635/article/details/82700342

    【嵌牛导读】 本文介绍了各类多目标优化算法

    【嵌牛鼻子】  多目标优化, pareto

    【嵌牛提问】 多目标优化算法有哪些?

    【嵌牛正文】

    1)无约束和有约束条件;

    2)确定性和随机性最优问题(变量是否确定);

    3)线性优化与非线性优化(目标函数和约束条件是否线性);

    4)静态规划和动态规划(解是否随时间变化)。

    使多个目标在给定区域同时尽可能最佳,多目标优化的解通常是一组均衡解(即一组由众多 Pareto最优解组成的最优解集合 ,集合中的各个元素称为 Pareto最优解或非劣最优解)。

    ①非劣解——多目标优化问题并不存在一个最优解,所有可能的解都称为非劣解,也称为Pareto解。

    ②Pareto最优解——无法在改进任何目标函数的同时不削弱至少一个其他目标函数。这种解称作非支配解或Pareto最优解。

    多目标优化问题不存在唯一的全局最优解 ,过多的非劣解是无法直接应用的 ,所以在求解时就是要寻找一个最终解。

    (1)求最终解主要有三类方法:

    一是求非劣解的生成法,即先求出大量的非劣解,构成非劣解的一个子集,然后按照决策者的意图找出最终解;(生成法主要有加权法﹑约束法﹑加权法和约束法结合的混合法以及多目标遗传算法)

    二为交互法,不先求出很多的非劣解,而是通过分析者与决策者对话的方式,逐步求出最终解;

    三是事先要求决策者提供目标之间的相对重要程度,算法以此为依据,将多目标问题转化为单目标问题进行求解。

    (2)多目标优化算法归结起来有传统优化算法和智能优化算法两大类。

    传统优化算法包括加权法、约束法和线性规划法等,实质上就是将多目标函数转化为单目标函数,通过采用单目标优化的方法达到对多目标函数的求解。

    智能优化算法包括进化算法(Evolutionary Algorithm, 简称EA)、粒子群算法(Particle Swarm Optimization, PSO)等。

    两者的区别——传统优化技术一般每次能得到Pareo解集中的一个,而用智能算法来求解,可以得到更多的Pareto解,这些解构成了一个最优解集,称为Pareto最优解(任一个目标函数值的提高都必须以牺牲其他目标函数值为代价的解集)。

    ①MOEA通过对种群 X ( t)执行选择、交叉和变异等操作产生下一代种群 X ( t + 1) ;

    ②在每一代进化过程中 ,首先将种群 X ( t)中的所有非劣解个体都复制到外部集 A ( t)中;

    ③然后运用小生境截断算子剔除A ( t)中的劣解和一些距离较近的非劣解个体 ,以得到个体分布更为均匀的下一代外部集 A ( t + 1) ;

    ④并且按照概率 pe从 A ( t + 1)中选择一定数量的优秀个体进入下代种群;

    ⑤在进化结束时 ,将外部集中的非劣解个体作为最优解输出。

    NSGA一II算法的基本思想:

    (1)首先,随机产生规模为N的初始种群,非支配排序后通过遗传算法的选择、交叉、变异三个基本操作得到第一代子代种群;

    (2)其次,从第二代开始,将父代种群与子代种群合并,进行快速非支配排序,同时对每个非支配层中的个体进行拥挤度计算,根据非支配关系以及个体的拥挤度选取合适的个体组成新的父代种群;

    (3)最后,通过遗传算法的基本操作产生新的子代种群:依此类推,直到满足程序结束的条件。

    非支配排序算法:

    考虑一个目标函数个数为K(K>1)、规模大小为N的种群,通过非支配排序算法可以对该种群进行分层,具体的步骤如下:

    通过上述步骤得到的非支配个体集是种群的第一级非支配层;

    然后,忽略这些标记的非支配个体,再遵循步骤(1)一(4),就会得到第二级非支配层;

    依此类推,直到整个种群被分类。

    拥挤度 ——指种群中给定个体的周围个体的密度,直观上可表示为个体。

    拥挤度比较算子:

    设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地,所有的鸟都不知道玉米地到底在哪里,但是它们知道自己当前的位置距离玉米地有多远。那么找到玉米地的最佳策略,也是最简单有效的策略就是是搜寻目前距离玉米地最近的鸟群的周围区域。

    基本粒子群算法:

    粒子群由 n个粒子组成 ,每个粒子的位置 xi 代表优化问题在 D维搜索空间中潜在的解;

    粒子在搜索空间中以一定的速度飞行 , 这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整下一步飞行方向和距离;

    所有的粒子都有一个被目标函数决定的适应值(可以将其理解为距离“玉米地”的距离) , 并且知道自己到目前为止发现的最好位置 (个体极值 pi )和当前的位置 ( xi ) 。

    粒子群算法的数学描述 :

    每个粒子 i包含为一个 D维的位置向量 xi = ( xi1, xi2, …, xiD )和速度向量 vi = ( vi1, vi2,…, viD ) ,粒子 i搜索解空间时 ,保存其搜索到的最优经历位置pi = ( pi1, pi2, …, piD ) 。在每次迭代开始时 ,粒子根据自身惯性和经验及群体最优经历位置 pg = ( pg1, pg2, …, pgD )来调整自己的速度向量以调整自身位置。

    粒子群算法基本思想:

    (1)初始化种群后 ,种群的大小记为 N。基于适应度支配的思想 ,将种群划分成两个子群 ,一个称为非支配子集 A,另一个称为支配子集 B ,两个子集的基数分别为 n1、n2 。

    (2)外部精英集用来存放每代产生的非劣解子集 A,每次迭代过程只对 B 中的粒子进行速度和位置的更新 ;

    (3)并对更新后的 B 中的粒子基于适应度支配思想与 A中的粒子进行比较 ,若 xi ∈B , ϖ xj ∈A,使得 xi 支配 xj,则删除 xj,使 xi 加入 A 更新外部精英集 ;且精英集的规模要利用一些技术维持在一个上限范围内 ,如密度评估技术、分散度技术等。

    (4)最后 ,算法终止的准则可以是最大迭代次数 Tmax、计算精度ε或最优解的最大凝滞步数 Δt等。

    二、电力系统优化算法

    电力系统优化算法实际应用介绍

    优化问题可以分成凸(convex)问题和非凸问题。凸问题都是可以找到最优解的,只是算力问题,小问题可以用现有的解法器非常快的找到最优解,大型问题则一般要用一些定制的分解算法。非凸问题则要具体情况具体讨论,如果只是带有整数变量的话一般也可以找到不错的解。

    电力系统这边常用的优化就是线性规划(LP),二次规划(QP),和整数规划(MIP)。LP和QP常用在解最优调度上,MIP用来做日前机组组合(unit commitment)。这几种问题都是有很成熟的算法,比如多边形法(simplex)和branch&bound法,和解法器(solver),比如Gurobi和Cplex。此外还有一种电力系统专有的问题是交流潮流计算(ACOPF),属于非凸问题,可以用梯度下降法找到次优解,而工业界这些年来也找到了许多启发式算法来提高解的速度和质量。最近10年以Caltech Steven Low为代表的网络控制研究领域也提出了一些ACOPF的凸优化近似解法,比如用到了正定规划(semi-definite programming),只是假设具有局限性,目前看来并不被工业界认可。

    下面再讲一下优化分解算法(decomposition),电力领域的优化研究主要就是建模和分解大型优化问题,问题的维度主要体现在空间维度(spatial),时间维度(temporal),和不确定性上(uncertainty)。常用的分解算法有primal / dual分解法,这个可以参考斯坦福Stephen Boyd的课件,思路就是利用问题本身的结构通过固定偶和变量(coupling variable)把一个大问题分拆成可以独立平行解决的小问题(subproblem),再把小问题的结果汇总起来update coupling variable(使用梯度/次梯度法,或者平面切割法),以此循环来解决整个问题(master problem),在与平行计算的结合基础上通常可以带来级数级别的速度提升,比如原来需要数小时甚至数日才能解决的问题通过分解+平行计算,可以在数分钟内解决。这类分解算法常用于空间分拆和情景分拆(scenario decomposition)。

    另一种常用的分解算法就是动态规划(dynamic programming),用来解决长时间尺度下带有不确定性的优化控制问题,比如水电规划的经典算法就是stochastic dual dynamic programming。这方面Gatech的Alex Shapiro写过一些不错的资料。最后从学习上在搞懂一些基本的经典优化算法远离比如梯度下降和多边形法外,答主觉得优化在电力方面的应用主要体现在对primal和dual问题之间关联的以及KKT condition的理解,比如primal约束对应的dual是该约束的sub-gradient也就是该约束的price,很多优化分解问题都可以通过这种对这种关系的理解来解决。另一个难点在于对multi-stage decision和uncertainty的理解,比如要理解nonanticipatory control和model predictive control的区别,这个问题甚至可以延伸到当前大火的机器学习上(优化控制上的approximate dynamic programming),这方面答主看过不少资料,感觉还是Shapiro写的最好。

    三、算法部署优化这一块是什么

    算法部署优化这一块是算法优化是指对算法的有关性能进行优化。算法优化是指对算法的有关性能进行优化,如时间复杂度、空间复杂度、正确性、健壮性。由于算法应用情景变化很大,算法优化可以使算法具有更好泛化能力。算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

    四、优化算法笔记(七)差分进化算法

    (以下描述,均不是学术用语,仅供大家快乐的阅读)

    差分进化算法(Differential Evolution Algorithm,DE)是一种基于群体的进化算法,它模拟了群体中的个体的合作与竞争的过程。算法原理简单,控制参数少,只有交叉概率和缩放比例因子,鲁棒性强,易于实现。

    差分进化算法中,每一个个体的基因表示待求问题的一个候选解。每次迭代将先进行变异操作,选择一个或多个个体的基因作为基,然后选择不同的个体的差分来构成差分基因,最后将作为基的基因与差分基因相加来得出新的个体。交叉操作将新的个体将于父代的对应个体交叉,然后进行选择操作,比较交叉后的个体与父代的对应个体,选择较优的个体保留至下一代。在迭代完成之后将选择种群中最优个体的基因作为解。

    差分进化算法可以算是我所使用过的优化算法中大魔王级别的算法,虽然它每个方面都没有强到离谱,但是综合起来的效果好于大多数算法。它就像一个每个科目都能考到90分(百分制)的学生,虽然没门课都不是最优秀的,但是论综合,论总分,它有极大的概率是第一名。

    在我研究优化算法的小路上,我的目标就是找到一个能打败大魔王或是能在大多数方面压制魔王的算法。

    这次的主角就选魔王军吧(或者蚁王军,为了与蚁群算法区别还是叫魔王军吧),个体则称之为魔王兵。

    魔王兵的能力取决于它们的基因,它们可以根据环境或者需要改变自己的基因使得自己更加强大,更方便的处理问题,问题的维度与基因维度相同。

     

    表示第i个魔王兵在进化了第t次后的基因,该个体有D位基因。

    与遗传算法同为进化算法的差分进化算法,它们的操作(算子)也都非常相似的,都是交叉,变异和选择,流程也几乎一样(遗传算法先交叉后变异,差分进化算法先变异后交叉)。

    说到差分进化算法中的变异,我就想到一句论语 “三人行,必有我师焉。择其善者而从之,其不善者而改之。” ,其实这句论语已经向我们说明了差分进化算法的整个流程:

    “三人行,必有我师焉”——变异,交叉。

    “择其善者而从之,其不善者而改之”——选择。

    差分进化算法中,当一个魔王兵变异时,它会先找来3个小伙伴,当然是随机找来3个小伙伴,避免同化。在一个小伙伴的基因上加上另外两个小伙伴基因之差作为自己的目标基因。其变异公式如下:

    表示第i个魔王兵找到了编号为r1、r2和r3的三个魔王兵,当然了i、r1、r2、r3为互不相同的整数,F为缩放比例因子,通常 ,一般取F=0.5。 为第i个魔王兵交叉后的目标基因图纸,不过这是个半成品,再经过交叉后,目标基因图纸才算完成。

    其实现在我们已经有了5个基因图纸了 ,接下来将进行交叉操作。由于变异操作,差分进化算法的种群中个体数至少为4,即魔王军中至少有4个小兵。

    交叉操作中,魔王兵i会将目标基因图纸 进行加工得到 ,加工过程如下:

    其中 。 为交叉概率,其值越大,发生交叉的概率越大,一般取 。 为{1,2,…,D}中的随机整数,其作用是保证交叉操作中至少有一维基因来自变异操作产生的基因,不能让交叉操作的努力白费。

    从公式上可以看出交叉操作实际上是从变异操作得出的基因图纸上选择至少一位基因来替换自己的等位基因,得到最终的基因图纸。

    选择操作相对简单,魔王兵i拿到了最终的基因图纸 ,大喊一声,进化吧,魔王兵i的基因改变了。它拿出了能力测量器fitness function,如果发现自己变强了,那么就将基因 保留到下一代,否则它选择放弃进化,让自己还原成 。

    实验又来啦,还是那个实验 ,简单、易算、好画图。

    实验1 :参数如下

    图中可以看出在第20代时,群体已经非常集中了,在来看看最终得出的结果。

    这结果真是好到令人发指,恶魔在心中低语“把其他的优化算法都丢掉吧”。不过别往心里去,任何算法都有优缺点,天下没有免费的午餐,要想获得某种能力必须付出至少相应的代价。

    实验2:

    将交叉率CR设为0,即每次交叉只选择保留一位变异基因。

    看看了看图,感觉跟实验1中相比没有什么变化,那我们再来看看结果。

    结果总体来说比实验1好了一个数量级。为什么呢?个人感觉应该是每次只改变一位基因的局部搜索能力比改变多位基因更强。下面我们将交叉率CR设为1来看看是否是这样。

    实验3:

    将交叉率CR设为1,即每次交叉只选择保留一位原有基因。

    实验3的图与实验1和实验2相比好像也没什么差别,只是收敛速度好像快了那么一点点。再来看看结果。

    发现结果比实验2的结果还要好?那说明了实验2我得出的结论是可能是错误的,交叉率在该问题上对差分进化算法的影响不大,它们结果的差异可能只是运气的差异,毕竟是概率算法。

    实验4:

    将变异放缩因子设为0,即变异只与一个个体有关。

    收敛速度依然很快,不过怎么感觉结果不对,而且个体收敛的路径好像遗传算法,当F=0,时,差分进化算法退化为了没有变异、选择操作的遗传算法,结果一定不会太好。

    果然如此。下面我们再看看F=2时的实验。

    实验5:

    将变异放缩因子设为2。

    实验5的图可以明显看出,群体的收敛速度要慢了许多,到第50代时,种群还未完全收敛于一点,那么在50代时其结果也不会很好,毕竟算法还未收敛就停止进化了。

    结果不算很好但也算相对稳定。

    通过上面5个实验,我们大致了解了差分进化算法的两个参数的作用。

    交叉率CR,影响基因取自变异基因的比例,由于至少要保留一位自己的基因和变异的基因导致CR在该问题上对算法性能的影响不大(这个问题比较简单,维度较低,影响不大)。

    变异放缩因子F,影响群体的收敛速度,F越大收敛速度越慢,F绝对值越小收敛速度越快,当F=0是群体之间只会交换基因,不会变异基因。

    差分进化算法大魔王已经如此强大了,那么还有什么可以改进的呢?当然有下面一一道来。

    方案1 .将3人行修改为5人行,以及推广到2n+1人行。

    实验6:

    将3人行修改为5人行,变异公式如下:

    五人行的实验图看起来好像与之前并没有太大的变化,我们再来看看结果。

    结果没有明显提升,反而感觉比之前的结果差了。反思一下五人行的优缺点,优点,取值范围更大,缺点,情况太多,减慢搜索速度。

    可以看出算法的收敛速度比之前的变慢了一点,再看看结果。

    比之前差。

    差分进化算法的学习在此也告一段落。差分进化算法很强大,也很简单、简洁,算法的描述都充满了美感,不愧是大魔王。不过这里并不是结束,这只是个开始,终将找到打败大魔王的方法,让新的魔王诞生。

    由于差分进化算法足够强,而文中实验的问题较为简单导致算法的改进甚至越改越差(其实我也不知道改的如何,需要大量实验验证)。在遥远的将来,也会有更加复杂的问题来检验魔王的能力,总之,后会无期。

    以下指标纯属个人yy,仅供参考

    目录

    上一篇 优化算法笔记(六)遗传算法

    下一篇 优化算法笔记(八)人工蜂群算法

    优化算法matlab实现(七)差分进化算法matlab实现

    以上就是关于算法优化问题相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    文章生成器算法(文章生成器算法是什么)

    ChatGPT用的什么算法

    多关键词匹配(多关键词匹配算法框架)

    喆字五行属什么和意义(喆字五行属什么及寓意)

    产品包装描述怎么写(产品包装描述怎么写好)