標記為訪 問,將這個點放入到集合s中。之后,訪該單元格周圍8個單元格中未被標記的單元格;如 果單元格中定位數(shù)據(jù)為0則標記為訪問;如果數(shù)據(jù)大于0,標記為訪問,加入到數(shù)據(jù)點集合 中,并從這些被加入到集合S的點開始進一步搜索單元格,直到?jīng)]有新的可訪問的單元格 為止。最終,S便是一個簇,這樣實現(xiàn)簇查找的時間復雜度是0(n),n為人員的數(shù)量。
[0027] 另外,與clique網(wǎng)格劃分按照精細程度的期望進行劃分不同的是,本方法中網(wǎng)格 的劃分是根據(jù)近鄰閥值A(chǔ)進行的。這需要系統(tǒng)管理員給出人員近鄰的閥值X。進行網(wǎng)格 劃分時,按照A的長度將兩個坐標軸進行劃分。按照這種方式進行劃分,我們可以得出如 下推理:
[0028]推理一:任意相距小于A的兩個點一定落在相鄰的兩個單元內(nèi)或是同一個單元 格內(nèi)。
[0029] 除此,我們還要規(guī)定單元格是密集單元格的條件。我們可以定義,如果空間劃分的 單元格中有數(shù)據(jù)點,則稱這個單元格是密集的。另外,如果兩個密集的單元格相鄰,則定義 兩個單元格是局部密集的,通過局部密集區(qū)域增量式地找出能搜索到的最大密集區(qū)域,即 簇。
[0030] 我們有以下推理:
[0031] 推理二:fb_clique通過一點找出的最大密集區(qū)域(簇)中數(shù)據(jù)點的集合與數(shù)據(jù) 集中的一個近鄰簇相等。
[0032]證明:因為找出的密集單元格長度為A,所以密集區(qū)域中點數(shù)一定是相互可達 的,而且clique找到的簇中數(shù)據(jù)點與其他的數(shù)據(jù)點不近鄰,從而數(shù)據(jù)集構(gòu)成一個近鄰簇。 同理,數(shù)據(jù)集中的一個近鄰簇,一定會在劃分的空間中形成一個密集區(qū)域,即簇。二者一一 對應(yīng)。因此,我們尋找近鄰簇可以通過尋找空間細分的單元格中簇來進行。通過計算數(shù)據(jù)點 集中近鄰簇的大小判斷是否發(fā)生聚集可以變?yōu)橛嬎憧臻g單元格中簇包含數(shù)據(jù)點數(shù)來判斷。
[0033] X不僅僅是影響了近鄰簇中點的緊密程度,并且影響對空間細分。通過調(diào)節(jié)A可 以檢測不同聚集程度的聚集。在運行中,管理員還要給出簇大小的閥值N,如果簇大小超過 閥值,則判定為發(fā)生過度聚集。
[0034] 給出近鄰閥值,用fb-clique進行過度聚集檢測,則滿足相互近鄰的人員一定在 一個近鄰簇內(nèi)并被檢測到。而且這種方法可以找到長度超過2a的聚集或是樹狀的聚集。 但是在實際的使用中樹狀的過度聚集檢測是根據(jù)場景來選擇的。有些場景下需要進行類似 的檢測,但是有些場景不需要這樣的檢測。因為樹枝狀的過度聚集往往會產(chǎn)生過度分散的 簇。對于數(shù)據(jù)點形成直線或是過于分散的樹枝狀聚集的情況,可以根據(jù)管理場景的需要配 置檢測與否。
[0035] 在實踐中,我們探索出通過以下幾種方式處理需要剔除過于分散的樹枝狀過度聚 集的情況,緊縮法和限定深度回溯。緊縮法和限定深度回溯法可以減少誤警的概率。
[0036] 緊縮法的原理比較簡單,管理員除了給出近鄰閥值大小,還要額外給出給出期望 檢測出過度聚集區(qū)域的最大長度。通過fb-clique找到的簇,判斷簇中點的外接矩形是否 滿足區(qū)域大小條件來判斷是否過度聚集。具體做法是算法找近鄰簇的過程中記錄近鄰簇對 應(yīng)空間簇在x,y軸上的最小、最大值,進而獲得簇(空間簇)的一個外接矩形。如果簇中點 數(shù)小于人數(shù)閥值N(即,不滿足過度聚集條件),或是簇中點數(shù)大于人數(shù)閥值N且外接矩形大 小小于管理員給出的區(qū)域閥值(即設(shè)定的區(qū)域閥值),則不用再進行檢測是否是過于分散 的樹枝狀過度聚集的情況。如果簇的點數(shù)大于人數(shù)閥值N且外接矩形大小大于設(shè)定的區(qū)域 閥值,則從外接矩形超過設(shè)定的區(qū)域長度的邊的相鄰邊界中切去一層網(wǎng)格,切去的一層為 滿足條件邊界中包含數(shù)據(jù)點最少的一條,形成新的簇及其外接矩形,當新的簇中點數(shù)小于 人數(shù)閥值N時結(jié)束,否則繼續(xù)判斷新的簇的外接矩形是否大于設(shè)定的區(qū)域閥值:如是,則從 外接矩形超過區(qū)域長度的邊的相鄰邊界中切去包含數(shù)據(jù)點最少的一層網(wǎng)格,繼續(xù)形成新的 簇及其外接矩形,依次下去直到簇的外接矩形小于設(shè)定的區(qū)域閥值,然后判斷簇中點數(shù)是 否仍大于給定閥值,如是則產(chǎn)生聚集報警。
[0037] 假設(shè)在搜索到密集區(qū)域時,1為密集區(qū)域中單元格數(shù),k密集區(qū)域的外接矩形中單 元格數(shù)。密集區(qū)域構(gòu)成簇如上定義的外接矩形中最大是對角線長度為1的正方形,進行外 接矩形切邊時要判斷邊上數(shù)據(jù)點個數(shù),時間復雜度與外接矩形單元格數(shù)量成正比,所以最 壞算法效率為〇 (n2)。但是實際應(yīng)用中,簇由于比較集中,且會形成多個簇,1/k遠大于1/1, 平均效率近似于〇 (n)。這種方法在過度聚集區(qū)域內(nèi)部形成若干個較為密集的小集合,而且 這些小集合接近外接矩形邊緣時,可能會產(chǎn)生過度聚集預警漏報的情況,這種漏報在實踐 中不會影響報警的性能。因為過度聚集是一種直觀的概念并且需要管理員的經(jīng)驗設(shè)定臨近 閥值,一般漏報的情況可以通過調(diào)節(jié)近鄰閥值和人數(shù)閥值檢測到。
[0038] 限定深度回溯法是通過對每一個數(shù)據(jù)點進行廣度遍歷,在遍歷時限定遍歷的最大 層次深度。通過深度限定,可以探測一個點周圍一定距離內(nèi)是否發(fā)生過度聚集,這與直接 判斷每個點的a鄰域內(nèi)是否過度聚集的方法類似,但是時間復雜度有提高。以某個點開 始進行搜索的區(qū)域被判斷為不過度聚集后要進行標記清除,以對除本次開始遍歷的點對 應(yīng)的單元格之外的訪問標記進行清除。假定限定深度dp,則這種算法最壞時間復雜度為 0(n*dp*dp),n為數(shù)據(jù)點的個數(shù),在實踐中dp-般比較小,實踐中往往設(shè)定在3-7之間。
[0039] 以下是fb-clique的進行過度聚集檢測的詳細步驟。該步驟中未進行剔除過度分 散的樹枝狀過度聚集。
[0040] 假設(shè)長度為a、寬度為b的檢測區(qū)域中有n個人員,檢測算法步驟如下(如果需要 進行剔除過度分散的樹枝狀過度聚集,還要給出深度限制dp或是期望區(qū)域長度):
[0041] 步驟一、對長度為a、寬度為b的檢測區(qū)域按照近鄰閥值A(chǔ)進行劃分,得到p*q個 單元格,其中
【主權(quán)項】
1. 一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,其特征在于:包括如下步 驟: 假設(shè)長度為a、寬度為b的檢測區(qū)域中有n個人員, 步驟一、對檢測區(qū)域按照近鄰閥值A(chǔ)進行單元格劃分; 步驟二、將n個人員的定位數(shù)據(jù)投影到對應(yīng)的單元格之中,并分別用一個整型矩陣記 錄每個單元格中投中的數(shù)據(jù)點的個數(shù)和一個布爾型矩陣標記單元格是否被訪問過; 步驟=、對每個人員定位數(shù)據(jù)點采用廣度優(yōu)先的方法訪問單元格來尋找簇; 步驟四、計算包含每個人員定位數(shù)據(jù)點的簇中數(shù)據(jù)點數(shù); 步驟五、當包含某個人員定位數(shù)據(jù)點的簇中數(shù)據(jù)點數(shù)大于設(shè)定的人員閥值N時,則進 行過度聚集預警提示。
2. 根據(jù)權(quán)利要求1所述的一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,其特 征在于:步驟一得到的單元格的個數(shù)為p*q個,其中:
3. 根據(jù)權(quán)利要求1所述的一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,其特 征在于;步驟二所述對每個人員的定位數(shù)據(jù)進行投影的方法為;假設(shè)某個人員的坐標數(shù)據(jù) 為(X,y),則對坐標為(^^ )的單元格中的數(shù)據(jù)點個數(shù)加1,初始值為0。 _A」1_乂_
4. 根據(jù)權(quán)利要求1所述的一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,其特 征在于:步驟=所述對每個人員定位數(shù)據(jù)點采用廣度優(yōu)先的方法訪問單元格來尋找簇的方 法為: (1) 找到某一個人員定位數(shù)據(jù)點所在的單元格; (2) 判斷該單元格是否被訪問過:若是,則返回第(1)步尋找下一個人員定位數(shù)據(jù)點所 在的單元格;若否,W該單元格為起始單元格,執(zhí)行(3); (3) 將起始單元格標記為已訪問,并將起始單元格放到集合S中; (4) 將起始單元格周圍相鄰的單元格中未被訪問并且單元格中包含數(shù)據(jù)點數(shù)為0的單 元格標記為訪問; (5) 將起始單元格周圍相鄰的單元格中未被訪問并且單元格中包含數(shù)據(jù)點數(shù)不為0的 單元格標記為訪問,并放入集合S中,然后依次將該些新標記的單元格作為新的起始單元 格; (6) 重復執(zhí)行(3)至巧),直到不存在新的起始單元格為止,得到的集合S即為簇。
5. 根據(jù)權(quán)利要求1所述的一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,其特 征在于:步驟四所述計算簇的大小的方法為:將簇中所有單元格包含的定位數(shù)據(jù)點數(shù)相加 即得到簇的大小。
6. 根據(jù)權(quán)利要求1所述的一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,其特 征在于:在步驟五所述的當包含某個人員定位數(shù)據(jù)點的簇的值大于設(shè)定的人員閥值N時, 判斷該簇的外接矩形是否大于設(shè)定的區(qū)域閥值;如是,則從外接矩形超過區(qū)域長度的邊的 相鄰邊界中切去一層包含數(shù)據(jù)點最少的網(wǎng)格,形成新的簇和外接矩形,當新的簇的值小于 設(shè)定的人員閥值N時結(jié)束本次檢測,否則依次下去直到新的簇的外接矩形小于設(shè)定的區(qū)域
【專利摘要】本發(fā)明公開了一種高精度定位系統(tǒng)中快速檢測人員過度聚集的方法,包括如下步驟:對檢測區(qū)域按照近鄰閥值λ進行劃分,將n個人員的定位數(shù)據(jù)投影到對應(yīng)的單元格之中,并分別用一個整型矩陣記錄每個單元格中投中的數(shù)據(jù)點的個數(shù)和一個布爾型矩陣標記單元格是否被訪問過;對每個人員定位數(shù)據(jù)點采用廣度優(yōu)先的方法訪問單元格來尋找簇;計算包含每個人員定位數(shù)據(jù)點的簇的大??;當包含某個人員定位數(shù)據(jù)點的簇中數(shù)據(jù)點數(shù)大于設(shè)定的人員閥值N時,則進行過度聚集預警提示。通過本發(fā)明方法可以提高檢測的效率、降低時間復雜度并且能夠適應(yīng)各種形狀的過度檢測需求。
【IPC分類】G06K9-00
【公開號】CN104850843
【申請?zhí)枴緾N201510272508
【發(fā)明人】張眾一, 彭程, 崔喆, 巫浩, 馮月孚
【申請人】中科院成都信息技術(shù)股份有限公司
【公開日】2015年8月19日
【申請日】2015年5月26日