MatTuGames

バジョン1.9.0.2 (18.4 mb)作成者: Holger。莱恩
合作博弈理论的Matlab工具箱

ダウンロド4.1k件

更新2021/6/26

GitHubから

GitHubでラセンスを表示

Matlab工具箱MatTuGames版本1.9.0

内容:1。介绍2。开始3。自定义安装4。要求5。承认6。许可证7。引用8。MATLAB文件交换

1.简介

游戏理论Matlab工具箱MatTuGames提供了大约500个函数,用于建模和计算具有可转移效用的合作博弈的一些解和属性。万博 尤文图斯与现有的用于研究tu -游戏的Matlab工具箱(它们是用C/ c++编程风格编写的,因此这些函数的执行速度相对较慢)相比,我们严重依赖向量化结构,以便编写更高效的Matlab函数。特别是,该工具箱提供了计算(前)核、(前)核仁、反(前)核和模量的函数,以及游戏值,如Banzhaf、Myerson、Owen、位置、Shapley、团结和联盟团结值等。此外,我们将讨论如何使用Matlab的并行计算工具箱与这个工具箱相连接,通过启动补充的Matlab工作程序来受益于性能的提高。一些信息提供了如何调用我们的MathematicaTuGames在运行的Matlab会话中。

2.开始

为了深入了解如何用博弈论工具箱来分析合作博弈,也就是所谓的可转移效用博弈MatTuGames,我们将讨论一个小例子来演示如何计算一些博弈属性或解概念,如凸性、Shapley值、(前)核仁或前核元素。

为此,考虑这样一种情况:一份遗产不足以同时满足一组索赔人的所有债务/索赔,这种情况在博弈论中称为破产问题。现在的问题是要找到一种公平/稳定的分配,即没有索赔人/债权人能够找到理由阻挠拟议的分割,至少部分地满足债权人相互不一致的索赔要求。在第一步中,我们定义破产情况,同时指定债务向量和可以分配给债权人的财产。我们将我们的例子限制在一个六人破产问题,债务向量为

>> d = [40.000 32.0000 11.0000 73.3000 54.9500 81.1000];

财产价值等于

>> e = 176;

我们立即观察到,庄园E不足以同时满足所有索赔要求。显然,根据这些值,我们并没有定义一个合作博弈,然而,这些信息足以计算出如何在债权人之间分配遗产的建议。巴比伦的《塔木德书》提出了一个公平的划分规则

>> tlm_rl=Talmudic_Rule(E,d) >> tlm_rl= 20.0000 16.0000 5.5000 48.3500 30.000 56.1500

然而,这个分配规则并不包括联盟形成的过程。因此,当我们考虑代理可以形成联盟以更好地执行其主张的可能性时,我们可能会得到不同的结果。这意味着,我们必须研究相应的合作博弈。这可以在调用以下函数时构造

> > bv = bankruptcy_game (E、d);

生成游戏后,我们可以检查一些游戏属性,如凸性

>> cvQ=convex_gameQ(bv) >> cvQ= 1

返回的逻辑值表明这个博弈确实是凸的。这一定是破产游戏的情况。此外,我们还可以验证游戏的核心是否为非空或空。要看到这个,只需要调用

>> crQ=coreQ(bv) >>优化终止。crQ = 1

答案是肯定的。这个结果证实了我们的预期,因为每个凸博弈都有一个非空的核心。

在对游戏属性进行了简短的介绍之后,我们现在将注意力转向博弈论中一些著名的解决方案概念。我们从Shapley值开始,它可以通过

>> sh_v=ShapleyValue(bv) >> sh_v= 23.5175 18.7483 6.4950 44.3008 33.3317 49.6067

可以使用该函数计算前内核元素

>> prk_v=PreKernel(bv) >> prk_v= 20.0000 16.0000 5.5000 48.3500 30.000 56.1500

这必须与《塔木德法典》规则中提出的正义分配律相一致。此外,由于博弈的凸性,它也必须与核仁重合。为了了解这一点,让我们先计算核仁,然后再计算前核仁

