(1)先把問題的初始狀態作為當前擴充套件結點對其進行擴充套件,生成一組子結點
(2)然後檢查問題的目標狀態是否出現在這些子結點中。若出現,則搜尋成功,找到了問題的解;若沒出現,則再按照某種搜尋策略從已生成的子結點中選擇乙個結點作為當前擴充套件結點。
(3)重複上述過程,直到目標狀態出現在子結點中或者沒有可供操作的結點為止。所謂對乙個結點進行「擴充套件」是指對該結點用某個可用操作進行作用,生成該結點的一組子結點。
open表:用於存放剛生成的結點
closed表:用於存放已經擴充套件或將要擴充套件的結點
s0:用表示問題的初始狀態
(1)基本思想
從初始結點s0開始逐層向下擴充套件,在第n層結點還沒有全部搜尋完之前,不進入第n+1層結點的搜尋。open表中的結點總是按進入的先後排序,先進入的結點排在前面,後進入的結點排在後面。
(2)搜尋演算法的過程
把初始結點s0放入open表中;
如果open表為空,則問題無解,失敗退出;
把open表的第乙個結點取出放入closed表,並記該結點為n;
考察n是否為目標結點。若是,則得到問題的解,成功退出;
若結點n不可擴充套件,則轉第(2)步;
擴充套件結點n,將其子結點放入open表的尾部,並為每乙個子結點設定指向父結點的指標,然後轉第(2)步。
(3)廣度優先搜尋例項
深度優先搜尋演算法和廣度優先搜尋演算法的步驟基本相同,它們之間的主要差別在於open表中的結點排序不同。在深度優先搜尋演算法中,最後進入open表的結點總是排在最前面,即後生成的結點先擴充套件。
深度優先搜尋是一種非完備策略。對某些問題,它有可能找不到最優解,或者根本就找不到解。常用的解決方法是增加乙個深度限制,當搜尋達到規定深度但沒找到解時向寬度搜尋,稱為有界深度優先搜尋。它們的具體演算法描述和例子省略。
人工智慧07 盲目搜尋
我們將學習兩類主要的搜尋過程。其中之一,我們沒有指定問題的任何推理資訊,例如要搜尋這一部分而不是另一部分,就像到目前為止的只要發現一條到目標的路徑即可。這種搜尋是盲目的。另一種,我們指定了要解決問題的資訊以幫助集中搜尋。這個過程叫啟發式搜尋。本章討論盲目搜尋,下一章再討論啟發式搜尋過程。很多實際問題...
人工智慧 搜尋概述
人工智慧所研究的物件大多是屬於結構不良或非結構化的問題。對於這些問題,一般很難獲得其全部資訊,更沒有現成的演算法可供求解使用。因此,只能依靠經驗,利用已有知識逐步摸索求解。這種根據問題的實際情況,不斷尋求可用知識,從而構建一條代價最小的推理路線,使問題得以解決的過程稱為搜尋。根據搜尋過程中是否使用啟...
人工智慧 搜尋的含義
依靠經驗,利用已有知識,根據問題的實際情況,不斷尋找可利用知識,從而構造一條代價最小的推理路線,使問題得以解決的過程稱為搜尋 不良結構或非結構化問題 難以獲得求解所需的全部資訊 更沒有現成的演算法可供求解使用。1 按是否使用啟發式資訊 盲目搜尋 按預定的控制策略進行搜尋,在搜尋過程中獲得的中間資訊並...