หากคุณยืนยันในพาร์ติชันที่แม่นยำคุณจะต้องคำนวณพาร์ทิชันที่สมดุลทั้งหมดของชุดของจุดในระนาบด้วยเส้น (พาร์ติชันที่เหมาะสมที่สุดคือพาร์ติชัน Voronoi ดังนั้นชุดจุดสองจุดจะถูกคั่นด้วยเส้น) พาร์ติชั่นดังกล่าวเรียกว่าk-sets อัลกอริทึมที่เร็วที่สุดที่รู้จักในปัจจุบันสำหรับงานนี้O(n4/3logn) สำหรับการคำนวณพาร์ติชั่นเหล่านี้ใน dual [ie, the k- ระดับของชุด n เส้นสำหรับ k=n/2] เมื่อคุณมีพาร์ติชั่นที่เป็นไปได้ทั้งหมดคุณเพียงแค่ต้องตรวจสอบพาร์ติชั่นแต่ละอัน ใช้เทคนิคมาตรฐานซึ่งสามารถทำได้ในเวลาคงที่สำหรับแต่ละพาร์ติชัน
(อัปเดต: การพิสูจน์ว่าพาร์ติชันที่เหมาะสมเป็นที่รับรู้โดย k- ชุดสำหรับ k=n/2ไม่ใช่เรื่องไร้สาระอย่างสมบูรณ์ ฉันจะปล่อยให้มันเป็นแบบฝึกหัดที่น่ารักสำหรับผู้อ่านที่สนใจ คำแนะนำ: พิจารณาเส้นที่ผ่านศูนย์กลางที่ดีที่สุดสองแห่งและทิศทางที่ตั้งฉากกับมัน)
หากคุณไม่สนใจคำตอบที่ถูกต้องวิธีการที่ง่ายกว่าก็คือการใช้ Coreset kหมายถึงการจัดกลุ่ม ซึ่งจะส่งผลให้O(ϵ−2logn) คะแนนถ่วงน้ำหนักในกรณีนี้ด้วยน้ำหนักรวม n. จากนั้นคุณเพียงแค่ต้องแก้ปัญหาในชุดจุดถ่วงน้ำหนัก ทางออกที่ง่ายที่สุดคือการสร้างสถานที่ตั้งของผู้สมัครสำหรับศูนย์และลองทุกคู่ในจุดถ่วงน้ำหนัก การสร้างแกนและการสร้างศูนย์ผู้สมัครได้อธิบายไว้ในบทความนี้:
http://sarielhp.org/p/03/kcoreset/