I’ve started trying to apply genetic algorithms to come up with a better AI to play San Juan. I’m still having trouble modelling the problem but I think I am making progress in my thinking.
The first realization I had was that I was thinking that genetic algorithms were a solution to a dynamic system. Although the training/environment used when evolving the algorithm is dynamic, the algorithm itself isn’t reactive. It will generate a set of rules and hope that they work in whatever situation it is presented with.
I guess that makes sense. Even in a human, evolution has given us tools with constraints. For example, our arm is only flexible in 3 places (wrist, elbow, shoulder) and if we were trying to grip a pole with just our arm, it would be difficult depending how thick the pole is. How well the evolution is is also a function of how many points of variability you are modelling with. The hand is flexible in 20+ different places so it would be much more suited to grip cylindrical objects than an arm.
Of course, the more points of variability, the more generations that need to progress before a solution can be found.
I think this is an important thought, because board and strategy games are a dynamic system. The other players can play things in different orders and interact with each other. It would be too time consuming to try and model all the interactions – and we’re not trying to find a perfect solution – we just need an optimal one that will give a challenging AI.