教计算机玩德州扑克

Teaching the computer to play texas Hold'em poker

我是 Java 和编程的初学者,但我已经在创建德州扑克游戏作为 "practice and learn" 项目。

我知道游戏规则,但我不确定如何加入可以决定何时进场和何时退出、下注多少(包括全押下注)的机器人或电脑玩家,如果可能的话,甚至不时虚张声势。

此时我的问题是: 我应该努力“用假设和然后解释,什么时候这样做,或者是否有允许机器人玩家这样做的算法?

如果存在,该算法是否特定于扑克,或者是否有可能将其重新用于任何游戏以允许计算机"learn" 编程中描述的规则,用于不同的规则甚至不同的游戏(所以它适用于国际象棋或大富翁等)?

扑克牌的复杂度和状态space并不大。因此,可以仅穷尽地搜索所有组合。事实上,您甚至可以通过一些算法来计算获得每张牌的概率。我建议您阅读 Kevin Desmond 在麻省理工学院开放课件上的 Poker Theory and Analytics 以了解更多信息。

你的想法正是决策树或随机森林。它们是机器学习技术,可以使用 if-s 树构建人类可理解的规则。

另一方面,也有非人类可理解的机器学习。神经网络就是其中的一种。这些模型对人类来说是不直观的。它们主要用于难以表述或状态非常大的问题space,例如下围棋(就像AlphaGo),识别图像中的所有对象或如何赢得星际争霸