Upgrade to Pro — share decks privately, control downloads, hide ads and more …

分散アルゴリズム(3)

suikwasha
November 12, 2012
2k

 分散アルゴリズム(3)

自分用メモ
P26 - P33

リーダー選挙問題
Chang-Roberts のアルゴリズム

suikwasha

November 12, 2012
Tweet

Transcript

  1. • Chang-RobertsͷΞϧΰϦζϜ CR ํ๏̍ʢૹ৴͢ΔՁ஋ͷͳ͍σʔλΛغ٫͢ΔʣΛجຊͱ͢ΔΞϧΰϦζ Ϝɽ ͦΕͧΕͷϓϩηε͸ IN ͱ OUT ͷϙʔτͱɼ࠷େ஋Λද͢ม਺

    MAX ɾ ࣗ਎ͷσʔλ Ij Λอ͍࣋ͯ͠Δͱ͖ɽ ࢝ಈϓϩηεͷΞϧΰϦζϜ 1. ࣗ਎ͷσʔλ Ij ΛOUTʹૹ৴͢Δɽ 2. IN ΑΓϝοηʔδ M Λ̍ͭड৴͠ɼҎԼΛ܁Γฦ͢ɽ 1. M > MAX ͷ࣌ɼM Λغ٫͢Δɽ 2. M > MAX ͷ࣌ɼMAX Λ M ʹߋ৽͠ MAX ΛOUTʹૹ৴͢Δɽ 3. M == Ij ͷ࣌ɼOUT ʹ “MAX ͸ Ij” Λૹ৴ͯ͠ɼఀࢭ͢Δɽ 4. M == “MAX ͸ A” ͷ࣌ɼMAX Λ A ʹߋ৽͠ɼ “MAX ͸ A” ΛOUTʹૹ৴ͯ͠ఀࢭ͢Δɽ
  2. ଴ػϓϩηεͷΞϧΰϦζϜ 1. IN ΑΓϝοηʔδ M Λ̍ͭड৴͠ɼIj ͱൺֱ͢Δɽ 1. M >

    Ij ͷ࣌ɼMAX = M ͱ͠ɼMAX Λ OUT ʹૹ৴͢Δɽ 2. M < Ij ͷ࣌ɼMAX = Ij ͱ͠ɼMAX Λ OUT ʹૹ৴͢Δɽ 2. IN ΑΓϝοηʔδ M Λ̍ͭड৴͠ɼҎԼΛ܁Γฦ͢ɽ 1. M > MAX ͷ࣌ɼM Λغ٫͢Δɽ 2. M > MAX ͷ࣌ɼMAX Λ M ʹߋ৽͠ MAX ΛOUTʹૹ৴͢Δɽ 3. M == Ij ͷ࣌ɼOUT ʹ “MAX ͸ Ij” Λૹ৴ͯ͠ɼఀࢭ͢Δɽ 4. M == “MAX ͸ A” ͷ࣌ɼMAX Λ A ʹߋ৽͠ɼ “MAX ͸ A” ΛOUTʹૹ৴ͯ͠ఀࢭ͢Δɽ
  3. P2 I2 = 7 MAX = 0 P7 i =

    2 max = 0 P1 I1 = 3 MAX = 0 P3 I3 = 9 MAX = 0 P6 I6 = 1 MAX = 0 P4 I4 = 6 MAX = 0 ࢝ಈϓϩηε
  4. [3] P2 I2 = 7 MAX = 0 P7 i

    = 2 max = 0 P1 I1 = 3 MAX = 3 P3 I3 = 9 MAX = 0 P6 I6 = 1 MAX = 0 P4 I4 = 6 MAX = 0 ϝοηʔδૹ৴ ϝοηʔδ M
  5. [7] P2 I2 = 7 MAX = 7 P7 i

    = 2 max = 0 P1 I1 = 3 MAX = 3 P3 I3 = 9 MAX = 0 P6 I6 = 1 MAX = 0 P4 I4 = 6 MAX = 0 3 < 7 ͳͷͰ [3] ͸غ٫ MAX Λ 7 ʹߋ৽
  6. [9] P2 I2 = 7 MAX = 7 P7 i

    = 2 max = 0 P1 I1 = 3 MAX = 3 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 0 P4 I4 = 6 MAX = 0 7 < 9 ͳͷͰ [3] ͸غ٫
  7. [9] P2 I2 = 7 MAX = 7 P7 i

    = 2 max = 0 P1 I1 = 3 MAX = 3 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 0 P4 I4 = 6 MAX = 9 6 < 9 ͳͷͰ [9] ͸غ٫͞Εͳ͍
  8. [9] P2 I2 = 7 MAX = 7 P7 i

    = 2 max = 0 P1 I1 = 3 MAX = 3 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 1 < 9 ͳͷͰ [9] ͸غ٫͞Εͳ͍
  9. [9] P2 I2 = 7 MAX = 7 P7 i

    = 2 max = 9 P1 I1 = 3 MAX = 3 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 2 < 9 ͳͷͰ [9] ͸غ٫͞Εͳ͍
  10. [9] P2 I2 = 7 MAX = 7 P7 i

    = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 3 < 9 ͳͷͰ [9] ͸غ٫͞Εͳ͍
  11. [9] 7 < 9 ͳͷͰ [9] ͸غ٫͞Εͳ͍ P2 I2 =

    7 MAX = 9 P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9
  12. [MAX ͸ 9] I3 = M ͳͷͰɼ “MAX ͸ 9”

    Λૹ৴͢Δɽ P2 I2 = 7 MAX = 9 P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 ࠷େ஋Λൃݟग़དྷͨͨΊ ఀࢭ͢Δɽ ఀࢭ
  13. [MAX ͸ 9] M = “MAX ͸ 9” ͳͷͰMΛૹ৴͠ఀࢭɽ P2

    I2 = 7 MAX = 9 P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 ఀࢭ ఀࢭ
  14. [MAX ͸ 9] M = “MAX ͸ 9” ͳͷͰMΛૹ৴͠ఀࢭɽ P2

    I2 = 7 MAX = 9 P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 ఀࢭ ఀࢭ ఀࢭ
  15. [MAX ͸ 9] P2 I2 = 7 MAX = 9

    P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 M = “MAX ͸ 9” ͳͷͰMΛૹ৴͠ఀࢭɽ ఀࢭ ఀࢭ ఀࢭ ఀࢭ
  16. [MAX ͸ 9] P2 I2 = 7 MAX = 9

    P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 M = “MAX ͸ 9” ͳͷͰMΛૹ৴͠ఀࢭɽ ఀࢭ ఀࢭ ఀࢭ ఀࢭ ఀࢭ
  17. [MAX ͸ 9] P2 I2 = 7 MAX = 9

    P7 i = 2 max = 9 P1 I1 = 3 MAX = 9 P3 I3 = 9 MAX = 9 P6 I6 = 1 MAX = 9 P4 I4 = 6 MAX = 9 M = “MAX ͸ 9” ͳͷͰMΛૹ৴͠ఀࢭɽ ఀࢭ ఀࢭ ఀࢭ ఀࢭ ఀࢭ ఀࢭ ͢΂ͯͷϓϩηε͕࠷େ஋Λൃݟ͠ఀࢭͨ͠
  18. • ΞϧΰϦζϜ CR ͷਖ਼͠͞ ࢝ಈɼ଴ػϓϩηε͸ىಈ͢Δͱɼͦͷ࣌఺Ͱ஌͍ͬͯΔ࠷େ஋Λͱͳ Γʹૹ৴͢Δɽ ࠷େ஋ MAX Λ࣋ͭϓϩηεΛ Pmax

    ͱ͢Δɽ Pmax ͸ىಈ࣌ʹ MAX Λૹ৴͢ΔɽMAX Λड৴ͨ͠ϓϩηε͸ࣗ਎ͷ࠷ େ஋Λ MAX ʹߋ৽͠ɼMAX Λྡʹૹ৴͢Δɽ MAX ͸غ٫͞ΕΔ͜ͱ͸ͳ͍ͷͰɼҰपͯ͠ Pmax ʹ࠶ͼड৴͞ΕΔɽ ͜ͷ࣌ɼPmax ͸ “࠷େ஋͸ MAX” Λྡʹૹ৴͢Δɽ ·ͨɼMAX Ҏ֎ͷ஋͸ Pmax Ͱغ٫͞ΕΔͨΊɼPmax Ҏ֎͕࠷େ஋Λ௨ ஌͢ΔϝοηʔδΛൃߦ͢Δ͜ͱ͸ͳ͍ɽ ΑͬͯɼPmax Ҏ֎ͷϝοηʔδͰ࠷େ஋Λܾఆͯ͠ఀࢭ͠ͳ͍ɽ
  19. • ΞϧΰϦζϜ CR ͷฏۉϝοηʔδෳࡶ౓ Si Λ i ൪໨ʹখ͍͞σʔλͱ͢ΔͱɼSn Ҏ֎ͷ Si

    ͸ߴʑ n - 1 ճ͔͠ૹ৴ ͞Εͳ͍ɽ → ͲͷΈͪ Si ͸ Sn Λ࣋ͭϓϩηεͰغ٫͞ΕΔɽ p(i,k) Λ Si ͕ k ճૹ৴͞ΕΔ֬཰ͱ͢Δɽ i < k ͳΒ͹ p(i,k) = 0 Ͱ͋Δɽ → Si ͸ i ൪໨ʹখ͍͞ͷͰɼk ճసૹ͞ΕΔ͜ͱ͸ͳ͍ɽ Si ͕ஸ౓ k ճૹ৴͞ΕΔͨΊͷɼඞཁे෼৚݅͸ɼk ճ໨ͷૹ৴ͰɼSi ͕ ॳΊͯ Si ΑΓ΋େ͖͍σʔλΛอ࣋͢Δϓϩηεʹग़ձ͏͜ͱɽ ࠷ॳͷ k - 1 ճͷૹ৴தʹ Si ͕ Si ΑΓ΋େ͖͍σʔλΛ࣋ͭϓϩηεʹग़ ձΘͳ͍֬཰͸ i >= k ͷͱ͖ɾɾɾ (i 1) C(k 1) (n 1) C(k 1)
  20. (i 1) C(k 1) (n 1) C(k 1) Ϧϯά͔Β Si

    ҎԼͷϊʔυ (i -1) ݸ͔Β (k - 1) ݸऔΓग़͢ɽ Ϧϯά͔Βࣗ෼Λআ͘͢΂ͯϊʔυ͔Β (k - 1) ݸऔΓग़͢ɽ Si 1 2 k -1 Sk … … … k - 1 Ϧϯάͷ෦෼
  21. (k - 1) ճૹ৴ͨ࣌͠ʹɼ࣍ͷϓϩηε͕ Si ΑΓ΋େ͖͍σʔλΛ࣋ͭ֬཰ ͳͷͰɼi >= k ͷ࣌ͷ

    p(i,k) ͸ɼ Si ( i = 1,2,...,n -1 ) ͕ૹ৴͞ΕΔճ਺ͷظ଴஋ Ei ͸ n i n k p(i, k) = (i 1) C(k 1) (n 1) C(k 1) ⇥ n i n k Ei = (n 1) X k=1 kp(i, k) ·ͩσʔλ͕௨աͯ͠ͳ͍ϊʔυ਺ Si ΑΓେ͖͍σʔλΛ࣋ͭϊʔυ਺
  22. ࠷େ஋ Sn ͸ n ճૹ৴͞Εɼ࠷େ஋͕ൃݟ͞Εͨ͜ͱΛ఻͑ΔͨΊʹ n ճ ͷૹ৴͕ඞཁɼΑͬͯɼϝοηʔδ਺ͷظ଴஋ E ͸

    E = 2n + n 1 X i=1 n 1 X k=1 kp(i, k) = 2n + n 1 X k=1 n k + 1 = nHn + n n Λे෼ʹେ͖͘͢ΔͱɼHn ͸ 0.69log(n) ʹऩଋ͢ΔɽΑͬͯ CR ͷฏۉ ϝοηʔδෳࡶ౓͸ O(nlog(n)) Ͱ͋ΓɼNAIVE ΑΓ΋༏Ε͍͍ͯΔɽ
  23. • ࣜͷಋग़ E = 2n + n 1 X k=1

    n k + 1 = 2n + n( 1 2 + 1 3 + . . . + 1 n ) ͜͜Ͱɼn - n ΛࣜʹՃ͑Δͱɼ E = 2n + n( 1 2 + 1 3 + . . . + 1 n ) + n n = n + n( 1 1 + 1 2 + 1 3 + . . . + 1 n ) = n + n n X k=1 1 k = n + nHn