ค้นหาจุดศูนย์กลางในชุดจุดชี้วัดในพื้นที่น้อยกว่า


9

ฉันมีชุดของ nจุดที่กำหนดไว้ในช่องว่างเมตริก - ดังนั้นฉันสามารถวัด 'ระยะทาง' ระหว่างจุด แต่ไม่มีอะไรอื่น ฉันต้องการค้นหาจุดศูนย์กลางที่มากที่สุดภายในชุดนี้ซึ่งฉันกำหนดเป็นจุดที่มีผลรวมระยะทางขั้นต่ำไปยังจุดอื่นทั้งหมด การคำนวณเมทริกช้าดังนั้นจำเป็นต้องหลีกเลี่ยงหากเป็นไปได้

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

มีวิธีการทำเช่นนี้ในเวลาน้อยกว่า O(n2)เปรียบเทียบระยะทาง? (อาจใช้ประโยชน์จากความไม่เท่าเทียมกันของสามเหลี่ยมในบางวิธีซึ่งควรถือด้วยเมทริกของฉัน)

การประมาณที่ดีอาจพอเพียงถ้าไม่มีวิธีที่แน่นอน


ไม่มีความไม่เท่าเทียมกันของรูปสามเหลี่ยม (หรือวิธีอื่นในการรับข้อมูลเกี่ยวกับขอบที่ไม่ได้วัด) O(n2)เป็นทางออกเดียว สิ่งนี้สามารถเห็นได้โดยการโต้แย้งคู่ปรับ
Kittsil

สมมติว่าความไม่เท่าเทียมกันของสามเหลี่ยมมีอยู่ - ควรเป็นเมตริกของฉัน
Open Door Logistics

นี่คือการคำนวณคลื่นวิทยุของกราฟที่มีความเสมอภาคเป็นรูปสามเหลี่ยม
Kaveh

@Kaveh ฉันเดาว่าคุณหมายถึงรัศมี ... เว้นแต่ว่ากราฟจะมีขอบแตก ฉันแน่ใจว่ามีคำศัพท์มากเกินไปที่ฉันไม่รู้ --- แต่มันก็เป็นกราฟที่สมบูรณ์และขนาดอินพุตเป็นเพียงจำนวนจุดยอด
Babou

@OpenDoorLogistics หากไม่มีความไม่เท่าเทียมกันของสามเหลี่ยมก็ไม่ได้เป็นตัวชี้วัดพื้นที่โดย deifinition โปรดอธิบายคำถาม: ถ้าคุณรู้ว่ามันเป็นพื้นที่เมตริกคุณก็รู้ว่ามันมีความไม่เท่าเทียมกันของสามเหลี่ยม หากคุณไม่ทราบว่ามีความไม่เท่าเทียมกันของสามเหลี่ยมคุณไม่สามารถอ้างได้ว่าเป็นพื้นที่เมตริก
David Richerby

คำตอบ:


6

ไม่คุณทำได้ดีกว่าไม่ได้ Θ(n2) ในกรณีที่เลวร้ายที่สุด

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


อย่างไรก็ตามหากคุณรู้ว่าคะแนนทั้งหมดอยู่ใน Rd (แม้ว่าคุณจะไม่ได้รับพิกัด) แต่ปัญหาก็สามารถแก้ไขได้โดยการวัด O((d+1)n) ระยะทางสมมติว่าไม่มีความเสื่อม (ไม่มีส่วนย่อยของ d+1 คะแนนร่วมกันคือภาพถ่าย)

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


คุณมี n คะแนนในมิติ n1. แม้แต่การดูพิกัดทั้งหมดของอินพุตก็ต้องใช้Θ(n2)เวลา.
Louis

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

@ DW ขอบคุณ - เราจะทำอะไรได้ดีขึ้นในกรณีเฉลี่ยหรือไม่ สิ่งนี้ได้รับแรงบันดาลใจจากปัญหาในโลกแห่งความเป็นจริงดังนั้นข้อมูลน่าจะเป็น 'ค่าเฉลี่ย' (สิ่งที่อาจหมายถึง)
Open Door Logistics

@ ทั้งหมด - ขอโทษสำหรับความสับสนอีกครั้ง: ตัวชี้วัด (ฉันเป็นฆราวาสในทฤษฎี CS) ฟังก์ชั่นระยะทางของฉันแน่นอนเชื่อฟัง 4 เกณฑ์สำหรับพื้นที่ตัวชี้วัดตามคำนิยามของวิกิพีเดียของพื้นที่ตัวชี้วัดการเชื่อมโยง
Open Door Logistics

@OpenDoorLogistics ฉันได้เพิ่มเคสพิเศษหนึ่งตัวซึ่งเป็นไปได้ที่จะทำได้ดีขึ้น
DW

0

ตรวจสอบงานของ Piotr Indyk เกี่ยวกับอัลกอริทึมที่รวดเร็วสำหรับการเว้นวรรคเมตริก ( อัลกอริทึม Sublinear สำหรับปัญหาอวกาศเมตริกในการดำเนินการของ STOC '99 , pp.428–434 ACM, 1999; PS ) ส่วนที่ 3 ให้อัลกอริธึมเชิงเส้นตรงเวลาประมาณ 1 ค่ามัธยฐาน


1
คุณสามารถสรุปอัลกอริทึมได้หรือไม่? เรากำลังมองหาคำตอบที่สมบูรณ์แทนที่จะเชื่อมโยงไปยังเนื้อหาภายนอก
David Richerby

ขออภัยในการตอบกลับช้ามาก เห็นได้ชัดว่าฉันไม่ตรวจสอบ StackExchange บ่อยมาก ฉันคิดว่ามันต้องใช้เวลามากกว่าหนึ่งชั่วโมงในการเขียนบทสรุปที่ดีในครึ่งทางขณะที่กระดาษของ Piotr เขียนอย่างสวยงามอธิบายอัลกอริทึมอย่างชัดแจ้งและมีคำจำกัดความที่แม่นยำทั้งหมดข้างๆ ดังนั้นฉันขอแนะนำเป็นการส่วนตัวให้ใช้ประโยชน์จากเนื้อหาภายนอกที่มีคุณภาพสูงนี้แทนเนื้อหาภายในคุณภาพปานกลางที่ฉันสามารถสร้างได้ คำตอบสั้น ๆ คือ: ถ้าคุณเต็มใจที่จะหาค่ามัธยฐานโดยประมาณคุณสามารถทำได้ในเวลาเชิงเส้น O (n)
user71641
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.