อัลกอริทึมแบบสุ่มโดยใช้สแต็ก


11

ฉันได้พัฒนาเทคนิคการทำให้กระจัดกระจายใหม่ซึ่งมีวัตถุประสงค์เพื่ออัลกอริทึมแบบสุ่มแบบเรียกซ้ำ (หรือ) อัลกอริทึมแบบสุ่มที่ใช้สแต็กมากกว่า น่าเสียดายที่ฉันไม่สามารถหาอัลกอริทึมแบบสุ่มตามธรรมชาติเพื่อใช้เทคนิคของฉันได้ เครือมาร์คอฟแบบเรียกซ้ำและแกรมสโตแคสติกอยู่ใกล้กับสิ่งที่ฉันกำลังมองหา มีอัลกอริธึมแบบสุ่ม (เป็นธรรมชาติ) อื่น ๆ ที่ใช้ "จำเป็น" ของ stack หรือไม่? ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมากเนื่องจากฉันติดอยู่กับเรื่องนี้มานานกว่าหกเดือนแล้ว

เพื่อให้คุณมีบริบทเพิ่มเติมฉันกำลังมองหารายการของปัญหาที่คล้ายกับผู้ที่อยู่ในกระดาษ Sivakumar ของ โปรดทราบว่า SivaKumar ใช้เครื่องมือสร้าง Pseudo-Random ของ Nisan เพื่อแยกแยะปัญหาเหล่านี้


3
คุณสามารถยกตัวอย่างของอัลกอริทึมแบบสุ่มซ้ำที่ไม่ได้ใช้ประโยชน์จากสแต็กได้หรือไม่? วิธีการเกี่ยวกับอัลกอริทึมแบบสุ่มของ Welzl สำหรับวงรีน้อยที่สุดที่ล้อมรอบด้วยความลึกของการเรียกซ้ำ O (d) โดยที่ d คือมิติของพื้นที่
ต่อ Vognsen

คุณควรตอบคำถามนี้!
Suresh Venkat

คำตอบ:


6

ตามที่ Vognsen ชี้ให้เห็นและโดยทั่วไปก็มีอัลกอริธึมเรขาคณิตมากมายที่ทำงานดังนี้: เลือกตัวอย่างแบบสุ่มและเรียกใช้ซ้ำบนตัวอย่างและโครงสร้างอื่น ๆ ที่ได้รับมา อัลกอริทึมแบบสุ่มของ Clarkson สำหรับการเขียนโปรแกรมเชิงเส้นรวมถึง Seidel และซีรีส์ Matousek-Sharir-Welzl ที่ Per กล่าวกล่าวทั้งหมดทำงานในลักษณะนี้และกระบวนทัศน์ของ Clarkson ขยายไปสู่สถานการณ์อื่น ๆ ที่คุณสร้างการตัดหรือ epsilon-net และเรียกคืน .

น่าเสียดายที่คุณไม่น่าจะได้รับผลลัพธ์ใหม่จากสิ่งนี้เนื่องจากมีการปรับอัลกอริธึมที่เหมาะสมที่สุดเนื่องจากการทำงานของ Matousek และ Chazelle เอกสารของ Chazelleเป็นจุดอ้างอิงที่ดีสำหรับงานนี้และงานก่อนหน้านี้โดย Matousek แต่มันอาจเป็นการทดสอบที่ดีสำหรับวิธีการของคุณ: มันยากที่จะเกิดขึ้นกับการสุ่มตัวอย่างเหล่านี้และหากวิธีการของคุณให้วิธีการกล่องดำเริ่มต้นด้วยอัลกอริทึมแบบสุ่ม (ง่ายกว่า) นั่นจะเรียบร้อย

ป.ล. นี่อาจเป็นตัวอย่างที่น่าเบื่อที่สุดเท่าที่จะเป็นไปได้ แต่วิธีการของคุณใช้กับ quicksort หรือวิธีการหาค่ามัธยฐานแบบสุ่มใด ๆ


ใช่. วิธีการของฉันเป็นวิธีกล่องดำ ดูเหมือนว่าจะไม่ทำงานในวิธีการค้นหาแบบเร็วหรือแบบมัธยฐานแบบสุ่ม ฉันจะผ่านกระดาษของ Chazelle ขอบคุณ
Shiva Kintali

6

อัลกอริทึมแบบสุ่มของ Welzl สำหรับวงรีรูปวงรีน้อยที่สุดได้อย่างไร มันมีการเรียกซ้ำความลึก O (d) โดยที่ d คือมิติของพื้นที่

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


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

4

เวอร์ชันที่เร็วกว่าของอัลกอริธึมตัดขั้นต่ำนั้นเรียกซ้ำได้แน่นอน ดูรูปที่ 2.5 ที่นี่หรือตำราแบบสุ่มอัลกอริธึมมาตรฐานใด ๆ


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