>> nc_bv= nuclear (bv) nc_bv= 20.0000 16.0000 5.5000 48.3500 30.0000 56.1500 >> pn_bv= prenuclear (bv) pn_bv= 20.0000 16.0000 5.5000 48.3500 30.0000 56.1500

我们观察到两个解重合,这对于零单调对策一定万博 尤文图斯是如此。为了验证这些溶液是否确实是核仁前溶液,可万博 尤文图斯以用科尔伯格标准进行验证

>> balancedCollectionQ(bv,pn_bv) ans = 1 >> balancedCollectionQ(bv,nc_bv) ans = 1

为了验证所找到的解决方案是否真的是内核前元素,可以在输入时进行

>> prkQ=PrekernelQ(bv,prk_v) >> prkQ= 1

此外,通过这个工具箱,我们还可以计算出博弈的模量,这不仅考虑了联盟的原始力量,也考虑了联盟的预防力量。

>> mnc_v=Modiclus(v) mnc_v= 22.5067 17.7567 7.4533 41.8600 37.1100 49.3133

可以在调用修改的Kohlberg标准的同时检查该解决方案。

>> modiclusQ(v,mnc_v) ans = logical 1

返回值是一个逻辑值,因此其解是模数。对于破产博弈,我们可以依靠反前核仁的计算作为一个简单的交叉检查,以找出解决方案是正确的(cf. Meinhardt 2018c)。

>> apn_v= anti_prenuclear (v) apn_v= 22.5067 17.7567 7.4533 41.8600 37.1100 49.3133

我们观察到两个解重合,因此这提供了额外的证万博 尤文图斯据,证明模量的计算是正确的。此外,对于凸对策类,模量必须属于核,可以通过核来检验

>> belongToCoreQ(v,mnc_v) ans = logical 1

然而,如果这仍然不足以证明,那么我们可以参考模态的公理化,其特征是SIVA、COV、EC、LEDCONS和DCP,而DCP也可以被DRP取代(cf. Meinhardt 2018c)。

除了SIVA(单值),工具箱还可以检测COV

>> COV_mnc_v=COV_propertyQ(v,mnc_v, ", ",'MODIC') COV_mnc_v= struct with fields: covQ: 1 sol_v2: [23.5067 18.7567 8.4533 428600 38.1100 50.3133] sgm: [23.5067 18.7567 8.4533 428600 38.1100 50.3133] v2: [1x63 double] x: [22.5067 17.7567 7.4533 418600 37.1100 49.3133]

以及欧共体

>> ECQ_mnc_v=EC_propertyQ(v,mnc_v,'MODIC') ECQ_mnc_v= struct with fields: propQ: 1 y: [22.5067 17.7567 7.4533 418.600 37.1100 49.3133] x: [22.5067 17.7567 7.4533 418.600 37.1100 49.3133]

和LEDCONS

> > [LEDC_mnc_v LEDCGPQ_mnc_v] = Ledcons_propertyQ (v, mnc_v MODIC) LEDC_mnc_v =结构体字段:ledconsQ: 1 rgpq: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] ledpropQ: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] LEDCGPQ_mnc_v = 1 x4单元阵列{”和“}{2 x62细胞}{‘impVec} {1} x63细胞

最后检查DCP

>> DCP_mnc_v=DCP_propertyQ(v,mnc_v,'MODIC') DCP_mnc_v= struct with fields: propQ: 1 xQ: 1 y: [22.5067 17.7567 7.4533 41.8600 37.1100 49.3133 22.5067 17.7567 7.4567 7.4533 41.8600 37.1100 49.3133] x: [22.5067 17.7567 7.4533 41.8600 37.1100 49.3133]

和DRP

