第五章 對抗搜索
一、博弈
定義
競爭環境中多個agent之間的目標是有沖突的,稱為對抗搜索問題,也稱為博弈(Games)。
特點
- 有完整信息的、確定的、輪流行動的兩個游戲者的零和游戲。(可為多人)
- 難於求解
- 注重時間效率
形式化
S0 初始狀態
Player(s) 誰行動
Action(s) 狀態s下的合法移動集合
Result(s,a) 轉移模型
Terminal-test(s) 終止測試,游戲是否結束
Utility(s,p) 效用函數
博弈樹
Tic-Tac-Toe游戲,結點為狀態,邊是移動。MAX與MIN輪流下棋,葉子結點上的數字是該終止狀態下對MAX來說的效用值,值越高對MAX越有利,對MIN越不利。
二、博弈中的優化決策
極小極大算法
思想
采用遞歸算法自上而下一直前進到樹的葉節點,然后隨着遞歸通過搜索樹把極小極大值回傳。
在終止狀態結點,結點返回效用值;
當輪到MAX時,結點返回子節點中效用值的極大值;
當輪到MIN時,結點返回子節點中效用值的極小值。
偽代碼
action MINIMAX_DECISION(state){
v=MAX_VALUE(state);
return the action in SUCCESSORS(state) with value v;
}
value MAX_VALUE(state){
if TERMINAL_TEST(state) then return UTILITY(state);
v=-∞;
foreach child of node
v=MAX(v,MIN_VALUE(s));
return v;
}
value MIN_VALUE(state){
if TERMINAL_TEST(state) then return UTILITY(state);
v=+∞;
foreach child of node
v=MIN(v,MAX_VALUE(s));
return v;
}
性能
完備性
不一定完備,在狀態空間有限且避免重復的情況下完備。
最優性
最優。
時間復雜度
空間復雜度
樹的最大深度是m,每個結點合法的行棋有b個。
多人博弈
用向量來來取代單一值,這個向量代表從每個人角度出發得到的狀態效用值。
可能出現聯盟與破壞聯盟的情況。
α-β剪枝
思想
剪掉那些不可能影響決策的分支。
α=到目前為止路徑上發現的MAX的最佳選擇;
β=到目前為止路徑上發現的MIN的最佳選擇;
搜索中不斷更新α與β的值,當某結點的值比當前的α或β更差時剪裁此結點剩下的分支。
舉例
特點
α-β剪枝的效率很大程度上依賴於檢查后繼狀態的順序。
三、不完美的實時決策
資源限制
搜索空間巨大的問題,通過啟發式評估函數EVAL(s)將非終止結點轉變為終止結點與截斷測試代替終止測試來解決。
評估函數
定義准則
- 對於終止狀態的排序應該和效用函數一致
- 計算時間不能太長
- 對於非終止狀態應該和取勝幾率相關
評估值計算
期望
評估函數的效率值可能被映射到多個終止狀態,用終止狀態的概率來表示當前狀態的期望值。
Eg.
假設根據經驗,當出現兩個兵對一個兵的狀態,72% 獲勝(效用+1); 20% 輸(效用0), 8% 平局(效用1/2)。
期望值為:0.721+0.20+0.08*(1/2)=0.76
線性加權評估
Eg.
PS
線性評估假定特征之間是獨立的,然而實際中特征之間具有關聯性,比如國際象棋在殘局中2個象比單個象的價值要高出2倍。
特征與權值來自於規律,這些規律可能要通過機器學習技術來確定評估函數的權值。
截斷搜索
思想
在α-β剪枝算法中,將Terminal-test 被替換程cutoff-test(state,depth),Utility被替換程eval(state)。
cutoff-test(state,depth)截斷策略:
當大於固定深度時返回True;
根據游戲允許的時間來決定深度。
特點
評估函數的近似性會使截斷搜索可能導致錯誤;
評估函數只適應於靜態棋局,即不會很快出現大搖擺的棋局。
難以消除地平線效應(對方招數導致我方嚴重損失並且理論上基本無法避免),固定深度搜索會相信這些延緩招數能阻止實際無法避免的困境。
【單步延伸策略可以用來避免地平線效應,發現並記住一種“明顯好於其他招數”的招數,當搜索達到指定深度界限,若單步延伸合法,則考慮此招。由於單步延伸很少,所以不會增加太多開銷】
前向剪枝
思想
無需考慮直接剪枝一些子結點。
屬於柱搜索的一種。柱搜索:每一層只考慮最好的n步棋
特點
可能導致最佳的行棋被剪掉
Product算法
思想
首先淺層搜索計算結點的倒退值v,再根據經驗來估計深度d上的值是否在(α,β)范圍外。
特點
使用先驗的統計信息在一定程度上保護最佳行棋不被剪枝掉
搜索與查表
開局時的行棋大多依賴於人類的專業知識;
接近尾聲的棋局可能性有限;
在開局和尾聲階段可以通過查表的方式來進行行棋。
四、隨機博弈
思想
局面沒有明確的極大極小值,只能計算棋局的期望值:機會結點所有可能結果的平均值。
將確定性博弈中的極小極大值一般化為包含機會結點的博弈的期望極大極小值。
舉例
評估函數
評估函數應該與棋局獲勝的概率成線性變換
時間復雜度
五、部分可觀察的博弈
軍旗
棋子可以移動但對方看不見棋子是什么
使用信念狀態
牌類
隨機部分可觀察
需要概率推算來制定決策
歡迎補充與指正,感謝點贊o( ̄▽ ̄)d