JavaShuo
欄目
標籤
極大極小算法簡介
時間 2019-11-17
標籤
極大
極小
算法
簡介
简体版
原文
原文鏈接
概念
Minimax算法 又名極小化極大算法,是一種找出失敗的最大可能性中的最小值的算法(即最小化對手的最大得益)。一般以遞歸形式來實現。
Minimax算法經常使用於棋類等由兩方較量的遊戲和程序。該算法是一個零總和算法,即一方要在可選的選項中選擇將其優點最大化的選擇,另外一方則選擇令對手優點最小化的一個,其輸贏的總和爲0(有點像能量守恆,就像自己兩個玩家都有1點,最後輸家要將他的1點給贏家,但總體上仍是總共有2點)。不少棋類遊戲能夠採起此算法,例如tic-tac-toe。
主要應用場景
零和遊戲(Zero-sum Game):意思就是你死我活,一方的勝利表明另外一方的失敗,好比,象棋,五子棋等。
徹底信息(Perfect Information):玩家知道以前全部的步驟。象棋就是徹底信息,由於玩家是交替着落子,且以前的步驟都能在棋盤上體現,可是石頭剪子布就不是。這樣的遊戲一般能夠把他們看做一個樹狀圖,把每一種可能性列出來。
例子
井字棋遊戲,Max表明你本身,Min表明你的對手。
這個時候咱們須要給每一種結果一個分數,就是這裏的Utility。這個分數是站在我本身(也就是Max)的角度評估的,好比上圖中我贏了就是+1,輸了是-1,平局時0。因此,我但願最大化這個分數,而個人對手但願最小化這個分數。(在遊戲中,這個分數被稱爲static value。)
過程:
首先,因爲雙方都採用最優策略行棋,即知道從當前開始到結束的全部棋局狀態,再從中選擇最有利於本身的棋局,
故雙方都知道最終的全部棋局狀態,所以有下圖:
從結果看起,也就是第4步。圖中標註第四步是個人對手下的,因此他要作的是最小化這個分數,因而對手根據結果能夠反推出以下選擇
從後往前看到第3步,當咱們知道了對手的選擇之後,咱們能夠根據對手的結果反推出本身的選擇,咱們要作的是最大化這個分數,如圖
咱們最終能夠發現第一步的最優選擇,如圖
筆記
該算法從結果入手,分別選擇最有利於自身的策略。
經過設置最大值最小值來實現有利於自身的策略。
經過輪流取大取小來模擬兩人博弈。
優化 (Alpha-Beta剪枝)
首先將遊戲簡化如圖所示:
可是,最後一步的分數其實也須要計算機來算(static evaluation),因此咱們並不會一開始就有全部的數據,其實咱們一開始是這樣的
而後,計算機給出了第一個分數
當給出了這個分數的時候,咱們站在步驟1看,不管另外一分支的數字是多少,步驟1左邊方框的數字不會超過2。由於第2步是個人對手下的,他但願分數儘量的小,也就是這樣的
這個時候,電腦再計算另外一分支的分數,也就是7。知道另外一分數是7之後,也就知道步驟1的左邊方框分數爲2。這時,咱們往前看一步(步驟0)。步驟0的分數是大於等於2,由於我要最大化分數。如圖
如今,再來計算右邊分支的分數,獲得了1。同理,咱們站在步驟1來看,右邊方框中的數不會超過1,如圖
在這個狀況下,即便我不算最後一個數字,我也能知道在步驟0的結果爲2,由於已知步驟1中的右邊方框,數值不會超過1。因此咱們就能直接知道結果,也就是
們能夠看到,加上剪枝算法,咱們不只獲得了相同的結果,並且減小了計算量。在實際應用中,加上剪枝算法,計算機大約須要算2*n^(x/2)個結果,若是n爲分支數,x爲步數。相比於以前僅用極小極大算法的n^x,效率提升了不少。
相關文章
1.
極大極小算法轉
2.
極小化極大算法
3.
極大極小算法原理
4.
極大極小搜索算法 minimax search
5.
極大極小值算法、α-β剪枝算法的理解
6.
隔三岔五聊算法之極小極大算法
7.
極大極小算法和AlphaBeta剪枝算法學習總結
8.
極簡算法史
9.
《極簡算法史》
10.
博弈樹 極小極大分析法
更多相關文章...
•
Scala 簡介
-
Scala教程
•
AJAX 簡介
-
PHP教程
•
Git可視化極簡易教程 — Git GUI使用方法
•
算法總結-廣度優先算法
相關標籤/搜索
極簡
終極算法
極小
極大
極簡版
極簡單
極大值
簡介
Docker命令大全
PHP 7 新特性
Hibernate教程
算法
計算
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
CVPR 2020 論文大盤點-光流篇
2.
Photoshop教程_ps中怎麼載入圖案?PS圖案如何導入?
3.
org.pentaho.di.core.exception.KettleDatabaseException:Error occurred while trying to connect to the
4.
SonarQube Scanner execution execution Error --- Failed to upload report - 500: An error has occurred
5.
idea 導入源碼包
6.
python學習 day2——基礎學習
7.
3D將是頁遊市場新賽道?
8.
osg--交互
9.
OSG-交互
10.
Idea、spring boot 圖片(pgn顯示、jpg不顯示)解決方案
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
極大極小算法轉
2.
極小化極大算法
3.
極大極小算法原理
4.
極大極小搜索算法 minimax search
5.
極大極小值算法、α-β剪枝算法的理解
6.
隔三岔五聊算法之極小極大算法
7.
極大極小算法和AlphaBeta剪枝算法學習總結
8.
極簡算法史
9.
《極簡算法史》
10.
博弈樹 極小極大分析法
>>更多相關文章<<