>> DRP_mnc_v=DRP_propertyQ(v,mnc_v,'MODIC') DRP_mnc_v= struct with fields: propQ: 1 xQ: 1 y: [22.5067 17.7567 7.4533 41.8600 37.1100 49.3133 22.5067 17.7567 7.4533 41.8600 37.1100 49.3133] x: [22.5067 17.7567 7.4533 41.8600 37.1100 49.3133]

通过这个例子,我们观察到模的公理化得到了满足,由此我们可以得出这样的结论:通过这个评价,我们找到了博弈的模。当然,该工具箱还提供了另外的例程,用于检查前核仁、前核、反前核仁、反前核、修改的以及适当修改的前核和Shapley值的公理化。

此外,该工具箱为用户提供了创建多个游戏类对象的可能性,以执行检索和修改游戏数据的多个计算,目的是确保一个一致的计算环境。因此,这些类应该避免使用来自不同游戏的一些数据,或游戏数据被无意中更改,这让用户能够专注于分析游戏的关键方面,而不是处理提供正确游戏数据的问题。例如,这样一个类TuSol,它会连续执行几次计算,以检索和存储游戏解决方案。万博 尤文图斯一个类对象sclv,是由调用创造的TuSol至少有一个参数,即特征函数的值。其他两个输入参数可以省略。但是,如果提供了它们,那么第二个参数就会指定游戏类型简历这是关于凸对策的。而最后一个参数指定游戏格式,这是讨论的例子mattug表示联盟是按照它们唯一的整数表示来排序的,以便在MatTuGames下进行一些计算。

> > sclv = TuSol (v,“简历”,“mattug”);

已经创建了类对象sclv,在执行过程中,可以调用为某些选定的解决方案概念获取结果的计算

> > sclv。setAll万博 尤文图斯Solutions ans = TuSol with properties: tu_prk: [20.0000 16.0000 5.5000 48.3500 30.0000 56.1500] tu_prn: [20.0000 16.0000 5.5000 48.3500 30.0000 56.1500] tu_prk2: [] tu_sh: [23.5175 18.7483 6.4950 44.3008 33.3317 49.6067] tu_tauv: [24.0807 19.2646 6.6222 44.1279 33.0809 48.8237] tu_bzf: [] tu_aprk: [22.6550 17.9050 7.3050 41.8600 37.1100 49.1650] prk_valid: 1 prn_valid: 1 prk2_valid: 0 aprk_valid: 1 tuvalues: [1x63 double] tusize: 63 tuplayers: 6 tutype: 'cv' tuessQ: 1 tuformat:'mattug' tumv: 176.0000 tumnQ: 0 tuSi: [62 61 59 55 47 31] tuvi: [0 0000 0] tustpt: []

它储存了解的概念,也储存了游戏的一些重要数据。然后可以使用这个类对象,例如,确定底层游戏的修改前内核

> > mpk_v = sclv。ModPreKernelmpk_v = 22.6550 17.9050 7.3050 41.8600 37.1100 49.1650 >> mpkQ_v=sclv.ModPrekernelQ(mpk_v) mpkQ_v = logical 1

或者通过适当修改的预内核

> > pmpk_v = sclv。PModPreKernelpmpk_v = 22.2100 17.4600 7.7500 41.8600 37.1100 49.6100 >> pmpkQ_v=sclv.PModPrekernelQ(pmpk_v) pmpkQ_v = logical 1

或者更多。有关工具箱提供的功能集的更深入讨论,请参阅手册或键入帮助mat_tug来获得一个简短的概述。

3.自定义安装

要安装工具箱,我们建议使用自定义安装。下载了.mltbx文件后,在Matlab文件资源管理器中导航到它,双击mltbx文件mat_tugV1d9.mltbx点击“安装”。或者,右键单击.mltbx,然后单击“安装”。

其他说明可以在URL中找到:

mltbx文件mat_tugV1d9.mltbx提供在

4.需求

这个版本的MatTuGames开发和测试使用Matlab R2021a和更早的版本。的一组函数使用优化工具箱cdd-library通过福田水泵,可在网址:

以及cdd求解器的Matlab接口CDDMEX

