基於A 演算法的複雜權值自尋路貪吃蛇 偽

2021-07-28 11:21:43 字數 733 閱讀 3570

! 沒寫完,先別看t.t

貪吃蛇的尋路問題是最簡單的一類路徑搜尋問題, 在我之前的部落格中,對於單一路徑權值、單一目標、且目標未知的貪吃蛇尋路問題我已經用bfs解決了。但是,我們的終極目標是讓蛇可以根據自己的喜好尋找食物,這個時候,就該a*出馬了。

演算法思路是先使用廣度優先搜尋將地圖中所有的「可能的食物」搜尋出來後,使用a*演算法進行路徑權值評估,最後與所得到的食物權值進行價效比排序,最後得到乙個獲取最佳食物的最佳路徑。

注:本文偏新手向,如有錯漏請多指教

在使用a*演算法解決問題之前,我們得知道大名鼎鼎的a*演算法是啥。其實網上關於a*的教程已經很多了,我這裡不再具體細緻的說,讀者只需要了解以下幾點a*的特點即可:

在本文標題中,貪吃蛇的後邊有個(偽)字,意思是我們的主角並不僅僅是可愛的蛇,而可以是任何的動物。舉個栗子,在乙個森林裡,有愛吃蘿蔔的兔子,愛吃青草的羊,還有愛吃兔子的狐狸,和愛吃羊的老虎。對於不同的動物來說,每一種食物的吸引力是不一樣的,我們通過權值來對吸引力作出量化。因此,有可能會出現以下情況:森林裡沒有蘿蔔的時候,兔子也會選擇去吃草,或者森林裡沒有羊的時候,老虎也會吃兔子,因為這是當前狀態下兔子和老虎維持生存的最佳選擇。對於我們的演算法而言,就可以抽象為乙個權重選擇的問題,一方面是路徑的權重選擇(路徑行走的難度),另一方面就是得到的食物與路徑難度之間的價效比問題,解決了這兩個問題,動物們就可以選擇最佳的食物,並以最短最優的路徑抵達食物了。

那麼,我們的世界架構就很清晰了。我把這個世界稱作

dijkstra演算法關於負權值的問題

dijkstra由於是貪心的,每次都找乙個距源點最近的點 dmin 然後將該距離定為這個點到源點的最短路徑 d i 1.從a點出發 2.首先找到距a最近的且直接相連的點,有b跟c,a到c更短,所以先把c標記 3.再尋找c點的下乙個鄰居,沒有鄰居 4.找到距a次近的且未被標記的點b,標記b 5.找出b...

基於權值熵的深度神經網路量化

weighted entropy based quantization for deep neural networks cvpr2017 1.緒論部分 量化是優化神經網路模型前向計算耗時的最有效的方法之一,以便它們部署到資源受限的移動或嵌入式系統中。在這類方法中,最重要是提供低精度損失量化。在這篇...

基於opencv的sauvola二值演算法

sauvola演算法是乙個比較不錯的區域性二值化演算法,有不少人也具體實現了其 但是本人覺得裡面存在一些bug和不方便opencv呼叫,所以對其適當的修改。但是修改之後,仍然就是存在一些問題,就是難以找到乙個比較大的資料型別去儲存,這個bug等以後有空再處理。不過通過修改後的 進行學習,還是很不錯的...