• <u id="saeeq"><wbr id="saeeq"></wbr></u>
  • <s id="saeeq"><div id="saeeq"></div></s>
  • <u id="saeeq"></u>
  • <u id="saeeq"><noscript id="saeeq"></noscript></u>
  • <s id="saeeq"></s>
  • “你附近有什么標識?”——基于鄰近相關性的搜尋

    文章來源:中科院軟件所計算機科學國家重點實驗室 王文成  |  發布時間:2017-11-10  |  【打印】 【關閉

      

      我們外出旅游,無論在繁華城市,還是在荒郊野外,往往可能走散。這時,我們要通過呼喊或用手機等進行聯系,以便確定方位,大家才能很快重新集合在一起。在尋找過程中,大家常常對話:你附近有什么標識,有什么特別的標識?然后,根據這些標識,確定尋找路徑,以最短的時間會面。 

      現在計算機技術已應用于很多方面,給我們的生產實踐和日常生活帶來了很大的效率提升和便利。在各種計算機技術中,有一項重要的技術就是快速定位。為此,先對要處理的問題形成一個空間,然后將此空間劃分成許多區域,計算機要通過一定的計算、判斷等處理,快速確定要尋找的內容在哪個區域中。比如說,北京市就劃分成東城區、西城區、海淀區、朝陽區、豐臺區、石景山區等,我們要尋找一個人在哪個區,就要根據這個人所在位置的情況,判斷這個位置所在的區域,以確定這個人在那個區。常見的一種方法是建立坐標系,然后確定這個人的位置坐標,然后對比各個區的坐標范圍,就可判定這個人在哪個區了。 

      但這樣處理有些不足。各個城區的邊界比較復雜,要獲取各個城區的坐標覆蓋范圍,要進行比較復雜的計算,費時費力。如果事先算好,存儲起來,在定位計算時可以很快判斷。但這樣需要很多的存儲空間,浪費資源;特別是,存儲往往是離散化處理的,有些地方可能被遺漏,由此使得定位判斷可能出現失誤。比如說,存儲了“黃莊——知春橋”、“四通橋——薊門橋”這兩條線段之間的部分都是屬于海淀區的,那么位于這兩條線之間的雙榆樹公園是否屬于海淀區呢?不能直接判斷,還要通過一些復雜的計算。如果直接判斷,雙榆樹公園跟這兩條線都不搭界,可能誤判為“不知道”。 

      在計算機圖形學中,關于“判斷一個點是否位于一個多邊形中”的問題有許多研究,提出了許多方法,供計算機實現以處理相關事情。一個基本的處理原則是:從這個點發出一條射線,統計這條射線與多邊形的邊界相交的次數;然后根據統計數的奇偶性進行判斷。如果次數為偶數,就表示這個點在多邊形外面,因為這條射線穿進多邊形又穿出了,不停的穿進穿出,最后還是穿出了。同理,如果為奇數,就是這條射線穿進穿出多次后,最終穿進而不出來了,就表明該點在多邊形內。如圖1所示。 

      以上處理方法,雖然簡單,但與多邊形的每條邊要進行相交測試,時間開銷是很大的。怎么辦呢?我們提出一個方法,畫一個方框將這個多邊形包圍起來,然后將這個方框均勻地劃分成許多方塊,并預先計算好每個方塊中的中心點是否位于多邊形內。然后,在判斷一個點是否位于多邊形中時,我們先找到這個點在哪個方塊中。由于方塊是均勻劃分的,各個方塊的邊長一樣。這樣,我們根據這個點的坐標情況,可得到這個點到方框邊界的距離,將該距離除以方塊的邊長,根據商數和余數,就可判斷出這個點位于哪個方塊中。 

      下一步,就是將這個點與它所在方塊的中心點進行連線,統計這條連線與多邊形的邊相交的計數情況。顯然,這時我們只需考察位于這個方塊中的多邊形的邊,而不必考察這個方塊外的多邊形的邊,由此節省大量的計算。那么在判斷時,除了要依據統計數的奇偶性外,還要依據中心點是否位于多邊形內的信息。但這樣的判斷也是很容易處理的。如圖2所示。 

      這樣處理,存儲空間不需要很多,而計算效率可提高很多。該方法也容易推廣來處理“判斷一個點是否位于一個多面體內”的三維問題。我們推廣到三維問題的處理,可將計算復雜度降至O(1),實驗數據表明: 相比已有的方法,改進方法可加速上千倍。相關論文,也發表在國際一流刊物Computer-Aided Design上。 

      這個工作就是利用了附近的“標識”信息,節省了大量無關計算。這與我們找人時“你附近有什么標識”有異曲同工之妙。生活中有著無窮無盡的智慧之光,只要我們有心,就能在高技術等科研工作中取得很好的進展。大家都能做科學研究呵。 

        

  • <u id="saeeq"><wbr id="saeeq"></wbr></u>
  • <s id="saeeq"><div id="saeeq"></div></s>
  • <u id="saeeq"></u>
  • <u id="saeeq"><noscript id="saeeq"></noscript></u>
  • <s id="saeeq"></s>
  • 久久久综合香蕉尹人综合网