【发布时间】:2012-06-07 17:26:49
【问题描述】:
我有一个运行 Dominion 的有效 F# 程序,这是一个纸牌游戏。我想使用遗传算法来确定最佳的游戏策略。但是,我对人工智能或遗传算法知之甚少。你能指点我一些好的文学作品吗?
游戏策略包括对给定手牌的反应。在每一轮中,机器人都会得到一手牌。它可以根据已处理的内容选择玩行动牌或购买新牌。我们的目标是用尽可能多的胜利点卡结束游戏。
硬编码方法可能类似于:
def play(hand, totalDeck):
if hand contains Smithy then use Smithy
if hand contains enough coins for Province then buy Province
if more than 30% of the totalDeck is Smithy, then buy coins
我正在考虑根据每张牌的总套牌目标部分的向量来描述一种策略:
[Smithy, Province, Copper, ...]
[.3, .2, .1, ...]
然后要变异一个机器人,我可以改变那个向量,看看变异的版本是否更好。适应度函数将是玩 Dominion 对抗各种其他机器人的平均得分。 (一个机器人的分数取决于它与谁比赛,但希望通过与许多机器人进行多次比赛,这可以平衡。)
这有意义吗?我走在正确的道路上吗?
【问题讨论】:
-
对不起,但 IMO 对您的问题的描述非常糟糕。我什至不知道你为什么要“组合”两个机器人,或者你想组合哪些机器人。我假设动作卡是在游戏过程中变化的动态属性。请根据目标函数和您的决策变量更清楚地说明问题。我假设您想训练您编写的通用机器人的一些参数。也许您可以再详细说明一下。你是用什么编程语言写的纸牌游戏模拟器?
-
我同意我没有很好地表达这个问题。我又试了一次;这看起来怎么样?
-
绝对值得多花一点时间
标签: f# artificial-intelligence genetic-algorithm playing-cards