教计算机玩德州扑克

我是一个Java和编程的新手,但我已经在创建一个德州扑克游戏作为“练习和学习”的项目。

我知道游戏规则,但我不确定如何加入机器人或计算机玩家,让它们决定何时进入和退出,如何下注(包括全押),如果可能的话,甚至偶尔进行诈唬。

在这一点上,我的疑问是:我应该努力用“如果…那么…”来解释何时这样做,还是存在一个算法可以让机器人玩家这样做?

如果存在,那个算法是专门为扑克设计的,还是可以重用于任何游戏,让计算机“学习”编程中描述的规则,用于不同的规则甚至不同的游戏(例如适用于国际象棋或大富翁等)?


回答:

扑克的复杂性和状态空间并不大。因此,可以穷尽地搜索所有组合。实际上,你甚至可以通过一些算术计算出获得每张牌的概率。我建议你阅读麻省理工学院开放课程网站上的Kevin Desmond的扑克理论与分析,以了解更多信息。

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

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注