อัลกอริธึมแบบสุ่มที่มีประสิทธิภาพและง่ายซึ่งการกำหนดเป็นเรื่องยาก


33

ฉันมักจะได้ยินว่ามีปัญหามากมายที่เรารู้ว่าอัลกอริธึมแบบสุ่มที่หรูหรามาก ๆ แต่ไม่มีวิธีแก้ปัญหาที่ซับซ้อนหรือซับซ้อนกว่านั้น อย่างไรก็ตามฉันรู้เพียงไม่กี่ตัวอย่างสำหรับสิ่งนี้ ส่วนใหญ่ผงาด

  • Quicksort แบบสุ่ม (และอัลกอริทึมทางเรขาคณิตที่เกี่ยวข้องเช่นสำหรับตัวถังนูน)
  • Mincut แบบสุ่ม
  • การทดสอบเอกลักษณ์พหุนาม
  • ปัญหาการวัดของ Klee

การทดสอบอัตลักษณ์พหุนามดูเหมือนว่าจะยากมากหากไม่ใช้การสุ่ม

คุณรู้ตัวอย่างเพิ่มเติมของปัญหาที่วิธีการแก้ปัญหาแบบสุ่มนั้นสง่างามหรือมีประสิทธิภาพมาก แต่วิธีการแก้ปัญหาที่กำหนดไม่ได้หรือไม่ ในทางอุดมคติแล้วปัญหาน่าจะง่ายต่อการกระตุ้นให้ฆราวาส (ไม่เหมือนการทดสอบอัตลักษณ์พหุนาม)


10
อีกตัวอย่างหนึ่งคือการทดสอบแบบดั้งเดิม การทดสอบความน่าจะเป็นแบบดั้งเดิมของ Miller – Rabin และ Solovay – Strassen นั้นง่ายและมีประสิทธิภาพมาก มันเป็นปัญหาที่เปิดกว้างมายาวนานในการค้นหาการทดสอบแบบดั้งเดิมที่มีประสิทธิภาพซึ่งกำหนดขึ้นโดย Agrawal, Kayal และ Saxena การทดสอบ AKS เป็นการทดสอบแบบพหุนามแบบกำหนดแน่นอน อย่างไรก็ตามมันไม่ง่ายและไม่มีประสิทธิภาพเท่าการทดสอบความน่าจะเป็น
ยูรี

8
การเลือกแบบสุ่ม (การหาค่ามัธยฐาน) ค่อนข้างง่ายกว่าที่กำหนดไว้ อัลกอริธึมแบบสุ่มสำหรับการแก้ปัญหาการบรรจุและการปิดแผ่นเสียงนั้นเร็วกว่า (ในกรณีที่เลวร้ายที่สุด) กว่าชุดที่กำหนด ( KY07 , GK95 ) ปัญหาออนไลน์หลายคนได้สุ่ม ALG ของที่มีการแข่งขันมากขึ้นกว่าขั้นตอนวิธีการใด ๆ ที่กำหนดFK91
Neal Young

11
การคำนวณปริมาตรของร่างกายนูนในมิติสูงยอมรับการประมาณ(1+ε)โดยการสุ่ม เป็นที่ทราบกันดีว่าไม่มีอัลกอริทึมที่สามารถกำหนดค่าได้อย่างเหมาะสม ดังนั้นการสุ่มเป็นสิ่งจำเป็นที่นี่
จันทรา Chekuri

5
@ChandraChekuri ที่เป็นความคิดเห็นที่ดีและจะเป็นคำตอบที่ดียิ่งขึ้น :)
Suresh Venkat

3
@ChandraChekuri ในโมเดล oracle มิฉะนั้นBPPP
Sasho Nikolov

คำตอบ:


36

คัดแยกน็อตและสลักเกลียว

