Разработка и оптимизация ИИС

Теория игр

Разработка и оптимизация ИИС

План лекции

1. Основные понятия теории игр

2. Классификация игр

3. Антагонистические (биматричные) игры

4. Нижняя и верхняя цены игры. Седловая точка

5. Смешанные стратегии

6. Решение игр 2×2 в смешанных стратегиях

7. Связь теории игр с линейным программированием

8. Программная реализация

Теория игр
Разработка и оптимизация ИИС

1. Основные понятия

Теория игр — математическая теория принятия решений в условиях конфликта, когда результат зависит от действий нескольких сторон (игроков).

Основатель: Джон фон Нейман, Оскар Моргенштерн (1944)

Ключевая идея: каждый игрок выбирает стратегию, стремясь максимизировать свой выигрыш при учёте действий других игроков.

Примеры:

  • Экономика: ценообразование, аукционы, олигополия
  • Информатика: сетевые протоколы, распределение ресурсов
  • Военное дело: стратегии, переговоры
Теория игр
Разработка и оптимизация ИИС

Основные элементы игры

Игроки — стороны, принимающие решения (от 2 и более)

Стратегии — возможные действия каждого игрока (AiA_i — стратегия ii-го игрока)

Выигрыши (платёжная функция) — числовая оценка результата для каждого игрока

Правила — допустимые стратегии, порядок ходов, информированность

Теория игр
Разработка и оптимизация ИИС

2. Классификация игр

Признак Типы
Число игроков 2, nn
Выигрыши Антагонистические (нулевая сумма), кооперативные, бескоалиционные
Число стратегий Конечные, бесконечные
Информированность С полной информацией, с неполной информацией
Ходы Последовательные, одновременные

Бескоалиционная игра — каждый игрок действует самостоятельно.

Антагонистическая игра (нулевая сумма) — выигрыш одного игрока равен проигрышу другого.

Теория игр
Разработка и оптимизация ИИС

Антагонистические игры

Антагонистическая игра двух лиц — выигрыш первого игрока равен проигрышу второго.

Обозначим игроков: AA (первый, максимизирует) и BB (второй, минимизирует).

Матричная форма (платёжная матрица):

B1B_1 B2B_2 \ldots BnB_n
A1A_1 a11a_{11} a12a_{12} \ldots a1na_{1n}
A2A_2 a21a_{21} a22a_{22} \ldots a2na_{2n}
\vdots \vdots \vdots \ddots \vdots
AmA_m am1a_{m1} am2a_{m2} \ldots amna_{mn}

aija_{ij} — выигрыш игрока AA, если он выбирает AiA_i, а игрок BBBjB_j.

Теория игр
Разработка и оптимизация ИИС

3. Нижняя и верхняя цена игры

Игрок AA (максимизирует): для каждой стратегии AiA_i определяет гарантированный выигрыш — минимум по столбцам:

αi=minjaij\alpha_i = \min_j a_{ij}

Затем выбирает стратегию с максимальным гарантированным выигрышем:

α=maxiαi=maximinjaij\alpha = \max_i \alpha_i = \max_i \min_j a_{ij}

Нижняя цена игры (максимин): α\alpha — гарантированный выигрыш игрока AA.

Теория игр
Разработка и оптимизация ИИС

Нижняя и верхняя цена игры (продолжение)

Игрок BB (минимизирует): для каждой стратегии BjB_j определяет максимальный проигрыш по строкам:

βj=maxiaij\beta_j = \max_i a_{ij}

Затем выбирает стратегию с минимальным максимальным проигрышем:

β=minjβj=minjmaxiaij\beta = \min_j \beta_j = \min_j \max_i a_{ij}

Верхняя цена игры (минимакс): β\beta — гарантированный проигрыш игрока BB.

Всегда: αβ\alpha \leq \beta

Теория игр
Разработка и оптимизация ИИС

Седловая точка

Если α=β\alpha = \beta, то игра имеет седловую точку в чистых стратегиях.

maximinjaij=minjmaxiaij=v\max_i \min_j a_{ij} = \min_j \max_i a_{ij} = v

vv — цена игры — оптимальный гарантированный результат для обоих игроков.

Элемент aija_{i^*j^*} — седловой элемент матрицы, если:

  • aij=maxiaija_{i^*j^*} = \max_i a_{ij^*} (максимум в столбце jj^*)
  • aij=minjaija_{i^*j^*} = \min_j a_{ij^*} (минимум в строке ii^*)
