搜索是人工智能很重要的一種解決問題的途徑,如下對各類搜索進行一個分類總結。算法
首先是搜索的定義,咱們要解決一個問題,要通過不少步驟才能達到最終的目標,搜索就是要找到這些步驟,即解決問題的方法。數據結構
搜索有其侷限性,它必須依賴於現有的知識,它不能本身學習知識,人工智能解決問題的另一種途徑就是學習,經過學習能夠創造或者吸收新的知識。dom
下面是正文分佈式
求解一個問題就是一系列動做,而且搜索是爲達到目標尋找這些動做的過程。函數
針對不一樣數據結構:學習
圖搜索優化
樹搜索人工智能
按照節點的擴展順序區分lua
寬度優先(breadth-first),用FIFO隊列實現spa
深度優先(depth-first):拓展最深的未擴展節點,用LIFO隊列實現
深度受限搜索(depth-limited):限制搜索深度
迭代加深搜索(iterative deepening):結合深度優先與寬度優先的優點
一致代價搜索(uninform-cost):擴展最低代價的未擴展節點
雙向搜索(bidirectional )
無信息搜索的策略評價
完備性:是否總能找到一個存在的解
時間複雜性
空間複雜性
最優性:是否總能找到最優的解
最佳優先搜索(best-first):基於評價函數選擇最優拓展節點,大多數該類算法還包括一個啓發式函數
貪心搜索
A*搜索
以上的搜索是經典搜索,它們的特色是
可觀測
肯定性
已知環境
經典搜索保留搜索的路徑,其路徑就是問題的解
但在不少問題中,到達目標的路徑不重要,所以就有了超越經典搜索
有路徑-->無路徑
分爲局部搜索與羣體智能
不關注路徑,搜索後不保留路徑,其優勢爲
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):一種模仿天然選擇過程的啓發式算法
經過大量智能體經過合做實現,它是分佈式的、自組織的、在一個環境內分佈的。
蟻羣優化(Colony Optimization):受蟻羣尋炸食物的行爲的啓發,用於發現一個圖上的最佳路徑
粒子羣優化(Particle Swarm Optimization):受魚類,鳥類羣體行爲的社會行爲啓發
單智能體-->多智能體
咱們在針對其餘智能體作規劃時,那些智能體有可能也在作着規劃
以上搜索針對單智能體,而對抗搜索針對多智能體
零和博弈(Zero sum games):智能體之間徹底對立
非零和博弈(Non-zero sum games):智能體之間是自主的方式
徹底信息(Perfect information)/不徹底信息(Imperfect information)
肯定性(Deterministic)/隨機性(Stochastic)
博弈樹的大小每每呈指數增長,經過剪枝,能夠減少博弈樹,加快搜索時間
儘管經過剪枝能夠去掉博弈樹的大部分,可是搜索的深度依然很深,所以用評價函數計算在指定位置該博弈的指望值
一種有必定機率轉換的動態博弈
憑藉重複隨機採樣來得到數值結果
將蒙特卡洛仿真與博弈樹搜索相結合
狀態必須知足若干約束的對象
標準搜索中狀態不可分割,GSP中狀態用因子表示,是一系列變量。
GSP問題一般複雜性很高
範疇
有限/無限
離散/連續
約束
線性/非線性
1元/多元