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 Flexible Design Systems
yeseniaperezcruz
328
39k
Embracing the Ebb and Flow
colly
86
4.8k
Building Applications with DynamoDB
mza
95
6.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Producing Creativity
orderedlist
PRO
346
40k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
The Cult of Friendly URLs
andyhume
79
6.5k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
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Λϕʔεͱ͍ͯ͠Δ