在以前的文章中,我們談到「核心 (Core)」是合作賽局中最具直覺性的穩定解:只要有一個分配落在核心裡,那便代表「任何次聯盟都不會想脫離大聯盟自行合作」。然而,有些賽局的核心根本是空的,也就是說,無法找到一個能同時滿足所有人、不會導致部分成員分崩離析的分配方案。這時,我們要如何退而求其次,至少讓「抱怨」降到最低?這便引出了 核仁 (Nucleolus) 的概念。
假設 N = {1, 2, 3},且特徵函數設定為:
如果你嘗試要找到核心 x = (x1, x2, x3) ,你會做到
加起來得到
但是效率性條件要求
於是矛盾,這個賽局的核心為空。
既然無法同時滿足所有聯盟,那就改用「最小化所有聯盟的最大不滿」的思路:
我們對任何聯盟 S ⊆ N 定義
如果 e(S, x) > 0 ,代表
也就是「聯盟 S 在大聯盟分得的份額 不足 他們自行合作就可得到的 v(S)」,因此會感到「不滿」;越大代表越嚴重。
當核心存在時,對所有 S ⊆ N 都能達到
也就是沒有任何次聯盟真的覺得被虧待。但當核心為空,就無法做到「所有子聯盟不滿都 ≤ 0」,勢必有人會不開心。那能否把「最嚴重的抱怨」壓到最低?
最小化最大不滿
我們可以先考慮「此分配下,所有聯盟不滿值中的最大值」
這可以理解成:
這第一步會給我們一個「盡可能讓最嚴重抱怨減輕」的候選解。然而,有時候可能有不只一組分配都能達到同樣的「最大不滿」水準;此時,如何在「多重平手」中進一步選出唯一解呢?
字典序最小化 (Lexicographic minimization)
除了最小化最大不滿外,還要依序比較第二大不滿、第三大不滿…,依「字典序」做多層級的最小化。
概念:把 e(S, x) 按「由大到小」排列成一串序列:
步驟:
最終,經過這樣「層層篩選」後,就會鎖定某個分配,這個分配就是「核仁(Nucleolus)」。
用「最大不滿值 z」來描述問題:
我們想要找出一個分配 x = (x1, x2, x3),讓所有聯盟的「不滿值」e(S, x) 不要超過某個數 z,並盡可能將 z 壓到最小:
受限制於(subject to)
以及效率性條件
用「兩人聯盟」的條件推導:
注意到兩人聯盟的約束:
將三個兩人聯盟的不等式加總,可以得到
因此得到
表示要讓所有兩人聯盟不滿值皆不超過 z,就得有
現在我們檢查 z = 2/3 是不是一個可行解,也就是有沒有對應能配合到的 x1, x2, x3:
由上一段我們知道
相加之後得到
但是因為效率性條件有 x1 + x2 + x3 = 5 ,所以以上三個不等式的等號都成立
因此解得
因此 z = 2/3 是一個可行解,而這個向量就會是本賽局的核仁(Nucleolus)。
核心為空 (Empty Core):當無法同時滿足所有次聯盟需求,核心即為空。
不滿值 (Excess):
正值代表該聯盟「不滿」。
最小化最大不滿 (Min–Max):先把「最大抱怨」壓到最低,再考慮其他次大不滿。
核仁 (Nucleolus):在核心為空時,「最小化最大不滿」的解便是核仁;它能在無法穩定的情況下,提供相對「抱怨最均衡」的分配。
Chalkiadakis, Georgios, Edith Elkind, and Michael Wooldridge. _Computational aspects of cooperative game theory_. Morgan & Claypool Publishers, 2011.a