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

22
重重重重重重重重重重重重重 重重重重重重重重重重重重 国国国国国国国国 国国 国国 [email protected]

description

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

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

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

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

国立情報学研究所宇野 毅明[email protected]

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

目的

• 重み付き投票ゲームの、投票力指数を計算する• 対象は、 Banzhaf, Shapley-Shubik, Deegan-Packel 指数• すでに動的計画法アルゴリズムが提案されている• ただし、全プレイヤーの指数を計算すると、同じよ

うな計算を繰り返すことになる

そこで

計算方法を工夫して、無駄な計算を省き、計算量を小さくする

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

重み付き投票ゲーム• ある議会に、政党(プレイヤー) A 、 B 、 C 、 D がある• 票決のとき、同一政党内の議員は同一の投票をする• 賛成票が q = 50 人 以上で可決

政党 A45 人

政党 B8 人

政党 C17 人

政党 D30 人

各政党の力を示す指数がほしい  =>  議席数?

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

勝利提携 と 敗北提携提携 : 政党の集合 法案成立には、 q 人 か、それ以上の議員を含む提携を

組む必要がある

勝利提携 : 提携に属する議員が q 人か、それ以上の提携敗北提携 : 提携に属する議員が q 人以下の提携

政党 A45 人

政党 B8 人

政党 C17 人

政党 D30 人

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

議席数は良い指標ではない

• 勝利提携        ( 政党 A ( 45 人),政党 D ( 30 人) )

政党 B ( 8 人)  :  AB  ,  ABC  ,  ABD  ,  BCD

政党 C ( 17 人) :  AC  ,  ABC  ,  ACD  ,  BCD

 勝利提携の組合せは同じ! 指数は同じになるべき

提携の情報から指数を求めるモデルがよい

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

もう一度、用語の定義

プレイヤー  p1,…,pn :  政党

プレイヤーの重み w(pi) : 政党の議席数

q    :  成立に必要な票数提携 : プレイヤーの集合提携 S の重み w(S) :提携に属するプレイヤーの重み

の和勝利提携 : 重みが q か、それ以上の提携敗北提携 : 重みが q 以下の提携

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

バンザフ( Banzhaf )指数

「ある勝利提携 S から プレイヤー pi が抜けると敗北提携になるとする。このとき、 pi  は発言力を持つだろう」

このような提携の数を 2n で割ったものを指数とする

pi のバンザフ指数 Bz(pi)

    =   | { S | pi S∈ , w(S) q≧ , w(S \ pi) < q } |  / 2n

pi

q

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

バンザフ指数を計算するf(pi, y) : プレイヤー集合 { p 1 ,…, pi } に含まれる提携 S で、

       w(S) =y となるものの数

プレイヤー p n に対して、

w(S) q≧ , w(S \ pn) < q q - w(pn) w(S≦ \ pn) q-≦ 1

重みが q - w(pn) から q- 1 の間で、 pn を含まない提携の数         q- 1    =    Σ     f(p n -1, y)          y=q- w(pn)

   これを 2n で割るとバンザフ指数になる

Page 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)

   p 1  p2   p3                               pn-2 pn-1

・・・・・

s

このグラフで、 f(pi, y) は s から対応する頂点までのパスの数

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

計算量・ f(pi- 1 , y) から f(pi, y) を求める:   O (q)  時間

・ f(pn-1, y) を求める:           O (nq) 時間

pn 以外のプレイヤーに対しての計算:

      pn と pi の添え字をつけなおして、同じ方法で計算

・全員分の計算             O (n2q) 時間

変更がちょっとしかないので、ほとんど同じ計算を行う

    なんとか無駄な計算を省けないでしょうか?

Page 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=0        y=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     

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

前後の計算を合わせる

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)

  全員分の指数をO (nq) 時間で計算できる

   p 1  p2   p3            pi- 1 pi pi+ 1                 pn- 1 pn

・・・・・

q

・・・・・

s

0

q0

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

シャープレイ・シュービック( Shapley-Shubik )指数

