基于Shapley值進行聯(lián)盟成員的利益分配體現(xiàn)了各盟員對聯(lián)盟總目標的貢獻程度,避免了分配上的平均主義,比任何一種僅按資源投入價值、資源配置效率及將二者相結(jié)合的分配方式都更具合理性和公平性,也體現(xiàn)了各盟員相互博弈的過程。但Shapley值法的利益分配方案尚未考慮聯(lián)盟成員的風險分擔因素,實質(zhì)上隱含著各盟員風險分擔均等的假設,因此,對于聯(lián)盟成員風險分擔不等或風險分擔存在較大差異的狀況,需要根據(jù)風險分擔大小對Shapley值法的利益分配方案做出適當?shù)男拚A硇枰⒁饫肧hapley值法進行利益分配應具備的前提條件是:要求每個參與人對在不同聯(lián)盟組合狀態(tài)下的利益要有一個較為準確的預期;此外,還要對這種復雜的計算方式有一個清楚的了解。知識聯(lián)盟的總產(chǎn)出有時可能是不確定的,不同聯(lián)盟組合狀態(tài)下的收益也可能是不確定的,這會在一定程度上影響Shapley值法的應用。對于總效用不確定的情況,為了獲取一個比較合理的不同聯(lián)盟組合狀態(tài)下的效用值,可以采用AHP法、ANP法、模糊數(shù)學等綜合評價方法來估算各種聯(lián)盟組合狀態(tài)下的可能效用值,從而獲得shapley值法所需要的數(shù)據(jù),再進行具體利益分配上的計算1。
基本介紹在社會或經(jīng)濟活動中,兩個或多個實體,例如個人、公司、國家等,相互合作結(jié)成聯(lián)盟或者利益集團,通常能得到比他們單獨活動時獲得更大的利益,產(chǎn)生一加一大于二的效果。然而,這種合作能夠達成或者持續(xù)下去的前提就是,合作各方能夠在合作的聯(lián)盟中得到他應有的那份利益。那么,如何才能做到合理地分配合作各方獲得的利益呢?我們先來看一個簡單的例子。
【問題1】 甲、乙、丙三人合作經(jīng)商。倘若甲、乙合作可獲利7萬元,甲、丙合作可獲利5萬元,乙、丙合作可獲利4萬元,三人合作則獲利10萬元,每人單干各獲利1萬元。問三人合作時如何分配獲利?
很顯然,利益分配時,三人獲利總和應為10萬元。設甲、乙、丙三人分配獲利為,則有
三人中如果誰獲利小于1萬元,則他就會單干,不會加入這個聯(lián)盟。如果不成立,甲和乙就會組成一個小的聯(lián)盟,而把丙拋在一邊。
但是,這個系統(tǒng)由無窮多組解,例如,甚至是(3,5,2)。很顯然,站在乙或丙的角度,和甲合作都可以獲得更大的利益,換言之,甲在他所參與的合作中貢獻最大;同理,乙次之,丙貢獻最小。因此,像(5,3,2),
都是合理的解。哪一個更合理?因此應該有一種圓滿的利益分配方法。
這類問題稱為n人合作對策。L.S.Shapley在1953年給出了解決該問題的一種方法,稱為Shapley值法。
下面先給出合作對策的一般模型。記為n個合作人的集合。若對于
的任何子集
都有一個實數(shù)v(s)與之對應,且滿足下列條件:
(1),其中
為空集。
(2)對于任意兩個不交子集,都有
,則稱v(s)為定義在
上的一個特征函數(shù)。
在實際問題中,v(s)就是各種聯(lián)盟的獲利,而第二個條件表明任何情況下合作至少總比單干或者小團體的合作來得有利。合作對策就是需要確定每個人獲得的利益,或者對全體成員來講就是向量
。按照前例的分析,我們知道合理的分配需要滿足
并且,該式當
時等號成立。
上述的提法中實質(zhì)上沒有什么限制,這樣我們總可以找到多個解。所以,必須有一些有關合理性的限制,在諒限制下,尋找合理的對策才是有意義的。
Shapley給出了一組對策應滿足的公理,并證明了在這些公理下合作對策是唯一的。
【公理1】(對稱性)設是
的一個排列,對于
的任意子集
,有
。若在定義特征函數(shù)
,則對于每個
都有
。
這表示合作獲利的分配不隨每個人在合作中的記號或次序變化。
【公理2】(有效性)合作各方獲利總和等于合作獲利:
【公理3】(冗員性)若對于包含成員i的所有子集s都有,則
。其中
為集合s去掉元素i后的集合。
這說明如果一個成員對于任何他參與的合作聯(lián)盟都沒有貢獻,則他不應當從全體合作中獲利。
【公理4】(可加性)若在上有兩個特征函數(shù)
,則有
這表明有多種合作時,每種合作的利益分配方式與其他合作結(jié)果無關。
Shapley證明了滿足這四條公理的是唯一的,并且其公式為
其中,
是
中包含成員i的所有子集形成的集合,
是集合s元素的個數(shù),
是加權因子且有
Shapley值公式可以解釋如下:
是成員i在他參與的合作s中做出的貢獻。這種合作的總計有
出現(xiàn)的方式,因此每一種出現(xiàn)的概率就是
。
程序表達Shapley值法寫成程序就是:
function shapley
n= input(’Number of cooperators:’);
for j=1:n,
nam{j}=input (['Name of cooperator' num2str(j)’:’] ,’s’);
end
for k =1:2^n-1,
w{k}=abs (dec2bin(k)- 48);
w{k}= [zeros(1,n-length(w{k})) w{k}];
fprintf ('The profit for cooperator’);
for j= I:n,
if w{k}(j)==1,
fprintf(’% s', nam{j});
end
end
p(k)=input(’:’);
end
fprintf ('\nIf they cooperate,then \n');
for j=1:n,
x(j)=1/n*p(2^(n-j));
for k =1:2^n-1,
if w{k}(j)==0,
s = sum(w{k})+ 1;
ww =1/s/nchoosek(n,s);
x(j)=x(j)+ww* (p(k+2^(n-j))一p(k));
end
end
fprintf ('The profit for % s is : % f. \n, nam{j},x(j));
end2
本詞條內(nèi)容貢獻者為:
王海俠 - 副教授 - 南京理工大學