或者,为了获得甚至全面的操作范围的图形功能,也可以安装MPT3可从中下载的工具箱

它附带CDDMEX.我们强烈建议用户应用MPT3工具箱特别是使用我们工具箱的图形特性。

对于预核的计算和相关的解万博 尤文图斯SuiteSparseMatlab是可以从URL得到的推荐吗

如果你不想用SuiteSparse,然后替换函数qr_dec通过pinv在所有函数的预内核和相关的解决方案。万博 尤文图斯同样的论证也适用于函数qrginv.应该注意的是,这可能会导致准确性问题,结果是不正确的。

即使要在并行模式下运行工具箱,Matlab的并行计算工具箱是必要的。

为连接MathematicaTuGames,数学符号工具箱,可在网址:

TuGames2.6.1版本可从以下网址下载:

我们建议使用paclet自定义安装,可以在

MatTuGames工具箱应该适用于所有平台。

此外,该工具箱还与编写的博弈论工具箱一起工作琼Derks,可从以下网站索取:

我们添加了一些调整文件,修复了某些游戏类下闭环的问题。

如果没有Matlab优化工具箱的许可证,这个工具箱可以用来计算多达10人的前核仁。

最后,工具箱MatTuGames提供接口访问求解器的CVX, CPLEX, GLPK, gu内罗毕,HSL, IPOPT, MOSEK和OASES。CPLEX接口与版本12.10兼容。

综上所述,除上述软件外,工具箱还需要以下内容MATLAB工具箱:

MATLAB并行服务器,优化工具箱,并行计算工具箱,信号处理工具箱,统计和机器学习工具箱,符号数学工具箱

在串行和并行中获得完整的功能。

5.鸣谢

作者通过bwHPC感谢Baden-Württem万博1manbetxberg国家的支持。

当然,通常的免责声明也适用。

6.许可证

该项目是在FreeBSD许可下授权的-请参阅许可证文件。

7.引用

如需引用,请参考URL:

8.MATLAB文件交换

更多的评论也见复古网站

在文件交换中查看MatTuGames

有关当前版本的其他信息,请咨询

在文件交换中查看MatTuGames

作者

Holger。莱恩卡尔斯鲁厄大学运筹学研究所E-mail: Holger。迈因哈特ät wiwi.uni-karlsruhe.de holger。莱恩在partner.kit.edu

引用

霍尔格·梅因哈特(2022)。MatTuGamesGitHub (https://github.com/himeinhardt/MatTuGames/releases/tag/1.9.0.2)。取得済み

Matlabリリスの互換性
作成:R2021a
R2014b以降と互換性あり
プラットフォムの互換性
窗户 macOS Linux
カテゴリ

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!

医生

jderks

妈妈

mat_tugames

mat_tugames / @MatTug

mat_tugames / @TuACore

mat_tugames / @TuAPrn

mat_tugames / @TuASol

mat_tugames / @TuAVert

mat_tugames / @TuCons

mat_tugames / @TuCore

mat_tugames / @TuGame

mat_tugames / @TuKcons

mat_tugames / @TuKrn

mat_tugames / @TuNuc

mat_tugames / @TuPrk

mat_tugames / @TuPrn

mat_tugames / @TuProp

mat_tugames / @TuRep

mat_tugames / @TuShRep

mat_tugames / @TuSol

mat_tugames / @TuVal

mat_tugames / @TuVert

mattug_aux

pct_tugames

pct_tugames / @p_TuCons

pct_tugames / @p_TuKcons

pct_tugames / @p_TuKrn

pct_tugames / @p_TuPrk

pct_tugames / @p_TuProp

pct_tugames / @p_TuRep

pct_tugames / @p_TuShRep

pct_tugames / @p_TuSol

pct_tugames / @p_TuVal

このGitHubアドオンでの問題を表示または報告するには,GitHubリポジトリにアクセスしてください。
このGitHubアドオンでの問題を表示または報告するには,GitHubリポジトリにアクセスしてください。