I'm very interested in the field of machine learning and recently I got the idea for a project for the next few weeks.
Basically, I want to create an AI that can beat every human at Tic Tac Toe. The algorithm must be scalable for every n*n board size, and maybe even for other dimensions (for a 3D analog of the game, for example).
Also, I don't want the algorithm to know anything about the game in advance: it must learn on its own. So no hardcoded ifs, and no supervised learning.
My idea is to use an Artificial Neural Network for the main algorithm itself and to train it through the use of a genetic algorithm. So I have to code only the rules of the game, and then each population, battling with itself, should learn from scratch.
It's a big project, and I'm not an expert in this field, but I hope, with such an objective, to learn lots of things.
First of all, is that possible? I mean, is it possible to reach a good result within a reasonable amount of time?
Are there good libraries in Python that I can use for this project? And is Python a suitable language for this kind of project?