Genetic algorithm for a card game (Dominion)

I have a working F # program that runs Dominion , a card game. I would like to use a genetic algorithm to determine the optimal game strategies. However, I know little about AI or genetic algorithms. Can you point me to some good literature to get started?

The strategy of the game consists of a reaction to this hand. For each turn, the bot is dealt cards. He can choose to play action cards or buy new cards based on what he received. The goal is to end the game with the highest possible number of victory points.

A hard-coded approach might look something like this:

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

I thought about describing the strategy in terms of the vector of the target parts of the common deck for each card:

[Smithy, Province, Copper, ...]
[.3, .2, .1, ...]

Then, to mutate the bot, I could just change this vector around and see if the modified version improves. The fitness feature is the average score played in Dominion against many other bots. (One bat account depends on who he plays with, but hopefully playing many games against many bots, it might even come out.)

It makes sense? Am I headed the right way?
+5
source share
3 answers

- , , ( ), , (, - GA, ).

Dominion, , ( ) , - (., , http://cacm.acm.org/magazines/2012/3/146245-the-grand-challenge-of-computer-go/fulltext). , :

  • , Dominion.
  • "" ( VP)
  • - " " ( )

- .

+5

? ? , "" , -. , , , . , , , !

:

  • .
  • , , 100 .
  • ,
  • ()
  • .

:

  • , ,
  • , (?). , () , .
  • , ..
+4

, , . , :

, , , , . , , . . , (, 0), . .

F #, HeuristicLab, #. , . . , , . , ​​ , .. , ( ) .. , . - , . , , , . 10 . , , , , , , . , , .

You can also use the idea of ​​the target part if you want. In this case, your encoding will be RealVector. You can also optimize this with HeuristicLab (use an evolution strategy, particle piano optimization, or a genetic algorithm).

+2
source

All Articles