Теория игр
Разработка и оптимизация ИИС

Пример: поиск седловой точки

A=(415326074)A = \begin{pmatrix} 4 & 1 & 5 \\ 3 & 2 & 6 \\ 0 & 7 & 4 \end{pmatrix}

B1B_1 B2B_2 B3B_3 αi=min\alpha_i = \min
A1A_1 4 1 5 1
A2A_2 3 2 6 2
A3A_3 0 7 4 0
βj=max\beta_j = \max 4 7 6

α=max(1,2,0)=2,β=min(4,7,6)=4\alpha = \max(1, 2, 0) = 2, \quad \beta = \min(4, 7, 6) = 4

αβ\alpha \neq \betaседловой точки в чистых стратегиях нет!

Теория игр
Разработка и оптимизация ИИС

Пример: игра с седловой точкой

A=(352614236)A = \begin{pmatrix} 3 & 5 & 2 \\ 6 & 1 & 4 \\ 2 & 3 & 6 \end{pmatrix}

B1B_1 B2B_2 B3B_3 αi=min\alpha_i = \min
A1A_1 3 5 2 2
A2A_2 6 1 4 1
A3A_3 2 3 6 2
βj=max\beta_j = \max 6 5 6

α=max(2,1,2)=2,β=min(6,5,6)=5\alpha = \max(2, 1, 2) = 2, \quad \beta = \min(6, 5, 6) = 5

αβ\alpha \neq \beta — седловой точки нет.

Проверим другой пример: a22=1a_{22} = 1 — нет. Попробуем матрицу, где седловая точка есть.

Теория игр
Разработка и оптимизация ИИС

Пример: матрица с седловой точкой

A=(835276419)A = \begin{pmatrix} 8 & 3 & 5 \\ 2 & 7 & 6 \\ 4 & 1 & 9 \end{pmatrix}

B1B_1 B2B_2 B3B_3 αi=min\alpha_i = \min
A1A_1 8 3 5 3
A2A_2 2 7 6 2
A3A_3 4 1 9 1
βj=max\beta_j = \max 8 7 9

α=3\alpha = 3, β=7\beta = 7. Нет седловой точки.

Правило: седловая точка существует, если некоторый элемент является одновременно минимумом в строке и максимумом в столбце.

Теория игр
Разработка и оптимизация ИИС

Пример: матрица с гарантированной седловой точкой

A=(356214735)A = \begin{pmatrix} 3 & \mathbf{5} & 6 \\ 2 & 1 & 4 \\ 7 & 3 & \mathbf{5} \end{pmatrix}

B1B_1 B2B_2 B3B_3 αi=min\alpha_i = \min
A1A_1 3 5 6 3
A2A_2 2 1 4 1
A3A_3 7 3 5 3
βj=max\beta_j = \max 7 5 6

α=3,β=5\alpha = 3, \quad \beta = 5

Всё ещё нет. Седловая точка — редкое явление. Если её нет — используем смешанные стратегии.

Теория игр
Разработка и оптимизация ИИС

4. Смешанные стратегии

Смешанная стратегия — вероятностное распределение на множестве чистых стратегий.

Игрок AA выбирает AiA_i с вероятностью pip_i:

p=(p1,p2,,pm),pi0,i=1mpi=1\vec{p} = (p_1, p_2, \ldots, p_m), \quad p_i \geq 0, \quad \sum_{i=1}^{m} p_i = 1

Игрок BB выбирает BjB_j с вероятностью qjq_j:

q=(q1,q2,,qn),qj0,j=1nqj=1\vec{q} = (q_1, q_2, \ldots, q_n), \quad q_j \geq 0, \quad \sum_{j=1}^{n} q_j = 1

Теория игр
Разработка и оптимизация ИИС

Ожидаемый выигрыш

При смешанных стратегиях p\vec{p} и q\vec{q} математическое ожидание выигрыша:

E(p,q)=i=1mj=1naijpiqj=pTAqE(\vec{p}, \vec{q}) = \sum_{i=1}^{m} \sum_{j=1}^{n} a_{ij} p_i q_j = \vec{p}^T A \vec{q}

Теорема фон Неймана (1928):

Всякая конечная антагонистическая игра имеет решение в смешанных стратегиях:

