TicTacToe井字棋 by reinforcement learning,learningbydoing

來源:互聯網
上載者:User

TicTacToe井字棋 by reinforcement learning,learningbydoing

    對於初學強化學習的同學,數學公式也看不太懂, 一定希望有一些簡單明了的代碼實現加強對入門強化學習的直覺認識,這是一篇初級入門代碼, 希望能對你們開始學習強化學習起到基本的作用.

井字棋具體玩法參考百度,這篇文字主要是用強化學習中Q-learning實現遊戲過程中各個狀態Q(S,a)計算, 在代碼最後是一個人機對弈的過程, 電腦走第一步.

在Q-learning中, 各個Q(S,a)的計算公式如下:

     Q(S,a) = Q(S,a) + 0.1 * (reward(s,a) + 0.9 * Q(S',a') - Q(S,a))

reward(s,a)在電腦贏時返回1, 電腦輸時返回-1, 其他時候返回0

在 計算完Q(S,a)後, 有一個人機對戰代碼,board = [0, 0, 0, 0, 0, 0, 0, 0, 0],代表棋盤初始狀態, 電腦會選擇最大Q(s,a)走第一步, 假如電腦選擇的是位置3,那棋盤就成為board = [0, 0, 0, 1, 0, 0, 0, 0, 0],玩家也就是你隨機播放一個位置,假如是位置0,在鍵盤輸入0,棋盤變為board = [2, 0, 0, 1, 0, 0, 0, 0, 0],繼續下去,直到結束狀態。

我從沒贏過電腦

代碼位置:https://github.com/k13795263/TicTacToe/blob/master/TicTacToe.py

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

打賞宣言 ,“more support, more energy, more useful code”

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.