搜索是人工智能很重要的一種解決問題的途徑,以下對各種搜索進行一個分類總結。
首先是搜索的定義,我們要解決一個問題,要經過很多步驟才能達到最終的目標,搜索就是要找到這些步驟,即解決問題的方法。
搜索有其局限性,它必須依賴於現有的知識,它不能自己學習知識,人工智能解決問題的另外一種途徑就是學習,通過學習可以創造或者吸取新的知識。
下面是正文
搜索(Search)
求解一個問題就是一系列動作,並且搜索是為達到目標尋找這些動作的過程。
針對不同數據結構:
-
圖搜索
-
樹搜索
經典搜索(Classic Search)
-
無信息搜索(uninformed search 即盲目搜索,沒有除定義之外的信息)
按照節點的擴展順序區分
-
寬度優先(breadth-first),用FIFO隊列實現
-
深度優先(depth-first):拓展最深的未擴展節點,用LIFO隊列實現
-
深度受限搜索(depth-limited):限制搜索深度
-
迭代加深搜索(iterative deepening):結合深度優先與寬度優先的優勢
-
-
一致代價搜索(uninform-cost):擴展最低代價的未擴展節點
-
雙向搜索(bidirectional )
無信息搜索的策略評價
-
完備性:是否總能找到一個存在的解
-
時間復雜性
-
空間復雜性
-
最優性:是否總能找到最優的解
-
-
有信息搜索(informed search 亦稱啟發式搜索,采用問題定義外的信息,能夠找到比無信息搜索更有效的解)
-
最佳優先搜索(best-first):基於評價函數選擇最優拓展節點,大多數該類算法還包括一個啟發式函數
-
貪心搜索
-
A*搜索
-
-
以上的搜索是經典搜索,它們的特點是
-
可觀測
-
確定性
-
已知環境
經典搜索保留搜索的路徑,其路徑就是問題的解
但在很多問題中,到達目標的路徑不重要,因此就有了超越經典搜索
有路徑-->無路徑
超越經典搜索(Beyond Classical Search)
分為局部搜索與群體智能
-
局部搜索(local search)
不關注路徑,搜索后不保留路徑,其優點為
1.占用內存小
2.能在大的或者無限的空間中找到合理的解
-
爬山法(hill-climbing):一種迭代算法,開始時隨機選取一解,對其不斷優化
-
隨機爬山法(Stochastic hill-climbing):向上移動的過程中隨機選擇,收斂速度慢
-
首選爬山法(First-choice hill-climbing):隨機生成后繼節點,直到出現更好的
-
隨機重啟爬山法(Random-restart hill-climbing):完備性高,接近於1
-
-
局部束搜索(Local Beam Search)
-
隨機束搜索(Stochastic Beam Search)
-
-
禁忌搜索(Tabu Search)
三種策略
-
禁止策略(Forbidding strategy)
-
釋放策略(Freeing strategy)
-
短期策略(Short-term strategy)
-
-
模擬退火(Simulated Annealing):一種在大搜索空間逼近全局最優解的元啟發方法
-
遺傳算法(Genetic Algorithms):一種模仿自然選擇過程的啟發式算法
-
-
群體智能(Swarm Intelligence)
通過大量智能體通過合作實現,它是分布式的、自組織的、在一個環境內分布的。
-
蟻群優化(Colony Optimization):受蟻群尋炸食物的行為的啟發,用於發現一個圖上的最佳路徑
-
粒子群優化(Particle Swarm Optimization):受魚類,鳥類群體行為的社會行為啟發
單智能體-->多智能體
-
對抗搜索(Adversarial Search)
我們在針對其他智能體做規划時,那些智能體有可能也在做着規划
以上搜索針對單智能體,而對抗搜索針對多智能體
-
博弈(Game)
-
零和博弈(Zero sum games):智能體之間完全對立
-
非零和博弈(Non-zero sum games):智能體之間是自主的方式
-
完全信息(Perfect information)/不完全信息(Imperfect information)
-
確定性(Deterministic)/隨機性(Stochastic)
-
剪枝 (Alpha-Beta Pruning)
博弈樹的大小往往呈指數增加,通過剪枝,可以減小博弈樹,加快搜索時間
-
啟發評價函數(Heuristic Evaluation Function)
盡管通過剪枝可以去掉博弈樹的大部分,但是搜索的深度依然很深,因此用評價函數計算在指定位置該博弈的期望值
-
隨機博弈(Stochastic Game)
一種有一定概率轉換的動態博弈
-
蒙特卡羅方法(Monte-Carlo Methods)
憑借重復隨機采樣來獲得數值結果
-
蒙特卡羅樹搜索(MCTS Monte-Carlo Tree Search)
將蒙特卡洛仿真與博弈樹搜索相結合
-
約束滿足問題(Constraint Satisfaction Problem)
狀態必須滿足若干約束的對象
標准搜索中狀態不可分割,GSP中狀態用因子表示,是一系列變量。
GSP問題通常復雜性很高
范疇
-
有限/無限
-
離散/連續
約束
-
線性/非線性
-
1元/多元
-
回溯搜索(Backtracking Search)