「空の提携にプレイヤーが順々に参加し、プレイヤー pi が参加して、はじめて S が勝利提携になるとき、 pi  は発言力を持つ」

このようなプレイヤーの参加順序(順列)の数を n! で割ったものを指数とする

pi のシャープレイシュービック指数 Ss(pi)

 = | { 順列 (pj 1 pj2,,…, pjn ) |

       q w({p≦ j 1 pj2,,…, pi }) < q+ w(pi) } | / n!

pi

q

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

Ss 指数を計算するプレイヤー pi より前のプレイヤーの集合が S となるよ

うな順列の数は |S|!(|n-|S|-1)!

pi

q

この場合、前に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 ≦ ≦  

S

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

Ss 指数を計算するf(pi, k, y) : プレイヤー集合 { p 1 ,…, 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=0 y=q-w(pn)

これを n! で割ると Ss 指数になる

終点が (pn- 1 , k, y) のパス重みを k!(n-k-1)!   =>  パスの重み和

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

Ss 指数用の動的計画法再帰式: f(pi, k, y) =    f( pi-1, k, y )   +   f( pi-1, k- 1 , y- w(pi) )

           pi を含まない提携数     pi を含む提携数

バンザフ指数と同じ方法で、高速化を行う

    k  …  10q

210

pi- 1    pi

・ f(pi- 1 , k, y) から f(pi, k, y) を求める

            O (nq)  時間

・ f(pn-1, k, y) を求める:

          O (n2q) 時間

・全員分の計算         O (n3q) 時

Page 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- 1    q- 1                 q- 1 - z

    = Σ    Σ     f(pi-1, k, z) × Σ g(pi-1, k, y)         k=0   z=q-w(pi)              y=q- w(pi) - z

   p 1 p2         pi- 1 pi pi+ 1           

    pn- 1 pn

・・・

k 1プレイヤー     O (nq)

全プレイヤー     O (n2q)

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

ディーガン・パックル指数( Deegan-Packel )指数

極小勝利提携 : どのプレイヤーが抜けても敗北になる勝利提携

「 pi が極小勝利提携 S に所属すれば,発言力 1/|S| を持つ」

pi が所属する極小勝利提携すべてに対して発言力の和を取って、極小勝利提携の数 W で割ったものを指数とする

q

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

ディーガン・パックル指数2

プレイヤーは、重みの大きい順にソートされているとする

d(S) : 提携 S から最小重みのプレイヤー    ( = 添え字最大のプレイヤー )  を除い

た提携

pi のディーガン・パックル指数 Dp(pi)

    =   | { S | pi S∈ , w(S) q≧ , w(d(S)) < q } |  / W

q

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

ディーガンパックル指数を計算

Ss 指数計算で用いた、動的計画法のグラフを考える

終点が (pi, k, y) ( q-w(pi) y ≦ ≦ q- 1) のパスの重みを 1/k とする

pi 上 Dp 指数の計算: pi を使い、 S から上の条件を満たす点へのパスの重み和  (重みは 1 /k’ ) q

   p 1  p2   p3       pi-1   pi   pi+1               pn- 1 pn

・・・

s

・・・

1 プレイヤー O (n2q)   :  全プレイヤー O(n3q)

Page 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-1    q-1

    = Σ    Σ     f(pi-1, y) × g(pi, k+ 1 , y+w(pi))       k=0   y=q- w(pi)

        (  f(pi, k, y) は Ss 指数での定義と同じ )

・すべての f(pi, k, y) , g(pi, k, y) を求める: O (n2q) 時間・1プレイヤーの計算:              O (nq)  時間・全員分の計算                O (n2q) 時間

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

まとめ

• 重み付き投票ゲームの投票力指数を計算する動的計画法に対して、全員分の計算を 1 人分の計算と同じ計算量で行うアルゴリズムを提案した

• バンザフ指数は            O (n2q)  => O (nq)

  シャープレイ・シュービック指数は O (n3q)  => O (n2

q)

  ディーガン・パックル指数は     O (n4q)   => O (n2

q)

  と、計算量は減少した

今後の課題:  同じテクニックが使える問題はどの程度あるか?