本文章包含以下内容:

  1. 编程实现一个策略式博弈模型的分析器,以博弈矩阵作为主要分析工具。
  2. 输入任意策略式博弈的博弈要素,分析器能够自动生成博弈矩阵,并图形化显示。
  3. 分析器能够根据生成的博弈矩阵,列出每个博弈参与者(局中人)的策略集。
  4. 分析器能够根据每个博弈参与者的策略集,生成所有策略组合。
  5. 分析器能够根据生成的策略组合,得出所有可能的均衡。(调用库实现,功能不完善)

代码如下:

import numpy as np
import pandas as pd
import nashpy as nashzuo = input('请输入左方参与人的决策:(英文逗号分隔)')  # 左方参与人决策
zuo = zuo.split(',')  # 按,分开
m = len(zuo)  # 左方参与人的决策数
shang = input('请输入上方参与人的决策:(英文逗号分隔)')  # 上方参与人决策
shang = shang.split(',')  # 按,分开
n = len(shang)  # 上方参与人的决策数
jvzhen_0 = []  # 储存原始策略得分数据
zuo_jv = []  # 储存左博弈矩阵
shang_jv = []  # 储存上博弈矩阵
for i in range(m):  # 由用户输入各种选择的得益,并储存jvzhen_0.append([])zuo_jv.append([])shang_jv.append([])for j in range(n):jvzhen_0[i].append([])print('当左参与人选择', zuo[i], '而上方参与人选择', shang[j], '时')jvzhen_0[i][j].append(int(input('左参与人得利:')))jvzhen_0[i][j].append(int(input('上参与人得利:')))zuo_jv[i].append(jvzhen_0[i][j][0])shang_jv[i].append(jvzhen_0[i][j][1])zuo_jv=np.array(zuo_jv) # 转变为矩阵
shang_jv=np.array(shang_jv) # 转变为矩阵
jvzhen = pd.DataFrame(jvzhen_0) # 方便显示
jvzhen.columns = shang
jvzhen.index = zuo
print('\n', jvzhen)
jvzhen = nash.Game(zuo_jv, shang_jv)    # 用完存博弈
jvzhen = jvzhen.lemke_howson_enumeration()    #得到纳什均衡  .__next__()
jvzhen_0 = []
c=-1
for i in jvzhen:c=c+1jvzhen_0.append([])jvzhen_0[c].append(list(i[0]))jvzhen_0[c].append(list(i[1]))
jvzhen_0 = np.array(jvzhen_0,dtype=object)
print('均衡点有:\n')
print(jvzhen_0)

结果示例:

1. 由用户输入左方参与人和上方参与人的所有决策(用英文逗号分隔各个不同的决策),程序会自动对所有决策进行排列组合。

2.用户根据提示,输入各种策略组合的得益(整数)。

3.程序根据输入,输出博弈矩阵以及均衡点。

python博弈矩阵分析器(功能不完善)相关推荐

  1. python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)...

    python操作mysql⑥新闻管理后台功能的完善(增.删.改.查) 安装表单验证 D:\python\python_mysql_redis_mongodb\version02>pip inst ...

  2. python数组相减_对Python 中矩阵或者数组相减的法则详解

    对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...

  3. Python解决矩阵的PLU分解及求矩阵的逆

    Python解决矩阵的PLU分解及求矩阵的逆 关于PLU的分解基础知识就不叙述了,可以自己去看矩阵分析的书,大体上和高斯消去法差不多. PLU分解被经常用在Ax=bAx=bAx=b的求解上 在这里xx ...

  4. Python 技巧 —— 矩阵操作

    欢迎关注 "小白玩转Python",发现更多 "有趣" 使用 NumPy 学习矩阵和求解线性方程组的完整指南 矩阵作为一种数学资源被用于一些现实世界的应用.在本 ...

  5. 【Python】如何用 python 计算矩阵相乘 - numpy.dot()

    文章目录 一.如何用 python 计算矩阵乘法? 二.实例 参考链接 一.如何用 python 计算矩阵乘法? 使用 Numpy 包里的 dot() 函数. 该函数主要功能有两个:向量点积 和 矩阵 ...

  6. Python混淆矩阵可视化:plt.colorbar函数自定义颜色条的数值标签、配置不同情况下颜色条的数值范围以及数据类型(整型、浮点型)

    Python混淆矩阵可视化:plt.colorbar函数自定义颜色条的数值标签.配置不同情况下颜色条的数值范围以及数据类型(整型.浮点型) 目录

  7. python中矩阵的表示方法_关于Python表示矩阵的方法详解

    这篇文章主要介绍了Python表示矩阵的方法,结合具体实例形式分析了Python表示矩阵的方法与相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python表示矩阵的方法.分享给大家供大家参考, ...

  8. python可以实现哪些功能_Python学习究竟有多强大,Python代码能实现哪些功能

    Python究竟有多强大?Python代码能实现哪些功能?众所周知,Python入门简单.功能强大,是人工智能时代最佳的编程语言.但很多人好奇Python究竟有多强大,为什么那么受欢迎?下面就来给大家 ...

  9. python3.7和3.8的区别-Python 3.8 新功能来一波(大部分人都不知道)

    Python 是一门广受好评的编程语言,每个版本的更新都会对开发社区带来一定影响.近日,Python 3.8 已进入 beta 2 版本的测试中,各项新特性已经添加完毕,最终版本预计于今年 10 月发 ...

最新文章

  1. 区块链简史:解读这场技术革命的前世今生
  2. Shell 开发在运维中的经验总结
  3. sql 拆分_技术分享 | 基于分布式中间件的SQL改造指南
  4. Win7安装软件,界面上中文显示乱码的解决方案
  5. Xamarin.iOS编译时无法连接苹果系统
  6. Spring vs Seam
  7. php中qq第三方登录演示,实现腾讯qq第三方登录
  8. ++ 优化 频繁new_Java性能优化的50个细节,我必须分享给你!
  9. Linux自学笔记——Centos系统安装
  10. python 相对路径报错_小白学 Python(18):基础文件操作
  11. 17-8-26-WebApp总结
  12. Python中的原始字符串
  13. 【Git学习记录】git查询历史版本记录命令
  14. 中科大凸优化P345678 Chapter2Conve Set
  15. Turbo产品系列回来了!
  16. php for循环写三角形,【杂谈】PHP运用for轮回输出三角形
  17. uni-app - 九宫格老虎机抽奖机插件源码(支持服务端API接口控制最终中奖的奖品,自定义组件可随意配置和控制,带组件文档轻松 DIY 自己的营销页抽奖机)幸运抽奖圆形大转盘插件组件
  18. 夏季来临,警惕蜱虫叮咬感染疾病——莱姆病
  19. 从零开始的Django框架入门到实战教程(内含实战实例) - 08 用户界面(内含图形验证码的生成和校验详解)(学习笔记)
  20. 程序员的算法趣题Q25: 时髦的鞋带系法

热门文章

  1. android bitmap.createbitmap内存溢出,android bitmap oom 优化
  2. JavaEE Spring(组装打印机)
  3. java集合学习(1):集合框架
  4. AngularJS $injector API
  5. python 识别图片中的人脸,并裁人脸,将图片转化成指定大小,并将图片再原文件名保存。
  6. HistoryHound for mac(网页浏览记录书签搜索工具)
  7. 基于Android健身预约系统APP开发
  8. AdaBoost算法详细介绍
  9. SAP中QM采购收货消息实测
  10. 数据特征处理之文本型数据特征值化(一)