Genetic AI and two player games

24 views
Skip to first unread message

Jonathan Scher

unread,
Jun 10, 2014, 8:49:59 PM6/10/14
to watch...@googlegroups.com
Hello everyone!

Is it possible - or even a good idea - to have a fitness evaluation as a result of a fight between chromosomes of one generation?
I'm a programmer, new to the evolution approach. I'm trying to build my own AI for the board game Dominion.

In this game, there is a limited supply of cards. Each turn a player is buying cards that can either:
- accelerate his deck
- give him victory points and slow his deck
At the end of the game, the one with more victory points wins the game.

I know an average strategy for this game. I could write a fitness function that match each chromosome against this average strategy. However, it doesn't mean that those strategies will perform consistently against each other.

What I'd rather do is:
1. Generate a new strategies (chromosomes)
2. Make them fight against N other strategies taken randomly among their generation
3. Select the one that win the most
4. goto 1.

One of my fears is local optimum. We could arrive to a strategy that wins against any quasi-mirror strategy, but that would lose badly to my average strategy. The Island approach seems to help with this problem.

Is it possible to write a fitness function that will match against its peers?
Is that desirable?

Thank you for your help,
Jonathan

Klaas Hölscher

unread,
Jun 11, 2014, 3:37:02 PM6/11/14
to watch...@googlegroups.com
Hey Jonathan,

Dominion is a great game, i wasted many hours when it was still hosted at isotropic (the real life version has some tedious shuffling issues :-) ).
I can't really comment on your idea to evolve a strategy - of course it is possible but maybe someone with a background of game theory could offer some insight. I think an agent would be more suitable to play dominion against another AI as an fixed strategy.
Food for thought: Yoo try to build an win-in-one-move, e.g. prepare your deck to buy the majority of colonies in one move. Your Opponent begins to buy green cards early and may win before you got your turn. How does this change your behavior vs a player who tries the same strategy as you=

Do you know  http://councilroom.com ? It has statistics created from some millions of games.

regards,
Klaas


--
You received this message because you are subscribed to the Google Groups "Watchmaker Framework for Evolutionary Computation" group.
To unsubscribe from this group and stop receiving emails from it, send an email to watchmaker+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jonathan Scher

unread,
Jun 25, 2014, 11:53:44 PM6/25/14
to watch...@googlegroups.com
Hello and thanks for your answer. What I'm looking for is whether Watchmaker is suitable for competitive coevolution.

I think I'll go to ECJ that has already project that support it.

> Dominion is a great game, i wasted many hours when it was still hosted at isotropic (the real life version has some tedious shuffling issues :-) ).
I'm currently "wasting" my hours on Goko ;-)

> Food for thought: Yoo try to build an win-in-one-move, 
There are a lot of various possible strategies in that game. You can slow down your opponent and build slowly your victory points as the game is running one, you can build your deck and buy all your points at the end. Or you can sometime even generate Victory Points with actions and not buy anything that slows you down! Because the game has those various strategies, I beleive it's interesting to look into it.

> Do you know  http://councilroom.com ? It has statistics created from some millions of games.
I haven't thought to use it to extract something for a IA, but it is definitely something to look into for an opening/ending strategy dictionary! 

Cheers,
Jonathan

Klaas Hölscher

unread,
Jun 27, 2014, 6:08:51 AM6/27/14
to watch...@googlegroups.com

Hey again,
I am not aware of a competetive coevolution-evaluation in watchmaker. However, it would be trivial to add, compared with the implementation of the dominion-engine. I assume you are using the base game without and of the addons ;)

Anyway, i am pretty fond of dominion, updates on your project would be great, regardless if you end up using watchmaker or ECJ

Regards,
Klaas

Jonathan Scher

unread,
Jun 27, 2014, 6:25:51 PM6/27/14
to watch...@googlegroups.com
Thanks for the support!

The community is making rule-based bots with Geronimoo's engine ( http://dominionsimulator.wordpress.com/ )
My first step will be to use a genetic algorithm to create perfect counters. It's easier to define a fitnesse function.
The biggest challenge might be to optimise the engine, as for now it plays hundreds of games single threaded. And the rulesets are complicated, creating a wide space of possible genes. We'll see!

Follow me on GitHub and feel free to contribute :)
Thx for the encouragements
Jonathan



--
You received this message because you are subscribed to a topic in the Google Groups "Watchmaker Framework for Evolutionary Computation" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/watchmaker/fzHqo0Wk2ng/unsubscribe.
To unsubscribe from this group and all its topics, send an email to watchmaker+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages