Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TicTacToe

 TicTacToe

Daria Lvova

May 14, 2018
Tweet

Other Decks in Education

Transcript

  1. Q-learning — метод, применяемый в искусственном интеллекте при агентном подходе.

    Относится к экспериментам вида oбучение с подкреплением. На основе получаемого от среды вознаграждения агент формирует функцию полезности Q, что впоследствии дает ему возможность уже не случайно выбирать стратегию поведения, а учитывать опыт предыдущего взаимодействия со средой. ННГУ::ИТММ Стр. 2 из 8
  2. Aлгоритм Q-learning Init (Инициализация): for each s and a do

    Q[s, a] = RND // 0..1 ob: Observe (Наблюдение): s’ = s // Запомнить предыдущие состояния a’ = a // Запомнить предыдущие действия s = FROM_SENSOR // Получить текущие состояния с сенсора r = FROM_SENSOR // Получить вознаграждение за предыдущее действие Update (Обновление ценности): Q[s’,a’] = Q[s’,a’] + LF * (r + DF * MAX(Q,s) — Q[s’,a’]) // LF — это фактор обучения. Чем он выше, // тем сильнее агент доверяет новой информации. // DF — это фактор дисконтирования. Чем он меньше, // тем меньше агент задумывается о выгоде от будущих своих действий. Decision (Выбор действия): a = ARGMAX(Q, s) TO_ACTIVATOR = a GO TO ob function MAX(Q,s) max = minValue for each a of ACTIONS(s) do if Q[s, a] > max then max = Q[s, a] return max function ARGMAX(Q,s) amax = First of ACTION(s) for each a of ACTION(s) do if Q[s, a] > Q[s, amax] then amax = a return amax ННГУ::ИТММ Стр. 3 из 8
  3. = [(,)] = [1 , 2 , . . .

    , 9 ] = – состояние = [1 , 2 , . . . , 9 ] – награды за действия В процессе обучения на каждом шаге осуществляется обновление матрицы , далее осуществляется ход. Если ход приводит к выигрышу, то в соответствующий элемент матрицы (в ) записывается единица, иначе матрица не изменяется. Часть ходов осуществляется в случайное свободное поле (с заданной вероятностью) для исключения повторов последовательности ходов в различных циклах обучения и обеспечения быстрого заполнения матрицы . ННГУ::ИТММ Стр. 4 из 8
  4. Особенности программной реализации Список файлов: codeTTT.py - скрипт для обучения

    агентов способом игры друг с другом (2 млн партий) codeTTThum.py - игра с обучившимся агентом без графического интерфейса (ячейки пронумерованы слева направо сверху вниз 1..9, ход - номер ячейки) gui.py - игра с обучившимся агентом с графическим интерфейсом mainform.py - графический интерфейс, разработанный с использованием библиотеки PyQT Agent.py - алгоритм работы агента,реализация алгоритма Q-learning ttt.py - доска и правила игры AO.csv, AX.csv - Q-матрицы для каждого из агентов ННГУ::ИТММ Стр. 6 из 8
  5. ∙ Строки матрицы Q состоят из 9-элементного вектора состояния S

    ( = −1, = 1, пустое поле - 0), представленного в виде десятичного числа, и 9-элементного вектора наград за действия. ∙ Игровое поле представлено в виде матрицы 9х9, заполненной аналогично S. ∙ Перед каждым ходом проверяется, свободна ли ячейка, если нет, в соответствующий элемент A записывается -1. ∙ Определение победителя осуществляется вычислением суммы Σ элементов матрицы игрового поля по строкам, столбцам и диагоналям. При этом если: Σ = −3 - объявляется победа Х, Σ = 3 - объявляется победа O. Иначе, если свободных полей нет, объявляется ничья. ∙ Партия прерывается при объявлении победителя или ничьей. ∙ После завершения процесса обучения матрицы Q для каждого из агентов сохраняются в файл. ∙ При запуске игры с человеком алгоритм играет за Х, матрица Q загружается из файла. ННГУ::ИТММ Стр. 7 из 8