ค้นหาระยะทางสั้นที่สุดของคะแนนใน Pairwise เป็น o (n log n) หรือไม่


11

แบบฝึกหัดต่อไปนี้มอบให้กับนักเรียนที่ฉันควบคุมดูแล:

กำหนดจุดบนเครื่องบินประดิษฐ์อัลกอริธึมที่หาคู่ของจุดที่ระยะทางน้อยที่สุดในทุกจุด อัลกอริทึมควรใช้ในเวลาที่o ( n 2 )no(n2)

มี (ค่อนข้าง) แบ่งและพิชิตอัลกอริทึมง่ายๆที่แก้งานในเวลาที่เป็น )Θ(nlogn)

คำถามที่ 1 : มีอัลกอริทึมที่แก้ปัญหาที่เกิดขึ้นในเวลาที่เลวร้ายที่สุดหรือไม่?o(nlogn)

สิ่งที่ทำให้ฉันสงสัยว่าสิ่งนี้อาจเป็นไปได้คือผลลัพธ์ที่ฉันจำได้ว่าได้เห็นในการพูดคุย (อ้างอิงชื่นชม) มันระบุสิ่งที่ตามเส้นที่ไม่เกินค่าคงที่จำนวนจุดสามารถจัดอยู่ในระนาบที่อยู่รอบ ๆ บางจุดPอยู่ภายในวงกลมรัศมีR RกับRระยะทางที่น้อยที่สุดระหว่างสองจุดที่เกี่ยวข้อง . ฉันคิดว่าc = 7จุดที่สร้างรูปหกเหลี่ยมด้านเท่ากันหมดที่มีpอยู่ตรงกลาง (ในกรณีที่รุนแรง)cNprRrc=7p

ในกรณีดังกล่าวอัลกอริทึมต่อไปนี้ควรแก้ไขปัญหาได้ในขั้นตอนn

fun mindist [] | p::[] = INFINITY
|   mindist p1::p1::[] = dist(P[0], P[1])
|   mindist p::r = let m = mindist(r) in
                     min(m, nextNeighbour(p, r, m))
                   end

โปรดทราบว่านี่คือ (อ้างว่าเป็น) ในเวลาเชิงเส้นเพราะมีเพียงจำนวนจุดคงที่ในrไม่ไกลmจากp(สมมติว่าข้อความข้างต้น); เฉพาะจุดเหล่านี้จะต้องมีการตรวจสอบเพื่อหาขั้นต่ำใหม่ มีการจับแน่นอน คุณจะใช้งานอย่างไรnextNeighbour(อาจมีการประมวลผลล่วงหน้าในเวลาเชิงเส้น)

คำถามที่ 2 : ให้ชุดของจุดและจุดP R ปล่อยm Rด้วยRpRmR

mmin{dist(p1,p2)p1,p2R}

และ

Rp,m:={ppRdist(p,p)m}\}

สมมติว่ามี จำกัด เป็นไปได้หรือไม่ที่จะหามีระยะทางน้อยที่สุดจากใน (ตัดจำหน่าย) เวลา ? (คุณอาจสันนิษฐานว่าจะถูกสร้างขึ้นโดยการเพิ่มคะแนนที่ตรวจสอบหนึ่งต่อหนึ่ง) p R p , m p O ( 1 ) R pRp,mpRp,mpO(1)Rp


2
ฉันเสนอให้ค้นหาด้วย "คู่ที่ใกล้เคียงที่สุด" เป็นคำหลัก
โยชิโอะโอกาโมโตะ

นี่คือเนื้อหามาตรฐานทั้งหมดในตอนนี้ให้ดูสองบทแรกที่นี่: goo.gl/pLiEO
Sariel Har-Peled

ps หากคุณต้องการเวลาที่คาดหวังจากนั้นคุณสามารถคำนวณ Delaunay triangulation ซึ่งมีระยะทางขั้นต่ำได้
domotorp

หลังจากคำถามที่ 1 คุณเขียน "ไม่เกินจำนวนจุดคงที่สามารถจัดเรียงในระนาบประมาณจุดหนึ่ง p ภายในวงกลมรัศมี r โดยมีระยะห่างน้อยที่สุดระหว่าง p และจุดอื่น ๆ " สิ่งนี้ไม่เป็นความจริงอย่างแน่นอน: คุณสามารถรับคะแนนจำนวนเท่าใดก็ได้บนวงกลมรัศมี r ข้อความของคุณเป็นจริงถ้า r คือระยะทางที่น้อยที่สุดระหว่างจุดสองจุดใด ๆ ซึ่งในกรณีนี้การพิสูจน์นั้นค่อนข้างง่าย
domotorp

คำถามแรกคือเนื้อหาในตำราตามที่ได้กล่าวไปแล้ว: ไม่ใช่ระดับการวิจัย ฉันไม่เข้าใจคำถามที่สอง: สำหรับการใด ๆที่คุณจะถามอย่างใดอย่างหนึ่งไม่ได้อยู่หรือเพื่อนบ้านที่อยู่ใกล้ในRแล้วคำถามนี้แตกต่างจากคำถาม 1 อย่างไร สิ่งที่คุณตัดจำหน่ายไป (เช่นถ้านี่เป็นคำถามโครงสร้างข้อมูลการปรับปรุงและแบบสอบถาม) คืออะไร? p p RmppR
Sasho Nikolov

