浅谈多目标优化
「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战」
前言
这个主要是结合我目前的看法来简单地说一说这个多目标优化的一个问题,这个不管是在在校的数学建模比spring赛过程当中或者是在实际的生产生活算法导论第三版答案或者出几篇paper都有大文章可以做。那么寒假也是终算法导论第三版答案于开始了这方面的学习算法导论,当然我目前是根据MOEA进行学习的,后期我们再提出优化然后基于flink自己搭建开发一个平台(算法导论适合什么水平的人看开开眼,万一出paper了那springboot面试题就爽歪歪了)
多目标问题一直都是一个是我们非常springboot关注和广泛运用的一种解决实际问题的算法的有穷性是指思路。在我们传统的做法当中,我们一致致力于将多目标优化转化为单目标优化,例算法的五个特性如最经典的案例,投资问题。假设通过建模,我们得到投资函数 F(x) 收益函数 G(x算法工程师) 如何设计能够让他们之间进行统一,让我们的系统实现最大化效益?
也就是 Max(F(x),G(x))
他们之间存在冲突,但是也存在一定的关系,所以在传统解法里面我们就可以实现多目标转化为单目标的思路。
传统多目标
这个也是我们在供品夫人数学建模里面最容易考虑到,或者在实际建模的过程当中最容易想到也是最稳定的一种想法,当然这些做法也面临很多问题,其中最难地就是如何合理地转化为单目标问题。
关于多目标我们这里有好几种常用方法使得多目标转化为单目标。
约束法
这个最简单,也就是将G(x),F(x)进行限制,选择一个范算法工程师围进行约束,然后针对主要的函数算法设计与分析优化,例如我不差钱,G(x)最大化就行至于F(x)don’t care
至于效果,主观性有点强。
分层序列法
把多个目标按其重要程度排序,先求出第一个目标的最优解,再在达到此目标的条件下求第二个目标的最优解,依此类推直到最后一个求解结束即得到最优解。
说人话,就是先对 F(x) 求神经网络原理最优,然后在对G(x)求最优,把F(x)的最优解集当做约束条件。这个玩过线性规划,玩 lingo的同学绝对对我熟悉。
但是有个问题,就是如果你作为最优解的条件是唯一的情况下,后面的解都是在考虑这一种特殊情况,意算法是什么义不大,当然你可以加一个权重,虽然我不怎么用这玩意。
线性系数法
这个怎么说呢,方法不少就是想办法把F(x),G(x)变成一个函数 H(x) = aF(x)+bG(x) 加一个权重,算法导论第三版答案当然在此之前先同一一下量纲。 当然这个你也不一定是线性的,你可以考虑非线性系数,这个无所谓,看情况。但是问题在于系数,同时这个方法神经网络是什么也是我最喜欢的一种方法,转化单目标,那就是 神经网络 + 权龚俊重判断 + 单目标优化,但是有个前提需要足量的数据,不然就过拟合,基于神经网络判断权重,然后优化,这个应该也算是算法是什么万金油了吧。
现在的多目标
我们前面通过大量的方式去将一个多目标转化为单目标,那么有什公积金么办法能真正地去实现我们的多目标呢? 显然是有的,不然我玩啥呀。
没错,随着我们计算机的发展,我们衍生出了一个新的学宫颈癌科,叫做智能优化算法,演spring框架化算法,首先解释演化算法是啥,这个大算法导论学的同志应该会知道除了数据结构后面我spring翻译们还有算法导论,优化,之后就是我们的智能算法部分,包括我们的苟在神诡世界演化算法,很荣幸(惨)我就在我们学校的智能优化算法实验springcloud五大组件室神经网络和老师混日子。诶,就是混。
演化算法其实就是模拟我们动物,自然现象去对一个目标去优化,那么这个部分还是一个单目标优化的问题。 例如 粒子群算法 ,遗传算法,进化算法,退火算法,头狼算法,还有猴子算法等等,太多了。都是在模拟自然,也就是模拟适者生存的过程,从而得到最优解,因为不好的个体(解)会被pass,然后生成新的解 当然这里神经网络原理面的文章也不少,我就不细说了,这篇文章也就是拓宽一下视野,别整天想着分布式,分布式锁,SpringCloud K8s 那都是框架虚的CURD换了个场景而已,当然深入底层那也挺有意思的,SpringBoot各种实现供品夫人原理算法导论问懵你,还有什么高并发JVM调优,背背八股文得了,我会,你企业敢让我去优化不?
OK,那么现在咱们来算法导论适合什么水平的人看回答一下啥叫springcloud五大组件智能,基于神经网络进行优化的EA(进化算法),听起来和智能有没有关系!好吧其实有点关系但是玩过就知道神经网络预测模型了,其实不难,但是你懂的名字很好听~(我只是说起来很简单,但是做起来很多需要考虑的点,也是相当复杂的)
还是用先前的G(x) F(x) 举个例子。
如果都把他们看做单目标优化我们很容易得到一堆解集,在图像上面表神经网络是什么示就是。
那么现在我们通过演化算法得到了一些最解,但是实际上,我们发现就是我们的G(x) F(xspring翻译) 是有约算法导论适合什么水平的人看束的,所以说我们需要去排除一些点,之后我们得到一组解集。 大概会长这个样子
那么这个解集叫做 Pareto 前沿,也是一组优化解。多目标必然会得到一组解这个是毋庸置疑的。
那么我们的任务就是如何更加合理优化地去获取这个前沿。至于这个多目标和谁搭配问题其实不大,我们主要是多目标的思想。springboot