It may not be. In a way, it may be too simplistic. One thing I have found with GA's (and I have since read this in a paper on the subject) is that they do really well for a while, then they seem to lose steam. They get to a certain quality of answer, but can't seem to progress past that point.

I have gotten around that with two and three tier GA's where there are multiple runs, and the winner of each run is added to a new population. When that winners bracket population fills up, that is evolved against each other. Some people have described this as hybrid vigor, and it sure does seem to act that way. The winner of the winners is better than any one winner. I have now got a program with three tiers, where the winner of the winners is put on a super bracket, then the whole thing repeats. This takes FOREVER!!! The program has run times measured in days for reasonable problems. However, the members of the super bracket all have roughly the same value, and the winner of the winners of the winners still seems to be slightly better than any of the winners of the winners (if that fool sentence parses).

Your tic-tac-toe may be simple enough that the level at which the system ceases to improve may be pretty nearly right at the beginning. I have no idea how you could implement a multi-tiered NN, but if you can, you probably would end up with better results at the cost of longer runtimes.