1 A*搜索算法簡介
A*搜索算法是一種啟發(fā)式搜索算法。所謂啟發(fā)式搜索算法,就是在盲目搜索算法中加入一個啟發(fā)函數(shù),在當(dāng)前節(jié)點搜索完畢后,通過這個啟發(fā)函數(shù)來進(jìn)行計算,選擇代價最少的節(jié)點作為下一步搜索的節(jié)點。通過這樣的方式就能夠找到最優(yōu)解。
DFS,BFS這兩種搜索方式都屬于盲目的搜索方式,它不會在選擇下一個節(jié)點的時候進(jìn)行代價計算,而是按照一個固定的方式選擇,這樣在運氣不好的情況,會對所有節(jié)點進(jìn)行遍歷。
A*搜索算法的核心就在于如何設(shè)計一個好的啟發(fā)函數(shù),啟發(fā)函數(shù)的表達(dá)形式一般如下:
f