Chapter 4 Search in Complex Environments
Chapter 4 Search in Complex Environments
Local Search Algorithms and Optimization Algorithms

- 狀態空間搜尋: 當問題的解不包含到達解的path 的時候 改用這種- 例如: 八皇后問題、數獨
- 因為過程中放置皇后的順序並不重要 重要的是結果有沒有滿足皇后互不攻擊
 
- 因此我們將systematic algorithm 換成 local search algorithm

- 根據目標函數找到最佳狀態
- 通常只需要常數量的空間
- 並能在無限狀態中 找到合理的解
 
Hill Climbing Search

- 算法

- 八皇后例題

- 又被稱為貪心本地搜尋
- 找得很快 但可能會卡住

- Steepest-ascent hill climbing 通常更快速解決問題 但絕大多數問題無法被他處理
- 允許sideways move 可以向沒有提升的鄰居移動 通常較慢解決問題 但能處理大多數問題

- Stochastic hill climbing: 隨機爬山 根據鄰居的陡峭程度 有不同機率被選擇
- first hill climbing: 選擇第一個比當前更好的狀態 速度更快
- random restart hill climbing: 重複多次隨機選擇起始點做 hill climbing
- 如果狀態空間的景觀充滿平台 則爬山算法結果較差- 但如果存在明顯的全域最佳解 局部最佳解少的情況 結果就會較好
 
Simulated Annealing

 
- 溫度高的時候 更容易接受較差的選擇
Local Beam Search

- 很像random restart hill climbing 但不同搜尋thread之間的有用資訊會互相分享
Genetic Algorithms


- 透過fitness function來評估狀態 並選擇父母
- 交配點是隨機選擇的
 
Local Search in Continuous Spaces

- 六維度問題 在羅馬尼亞設置機場
 - 從連續問題 轉換成離散問題
 
 - 透過斜率找最大值
 
- 如何前進 將斜率乘上步長加上去
 

- 如果步長太小 要走很久 步長太大 可能衝過最優解- sol. 線性搜尋: 當f(x)減小又增加後 選擇f(x)最小的點當作新步長
 
- Newton-raphson method: 解g(x) = 0- 快速收斂: 如果解距離起點很近 誤差會指數減少
- 梯度的前進方向是讓f 前進最多的方向- level curve的斜率正交 f’(x) => 當level curve趨近於0 剛好就是f(x)的最佳前進方向
 
 
- 考慮在局部 找到平移後函數的根 這個局部是連續且平滑的 可微分 導數不為0 => 向著切線斜率 負方向移動 會逐漸收斂到根- 是下一個近似點 考慮以此點獲取g( - )的切線斜率 
- 藉由牛頓法 代換兩邊後可以得到該近似點
 
 
 

- 應用newton-raphson method

- constrained optimization problem: 限制以及目標函數都是線性的- 讓可行解的任兩點連線都在該空間內 => 解空間是凸集
- 是凸優化的特例
 
Simple Examples of Linear Programs

 
- 例題
Searching with Nondeterministic Actions


- 吸塵器的行動帶來的結果有不確定性
- transition的結果變成可能的狀態集

- 解變成巢狀的 是一種樹的結構 而非sequence
 - AND-OR tree
 
 
- 解應該包含什麼?

- 小心循環
 - 使用label代替
 
 
Searching with Partial Observations

- agent的percept 不足以確定準確的狀態
- 使用信念狀態估計 這是一組狀態以及Agent可能處在這些狀態的機率

- 吸塵器的例子

- 機器人走迷宮的例子
 - 透過行動促使狀態坍縮至確定狀態的例子
 
- 有些時候 可能也沒那麼有用
 
 
Online Searching Agents with Unknown Environments

- 線上搜尋以及未知環境
- 在一間建築中尋找A點到B點的路徑

- 規定- 只能知道在當前狀態的可選行動
- step cost: 當Agent知道 行動的結果後才能計算
- goal test
 
- agent 不知道result 除非他在該狀態並且進行了a
- agent 知道目標資訊 從而能夠使用啟發式函數去估算距離

- 如果agent知道整個搜尋空間 就會比較理想成本與agent實際走過路徑的成本 這稱之為競爭比- 實際成本除以理想成本
 

- 我們需要從局部展開節點 => 選擇DFS
 

- online local search- 但因為local maximun 所以這沒什麼用
 
Chapter 4 Search in Complex Environments
      https://z-hwa.github.io/webHome/[object Object]/Introduction to Artificial Intelligence/Chapter-4-Search-in-Complex-Environments/
    

