Понедельник, 30 Октября 2023
Изучил первых две лекции из гейм аи. На примере игры 4 в ряд. Смысл игры сделать ряд в 4 фишки в один вертикальный, либо горизонтальный, либо наискосок. ИИ в данном случае это функция в питоне, которая вычесляет какой сделать шаг, пока игра не выиграна
Способ как решить задачу
- Способ 1. Кидать фишку в рандомное место. Метод рандома.
- Способ 2. Кидать фишку в одну определенную колонку, например в первую колонку. Будет работать лучше рандомного агента, так как задача сделать 4 в ряд, и раз мы кидаем в ряд, то шанс что рандомный метод не попадет в наш колонку 4 раза довольно велик. Однако там мы можем проигрывать много раз против рандомного, просто из за того что мы все еще кидаем в одну колонку, а в той колонки нет места
- Один шаг вперед(Step Lookahead). Способ следующий. Используем евристическую функцию. Эвристическая функция эта такая которая не вполне решает задачу, однако довольно хороша для практического применения. Смысл следующий: смотрим текущее состояние игры, что лежит в каждой колонке. Далее присваиваем каждой колонке цифру: если следующий шаг в этой колонке приведет к 4 в ряд - цира 100000, если будет 3 в ряд - 100, два в ряд - 10, 1 - 0, если сопернику 2 в ряд то -10, если 3 в ряд -100, если 4 в ряд соперник то -1000000. Далее выбираем колонку с наибольшим рейтингом. Если одинаковый рейтинг у нескольких колонок с максимальным рейтингом, выбираем среди них случайную. Таким образом мы выбираем следующий наилучший шаг основываясь на текущем состоянии игры, текущем шаге. Из минусов, мы продумываем только 1 шаг, который не всегда может окозаться лучшим и иногда может весьти к проигрышу. Лучше продумывать несколько шагов вперед
Начал изучать N-Step ahead