ปัญหาต่อไปนี้ได้รับการแนะนำโดย Rawlins ในปี 1992: สมมติว่าคุณได้รับคอลเลกชันของน็อตและน็อต n สายฟ้าแต่ละอันพอดีกับน็อตตัวเดียวและมิฉะนั้นตัวน็อตและสลักเกลียวก็มีขนาดที่แตกต่างกัน ขนาดใกล้เกินไปที่จะอนุญาตให้ทำการเปรียบเทียบโดยตรงระหว่างคู่สลักเกลียวหรือคู่ของน็อต อย่างไรก็ตามคุณสามารถเปรียบเทียบถั่วใด ๆ กับสายฟ้าใด ๆ โดยพยายามที่จะกรูพวกเขาเข้าด้วยกัน ในเวลาคงที่คุณจะค้นพบว่าสลักเกลียวนั้นใหญ่เกินไปเล็กเกินไปหรือเหมาะสมกับน็อต งานของคุณคือการค้นหาสายฟ้าที่เหมาะกับถั่วแต่ละตัวหรือเท่ากันเพื่อเรียงลำดับถั่วและสลักเกลียวตามขนาด

ตัวแปรตรงไปตรงมาของ quicksort แบบสุ่มแก้ปัญหาได้ในเวลามีความน่าจะเป็นสูง เลือกสายฟ้าแบบสุ่ม ใช้มันเพื่อแบ่งถั่ว ใช้น็อตจับคู่เพื่อแบ่งสลักเกลียว; และการชดเชย อย่างไรก็ตามการค้นหาอัลกอริธึมที่กำหนดขึ้นที่แม้แต่การทำงานในo ( n 2 )ก็เป็นสิ่งที่ไม่สำคัญ กำหนดO ( n log n )ขั้นตอนวิธีเรียลไทม์ในที่สุดก็ถูกพบในปี 1995 โดยแบรดฟอและเป็นอิสระโดยKomlósแม่และSzemerédi ภายใต้ประทุนอัลกอริทึมทั้งสองใช้ตัวแปรของเครือข่ายการเรียงลำดับแบบขนาน AKS ดังนั้นค่าคงที่ซ่อนอยู่ในO ( nO(nเข้าสู่ระบบn)โอ(n2)O(nlogn)เวลาที่ จำกัด มีขนาดค่อนข้างใหญ่ ค่าคงที่ที่ซ่อนสำหรับอัลกอริทึมแบบสุ่มคือ 4O(nlogn)

  • Noga Alon, Manuel Blum, Amos Fiat, Sampath Kannan, Moni Noar และ Rafail Ostrovsky การจับคู่ถั่วและสลักเกลียว พร วันที่ 5 ACM-SIAM Symp อัลกอริธึมแบบไม่ต่อเนื่อง , 690–696, 1994
  • Noga Alon, Phillip G. Bradford และ Rudolf Fleischer การจับคู่น๊อตและสลักเกลียวเร็วขึ้น แจ้ง. พร เลทท์ 59 (3): 123–127, 1996
  • Phillip G. Bradford การจับคู่น๊อตและสลักเกลียวอย่างเหมาะสมที่สุด เทค ตัวแทน MPI-I-95-1-025, Max-Planck-Institut สำหรับ Informatik, 1995 http://domino.mpi-inf.mpg.de/internet/reports.nsf/NumberView/1995-1-025
  • Phillip G. Bradford และ Rudolf Fleischer การจับคู่น๊อตและสลักเกลียวเร็วขึ้น พร 6 int Symp คำนวณขั้นตอนวิธี , 402–408, 1995. คำบรรยายประกอบการบรรยาย วิทย์ 1004
  • JánosKomlós, Yuan Ma และ Endre Szemerédi จับคู่สลักเกลียวถั่วและในเวลา SIAM J. คณิตศาสตร์ไม่ต่อเนื่อง 11 (3): 347–372, 1998O(nเข้าสู่ระบบn)
  • Gregory J. E. Rawlins เมื่อเทียบกับอะไร : บทนำเกี่ยวกับการวิเคราะห์อัลกอริทึม วิทยาการคอมพิวเตอร์กด / WH อิสระ, 1992

2
นี่เป็นตัวอย่างที่สวยงาม แต่เป็นปัญหาของออราเคิล มีวิธีการลบ oracle จากมันหรือไม่?
Peter Shor

มีลิงค์ไปยังกระดาษ 98 Szemeredi หรือไม่? มันยากขนาดไหน? ในการเปรียบเทียบแต่ละสายฟ้ากับถั่วที่ไม่ซ้ำกันและทำให้แต่ละคู่ในลำดับที่เรียง; ลบองค์ประกอบที่ตรงกัน ในขั้นตอนเข้าสู่ระบบ (n) ผสานลำดับ nbnbnbnbnb เรียงลำดับเตะออกการแข่งขันที่เกิดขึ้น แก้ไข: ใช่การไม่เปรียบเทียบของสตริง nnn และ bbbb นั้นน่ารำคาญในขั้นตอนการรวม
Chad Brewbaker

@ChadBrewbaker สมมติว่าในทุกคู่ แต่มีหนึ่งอันสลักเกลียวนั้นเล็กกว่าน็อต (ใช่เป็นไปได้) ตอนนี้อัลกอริทึมของคุณทำอะไร กล่าวอีกนัยหนึ่ง "รำคาญ" = "ปัญหาทั้งหมด"
Jeffε

ฉันกำลังมองหากระดาษ Szemeredi และคิดออกมาดัง ๆ ว่ามันยากแค่ไหน ใช่ฉันเห็นด้วยว่าวิธีการที่ใช้ผสานนั้นเป็นเรื่องไม่สำคัญ แต่เอกสารของ Vishkin ในการเชื่อมต่อกราฟแบบขนานทำให้เกิดความรู้สึกว่ามันเป็นไปไม่ได้
Chad Brewbaker

ด้วยการเปรียบเทียบแต่ละครั้งจากน็อตและโบลต์คุณจะได้รับการเพิ่มขอบกำกับลงในกราฟหรือการแข่งขันที่จะลบจุดยอดทั้งสอง เป้าหมายคือการผสานส่วนประกอบที่เชื่อมต่อในลักษณะที่พวกเขายุบการแข่งขันทั้งหมดระหว่างพวกเขาด้วยจำนวนเชิงเส้นของการทำงานและรักษาขนาดการจัดเก็บของขอบในองค์ประกอบที่เชื่อมต่อที่ถูกผูกไว้กับพื้นที่เชิงเส้น
Chad Brewbaker

17

เมื่อคุณไม่ได้พูดถึงโพลีไทม์เท่านั้น แต่ลองดูการคำนวณหลายแบบที่เราศึกษามีตัวอย่างอยู่ทุกที่:

ใน Logspace: การเชื่อมต่อ ST แบบไม่กำกับ (ใน RL ตั้งแต่ปี 1979 และเป็น L ตั้งแต่ปี 2005)

ใน NC: การค้นหาการจับคู่ที่สมบูรณ์แบบในกราฟ bipartite แบบขนาน (ใน RNC และยังไม่ทราบว่าอยู่ใน NC)

ในการพิสูจน์เชิงโต้ตอบ: วัตถุที่กำหนดได้ให้ NP ในขณะที่การสุ่มสามารถทำได้ PSPACE ที่เกี่ยวข้อง: การตรวจสอบหลักฐานที่กำหนดขึ้นมานั้นต้องดูที่การพิสูจน์ทั้งหมดในขณะที่การพิสูจน์ PCP ช่วยให้คุณสามารถตรวจสอบบิตจำนวนคงที่เท่านั้น

ในการออกแบบกลไกอัลกอริธึม: กลไกการประมาณความจริงแบบสุ่มจำนวนมากโดยไม่มีคู่ที่กำหนดขึ้นได้

ในการสื่อสารที่ซับซ้อน: ฟังก์ชั่นความเท่าเทียมกันต้องใช้การสื่อสารเชิงเส้นอย่างกำหนด แต่ลอการิทึม (หรือขึ้นอยู่กับการสื่อสารที่แน่นอนแบบคงที่) การสุ่ม

ในต้นไม้การตัดสินใจ: การประเมินและ - หรือต้นไม้นั้นต้องการการสืบค้นเชิงเส้น แต่ไม่มากนักด้วยการสุ่ม นี่เป็นหลักเทียบเท่ากับการตัดแต่งกิ่งแบบอัลฟาเบต้าซึ่งให้อัลกอริทึมย่อยเชิงเส้นแบบสุ่มสำหรับการประเมินต้นไม้เกม

ในสตรีมมิ่งโมเดลโมเดลการคำนวณแบบกระจาย: ดูคำตอบก่อนหน้า


12

อัลกอริทึมการสตรีมส่วนใหญ่

ในรูปแบบการสตรีมของการคำนวณ ( AMS , หนังสือ ) อัลกอริทึมจะประมวลผลลำดับการอัปเดตออนไลน์และถูก จำกัด เพื่อให้มีพื้นที่ว่างเชิงเส้นเท่านั้น ณ เวลาใด ๆ อัลกอริทึมควรจะสามารถตอบแบบสอบถาม

สำหรับปัญหาต่าง ๆ มีช่องว่าง sublinear สุ่มอัลกอริธึมการสตรีมในขณะที่พิสูจน์ไม่มีอัลกอริทึมที่กำหนดสามารถแก้ปัญหาในพื้นที่ sublinear สิ่งนี้เกี่ยวข้องกับช่องว่างระหว่างความซับซ้อนของการสื่อสารแบบสุ่มและแบบกำหนดแน่นอน ตัวอย่างง่ายๆคือปัญหาการนับที่แตกต่าง : ในแต่ละขั้นตอนอัลกอริทึมจะได้รับจำนวนเต็มฉันt[ n ]และมันควรจะสามารถประมาณD m = | { i t : t = 1 m } | นั่นคือจำนวนของจำนวนเต็มที่แตกต่างที่เห็นได้ถึงขั้นตอนmtit[n]Dm=|{it:t=1m}|m. มันค่อนข้างง่ายที่จะแสดงให้เห็นว่าอัลกอริธึมที่กำหนดขึ้นมาเพื่อให้ได้การประมาณค่าคงที่นั้นต้องใช้พื้นที่ (ดูตัวอย่างเช่นบันทึกการบรรยายโดย Piotr Indyk) ในทางตรงกันข้ามอัลกอริธึมการสุ่มตัวอย่างที่ชาญฉลาดของ Flajolet และ Martin (การวิเคราะห์อย่างง่ายที่มีการสุ่ม จำกัด ในกระดาษ AMS ที่เชื่อมโยงด้านบน) ได้รับการประมาณค่าคงที่ในบิตO ( log n )บิต ผลงานล่าสุดในการแก้ปัญหาให้ดีที่สุดO ( 1Ω(n)O(logn)อัลกอริทึมที่คำนวณ1±εประมาณO(1ϵ2+logn)1±ϵ


8

หาชุดอิสระสูงสุดในเครือข่ายการกระจายของโหนดที่มีระดับสูงสุดΔ มีขอบเขตล่างที่ทราบ [3] ของนาที( Ω ( log Δ ) , Ω ( nΔที่เก็บอัลกอริทึมแบบสุ่มและกำหนดไว้min(Ω(logΔ),Ω(logn))

ต่อไปนี้เป็นอัลกอริธึมการกระจายแบบสุ่มอย่างง่าย [1] ที่ดำเนินการในรอบแบบซิงโครนัส (ในรอบทุกโหนดสามารถดำเนินการคำนวณและส่งข้อความท้องถิ่นบางอย่างเพื่อให้ประเทศเพื่อนบ้าน. ข้อความเหล่านี้มีการรับประกันว่าจะได้รับก่อนที่จะเริ่มรอบต่อไปได้.)u

  1. ในทุกรอบการใช้งานในแต่ละโหนดเครื่องหมายตัวเองด้วยความน่าจะเป็น1 / d Uที่d U > 0คือระดับของU ; ถ้าd U = 0 , ยูก็จะเข้าสู่การตั้งค่าความเป็นอิสระ (เริ่มแรกทุกโหนดทำงานอยู่)u1/dudu>0udu=0u
  2. หากเป็นเพียงโหนดที่ทำเครื่องหมายไว้ในละแวกนั้นคุณจะเข้าสู่ชุดอิสระปิดการใช้งานตัวเองและแจ้งเพื่อนบ้านทั้งหมดของตนเพื่อยกเลิกการใช้งานตัวเอง องศาของโหนดที่ทำงานอยู่ที่เหลือจะลดลงตามลำดับเช่นขอบทั้งหมดของโหนดที่ถูกปิดการใช้งานจะถูกลบออกuu
  3. มิฉะนั้นหากมีบางโหนดที่อยู่ใกล้เคียงที่ถูกทำเครื่องหมายจุดยอดระดับล่างจะยกเลิกการทำเครื่องหมายตัวเองและยังคงทำงานอยู่v

จะแสดงให้เห็นว่าอัลกอริทึมนี้จะสิ้นสุดในรอบที่มีความน่าจะเป็นสูงโดยการพิสูจน์ว่าครึ่งหนึ่งของขอบที่เหลือจะถูกลบในทุก ๆ รอบ ในทางตรงกันข้ามอัลกอริทึมแบบกระจายตัวที่กำหนดได้เร็วที่สุด [2] ใช้O ( n 1 / √)O(logn)ปัดเศษและซับซ้อนกว่ามากO(n1/logn)


[1] Michael Luby: อัลกอริทึมแบบขนานอย่างง่ายสำหรับปัญหาชุดอิสระสูงสุด SIAM J. Comput 15 (4): 1036-1053 (1986) http://dx.doi.org/10.1137/0215074

[2] Alessandro Panconesi, Aravind Srinivasan: ความซับซ้อนของการกระจายเครือข่ายแบบกระจาย J. อัลกอริทึม 20 (2): 356-374 (1996) http://dx.doi.org/10.1006/jagm.1996.0017

[3] Fabian Kuhn, Thomas Moscibroda, Roger Wattenhofer: การคำนวณในท้องถิ่น: ขอบเขตล่างและบน abs / 1011.5470 CoRR (2010) http://arxiv.org/abs/1011.5470


อัลกอรึทึมล่าสุด (ที่ PODC 2013) ซึ่งได้รับแรงบันดาลใจจากระบบชีวภาพบรรลุประสิทธิภาพและ Luby โดยใช้กลไกการป้อนกลับแบบท้องถิ่น arxiv.org/abs/1211.0235
András Salamon

6

การเลือกตั้งผู้นำในวงแหวนแห่งกระบวนการที่ไม่เปิดเผยตัว

1

มีข้อโต้แย้งง่าย ๆ (เช่น [1]) ว่าไม่มีอัลกอริธึมการเลือกตั้งผู้นำที่กำหนดขึ้นสำหรับแหวนที่ไม่ระบุชื่อ

แบบจำลอง:เราคิดว่าการคำนวณมีความก้าวหน้าในรอบซิงโครนัสโดยที่ในแต่ละรอบทุกกระบวนการทำการคำนวณในท้องถิ่นส่งข้อความไปยังเพื่อนบ้านในวงแหวนและรับข้อความจากเพื่อนบ้าน

Ar01

r0rArrr+1A

An[1,n4]


[1] Dana Angluin: คุณสมบัติท้องถิ่นและทั่วโลกในเครือข่ายโปรเซสเซอร์ (ขยายบทคัดย่อ) สต็อก 1980: 82-93 http://doi.acm.org/10.1145/800141.804655


6

ปัญหาส่วนใหญ่ในรูปแบบแบบสอบถาม

nij

n/2O(n)

O(n)

FRK Chung, RL Graham, J. Mao, และ AC Yao, กลยุทธ์ที่หลงลืมและปรับตัวสำหรับปัญหาส่วนใหญ่และส่วนใหญ่, Proc COCOON 2005 , pp. 329–338

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.