May-01-2019, 01:55 AM
(Apr-30-2019, 11:35 PM)SheeppOSU Wrote:
AI's are like babies if you think about it. The bot u have here has to act based on specific things. It doesn't have any experience whatsoever.
That's why you can beat it so easily
Hope this helps
Quite right. My bot has no experience whatsoever. Nor can it gain experience. I just read a bunch of scholarly articles on the subject and discovered that even back in 1997, when a bot beat a Human world champion for the first time they were already using neural network based machine learning. I think it's reasonable to conclude that I'm not going to get anywhere using minimax. I've greatly underestimated the scale of this challenge and I foresee a great deal of research in my future. Unfortunately, your suggestion of implementing a different function for every possible game state would require 3^60 + 16 different functions. I would spend the rest of my life coding, fill up the hard drive of this computer with code and still never live to see my bot play a respectable game.
I'm thinking I'll use NEAT (NeuroEvolution of Augmenting Topologies) to create my bot. I'll have 64 input nodes for the 64 game spaces and two output nodes for an X and a Y coordinate. I'll need to read a lot of academic papers on the subject to get any more specific than that. I don't even know how I'm going to implement the scoring and training algorithms. One of the papers I looked at said something about the neural networks over-adapting when they train against themselves. I suppose I could solve this problem by introducing a gradient of mutation rates within the population but there are people who have already solved this problem. The bot on my phone plays a mean game and that thing probably handles a Human with kid gloves even on max difficulty. I could even vary the difficulty by saving neural networks at various stages of the training process and using a poorer performing neural network at lower difficulties and a better performer at a higher difficulty. I could even whip out the best performer, (which at the end of the training process might be capable of playing a perfect game) for the highest difficulty. It would make the highest difficulty setting a frustrating nightmare for anybody who tries it, but even being impossible to win against a bot that plays a perfect game, I could only imagine the rush of satisfaction when somebody draws a game against a level 100 bot!