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

TicTacToe

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 TicTacToe

Avatar for Daria Lvova

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