帕累托改进和帕累托最优、卡尔多-希克斯改进

根据目标个数,分为单目标规划,以及多目标规划。多目标的规划是去找折中的解集合,既pareto最优解集合。对优化目标超过3个以上的,称之为超多目标优化问题

  1. 帕累托改进描述的就是在没有人变得不好的前提下让有些人更好的过程。帕累托改进的终极形态是帕累托最优。改进是过程,最优是结果,帕累托最优就是指再没有改进余地的状态。
  2. 在达到帕累托最优后,如果还要进一步改进,就不得不牺牲一部分人利益来换取集体更大的利益,这个过程叫作卡尔多-希克斯改进。

一、基础概念

  1. 可行解和可行域:就是满足约束的那些x包起来的区域。
  2. pareto支配:(解A支配解B)解A每个目标都不比B差且至少有一个好过B
  3. pareto最优解:可行域中没有别的解的可以支配它
  4. pareto最优解集:决策空间中的pareto最优解构成的集合,称为PS
  5. pareto最优前沿:PS映射到目标空间张成的面,PF

1:解A优于解B(解A强帕累托支配解B)

假设现在有两个目标函数,解A对应的目标函数值都比解B对应的目标函数值好,则称解A比解B优越,也可以叫做解A强帕累托支配解B,举个例子,就很容易懂了

下图中代表的是两个目标的的解的情况,横纵坐标表示两个目标函数值,E点表示的解所对应的两个目标函数值都小于C,D两个点表示的解所对应的两个目标函数值,所以解E优于解C,D.

2:解A无差别于解B(解A帕累托非支配解B)

同样假设两个目标函数,解A对应的一个目标函数值优于解B对应的一个目标函数值,但是解A对应的另一个目标函数值要差于解B对应的一个目标函数值,则称解A无差别于解B,也叫作解A能帕累托支配解B,举个例子,还是上面的图,点C和点D就是这种情况,C点在第一个目标函数的值比D小,在第二个函数的值比D大。

3:帕累托最优前沿

如下图所示,更好的理解一下帕累托最优解,实心点表示的解都是帕累托最优解,所有的帕累托最优解构成帕累托最优解集这些解经目标函数映射构成了该问题的Pareto最优前沿或Pareto前沿面,说人话,即帕累托最优解对应的目标函数值就是帕累托最优前沿。

对于两个目标的问题,其Pareto最优前沿通常是条线。而对于多个目标,其Pareto最优前沿通常是一个超曲面。


二、帕累托改进与帕累托最优

说到帕累托最优,不得不先提一下帕累托改进,两个就像孪生兄弟,总是成对出现。

帕累托改进

那什么是帕累托改进呢?用一句话概括,就是在没有人变得不好的前提下让有些人更好

举个例子,假设A和B两人手上各有一只橘子,A只想用橘子皮泡水喝,B只想吃它的果肉,所以对于A来说,橘子皮是有用的,果肉没用,对于B来说,果肉是有用的,橘子皮没用。于是他们商量后决定把自己没用的那部分相互交换,这样A就能得到两份橘子皮,B能得到两份果肉,两人都比之前多了一倍。

这个案例描述的就是典型的帕累托改进,对照定义看一下,是不是满足“在没有人变得不好的前提下让有些人更好”呢?完全满足。

这个例子乍一看是不是有点像两个国家在利用各自优势进行贸易互换?没错,基于比较优势理论的全球分工合作模式就是一种帕累托改进。

理解了帕累托改进就不难理解帕累托最优。帕累托最优就是指再也找不到任何帕累托改进的余地的状态

如上所述,A和B交换橘子皮和果肉的过程就是持续的帕累托改进,每交换一片果肉和一片橘子皮都是一次帕累托改进,直到交换完整只橘子为止,而这个完成的状态就叫帕累托最优,此时你不可能再得到更多的橘子皮和果肉了。

三、进化版:卡尔多-希克斯改进

