教计算机玩德州扑克

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

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

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

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


回答:

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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