我有一个运行Dominion(一款卡牌游戏)的F#程序。我想使用遗传算法确定最佳游戏策略,但我对人工智能或遗传算法不太了解。你能指点我一些好的文献来入门吗?
游戏策略是针对特定手牌的反应。每回合,机器人会被发一手牌。它可以根据所得到的牌选择出牌或购买新牌。目标是以尽可能多的胜利点卡结束游戏。
硬编码方法可能看起来像:
然后要改变机器人,我只需改变那个向量,看变异版本是否更好。适应函数是平均得分,与其他机器人玩Dominion。(一个机器人的得分取决于它与谁对战,但希望通过与许多机器人进行多场比赛来平衡。) 这有意义吗?我走的方向正确吗?
游戏策略是针对特定手牌的反应。每回合,机器人会被发一手牌。它可以根据所得到的牌选择出牌或购买新牌。目标是以尽可能多的胜利点卡结束游戏。
硬编码方法可能看起来像:
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。(一个机器人的得分取决于它与谁对战,但希望通过与许多机器人进行多场比赛来平衡。) 这有意义吗?我走的方向正确吗?