帕累托改进描述的是一种理想状态,在帕累托改进中没有任何人的利益会受损,每个人至少要好于或等于当前状态,从而使整体的福利得到增加。顺带提一嘴,经济学里的福利指的是物质或精神的满足。

但在现实中这种情况过于理想化了,不妨设想一种更常见的场景,即对于集体来讲,部分受益、部分受损,但只要受益部分大于受损部分,那么集体的总福利也可以得到提升,此时受益者也可以给予受损者一定补偿以使其免遭损失。这个过程就是卡尔多-希克斯改进。

我们通过一个具体的例子来体会帕累托改进和卡尔多-希克斯改进的区别,假设甲乙两人打算共同投资一个项目,当前有A和B两个项目。

对于A项目,甲能盈利100万,乙能盈利200万;对于B项目,甲能盈利200万,乙能盈利150万。如果按照帕累托改进的思想来挑项目,则A和B都选不上,因为帕累托要求任何一方的利益都不会受损,但是选A项目甲的利益会受损(甲少赚100万),选B项目乙的利益会受损(乙少赚50万)。

如果按照卡尔多-希克斯改进的思想来挑项目,那么应该选B项目。因为B相比A,甲能多赚100万,乙亏损50万,只要甲能拿出50万补贴乙,那么在乙不受损的情况下,甲还能多赚50万,整体的福利更高。

超多目标演化算法综述——基本概念和研究背景 - 知乎

如何通俗地解释「帕累托最优」(Pareto optimum)? - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#简单数据结构类和常用泛型结构类

