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

Теория игр

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

План лекции

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, а игрок BB — BjB_j.

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

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

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

αi=min⁡jaij\alpha_i = \min_j a_{ij}

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

α=max⁡iαi=max⁡imin⁡jaij\alpha = \max_i \alpha_i = \max_i \min_j a_{ij}

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

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

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

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

βj=max⁡iaij\beta_j = \max_i a_{ij}

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

β=min⁡jβj=min⁡jmax⁡iaij\beta = \min_j \beta_j = \min_j \max_i a_{ij}

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

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

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

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

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

max⁡imin⁡jaij=min⁡jmax⁡iaij=v\max_i \min_j a_{ij} = \min_j \max_i a_{ij} = v

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

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

  • ai∗j∗=max⁡iaij∗a_{i^*j^*} = \max_i a_{ij^*} (максимум в столбце j∗j^*)
  • ai∗j∗=min⁡jaij∗a_{i^*j^*} = \min_j a_{ij^*} (минимум в строке i∗i^*)
Теория игр
Разработка и оптимизация ИИС

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

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),pi≥0,∑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),qj≥0,∑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=1m∑j=1naijpiqj=p⃗TAq⃗E(\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):

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

max⁡p⃗min⁡q⃗E(p⃗,q⃗)=min⁡q⃗max⁡p⃗E(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=max⁡p⃗min⁡j∑i=1maijpi— нижняя цена в смешанных стратегияхv_A = \max_{\vec{p}} \min_{j} \sum_{i=1}^{m} a_{ij} p_i \quad \text{— нижняя цена в смешанных стратегиях}

vB=min⁡q⃗max⁡i∑j=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 — с вероятностью 1−p1 - p.

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

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

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

p⋅a11+(1−p)⋅a21=p⋅a12+(1−p)⋅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=a22−a21(a11−a12)+(a22−a21)p = \frac{a_{22} - a_{21}}{(a_{11} - a_{12}) + (a_{22} - a_{21})}

q=a22−a12(a11−a21)+(a22−a12)q = \frac{a_{22} - a_{12}}{(a_{11} - a_{21}) + (a_{22} - a_{12})}

Цена игры:

v=p⋅a11+(1−p)⋅a21=q⋅a11+(1−q)⋅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=4−2(3−1)+(4−2)=22+2=12p = \frac{4 - 2}{(3 - 1) + (4 - 2)} = \frac{2}{2 + 2} = \frac{1}{2}

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

v=0.5⋅3+0.5⋅2=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.5⋅3+0.5⋅2=2.5=vE = 0.5 \cdot 3 + 0.5 \cdot 2 = 2.5 = v ✓

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

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

Если AA играет A2A_2: E=0.75⋅2+0.25⋅4=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=max⁡x0v_A = \max x_0

{∑i=1maijxi≥x0,j=1,…,n∑i=1mxi=1xi≥0,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=min⁡y0v_B = \min y_0

{∑j=1naijyj≤y0,i=1,…,m∑j=1nyj=1yj≥0,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=1maijxi≥1,  xi≥0}\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. Если есть aij≤0a_{ij} \leq 0 — прибавляем к всем элементам константу kk (цена игры изменится на kk)
  3. Находим xi∗x_i^*, вычисляем v=1/∑xi∗v = 1 / \sum x_i^*, pi=v⋅xi∗p_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+2x2≥1x1+4x2≥1x1,x2≥0\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.5⋅0.2=0.5,p2=0.5p_1 = 2.5 \cdot 0.2 = 0.5, \quad p_2 = 0.5

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

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

Стратегия AiA_i доминирует AkA_k, если aij≥akja_{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. Объясните, что она сводится к двум задачам ЛП — взаимно двойственным.

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