maxpminqE(p,q)=minqmaxpE(p,q)=v\max_{\vec{p}} \min_{\vec{q}} E(\vec{p}, \vec{q}) = \min_{\vec{q}} \max_{\vec{p}} E(\vec{p}, \vec{q}) = v

Теория игр
Разработка и оптимизация ИИС

Нижняя и верхняя цены в смешанных стратегиях

vA=maxpminji=1maijpi— нижняя цена в смешанных стратегияхv_A = \max_{\vec{p}} \min_{j} \sum_{i=1}^{m} a_{ij} p_i \quad \text{— нижняя цена в смешанных стратегиях}

vB=minqmaxij=1naijqj— верхняя цена в смешанных стратегияхv_B = \min_{\vec{q}} \max_{i} \sum_{j=1}^{n} a_{ij} q_j \quad \text{— верхняя цена в смешанных стратегиях}

Теорема: vA=vB=vv_A = v_B = vцена игры в смешанных стратегиях.

Оптимальные смешанные стратегии p\vec{p}^*, q\vec{q}^* и цена vvрешение игры.

Теория игр
Разработка и оптимизация ИИС

5. Решение игры 2×2 в смешанных стратегиях

Платёжная матрица:

A=(a11a12a21a22)A = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix}

Игрок AA выбирает A1A_1 с вероятностью pp, A2A_2 — с вероятностью 1p1 - p.

Ожидаемый выигрыш при ответе BB:

  • Если BB выбирает B1B_1: E1=pa11+(1p)a21E_1 = p \cdot a_{11} + (1-p) \cdot a_{21}
  • Если BB выбирает B2B_2: E2=pa12+(1p)a22E_2 = p \cdot a_{12} + (1-p) \cdot a_{22}

Принцип: игрок AA выбирает pp так, чтобы E1=E2E_1 = E_2 (уравнивание выигрышей):

pa11+(1p)a21=pa12+(1p)a22p \cdot a_{11} + (1-p) \cdot a_{21} = p \cdot a_{12} + (1-p) \cdot a_{22}

Теория игр
Разработка и оптимизация ИИС

Решение игры 2×2: формулы

Из уравнения E1=E2E_1 = E_2:

p=a22a21(a11a12)+(a22a21)p = \frac{a_{22} - a_{21}}{(a_{11} - a_{12}) + (a_{22} - a_{21})}

q=a22a12(a11a21)+(a22a12)q = \frac{a_{22} - a_{12}}{(a_{11} - a_{21}) + (a_{22} - a_{12})}

Цена игры:

v=pa11+(1p)a21=qa11+(1q)a12v = p \cdot a_{11} + (1-p) \cdot a_{21} = q \cdot a_{11} + (1-q) \cdot a_{12}

Теория игр
Разработка и оптимизация ИИС

Пример: решение игры 2×2

A=(3124)A = \begin{pmatrix} 3 & 1 \\ 2 & 4 \end{pmatrix}

Проверим чистые стратегии: α=max(min(3,1),min(2,4))=max(1,2)=2\alpha = \max(\min(3,1),\, \min(2,4)) = \max(1, 2) = 2

β=min(max(3,2),max(1,4))=min(3,4)=3\beta = \min(\max(3,2),\, \max(1,4)) = \min(3, 4) = 3

αβ\alpha \neq \beta — седловой точки нет. Решаем в смешанных стратегиях.

p=42(31)+(42)=22+2=12p = \frac{4 - 2}{(3 - 1) + (4 - 2)} = \frac{2}{2 + 2} = \frac{1}{2}

q=41(32)+(41)=31+3=34q = \frac{4 - 1}{(3 - 2) + (4 - 1)} = \frac{3}{1 + 3} = \frac{3}{4}

v=0.53+0.52=2.5v = 0.5 \cdot 3 + 0.5 \cdot 2 = 2.5

Ответ: p=(0.5,0.5)p^* = (0.5,\, 0.5), q=(0.75,0.25)q^* = (0.75,\, 0.25), v=2.5v = 2.5

Теория игр
Разработка и оптимизация ИИС

Пример: проверка решения

p=(0.5,0.5),q=(0.75,0.25),v=2.5\vec{p}^* = (0.5,\, 0.5), \quad \vec{q}^* = (0.75,\, 0.25), \quad v = 2.5

Если BB играет B1B_1: E=0.53+0.52=2.5=vE = 0.5 \cdot 3 + 0.5 \cdot 2 = 2.5 = v

