首页 / 基于概率分布的合作博弈值的高效计算方法

基于概率分布的合作博弈值的高效计算方法无效专利 发明

技术领域

[0001] 本发明涉及数据处理技术领域,尤其涉及一种基于概率分布的合作博弈值的高效计算方法。

相关背景技术

[0002] 目前,对合作博弈的使用越来越多,在应急物资储备、上市公司股权权力分析、环境保护的成本分摊等各实践方面都有多样应用。这些应用领域在求解过程中都面临随着局中人数加大,运算效率大幅下降,严重限制了合作博弈的应用范围。另一方面,目前合作博弈的研究过程中也过于重视公理性刻画,对于实践的指导性存在不足。

具体实施方式

[0019] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0020] 图1为本发明实施例提供的一种基于概率分布的合作博弈值的高效计算方法的流程图。如图1所示,其主要包括如下步骤:
[0021] 步骤11、获取合作博弈在各个联盟组合情况下的局中人个数及相应的联盟支付数据。
[0022] 步骤12、根据各个联盟组合情况下的局中人个数区分联盟种类,并结合相应的联盟支付数据使用概率分布以条件概率的角度分步计算合作博弈的值,从而实现合作博弈值的高效计算。
[0023] 其具体的计算步骤如下:
[0024] 步骤S1、根据各个联盟中局中人个数s区分联盟种类;其中,设定s=0时的联盟唯一存在,其支付数据为0;s=n时,联盟为唯一的大联盟,所述n表示合作博弈局中人的总数;
[0025] 步骤S2、确定需要计算支付情况的局中人i;
[0026] 步骤S3、依据联盟中局中人个数s=0至s=n-1的顺序,分别计算不包含局中人i的支付数据与包含局中人i的支付数据之差的绝对值,并按照不包含局中人i的联盟中局中人数s的顺序进行分类保存,类别记为:T0、T1、......T(n-1);
[0027] 步骤S4、按照类别T0至T(n-1)的顺序,逐一计算每一类别内数值的算术平均值,得到结果A0、A1、......A(n-1),该结果为支付数据增加值的均值;
[0028] 步骤S5、判断需要计算Shapley值或是Banzhaf值;若需计算Shapley值,则转入步骤S6;若需计算Banzhaf值,则转入步骤S7;
[0029] 步骤S6、Shapley值为 的形式,分解后变为: 其中,N表示所有联盟构成的集合;v表示相应的支付
数据;S为N中的子集,表示一个联盟;将步骤S4获得的支付数据增加值的均值A0、A1、......A(n-1)求和,再除以n得到局中人i在Shapley值分配下获得的支付;重复上述步骤S2~S6,直至计算完所有局中人在Shapley值分配下获得的支付,从而获得相应的Shapley值结果;
[0030] 步骤S7、Banzhaf值为 的形式,分解后变为: 将步骤S4获得的支付数据增加值的
均值A0、A1、......A(n-1)乘以s相对应的 的二项分布系数(即 ),再求加权和,得到局中人i在Banzhaf值分配下获得的支付;重复上述步骤S2~S7,直至计算完所有局中人在Banzhaf值分配下获得的支付,从而获得相应的Banzhaf值结果。
[0031] 本发明实施例中,如果不需要计算所有局中人获得的支付,可以在步骤S2中仅确定需要的局中人,同时在步骤6)步骤7)更改循环次数。
[0032] 本发明实施例的上述方案避免了在计算Shapley值和Banzhaf值的过程中的系数计算问题,其中Shapley值完全规避了系数计算问题,全部使用算术平均值进行计算;而Banzhaf值不再使用指数计算,以二项分布的系数作为替代,达到了与计算Shapley值的统一,从可以很好的提高合作博弈的解的计算效率。
[0033] 为了便于理解,下面结合一具体的示例进行说明。
[0034] 需要强调的是,下述示例中采用的局中人总数与支付数据等具体数值仅为举例说明,并非构成限制。在实际应用中,用户可根据实际情况设定相应的数值。
[0035] 本示例中,假设合作博弈中有共有4个局中人,即n=4,4个局中人的编号记为1、2、3、4。4个局中人的支付数据及其组成联盟的支付数据如下:
[0036]
[0037] 本示例同样使用前述步骤12中的计算步骤:
[0038] 步骤S1、根据各个联盟中局中人个数s区分联盟种类;其中,设定s=0时的联盟唯一存在,其支付数据为0;s=4时,联盟为唯一的大联盟。
[0039] 本示例中的s=4即表示该联盟S={1,2,3,4};其支付数据为大联盟支付v({1,2,3,4})=100。
[0040] 步骤S2、确定需要计算支付情况的局中人i。
[0041] 本示例中,假设需要计算支付情况的局中人i=1。
[0042] 步骤S3、依据联盟中局中人个数s=0至s=3的顺序,分别计算不包含局中人i的支付数据与包含局中人i的支付数据之差的绝对值,并按照不包含局中人i的联盟中局中人数s的顺序进行分类保存,类别记为:T0、T1、......T(n-1),如下表1:
[0043]
[0044] 表1给定类别下的局中人i=1的支付数据差的绝对值
[0045] 其中, 例如,s=0时, 则有 又如,s=1时,则不包含局中人i=1的联盟为S={2}、S={3}、S={4},则通过前述公式可计算得到
[0046] 步骤S4、按照类别T0至T(n-1)的顺序,逐一计算每一类别内数值的算术平均值,得到结果A0、A1、......A(n-1),该结果为支付数据增加值的均值,如下表2:
[0047]
[0048] 表2局中人i=1的类别内贡献算术平均值
[0049] 步骤S5、判断需要计算Shapley值或是Banzhaf值;若需计算Shapley值,则转入步骤S6;若需计算Banzhaf值,则转入步骤S7。
[0050] 步骤S6、Shapley值为 的形式,分解后变为: 其中,N表示所有联盟构成的集合;v表示相应的支付
数据;S为N中的子集,表示一个联盟;将步骤S4获得的支付数据增加值的均值A0、A1、......A(n-1)求和,再除以4得到局中人i=1在Shapley值分配下获得的支付;即局中人i=
1获得的支付为
[0051] 再重复上述步骤S2~S6,直至计算完所有局中人在Shapley值分配下获得的支付,从而获得相应的Shapley值结果,如表3:
[0052]局中人i Shapley值
i=1 19.583
i=2 26.25
i=3 27.917
i=4 26.25
合计 100
[0053] 表3所有局中人的Shapley值
[0054] 步骤S7、Banzhaf值为 的形式,分解后变为: 将步骤S4获得的支付数据增加值的
均值A0、A1、......A(n-1)乘以s相对应的 的二项分布系数(即 ),再求加权和,得到局中人i在Banzhaf值分配下获得的支付;即局中人i=1获得的支付为 [0055] 重复上述步骤S2~S7,直至计算完所有局中人在Banzhaf值分配下获得的支付,从而获得相应的Banzhaf值结果;如下表4:
[0056]
[0057]
[0058] 表4所有局中人的Banzhaf值
[0059] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0060] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页 第1页 第2页 第3页
相关技术
分布合作相关技术
博弈值相关技术
张泽宇发明人的其他相关专利技术