机器博弈 (四)博弈规则的设计

简介: 机器博弈 (四)博弈规则的设计

博弈规则的设计

  博弈策略求解是博弈问题中的一个重要内容,另外一个重要的内容是博弈规则的设计:

  也就是说,假设博弈的参与者都是足够理性的,如何设计一个博弈规则能确保公正性或者达到设计者的最大利益。主要的难点是:规则复杂,计算量大。

  主要应用于:

  • 拍卖竞价:互联网广告投放、车牌竞价
  • 供需匹配:污染权、学校录取
  • 公正选举:选举制度、表决制度、议席分配

G-S算法(Gale-Shapley)

  在规则设计里面有不同的算法,比方说有GS算法:

  • 在生活中,人们通常会碰到与资源匹配相关的决策问题(如求职就业、报考录取等),这些需要双向选择的情况被称为是双边匹配问题。在双边匹配问题中,需要双方互相满足对方的需求才会达成匹配。
  • 匹配的稳定是指没有任何人能从偏离稳定状态中获益。如果将匹配问题看做是一种合作博弈的话,稳定状态解就是纳什均衡解。
  • 1962年,美国数学家大卫·盖尔和博弈论学家沙普利提出了针对双边稳定匹配问题的解决算法,并将其应用于稳定婚姻问题的求解。
  • 稳定婚姻问题(stable marriage problem)是指在给定成员偏好的条件下,分两组成员寻找稳定匹配。由于这种匹配并不是简单地价高者得,所以匹配解法应考虑双方意愿。
  • 稳定婚姻问题的稳定解是指不存在未达成匹配的两个人都更倾向于选择对方胜过自己当前的匹配对象。

稳定婚姻问题

  • 假设有相同数量的单身男性和单身女性,其构成男性集合image.png和女性集合image.png


  1. 单身男性向最喜欢的女性表白
  2. 所有收到表白的女性从向其表白男性中选择最喜欢的男性,暂时匹配
  3. 未匹配的男性继续向没有拒绝过他的女性表白。收到表白的女性如果没有完成匹配,则从这一批表白者中选择最喜欢男性。即使收到表白的女性已经完成匹配,但是如果她认为有她更喜欢的男性,则可以拒绝之前的匹配者,重新匹配。
  4. 如此循环迭代,直到所有人都成功匹配为止
  • 这一过程中,男生使用贪心策略告白,而女生具有选择权,一旦出现不稳定的匹配者,即替换当前匹配者。

最大交易圈算法(Top-Trading Cycle algorithm)

  • 匹配问题中,还有一类交换不可分的的标的物的匹配问题,被称为单边匹配问题,如远古时期以物易物、或者宿舍的床位分配。
  • 1974年,沙普利和斯夫提出了针对单边匹配问题的稳定匹配算法:最大交易圈算法(TTC),算法过程如下:
  • 首先每个交易者连接一条指向他最喜欢的标的物的边,并从每一个标的物连接到其占有者或者是具有最高优先权的交易者。
  • 此时形成一张有向图,且比存在交易圈,对于交易圈中的交易者,将每人指向节点所代表的标的物赋予其,同时交易者放弃原先占有的标的物,占有者和匹配成功的标的物离开匹配市场
  • 接着从剩余的交易者和标的物之间重复进行交易圈匹配,直到无法形成交易圈,算法停止。

室友匹配问题

20200123214452656.png

20200123214541988.png



参考


相关文章
|
设计模式 Java 机器人
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
|
9月前
|
机器学习/深度学习 人工智能 算法
《深度剖析:深度学习算法如何赋能脑机接口信号处理》
脑机接口(BCI)技术是神经科学与人工智能的前沿交叉领域,旨在实现大脑与外部设备的直接交互。信号处理是其关键环节,深度学习算法的应用带来了质的飞跃。通过强大的特征学习能力和端到端的学习方式,深度学习能自动提取复杂脑电信号中的有用信息,适应个体差异和多模态数据融合,显著提升了BCI系统的性能。尽管仍面临数据量小、可解释性差等挑战,但未来有望推动人机交互技术的重大突破。
508 2
|
Python
Matplotlib 教程 之 Matplotlib 中文显示 1
Matplotlib 中文显示教程:介绍如何在 Matplotlib 中正确显示中文,包括设置 Matplotlib 字体参数和下载支持中文的字体库。通过获取系统字体库列表,选择合适的中文字体进行配置。
266 0
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
363 6
|
C语言 Ubuntu
蓝易云 - ubuntu20.04安装gcc5.4 g++5.4
以上步骤应该可以帮助你在Ubuntu 20.04上安装GCC 5.4和G++ 5.4。
1110 2
|
安全 生物认证 区块链
智能家居安全:从理论到实践的全面解析
【6月更文挑战第22天】本文深入探讨了智能家居安全领域的核心问题,旨在为读者提供一套完整的安全解决方案。文章首先界定了智能家居安全的重要性和面临的挑战,随后详细分析了常见的安全威胁类型,并提出了相应的防御策略。通过案例分析,本文展示了如何将理论知识应用于实际中,以增强智能家居系统的安全性。最后,文章对智能家居安全的未来趋势进行了预测,并强调了持续研究的必要性。
|
jenkins Java 持续交付
jenkins主从模式配置
jenkins主从模式配置
341 0
jenkins主从模式配置
|
JavaScript
【vue】 vue2 中使用 Tinymce 富文本编辑器
【vue】 vue2 中使用 Tinymce 富文本编辑器
1493 6
|
消息中间件 安全 NoSQL
「架构」SOA(面向服务的架构)
**SOA**是构建灵活企业IT系统的架构模式,基于服务组件进行设计。它强调服务的自包含、模块化,通过服务识别、抽象、组合和交互实现业务流程。特点包括松耦合、重用性、互操作性和标准化。优点是灵活性、可维护性、可扩展性和成本效益,但也有复杂性、性能和治理问题。设计策略涉及业务能力识别、服务契约定义和服务目录建立。技术栈涵盖Java EE、.NET、SOAP、REST、服务治理工具和各种数据库、消息队列及安全标准。SOA旨在适应变化,但也需妥善管理和规划。
800 0
|
SQL Java 数据库连接
还在为学MyBatis发愁?史上最全,一篇文章带你学习MyBatis
还在为学MyBatis发愁?史上最全,一篇文章带你学习MyBatis
328 1