Если BB играет B2B_2: E=0.51+0.54=2.5=vE = 0.5 \cdot 1 + 0.5 \cdot 4 = 2.5 = v

Если AA играет A1A_1: E=0.753+0.251=2.5=vE = 0.75 \cdot 3 + 0.25 \cdot 1 = 2.5 = v

Если AA играет A2A_2: E=0.752+0.254=2.5=vE = 0.75 \cdot 2 + 0.25 \cdot 4 = 2.5 = v

Независимо от стратегии противника — выигрыш равен цене игры v=2.5v = 2.5.

Теория игр
Разработка и оптимизация ИИС

6. Связь теории игр с линейным программированием

Для игры m×nm \times n задача поиска оптимальной смешанной стратегии сводится к паре двойственных задач ЛП.

Задача игрока AA (максимизация):

vA=maxx0v_A = \max x_0

{i=1maijxix0,j=1,,ni=1mxi=1xi0,i=1,,m\begin{cases} \sum\limits_{i=1}^{m} a_{ij} x_i \geq x_0, \quad j = 1, \ldots, n \\ \sum\limits_{i=1}^{m} x_i = 1 \\ x_i \geq 0, \quad i = 1, \ldots, m \end{cases}

где xi=pi/vx_i = p_i / v.

Теория игр
Разработка и оптимизация ИИС

Связь с ЛП (продолжение)

Задача игрока BB (минимизация):

vB=miny0v_B = \min y_0

{j=1naijyjy0,i=1,,mj=1nyj=1yj0,j=1,,n\begin{cases} \sum\limits_{j=1}^{n} a_{ij} y_j \leq y_0, \quad i = 1, \ldots, m \\ \sum\limits_{j=1}^{n} y_j = 1 \\ y_j \geq 0, \quad j = 1, \ldots, n \end{cases}

где yj=qj/vy_j = q_j / v.

По теореме двойственности: vA=vB=vv_A = v_B = v.

Теория игр
Разработка и оптимизация ИИС

Приведение к стандартной форме ЛП

Пусть xi=pi/vx_i = p_i / v, тогда x0=1/vx_0 = 1/v и задача игрока AA:

max{i=1mxi    i=1maijxi1,  xi0}\max \left\{ \sum_{i=1}^{m} x_i \;\Big|\; \sum_{i=1}^{m} a_{ij} x_i \geq 1, \; x_i \geq 0 \right\}

Алгоритм:

  1. Если все aij>0a_{ij} > 0 — решаем задачу ЛП симплекс-методом
  2. Если есть aij0a_{ij} \leq 0 — прибавляем к всем элементам константу kk (цена игры изменится на kk)
  3. Находим xix_i^*, вычисляем v=1/xiv = 1 / \sum x_i^*, pi=vxip_i = v \cdot x_i^*
Теория игр
Разработка и оптимизация ИИС

Пример: игра 2×2 через ЛП

A=(3124)A = \begin{pmatrix} 3 & 1 \\ 2 & 4 \end{pmatrix}

Все aij>0a_{ij} > 0. Задача игрока AA:

max  (x1+x2)\max \; (x_1 + x_2)

{3x1+2x21x1+4x21x1,x20\begin{cases} 3x_1 + 2x_2 \geq 1 \\ x_1 + 4x_2 \geq 1 \\ x_1, x_2 \geq 0 \end{cases}

Решение: x1=1/5x_1^* = 1/5, x2=1/5x_2^* = 1/5.

v=1x1+x2=12/5=2.5v = \frac{1}{x_1^* + x_2^*} = \frac{1}{2/5} = 2.5

p1=2.50.2=0.5,p2=0.5p_1 = 2.5 \cdot 0.2 = 0.5, \quad p_2 = 0.5

Теория игр
Разработка и оптимизация ИИС

Доминирование стратегий

Стратегия AiA_i доминирует AkA_k, если aijakja_{ij} \geq a_{kj} для всех jj (и хотя бы для одного строго).

Доминируемую стратегию можно исключить — она никогда не войдёт в оптимальную смешанную стратегию.

Пример:

A=(436251435)A = \begin{pmatrix} 4 & 3 & 6 \\ 2 & 5 & 1 \\ 4 & 3 & 5 \end{pmatrix}

A1A_1 доминирует A3A_3 (строго по B3B_3). Исключаем A3A_3:

A=(436251)A' = \begin{pmatrix} 4 & 3 & 6 \\ 2 & 5 & 1 \end{pmatrix}

Теория игр
Разработка и оптимизация ИИС

7. Программная реализация

import numpy as np
from scipy.optimize import linprog

def solve_game_2x2(matrix):
    a = np.array(matrix)
    p = (a[1,1] - a[1,0]) / ((a[0,0] - a[0,1]) + (a[1,1] - a[1,0]))
    q = (a[1,1] - a[0,1]) / ((a[0,0] - a[1,0]) + (a[1,1] - a[0,1]))
    v = p * a[0,0] + (1 - p) * a[1,0]
    return {'p': [p, 1-p], 'q': [q, 1-q], 'v': v}

r = solve_game_2x2([[3, 1], [2, 4]])
print(f"p={r['p']}, q={r['q']}, v={r['v']}")
# p=[0.5, 0.5], q=[0.75, 0.25], v=2.5
Теория игр
Разработка и оптимизация ИИС

Программная реализация: произвольная игра через ЛП

def solve_game_lp(payoff):
    m, n = np.array(payoff).shape
    A = np.array(payoff)
    if A.min() <= 0:
        A = A - A.min() + 1
    c = -np.ones(m)
    Aub = -A.T
    bub = -np.ones(n)
    res = linprog(c, A_ub=Aub, b_ub=bub, bounds=(0, None))
    v = 1 / res.fun
    p = v * res.x
    return {'p': p, 'v': v}

r = solve_game_lp([[3, 1, 5], [2, 4, 3], [1, 6, 2]])
print(f"p={r['p']}, v={r['v']}")
Теория игр
Разработка и оптимизация ИИС

Заключение

Теория игр
Разработка и оптимизация ИИС

Ключевые выводы лекции

  • Теория игр — математическая модель конфликтных ситуаций

  • Антагонистическая игра описывается платёжной матрицей

  • Нижняя цена (максимин) \leq верхняя цена (минимакс)

  • Седловая точка — частный случай; обычно нужны смешанные стратегии

  • Теорема фон Неймана: решение всегда существует в смешанных стратегиях

  • Общая задача m×nm \times n сводится к паре двойственных задач ЛП

Теория игр
Разработка и оптимизация ИИС

Вопросы для самоконтроля

  1. Что такое теория игр? Какие элементы описывают игру?
  2. Что такое платёжная матрица?
  3. Чему равны нижняя и верхняя цена игры?
  4. В каком случае существует седловая точка в чистых стратегиях?
  5. Что такое смешанная стратегия?
  6. Сформулируйте теорему фон Неймана о минимаксе.
  7. Как решается игра 2×22 \times 2 в смешанных стратегиях?
  8. Как антагонистическая игра сводится к задаче ЛП?
Теория игр
Разработка и оптимизация ИИС

Рекомендуемые ресурсы

Основная литература:

  1. Алексеев, Д. С. Технологии интеллектуального анализа данных.
  2. Маккини, Уэс. Python и анализ данных. — pandas, NumPy.

Дополнительная литература:

  1. Серебряная, Л. В. Методы и алгоритмы принятия решений.
  2. Станкевич, Л. А. Интеллектуальные системы и технологии.

Онлайн-ресурсы:

  • Von Neumann, Morgenstern. Theory of Games and Economic Behavior
  • Нейман Дж. фон, Моргенштерн О. Теория игр и экономическое поведение
Теория игр

Кратко пробегитесь по плану: начнём с основных понятий и классификации игр, затем антагонистические игры, стратегии и принципы оптимальности, после — биматричные игры и их связь с ЛП, завершим программной реализацией.

Дайте определение: теория игр изучает принятие решений в условиях конфликта, когда результат зависит от действий нескольких сторон.

Перечислите основные элементы игры.

Классификация игр по различным признакам. Подчеркните: одна и та же игра может быть отнесена к нескольким классам.

Сосредоточьтесь на антагонистических играх — это основа курса.

Введите понятие чистых стратегий и объясните принцип максимина/минимакса.

Решите пример с седловой точкой — покажите, как найти её в матрице.

Подчеркните: седловая точка в чистых стратегиях — исключение, а не правило. Поэтому нужен аппарат смешанных стратегий.

Решите игру 2×2 аналитически — это базовый навык.

Перейдите к общей игре m×n. Объясните, что она сводится к двум задачам ЛП — взаимно двойственным.

Подведите итоги и покажите программную реализацию.