我有一个运行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 对抗各种其他机器人的平均得分。(一个机器人的分数取决于它与谁比赛,但希望通过与许多机器人进行多次比赛,这可以平衡。)
这有意义吗?我走在正确的道路上吗?