[HIMCM暑期班]第3课:一个博弈问题
在一个街道平面图上,住着n个住户。有两个贩卖热狗的商贩,各自想要在街区里摆设一个小摊。每天住户都会去离他家50米范围内的最近的摊点消费。问:
1. 如果两位小贩摆设小摊的顺序有先后(设A先摆,然后B再摆),且A知道有B的存在。两人该如何博弈?
2. 如果你是B,已经知道A的位置,该如何博弈
假设A和B都是以追求利益最大化为目标。
分析:
首先要考察的是建模的能力。如何表示一个地图?如何表示上面的住户?常见的方法是用边来代替街道,用点来表示住户的位置。可以用几何画板实现出来:
其次,对于复杂的问题,要考虑一些简化的情况:
1. 退化到一维的情况
2. 退化到只有1,2,3个住户的情况
3. 退化到已知A摆下的位置,求B如何摆放?
展开:
1. 写一个可以可视化选择A的位置,并计算B的最优摆放位置以及获利值的小程序。
2. 利用计算机辅助,枚举A的起始位置,分别计算出两者的最大利益,选取对A最有利的方案。注意枚举的技巧。
3. 改一下题目,如果A,B需要同时选择位置,那么就可以展开到纳什均衡或者囚徒困境上。
总结:
主要介绍了博弈的一些简单思想,还有如何对于二维地图类型的题目进行抽象和建模。要学会利用几何画板、C#等一切可利用的工具。
[HIMCM暑期班]第3课:一个博弈问题的更多相关文章
- [HIMCM暑期班]第1课:概述
作为这个系列的开始,我会把每一节课上过的内容,与同学们互动后发现他们的闪光点记录下来,以后其他要准备该比赛的人借鉴和参考. 第一节课是概述,主要讲什么是数学建模,还有建模可以帮助我们做什么.举了三个例 ...
- [HIMCM暑期班]第4课: 扑克牌问题
假设跟你玩这样一个游戏: 拿一副52张牌的扑克,洗均匀.每次展示一张牌,如果是红心或者方块,你就赢10块钱:如果是黑桃或者草花,你就输10块钱.你可以选择在任何时候终止此游戏.问如何确保利益最大化? ...
- [HIMCM暑期班]第2课:建模
第二节课从最简单的模型开始入手:七桥问题. 首先,先去wikipedia上了解一些有关七桥问题的背景知识.http://en.wikipedia.org/wiki/Seven_Bridges_of_K ...
- 老男孩linux实战培训初级班第二次课前考试题
################################################################ 本文内容摘录于老男孩linux实战运维培训中心课前考试题(答案部分) ...
- [深度学习]实现一个博弈型的AI,从五子棋开始(1)
好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...
- [深度学习]实现一个博弈型的AI,从五子棋开始(2)
嗯,今天接着来搞五子棋,从五子棋开始给小伙伴们聊AI. 昨天晚上我们已经实现了一个五子棋的逻辑部分,其实讲道理,有个规则在,可以开始搞AI了,但是考虑到不够直观,我们还是顺带先把五子棋的UI也先搞出来 ...
- 微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战
微软实战训练营 上海交大(A)实验班.(X)重点班 内部课程资料 链接:http://pan.baidu.com/s/1jGsTjq2 password:0wmf <微软实战训练营(X)重点班第 ...
- Android 入门第一课 一个简单的提示框
1.打开Android开发环境Eclipse来到主界面 2.新建一个安卓项目 File->New->Android Application project 在上面有红色错误的地方填上应用程 ...
- [深度学习]实现一个博弈型的AI,从五子棋开始
好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...
随机推荐
- 【温故Delphi】Win32API之CreateMutex
解决问题 如何让一个软件在一台机器上只能运行一个实例呢?这个问题用专业术语就是进程互斥.这个问题可以通过CreateMutex来解决. 进程互斥的核心思想:进程在启动时首先检查是否存在此进程实例,如果 ...
- js复制内容加版权声明代码
$("body").on('copy', function (e) { if (typeof window.getSelection == "undefined" ...
- 提高代码质量 CheckStyle FindBugs PMD
提高代码质量-工具篇 注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述 ...
- CSS clear清除浮动
1.CSS中的clear有四个参数: none:允许两边都可以浮动. left:不允许左边有浮动. right:不允许右边有浮动. both(默认):不允许有浮动. 2.一开始在CSS中clear浮动 ...
- MVC, MVP, MVVM比较以及区别
MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式.以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一下 ...
- C++单元测试 之 gtest -- 组合数计算.
本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. ...
- 【Visual Lisp】人机交互与数据处理(表除外)-lisp
;;本专题所讲述的内容是人机交互以及常规数据处理技术;;★★★01.人机交互★★★;;△△△键盘输入交互△△△(getint "请输入整数");;从键盘输入整数,如果不是整数则重复 ...
- 网络流EK
#include <iostream> #include <queue> #include <string.h> #define MAX 302 using nam ...
- 用sql取出来的list需要处理成map的两种情况
1. 原生sql: select a.id,a.name from a SQLQuery sqlQuery=this.getSession().createSQLQuery(sb.toString() ...
- Pair Project:电梯控制程序
12061160刘垚鹏 & 12061166宋天舒 1.1结对编程的优缺点结对编程相对于个人编程有很多优点.首先,督促作用,在讨论过程中能够很快投入工作,为了不耽误对方时间,我们会尽快完成各自 ...