關於A 估價函式的總結

2022-05-05 21:27:13 字數 823 閱讀 7483

估價函式的優劣決定乙個a*演算法的好壞

360百科上是這樣說的:

關於估價函式h(n)與實際距離d(n)的大小關係導致的搜尋範圍的不同,一些同學表示不理解

這裡給出乙個不是很嚴謹的證明:

首先,d(n)+g(n)即為當前路徑到目標狀態的總距離,

而我們在估價後,認為這條路徑的總距離為h(n)+g(n)

以第一種情況(h(n)八數碼

在八數碼中的估價中,我們發現一次操作最多使兩個元素接近於目標狀態,

所以把每個數字距離目標的狀態的曼哈頓距離之和除以二,這樣是乙個最理想的距離,

也就是說,h(n)而每次取出隊首元素,向下擴充套件,我們可以想到,

隨著深度的增大,該路徑的g(n)+h(n)會越來越大,一直趨向g(n)+d(n)

所以當這個值比其他路徑的估價大時,就不會再繼續搜這條路徑了

可以理解為,深度越大,一條路徑的優勢越小,從而搜到的範圍比較大

為什麼一定能搜出最優解:

最優解的g(n)+d(n)《非最優解的g(n)+d(n),而h(n)因此,不會存在一種情況,使最優解的g(n)+h(n)>非最優解的g(n)+d(n)

而隨著深度的增大,每個路徑g(n)+h(n)都是會趨向g(n)+d(n)的

在乙個非最優解的路徑中,隨著深度增大,

在搜到目標之前,一定會在某一層出現都比最優解估價大的情況

而最終先搜到目標的,就是最優解。

關於函式指標的總結

函式指標的作用 它主要的用途是轉換表和作為引數傳遞給另乙個函式。舉乙個函式指標宣告的例子 int pf int int 解釋 pf是乙個指向函式的指標,此被指向函式包含兩個int型形參,返回值為int型 注意 宣告函式指標時必須在 號與指標名稱pf之外加上 否則不能成功 例程 函式指標 includ...

關於建構函式的總結

前言 建構函式可以分為 1 不帶預設引數的建構函式,也叫做預設建構函式,如果自己不寫,編譯器會自動生成 2 帶有預設引數的建構函式,如果未指定引數,則需要的引數被初始化為預設值 3 拷貝建構函式 預設建構函式 多數情況下,編譯器為類生成乙個公有的預設建構函式,只有下面兩種情況特殊 1 乙個類顯示地宣...

關於數學函式的總結

關於數學函式,無論是演算法,還是其他時候,應用還是蠻多的,下面來乙個總結 目前共用25種數學函式,想要再多也沒有了。還在等什麼,機不可失失不再來。來說一下那25種 函式名功能 abs求整數x的絕對值 acos 求x 弧度表示 的反余弦值 asin 求x 弧度表示 的反正弦值 atan 求x 弧度表示...