1 / 22

重み付き投票ゲームにおける 投票力指数の計算の高速化

重み付き投票ゲームにおける 投票力指数の計算の高速化. 国立情報学研究所 宇野 毅明 uno@nii.jp. 目的. 重み付き投票ゲームの、投票力指数を計算する 対象は、 Banzhaf, Shapley-Shubik, Deegan-Packel 指数 すでに動的計画法アルゴリズムが提案されている ただし、全プレイヤーの指数を計算すると、同じような計算を繰り返すことになる そこで. 計算方法を工夫して、無駄な計算を省き、計算量を小さくする. 重み付き投票ゲーム. ある議会に、政党( プレイヤー ) A 、 B 、 C 、 D がある

Download Presentation

重み付き投票ゲームにおける 投票力指数の計算の高速化

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 重み付き投票ゲームにおける投票力指数の計算の高速化重み付き投票ゲームにおける投票力指数の計算の高速化 国立情報学研究所 宇野 毅明 uno@nii.jp

  2. 目的 • 重み付き投票ゲームの、投票力指数を計算する • 対象は、Banzhaf, Shapley-Shubik, Deegan-Packel 指数 • すでに動的計画法アルゴリズムが提案されている • ただし、全プレイヤーの指数を計算すると、同じような計算を繰り返すことになる そこで 計算方法を工夫して、無駄な計算を省き、計算量を小さくする

  3. 重み付き投票ゲーム • ある議会に、政党(プレイヤー) A、B、C、D がある • 票決のとき、同一政党内の議員は同一の投票をする • 賛成票が q = 50人 以上で可決 政党A 45人 政党B 8人 政党D 30人 政党C 17人 各政党の力を示す指数がほしい => 議席数?

  4. 勝利提携 と 敗北提携 提携: 政党の集合  法案成立には、 q人 か、それ以上の議員を含む提携を組む必要がある 勝利提携 : 提携に属する議員が q人か、それ以上の提携 敗北提携 : 提携に属する議員が q人以下の提携 政党A 45人 政党B 8人 政党D 30人 政党C 17人

  5. 議席数は良い指標ではない • 勝利提携        ( 政党A(45人),政党D(30人) ) 政党B(8人)  : AB , ABC , ABD , BCD 政党C(17人) : AC , ABC , ACD , BCD  勝利提携の組合せは同じ! 指数は同じになるべき 提携の情報から指数を求めるモデルがよい

  6. もう一度、用語の定義 プレイヤーp1,…,pn:  政党 プレイヤーの重みw(pi): 政党の議席数 q:  成立に必要な票数 提携: プレイヤーの集合 提携 Sの重みw(S):提携に属するプレイヤーの重みの和 勝利提携 : 重みが qか、それ以上の提携 敗北提携 : 重みが q以下の提携

  7. バンザフ(Banzhaf)指数 「ある勝利提携 Sから プレイヤー piが抜けると敗北提携になるとする。このとき、 piは発言力を持つだろう」 このような提携の数を 2n で割ったものを指数とする pi のバンザフ指数 Bz(pi) =| { S | pi ∈S,w(S)≧q, w(S\pi)<q } | / 2n pi q

  8. バンザフ指数を計算する f(pi, y): プレイヤー集合 { p1,…, pi }に含まれる提携 Sで、 w(S) =yとなるものの数 プレイヤー pn に対して、 w(S) ≧ q, w(S\pn) < q  q - w(pn) ≦ w(S\pn) ≦ q-1 重みが q - w(pn)から q-1 の間で、 pn を含まない提携の数 q-1     =Σf(pn-1, y) y=q- w(pn)    これを 2nで割るとバンザフ指数になる

  9. 動的計画法 再帰式: f(pi, y) =f( pi-1, y )+f( pi-1, y- w(pi) ) piを含まない提携数     piを含む提携数 i=1,…,n-1 に対して、 f(pi, y)を順々に求める q q - w(pn) ・・・・・ s p1  p2 p3 pn-2 pn-1 このグラフで、 f(pi, y) は sから対応する頂点までのパスの数

  10. 計算量 ・f(pi-1, y)から f(pi, y) を求める:   O(q) 時間 ・ f(pn-1, y) を求める:           O(nq) 時間 pn 以外のプレイヤーに対しての計算: pn と pi の添え字をつけなおして、同じ方法で計算 ・全員分の計算             O(n2q) 時間 変更がちょっとしかないので、ほとんど同じ計算を行う     なんとか無駄な計算を省けないでしょうか?

  11. 不要な計算の省略 pi に対して, 提携 Sのプレイヤーを i 以下とi 以上に分けて考える g(pi, y): プレイヤー集合 { pi,…, pn }に含まれる提携 Sで、 w(S) =yとなるものの数 重みが q - w(pi)から q-1 の間で、 pi を含まない提携 i 以下の重みが z , i 以上がq - w(pi) - zから q-1-z の間 q-1            q-1-z そのような提携の数  =Σf(pi-1, z) Σg(pi+1, y) z=0y=q- w(pi)-z y h(pi, y) =Σ g(pi, z) とするとh(pi+1, q-1-z) - h(pi+1, q-w(pi)-z - 1) z=0

  12. 前後の計算を合わせる q 0 f(pi, y),g(pi+2, y) から f(pi-1, y),g(pi+1, y) を計算: O(q) g(pi+1, y)から h(pi+1, y)を計算 :             O(q) 1プレイヤーの指数を計算 :                 O(q) ・・・・・ ・・・・・ q 0 s p1  p2 p3 pi-1 pi pi+1                pn-1 pn   全員分の指数をO(nq) 時間で計算できる

  13. シャープレイ・シュービック(Shapley-Shubik)指数シャープレイ・シュービック(Shapley-Shubik)指数 「空の提携にプレイヤーが順々に参加し、プレイヤー piが参加して、はじめて S が勝利提携になるとき、 piは発言力を持つ」 このようなプレイヤーの参加順序(順列)の数を n!で割ったものを指数とする pi のシャープレイシュービック指数 Ss(pi) =| { 順列 (pj1 pj2,,…, pjn ) | q ≦ w({pj1 pj2,,…, pi }) < q+ w(pi) } | / n! pi q

  14. Ss指数を計算する プレイヤー pi より前のプレイヤーの集合が Sとなるような順列の数は |S|!(|n-|S|-1)! pi q S この場合、前に3プレイヤー、後ろに2プレイヤーいるので、 3!×2!=3!(6-3-1)!=|S|! (n-|S|-1)! piを加えると勝利提携になる敗北提携について、この総和を取る Ss(pi)×2!  =Σ|S|! (n-|S|-1)! S | pi ∈S, q- w(pi) ≦ w(S)≦q-1 /

  15. Ss指数を計算する f(pi, k, y): プレイヤー集合 { p1,…, pi }に含まれる、大きさ kの提携 Sで、w(S) =yとなるものの数 重みが q - w(pn)から q-1 の間で、 pn を含まない提携 S に関して |S|!(n-|S|-1)! の和を取る n-1 q-1 =ΣΣ f(pn-1,k, y) × k!(n-k-1)! k=0y=q-w(pn) これを n!で割るとSs指数になる 終点が (pn-1, k, y) のパス重みを k!(n-k-1)!=> パスの重み和

  16. k … 1 0 q 2 1 0 pi-1    pi Ss指数用の動的計画法 再帰式: f(pi, k, y) =f( pi-1, k, y )+f( pi-1, k-1, y- w(pi) ) piを含まない提携数     piを含む提携数 ・f(pi-1, k, y)から f(pi, k, y) を求める O(nq) 時間 ・ f(pn-1, k, y) を求める: O(n2q) 時間 ・全員分の計算 O(n3q) 時間 バンザフ指数と同じ方法で、高速化を行う

  17. Ss指数の高速化 g(pi, k, y):(pi, k, y)から (pn, k’, *)へのパスの重み和    (重みは k’!(|n-k’-1)!) 重みが q - w(pi)から q-1の間で、 pi を含まない提携 S に   関する|S|!(|n-|S|-1)! の和 n-1q-1                 q-1 - z     =ΣΣf(pi-1, k, z) × Σ g(pi-1, k, y) k=0z=q-w(pi)y=q- w(pi) - z k 1プレイヤー     O(nq) 全プレイヤー  O(n2q) ・・・ p1 p2 pi-1 pi pi+1              pn-1 pn

  18. ディーガン・パックル指数(Deegan-Packel)指数ディーガン・パックル指数(Deegan-Packel)指数 極小勝利提携 : どのプレイヤーが抜けても敗北になる勝利提携 「 pi が極小勝利提携 Sに所属すれば,発言力1/|S| を持つ」 pi が所属する極小勝利提携すべてに対して発言力の和を取って、極小勝利提携の数 Wで割ったものを指数とする q

  19. ディーガン・パックル指数2 プレイヤーは、重みの大きい順にソートされているとする d(S) : 提携 S から最小重みのプレイヤー     ( = 添え字最大のプレイヤー )  を除いた提携 pi のディーガン・パックル指数 Dp(pi) =| { S | pi ∈S,w(S)≧q, w(d(S))<q } | / W q

  20. ディーガンパックル指数を計算 Ss 指数計算で用いた、動的計画法のグラフを考える 終点が (pi, k, y) (q-w(pi)≦ y ≦q-1) のパスの重みを 1/k とする pi 上Dp指数の計算: pi を使い、 S から上の条件を満たす点へのパスの重み和  (重みは 1/k’) q ・・・ ・・・ s p1  p2 p3 pi-1pi pi+1 pn-1 pn 1プレイヤー O(n2q)  :  全プレイヤー O(n3q)

  21. Dp指数の動的計画法(高速版) g(pi, k, y):piを使い、(pi, k, y)から (q-w(pj)≦ z ≦q-1) を 満たす点 (pj, k’, z) へのパスの重み和  (重みは 1/k’) pi を使うパスの重み和: [ S から (pi-1, k, y) までのパス数 ×g(pi, k, y) ] の総和 n-1q-1     =ΣΣf(pi-1, y) × g(pi, k+1, y+w(pi)) k=0y=q- w(pi) (f(pi, k, y)は Ss 指数での定義と同じ ) ・すべての f(pi, k, y) , g(pi, k, y) を求める: O(n2q) 時間 ・1プレイヤーの計算:              O(nq)時間 ・全員分の計算                O(n2q) 時間

  22. まとめ • 重み付き投票ゲームの投票力指数を計算する動的計画法に対して、全員分の計算を1人分の計算と同じ計算量で行うアルゴリズムを提案した • バンザフ指数は            O(n2q)=>O(nq)   シャープレイ・シュービック指数は O(n3q)=>O(n2q)   ディーガン・パックル指数は     O(n4q)=>O(n2q)   と、計算量は減少した 今後の課題:   同じテクニックが使える問題はどの程度あるか?

More Related