文章目录 1.简单数据结构类(1)动态数组Arraylist(2)栈Stack(3)队列Queue(4)哈希表Hashtable 2.泛型3.常用泛型数据结构类(1)列表List(2&#xff0…

Linux之基础IO

文章目录 前言一、再谈文件二、再谈文件操作二、如何理解文件1.文件操作的本质2.管理被打开的文件 三、进程和被打开的文件如何关联四、文件描述符fd1.引入2.理解3.分配规则 五、重定向1.引入重定向2.接口3.追加重定向4.输入重定向 总结 前言 本文介绍了系统IO、fd、重定向等内…

【Linux】在Ubuntu中卸载、下载mysql以及如何检查mysql是否卸载成功

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

micropython固件编译——把自己的py库添加进固件

目录 0. 前言1. 编写自己库的代码2. 移植库3. 验证 0. 前言 本节编译自己写的py库,增强移植性,往后烧录自己的固件即可轻易移植代码 没装好环境或者没有基础可以先看看这个: Ubuntu下ESP-IDF的环境搭建 Ubuntu下编译esp32micropython固件编…

windows下上架iOS应用到appstore

windows下上架iOS应用到appstore 背景步骤申请苹果开发者账号创建唯一标示符App IDs申请发布证书申请发布描述文件创建App并填写信息选择证书编译打包上传IPA到App Store提交审核 尾巴 背景 现在由于跨平台技术的兴起,不使用原生技术就能开发出Android和iOS应用。A…

一些关于c++的琐碎知识点

目录 bool强转 const构成重载:const修饰*p 移动构造 new int (10)所做的四件事 this指针---为什么函数里面需要this指针? .和->的区别 new创建对象 仿函数 new和malloc的区别 c系统自动给出的函数有 delete和delete[ ]区别何在 检查有没有析构函数 e…

BTC API:如何在比特币网络上创建应用程序?

比特币是一种去中心化的数字货币,可以通过比特币API与比特币网络进行交互。比特币API是一组允许开发人员与比特币网络进行交互的编程接口,可以帮助开发者构建各种比特币应用程序。 比特币API可以用于创建区块浏览器、钱包和比特币支付。其中利用比特币A…

Android-Activity生命周期

文章参考:添加链接描述 文章参考:添加链接描述 五大状态 StartingRunningStoppedPausedDestroyed 借用一张已经包浆的图 PS:Running和Paused是可视阶段,其余都是不可视 几大函数 onCreate:通过setContentLayout初始…

Markdown笔记应用程序Note Mark

什么是 Note Mark Note Mark 是一种轻量、快速、简约,基于网络的 Markdown 笔记应用程序。具有时尚且响应迅速的网络用户界面。 安装 在群晖上以 Docker 方式安装。 ghcr.io 镜像下载 官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以…

iptables和防火墙

文章目录 1.防火墙2.Iptables基本介绍2.1 什么是iptables2.2 什么是包过滤防火墙2.3 包过滤防火墙如何实现 1.防火墙 Linux防火墙主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,典型的包过滤防火墙,基于内核编码实现,具有非…

什么是低代码开发?低代码开发可以解决哪些问题?

一、什么是低代码开发? 低代码可以理解为是一种全新的应用开发理念。主要以可视化、参数化的系统配置方式来进行程序应用的开发,因此可以大幅度减少代码编写的工作,从而提高开发效率。 低代码平台则是通过对于业务场景进行高度抽象、提炼&…

unittest单元测试框架

背景 unittest也称为PyUnit,是借鉴Java中JUnit框架产生。 unittest使我们具备创建测试用例、测试套件、测试夹具的能力。 组成 Test Fixture(测试夹具):可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作。…

【P42】JMeter 运行时间控制器(Runtime Controller)

文章目录 一、运行时间控制器(Runtime Controller)参数说明二、测试计划设计 一、运行时间控制器(Runtime Controller)参数说明 可以通过时间来确定其后代元素运行多长时间,在时间范围内,后代元素会一直运…

八、(重点)视图集ModelViewSet自定义action路由routers

上一章: 七、Django DRF框架GenericAPIView--搜索&排序&分页&返回值_做测试的喵酱的博客-CSDN博客 下一章: 九、DRF生成API文档_做测试的喵酱的博客-CSDN博客 1、View 最基础的视图类View 2、views.APIView class APIView(View): …

kafka 的内部结构和 kafka 的工作原理

基本设置 让我们开始安装kafka。下载最新的 Kafka 版本并解压缩。打开终端并启动 kafka 和 zookeeper。 $ cd $HOME $ tar -xzf kafka_<version>.tgz $ cd kafka_<version> $ bin/zookeeper-server-start.sh config/zookeeper.properties # open another termina…

Canvas画布基本功能及实现网页签名功能

canvas 简介 <canvas> 是 HTML5 新增的&#xff0c;一个可以使用脚本(通常为 JavaScript) 在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画&#xff0c;甚至可以进行实时视频处理和渲染。和所有 DOM 元素一样&#xff0c;拥有自己…

Elasticsearch:数据是如何被写入的?

在我之前的文章 “Elasticsearch&#xff1a;索引数据是如何完成的”&#xff0c;我详述了如何索引 Elasticsearch 的数据的。在今天的文章中&#xff0c;我将从另外一个视角来诠释如何写入数据到 Elasticsearch。更多关于 Elasticsearch 数据操作&#xff0c;请阅读文章 “Ela…

实体店引流获客系统模式开发详解

随着互联网的日益发展&#xff0c;实体店的处境变得越来越艰难&#xff0c;获客难和销量差成为了实体店最头疼的两大问题。面对这种情况&#xff0c;一味固步自封是不行的&#xff0c;最好还是顺应潮流&#xff0c;结合一款合适的商业模式&#xff0c;来帮助自己快速引流获客和…

深入理解设计原则之接口隔离原则(ISP)【软件架构设计】

系列文章目录 C高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C并发线程编程 LSP&#xff1a;接口隔离原则 系列文章目录1、接口隔离原则的定义和解读2、案例解读3、如何判断一个接口是否符合接口隔离原则&#xff1f;小结 1、接口隔离原则的定义和…

canal server 标准化集群搭建(完结)

4.2. 创建 server 所属集群&#xff1a;选择刚才添加的 “集群名称” server 名称&#xff1a; server_1、server_2、server_3 依次类推 server ip&#xff1a;server 的 ip 地址 admin 端口&#xff1a;canal server 与 canal admin 的通信端口&#xff0c;非生产环境从 2…