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