คำตอบ:


12

มันเป็นไปไม่ได้ที่จะแก้ปัญหาในเวลาน้อยกว่าในโมเดลมาตรฐานเช่นใช้ต้นไม้ตัดสินใจเชิงพีชคณิต สิ่งนี้ติดตามจากงานของ Yao และ Ben-Or ที่แสดงให้เห็นว่าในรุ่นนี้มันเป็นไปไม่ได้ที่จะตัดสินใจว่าชุดของตัวเลข input นั้นแตกต่างกันทั้งหมดหรือไม่ (ดูที่http://people.bath.ac.uk/masnnv /Teaching/AAlg11_8.pdf ) ในกรณีที่เกิดปัญหาของคุณลองจินตนาการว่าพวกเขาทั้งหมดอยู่ในสายจริง หากจุดสองจุดเหมือนกันผลลัพธ์ของคุณจะเป็นสองจุดที่มีระยะทางเป็นศูนย์ แต่ไม่เช่นนั้นการแก้ปัญหาของคุณก็จะแก้ปัญหา DISTINCT NUMBERS ได้เช่นกัน หากคุณต้องการสมมติว่าคะแนนทั้งหมดของคุณแตกต่างกันเพียงเพิ่มในn ฉันϵ x ฉัน n ϵ 2 n ϵ Ω ( n บันทึกn )cnlognniϵxiอินพุตของปัญหา DISTINCT NUMBERS ในกรณีนี้หากเอาต์พุตของคุณมากที่สุดดังนั้นตัวเลขจะไม่แตกต่างกันทั้งหมด (ถึงแม้ว่าในกรณีนี้คุณต้องใช้รุ่นสัญญาที่มีความแตกต่างของตัวเลขสองตัวใด ๆ ที่แตกต่างกันอย่างน้อยแต่ฉันคิดว่าหลักฐานแบบเดียวกันนี้แสดงว่าคุณต้องการด้วย กรณี.)nϵ2nϵΩ(nlogn)


แน่นอนขอบคุณ คำตอบนั้นก็คือคำถามที่ 2 (แง่ลบ) เช่นกัน
กราฟิลส์

ปัญหาที่คุณพูดถึงจะเห็นได้ชัดว่ายังเป็นที่รู้จักธาตุชัดเจนปัญหา
กราฟิลส์

การอ้างอิงของ @Sariel Har-Peled ( goo.gl/pLiEO ) นำเสนออัลกอริทึมเชิงเส้นเวลาเชิงปฏิบัติสำหรับการค้นหาคู่ที่ใกล้เคียงที่สุด เอกสารนั้นกล่าวถึงอาร์กิวเมนต์นี้โดยตรงและอธิบายว่าไม่ได้ใช้เพราะอัลกอริทึมใช้แบบจำลองการคำนวณที่ทรงพลังกว่า
kevin cline

1
ใช่ แต่คำถามนั้นถามถึงเวลาที่เลวร้ายที่สุดในการดำเนินการกรณีพิเศษ แต่ฉันยอมรับว่าการสังเกตทั้งหมดของฉันปรากฏในวิทยานิพนธ์ของซาเรียลแล้ว
domotorp


0

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


BTW ฉันหมายถึงไม่ได้อ้างอิงถึงอัลกอริทึมตามที่ลิปตันอธิบาย แต่ตามที่อธิบายไว้ในความคิดเห็นแรก (และหนังสือ Kleinberg และ Tardos)
Sasho Nikolov

เฉพาะในความคาดหมายดูคำตอบ domotorps
Raphael

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

4
Re "มากกว่าที่ Rabin ใช้": รวมถึงความสามารถในการปัดเศษอินพุตจำนวนจริงเป็นจำนวนเต็ม เราต้องระวังอย่างนี้: ถ้าคุณตั้งค่ารูปแบบการคำนวณที่สามารถทำการคำนวณทางคณิตศาสตร์มาตรฐานและปัดเศษจำนวนจริงทั้งหมดในเวลาคงที่ต่อการดำเนินการมันเป็นไปได้ที่จะแก้ปัญหา PSPACE ที่สมบูรณ์ในเวลาพหุนาม ในรุ่นนี้ แต่ราบินจะปัดเศษตัวเลขอินพุตเท่านั้น (ไปยังระดับความแม่นยำที่แตกต่างกันในการทำซ้ำที่แตกต่างกัน) และรูปแบบการปัดเศษที่ จำกัด นี้ไม่เป็นปัญหา
David Eppstein

@SashoNikolov ฉันกำลังมองหาเวลากรณีที่เลวร้ายที่สุดในดังนั้นยังกรณีที่เลวร้ายที่สุดในคำถาม 2 นี้ไม่มีอะไรเกี่ยวข้องกับอัลกอริธึมที่กำหนดขึ้น ฉันไม่แน่ใจว่าจะเกิดอะไรขึ้นถ้าคุณรวมเวลาที่คาดหวังและเวลาที่ตัดจำหน่าย O ( 1 )o(nlogn) O(1)
ราฟาเอล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.