Дело в том, что я хотел составить алгоритм, который будет обучаться самостоятельно.
Ясно. Тогда, конечно, надо выбрать удачный способ представления стратегии вместо дерева. Например, может быть такой: список правил с весами. Правила состоят, например, из шаблона, соответствующего каким-то конфигурациям на поле (например, там отмечается возможность каждой клетки некоторого прямоугольника быть пустой, содержать свой знак или знак противника), и координат относительно него, куда в данном случае надо поставить знак (или, например, делать эти прямоугольники сторонами в нечётное число клеток, а ставить всегда в центр — может быть, с такими будет проще работать). Из правил с совпавшими в какой-то части доски шаблонами выбирается правило с наибольшим весом; если ничего не совпало, крестик ставится как-то случайно.
Не знаю, насколько плодотворно такое представление и насколько легко его использовать для самообучения (правила надо как-то порождать и давать им веса, а потом перераспределять веса и выкидывать неудачные правила).
-- Пн дек 23, 2013 18:52:48 --Можно контролировать обучение не только результатами игры (это ж сколько тогда надо будет наиграть!), а каким-то «чувством цепочек» — считать, насколько меняется длина цепочек противника и своих. Например, если противник удлинил какую-то цепочку, ход можно посчитать неудачным, а если поставил где-то отдельный знак — удачным. И если удлинил длинную цепочку, это хуже, чем удлинил короткую. Расчитывать оценку хода можно по-всякому, и это тоже всё скажется на обучении.