新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于數據可視化處理的嵌入式智能查詢算法

        基于數據可視化處理的嵌入式智能查詢算法

        作者: 時間:2012-05-22 來源:網絡 收藏

        一些對人類而言相當明顯的直觀推斷對于機器則并非如此。例如直觀推斷“當節點存在兩個(或更多)等權值邊線時,將執行寬度優先,然后繼續總權值最小的路徑”,這本身并沒有問題,但還是存在一個問題。如果最小成本的路徑偏離了目標節點怎么辦?這樣選擇得到的或許是一條更為昂貴的路徑。由此可見,還必須了解從當前節點至目標節點的方向。以這種形式開發直觀推斷是展現待解決問題所需核心知識的良好途徑。

        解決公路網絡導向問題的一個有效途徑是動態計算當前節點和目標節點之間的距離和方位。這要求得到每個節點的經緯度,并對前進中的每一個節點進行浮點操作,因而極有可能是最不優化的解決方案。更好的策略是根據經緯度對之間的差異得到一套準則,這有助于提取最少準則所需的信息。

        圖4:根據經緯度差異得到的方向。

        第一步必須明確方向和經緯度之間的關系,圖4顯示了根據經緯度差異得到的方向。

        當向北方移動時,緯度將增加;向西方移動時,經度增加;以此類推。從這些簡單的關系中可以看出,每個節點上完全可以去除許多不必要的操作。將以上知識與交通圖相結合,可以得到Scott和Jackson交叉口的起始緯度和經度分別為N3747。514和W12226。356,而目標Fillmore和Vallejo交叉口則分別為緯度N3747。725和經度W12226。002。根據圖4中的羅盤儀準則,現在目標交叉口位于起始交叉口的東北方向。

        根據以上方向關系,可以得到如下六條準則:

        準則1:如果緯度(目標)>緯度(現在狀態),那么目標為北方;

        準則2:如果緯度(目標)緯度(現在狀態),那么目標為南方;

        準則3:如果緯度(目標)=緯度(現在狀態),那么目標為空;

        準則4:如果經度(目標)>經度(現在狀態),那么目標為西方;

        準則5:如果經度(目標)經度(現在狀態),那么目標為東方;

        準則6:如果經度(目標)=經度(現在狀態),那么目標為空;

        可以將上述基本準則相結合以得到更為復雜的方向,如東北和西南。這只需要將基本準則通過與操作結合起來,這樣有效的組合如下:

        規則1^規則4->目標為西南

        規則1^規則5->目標為東北

        規則1^規則6->目標為北

        規則2^規則4->目標為西南

        規則2^規則5->目標為東南

        規則2^規則6->目標為南

        規則3^規則4->目標為西

        規則3^規則5->目標為東

        規則3^規則6->目標為空

        將基本準則和復雜準則結合起來就能得到成功的方法。如果目標在當前節點的西北方向,那么向北方和東方移動是合法的。這里我認為應該是:“如果目標在當前節點的東北方向,向北方和東方移動是合法的”,而向南方和西方移動則不合法。

        當查詢到節點12,選擇的邏輯路徑則是從節點12至節點11并且權值為15的邊線。此時方向為北方,這看來是合法的,且邊線權值達到最小。其實這完全是錯誤的,因為查詢偏離了目標節點?,F在我們利用規則對查詢進行限定,節點12與節點17平行,因此準則3成立。此時經度減少,因此規則5成立。如果規則3和規則5都成立,那么目標是正東方。規則基礎很好地完成任務:避免了“盲目”查詢或對“盲目”查詢進行導向。結果如圖5所示。

        圖5:避免“盲目”查詢或對“盲目”查詢進行導向的示意圖。

        本文小結

        如上所述,圖形表示法和盲目查詢本身并不足以解決大多數問題。但將這些技術同直觀推斷以及特定問題的規則集相結合,就像上面所做的那樣,就能得到有效的人工。類似的技術可應用于諸多應用領域。盡管本文的示例集中于靜態,但當邊線及邊線權值改變并且不能對規則進行硬編碼時,這里給出的技術仍然有效。

        顯然,系統通常受制于某些特殊限制。編程中一般不允許遞歸,盡管這是圖形查詢中的一種常用技術。關鍵應用中的系統也不支持動態內存分配,但如果沒有動態內存分配的話,將很難在鏈表表示法中添加和刪除節點。出于以上考慮,可以得到如下嵌入式的應用技巧:

        1??紤]將部分移交至功能更為強大的系統,也許嵌入式系統只需要解決部分需要快速解決的問題。

        2。避免遞歸,任何遞歸函數都應當用迭代函數進行重寫。

        3。盡可能減小動態內存分配。如果鏈表的長度相對保持恒定,就可用數組進行代替,使數組的大小等于鏈表的最大長度,一旦超過該最大長度就返回操作失敗。

        4。將視為低能動物而非超級計算機,即將其想像為意外情況或干擾的低等動物形式。

        5。最重要的是,有效地綜合“盲目”算法、“貪婪”算法和智能查詢算法。當然,也沒有任何規定限制只能采用一種方法解決需要利用智能的問題。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 什邡市| 柯坪县| 江油市| 麻城市| 东至县| 青川县| 行唐县| 六枝特区| 蒙山县| 镇沅| 龙游县| 淄博市| 诸暨市| 白山市| 新巴尔虎右旗| 略阳县| 富民县| 儋州市| 鲁山县| 大丰市| 左权县| 西青区| 吴堡县| 桓台县| 左云县| 福泉市| 永修县| 台中县| 宜川县| 兰西县| 吉隆县| 慈溪市| 邹平县| 庄浪县| 南安市| 西华县| 灵山县| 弥勒县| 陕西省| 固原市| 康乐县|