Re: [問題] 計算幾何 Closest Pair Decision Problem

作者: DJWS (...)   2013-12-07 14:06:31
※ 引述《FRAXIS (喔喔)》之銘言:
: 給定在平面上n個點的集合P及一正實數x,設計一線性演算法判斷x是否大於
: P中最靠近兩點之距離。
: 我的解法無法滿足algebraic decision tree model,不知道有沒有辦法
: 設計出一個滿足algebraic decision tree model的演算法。
: (只能用+-*/等代數運算和比較)
感覺很難達成線性時間...
我猜你的解法,應該是把平面切割成寬度為x的正方形網格
(上左邊界是閉區間、下右邊界是開區間)
一、不相鄰的網格,距離一定超過x,沒有檢查的必要!
二、檢查網格內部,若超過三個點,就一定有「距離小於x的點對」,演算法結束
         若不超過三個點,需要檢查的點對,頂多3對,是常數
三、檢查相鄰八個網格:每個網格現在頂多三個點,需要檢查的點對,頂多3*3*8對,常數
然而如何把每一個點歸類於正確的網格呢?
這件事情本質上跟排序很相像
然而排序是 omega(nlogn)
所以我覺得很難達成線性時間
作者: singlovesong (~"~)   2013-02-07 15:00:00
這就跟先找closest pair 在看是不是大於x一樣lol
作者: FRAXIS (喔喔)   2013-02-07 17:42:00
這就是我用的方法,所以需要用floor運算 + Hash
作者: seanwu (海恩)   2013-02-08 16:17:00
這件事比sort簡單很多才對XD... 你只需要知道相鄰而已現在的問題是不用floor沒辦法決定是哪一格相鄰的話用hash查就夠了
作者: DJWS (...)   2013-02-08 20:43:00
不用floor的話,一種方式是把網格格點上的數字,摻進去排序所以我才會覺得這跟排序差不多
作者: neutrino (十年一夢)   2013-02-09 20:11:00
若不用hash, 題目改成一維, 有O(n)演算法嗎?
作者: FRAXIS (喔喔)   2013-02-09 20:43:00
在algebraic decision tree model下就算是一維的也是有n lg n的下限

Links booklink

Contact Us: admin [ a t ] ucptt.com