мне очень мало надо для существования
и я не люблю нагружать родителей
работа позже, пока уроки
и я не люблю нагружать родителей
работа позже, пока уроки
так выглядит матч между двумя особями одого вида
за крестик [ Х ] играет:
лучшая особь, отобранная на метрике высшего акураси при обучении
а за нолик [ О ] играет:
особь относящаяся к виду GeneticPlayer, но со случайным геномом
в моем случае геном представляет из себя шестимерный вектор, каждая координата которого — число с плавающей точкой, нужное для обработки ситуации на поле и принятия решений исходя из "веса" числа
GeneticPlayer
за крестик [ Х ] играет:
GeneticPlayer p1(best);
лучшая особь, отобранная на метрике высшего акураси при обучении
а за нолик [ О ] играет:
GeneticPlayer p2(Genome::random());
особь относящаяся к виду GeneticPlayer, но со случайным геномом
в моем случае геном представляет из себя шестимерный вектор, каждая координата которого — число с плавающей точкой, нужное для обработки ситуации на поле и принятия решений исходя из "веса" числа
Draw!
если столкнуть лучшую особь против самой себя:
GeneticPlayer p1(best);
GeneticPlayer p2(best);
они просто перестают мешать друг другу и оба побеждают
боты ходят так, чтобы не проиграть. выиграть друг у друга очень сложно, потому что оба знают оптимальные ходы
( с точки зрения своей модели )
про отбор в игре крестики нолики с генетическим алгоритмом
Gen 0: создается 100 особей со случайным геномом GeneticPlayer p1
все 100 особей по очереди играют с стандартным игроком класса MyPlayer p2
все 100 матчей в Gen 0, оцениваются фитнес-функцией. строится таблица "лидеров"
половина таблица отрезается, остается только топ 50 лучших особей
именно они станут родителями для новой сотни особей в Gen 1
Gen 0: создается 100 особей со случайным геномом GeneticPlayer p1
геном = стратегия игры бота
struct Genome {
float w_my_2; // 2 мои фишки
float w_my_3; // 3 мои фишки
float w_my_4; // 4 мои фишки
float w_enemy_2; // 2 фишки врага
float w_enemy_3; // 3 фишки врага
float w_enemy_4;} // 4 фишки врага
по сути геном это вектор принятия решений
все 100 особей по очереди играют с стандартным игроком класса MyPlayer p2
все 100 матчей в Gen 0, оцениваются фитнес-функцией. строится таблица "лидеров"
половина таблица отрезается, остается только топ 50 лучших особей
именно они станут родителями для новой сотни особей в Gen 1