Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
分散アルゴリズム(2)
Search
suikwasha
November 07, 2012
0
220
分散アルゴリズム(2)
自分用メモ
P20 - P26
suikwasha
November 07, 2012
Tweet
Share
More Decks by suikwasha
See All by suikwasha
分散アルゴリズム(3)
suikwasha
0
2k
分散アルゴリズム(1)
suikwasha
0
230
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
It's Worth the Effort
3n
187
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Optimizing for Happiness
mojombo
379
70k
Typedesign – Prime Four
hannesfritz
42
2.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Transcript
ࢄΞϧΰϦζϜ Ϧʔμʔબڍ ΞϧΰϦζϜ NAIVE
• ੩తࢄ ࢄγεςϜ ∑ ʹଐ͢Δϓϩηε Pj ͱσʔλ Ij Λ ͬͯɼ֤ϓϩηε
Pi ͕ؔΛܭࢉ͢Δʹ͍ͭͯ • ࣍ͷ݅̏ͭΛຬͨ࣌͢ɼ੩తࢄͱ͍͏ɽ 1.ࢄγεςϜͷτϙϩδʔมԽ͠ͳ͍ɽ 2.ࢄγεςϜ৴པग़དྷΔʢނো͠ͳ͍ʣ 3.ࢄγεςϜʹੵ͞Ε͍ͯΔσʔλIมԽ͠ͳ͍ɽ
• ࢄγεςϜͷॴ γεςϜͷ֦ுੑɾނোʹର͢Δੑ γεςϜશମΛ੍ޚ͢Δಛผͳϓϩηε͕ଘࡏ͠ͳ͍ ͨΊɽʢͯ͢ͷϓϩηε͕ରͰ͋Δʣ • ͯ͢ͷϓϩηε͕ରͩͱى͜Δɽ ࢿݯͷׂΓͯͳͲɽσουϩοΫʁ →ࢿݯͷׂΓͯαʔόʔ͕͍Ε༰қʹղܾͰ͖Δ
• Ϧʔμʔબڍ Λղܾ͢ΔͨΊʹಛผͳϓϩηεΛબग़͢Δɽ • ֤ϓϩηε Pi ͕ม vi Λ࣋ͭͱԾఆ͢Δɽ͋ΔΠϯ σοΫε
a ( 1 <= a <= n ) ʹରͯ͠ Pa ͷม va ͷ 1 Ͱ͋Γɼͦͷଞͷ i (i != a) ʹରͯ͠ɼ0 Ͱ͋ΔΑ͏ ʹ֤ϓϩηε vi ͷΛηοτͤΑɽ “࠷େͷࣝผࢠΛ࣋ͭϓϩηε”ΛϦʔμʔͱ͢Δͱܾ Ί͓͚ͯɼ࠷େൃݟʹؼணͰ͖Δɽ
• ࠷େൃݟ ֤ϓϩηε Pj ͕૬ҟͳΔਖ਼ͷ Ij Λσʔλͱͯ࣋͠ ͭͱ͢Δɽ͜ͷ࣌ɼ֤ϓϩηε Pi ʹ͓͍ͯɼ
ΛܭࢉͤΑɽͨͩ͠ɼ֤ Ij O(log n) ϏοτͰදݱ͞ Ε͍ͯΔͱ͢Δɽ O(log n)ͷ੍ݶΛઃ͚Δ͜ͱͰɼ੍ԼͷϝοηʔδෳࡶΛઌʹܭࢉ͠ɼ࣍ʹ੍ͷͳ͍ϝοηʔδෳࡶ ΛٻΊΔ͜ͱ͕ग़དྷΔʁ f (⌃ , I ) = max { Ij |1 j n }
• Ϧϯά ࢄγεςϜͷτϙϩδʔ͕αΠΫϧάϥϑͰ͋Δͱ ͖ɼϦϯάͱݴ͏ɽ • ୯ํϦϯά ௨৴ϦϯΫ͕ͯ͢୯ํϦϯΫͰߏ͞Ε͍ͯΔɽ • ํϦϯά ௨৴ϦϯΫ͕ͯ͢ํϦϯΫͰߏ͞Ε͍ͯΔɽ
P1 P2 P3 P4 P5 P6 P1 P2 P3 P4
P5 P6 ํϦϯά ୯ํϦϯά
• ඇಉظ୯ํϦϯά ୯ํϦϯάɼඇಉظγεςϜͰͷ࠷େൃݟɽ • ΞϧΰϦζϜ NAIVE 1. ϓϩηεىಈͨ͠ΒࣗͷΛྡʹૹ৴͢Δɽ 2. ྡͷϓϩηε͔Βड৴ͨ͠Λͦͷ··సૹ͢Δɽ
3. ৗ࣌ɼϓϩηεड৴ͨ͠ͷ࠷େΛهԱ͢Δɽ 4. શ෦ͷ͕ϦϯάΛ̍ि͢Δͱϓϩηε࠷େΛൃ ݟ͢ΔɽࣗͷΛ͏Ұड͚औΔͱఀࢭ͢Δɽ ϝοηʔδෳࡶɼ֤ Ij ͕ͦΕͧΕ n ճૹ৴͞ ΕΔ͔Βɼn^2 ʹͳΔɽ
P1 P2 P3 P4 P5 P6 (2) (4) (8) (3)
(5) (6) ࢝ಈϓϩηε ࠷େ ॳظ Ij (ద)
P1 P2 P3 P4 P5 P6 (2) (4) (8) (3)
(5) (6) ϝοηʔδΛૹ৴ ࠷ॳࣗͷ [2]
P1 P2 P3 P4 P5 P6 (2) (4) (8) (3)
(5) (6) ϝοηʔδΛૹ৴ ࣗͷʴड৴ͨ͠ [4][2]
P1 P2 P3 P4 P5 P6 (2) (4) (8) (3)
(5) (6) ϝοηʔδΛૹ৴ ࣗͷʴड৴ͨ͠ [8][4][2]
P1 P2 P3 P4 P5 P6 (2) (4) (8) (8)
(5) (6) ϝοηʔδΛૹ৴ ࣗͷʴड৴ͨ͠ [3][8][4][2] P3͔Βͷ͕ 8 Ͱ 3 ΑΓେ ͖͍ͨΊ࠷େΛߋ৽
P1 P2 P3 P4 P5 P6 (2) (4) (8) (8)
(8) (6) ϝοηʔδΛૹ৴ ࣗͷʴड৴ͨ͠ [5][3][8][4][2] P4 ͔Βͷ ͕ 8 Ͱ 5 ΑΓେ͖͍ͨΊ࠷େ Λߋ৽
P1 P2 P3 P4 P5 P6 (2) (4) (8) (8)
(8) (8) ϝοηʔδΛૹ৴ ࣗͷʴड৴ͨ͠ [6][5][3][8][4][2] P5 ͔Βͷ͕ 8 Ͱ 6 Α Γେ͖͍ͨΊ࠷େΛߋ৽
P1 P2 P3 P4 P5 P6 (8) (4) (8) (8)
(8) (8) ϝοηʔδΛૹ৴ ࣗͷʴड৴ͨ͠ [6][5][3][8] P1 ͔Βͷ͕ 8 Ͱ 4 Α Γେ͖͍ͨΊ࠷େΛߋ৽ ఀࢭ P2ड৴ͨ͠ϝοηʔδྻʹࣗͷ(4)ؚ͕·ΕΔͨΊఀࢭ͢Δ ఀࢭ ࣍ͷϓϩηεಉ༷ʹ
P1 P2 P3 P4 P5 P6 (8) (4) (8) (8)
(8) (8) ఀࢭ P3ड৴ͨ͠ϝοηʔδྻʹࣗͷ(8)ؚ͕·ΕΔͨΊఀࢭ͢Δ ఀࢭ [6][5][3] ఀࢭ
P1 P2 P3 P4 P5 P6 (8) (4) (8) (8)
(8) (8) ఀࢭ P4ड৴ͨ͠ϝοηʔδྻʹࣗͷ(3)ؚ͕·ΕΔͨΊఀࢭ͢Δ ఀࢭ [6][5] ఀࢭ ఀࢭ
P1 P2 P3 P4 P5 P6 (8) (4) (8) (8)
(8) (8) ఀࢭ P5ड৴ͨ͠ϝοηʔδྻʹࣗͷ(5)ؚ͕·ΕΔͨΊఀࢭ͢Δ ఀࢭ [6] ఀࢭ ఀࢭ ఀࢭ
P1 P2 P3 P4 P5 P6 (8) (4) (8) (8)
(8) (8) ఀࢭ P6ड৴ͨ͠ϝοηʔδྻʹࣗͷ(6)ؚ͕·ΕΔͨΊఀࢭ͢Δ ఀࢭ ఀࢭ ఀࢭ ఀࢭ ఀࢭ ͯ͢ͷϓϩηε͕࠷େ8Λൃݟ͠ఀࢭͨ͠ɽ
• ͜ͷΞϧΰϦζϜΛϕʔεͱͯ͠ϝοη ʔδΛݮগͤ͞Δɽ • ํ๏1 ड৴ͨ͠σʔλΛૹ৴͢ΔՁ͕͋Δ͔Ͳ͏͔அ͠ ແ͍ͷΛغ٫ͯ͠ϝοηʔδΛݮ͢Δɽ • ํ๏2 σʔλ͕࠷େͰ͋ΔՄೳੑ͕͞Ε͍ͯΔϓϩηεΛ
ہॴతͳϝοηʔδަͰݮΒ͍ͯ͘͠ɽ ݱࡏΒΕ͍ͯΔޮͷྑ͍ΞϧΰϦζϜ1ͱ2Λϕʔεͱ͍ͯ͠Δ