Теория игр: основы, примеры и дилемма заключенного

Теория игр: основы, примеры и дилемма заключенного Полезное

Теория игр — это раздел математики, который изучает, как участники со своими интересами выбирают стратегии, когда результат каждого зависит и от чужих решений. Слово «игра» здесь условное: так называют любую ситуацию с несколькими сторонами, целями и правилами — от шахмат до торгов на бирже и переговоров между компаниями. Ниже разберем базовые понятия, посмотрим примеры (дилемма заключенного, равновесие Нэша), прочитаем матрицу выигрышей и соберем простую модель на Python.

Что такое теория игр простыми словами

Теорию игр как отдельную дисциплину оформили математик Джон фон Нейман и экономист Оскар Моргенштерн в книге «Теория игр и экономическое поведение» (1944). Позже Джон Нэш сформулировал концепцию равновесия для некооперативных игр. В 1994 году он разделил Нобелевскую премию по экономике с Джоном Харсаньи и Райнхардом Зельтеном — «за анализ равновесий в теории некооперативных игр».

Что именно задают в игре, зависит от ее формы:

  • В нормальной (стратегической) форме — самой простой — описывают игроков, наборы стратегий каждого и функции выигрыша (что получит каждый при том или ином сочетании стратегий).
  • В последовательных (развернутых) играх дополнительно задают порядок ходов и то, какая информация доступна игроку в момент решения.
  • При неопределенности к этому добавляют типы игроков и вероятностные представления о том, с кем имеешь дело.

Базовые понятия все равно одни и те же:

  • Игроки — те, кто принимает решения (люди, компании, программы, государства).
  • Стратегии — доступные каждому игроку варианты действий.
  • Выигрыши — что каждый получает при том или ином сочетании стратегий (деньги, очки, годы свободы).

Ключевая идея: свой выигрыш игрок не контролирует полностью. Он зависит и от того, что выберут остальные. Поэтому «оптимальный» ход — это не просто лучший ход вообще, а лучший ответ на вероятные действия других.

Это не значит, что теория игр всегда предсказывает поведение точно. Люди ошибаются, действуют на эмоциях и не всегда считают выигрыш деньгами. Модель дает опорную точку, а не готовый прогноз.

Как читать любую матрицу игры: короткий алгоритм

Большинство простых игр в нормальной форме разбираются по одной схеме. Держите ее под рукой при чтении любой матрицы 2×2:

  1. Игроки — кто ходит (строки — один игрок, столбцы — другой).
  2. Стратегии — какие варианты у каждого (метки строк и столбцов).
  3. Направление полезности — что лучше: больше или меньше (очки — больше, срок — меньше).
  4. Лучшие ответы — для каждого хода соперника отметить, какой ход выгоднее вам.
  5. Пересечение — клетка, где ход выгоден обоим одновременно, и есть кандидат в равновесие.

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

Игры с нулевой и ненулевой суммой

Игры делят по тому, как связаны выигрыши сторон.

Игра с нулевой суммой (zero-sum) — это игра, в которой при любом исходе сумма выигрышей всех сторон равна нулю: сколько один выиграл, столько другие в сумме потеряли. Важно, что это свойство функции выигрышей при заданной метрике, а не общая «конфликтность» ситуации.

Что это значит на примерах:

  • Шахматы и теннис — zero-sum после нормировки полезностей: победа +1, поражение -1, ничья 0.
  • Покер без комиссии — zero-sum по деньгам за столом. Но с rake (комиссией зала) сумма уже отрицательная, и формально это не нулевая сумма.

Игра с ненулевой суммой — это игра, где сумма выигрышей может быть любой: общий «пирог» способен расти или уменьшаться, и выигрывать (или проигрывать) стороны могут вместе. Пример: торговое соглашение, от которого выигрывают обе страны, или совместный проект двух компаний.

Оговорка про метрику важна и в другую сторону. Если сменить горизонт и учесть репутацию или повторные сделки, меняется не «свойство» той же игры — меняется сама модель: другие выигрыши, другой набор ходов. Одна и та же жизненная ситуация может описываться то нулевой, то ненулевой моделью в зависимости от того, что мы включили в выигрыш.

Признак Нулевая сумма Ненулевая сумма
Сумма выигрышей всегда 0 при заданной метрике может быть любой
Интересы сторон строго противоположны частично совпадают
Возможен общий выигрыш нет да
Примеры шахматы, теннис, покер без rake торговля, переговоры, совместный проект

Дилемма заключенного: главный пример теории игр

Дилемма заключенного — это классическая игра с ненулевой суммой, которая показывает, почему рациональным участникам бывает выгодно предать друг друга, хотя вместе они получили бы больше. Задачу придумали Меррилл Флуд и Мелвин Дрешер в 1950 году, а привычную формулировку про заключенных дал математик Альберт Такер.

Сюжет такой. Двух подозреваемых допрашивают порознь, договориться они не могут. У каждого есть выбор: молчать (сотрудничать с подельником) или сознаться (предать его). Условия сделки со следствием:

  • Оба молчат — по 1 году каждому.
  • Оба сознались — по 5 лет каждому.
  • Один сознался, другой молчал — сознавшийся выходит на свободу, молчавший получает 10 лет.

Матрица наказаний (в годах, меньше — лучше):

A \ B B молчит B сознается
A молчит A: 1, B: 1 A: 10, B: 0
A сознается A: 0, B: 10 A: 5, B: 5

Пройдем по алгоритму лучших ответов для игрока A (направление полезности: срок меньше — лучше):

Что делает B Лучший ответ A Почему
B молчит сознаться 0 лет вместо 1
B сознается сознаться 5 лет вместо 10

При любом выборе соперника предательство выгоднее — и то же самое верно для B. Пересечение лучших ответов — клетка «оба сознались».

В итоге оба сознаются и получают по 5 лет, хотя, промолчав вместе, отделались бы одним годом. В этом и парадокс: индивидуально разумные решения приводят к худшему общему результату.

Равновесие Нэша

Равновесие Нэша — это набор стратегий, при котором ни одному игроку не выгодно менять свой ход в одиночку, пока остальные держат свои. Каждый уже выбрал лучший ответ на выбор других.

В дилемме заключенного равновесие Нэша — это «оба сознались». Стоит одному в этой точке передумать и промолчать — он получит не 5, а 10 лет, значит менять ход невыгодно. А вот пара «оба молчат» равновесием не является: любой может улучшить свой результат, тайком сознавшись.

Полезно помнить два момента. Во-первых, равновесие Нэша не обязано быть выгодным для всех — оно про устойчивость, а не про справедливость. Во-вторых, равновесий может быть несколько, а иногда оно достигается только в смешанных стратегиях (когда игрок выбирает ходы случайно с какой-то вероятностью), как в игре «камень-ножницы-бумага».

Матрица выигрышей и модель на Python

Соберем проверку на Python для частного, но самого частого случая: чистые профили стратегий в матрице 2×2. Переведем наказания в очки-выигрыши (больше — лучше): свобода = 5, 1 год = 3, 5 лет = 1, 10 лет = 0. Стратегии обозначим числами: 0 — молчать, 1 — сознаться.

# Матрица выигрышей дилеммы заключенного (больше - лучше).
# Стратегии: 0 = молчать (сотрудничать), 1 = сознаться (предать).
payoff = {
    (0, 0): (3, 3),  # оба молчат
    (0, 1): (0, 5),  # A молчит, B предает
    (1, 0): (5, 0),  # A предает, B молчит
    (1, 1): (1, 1),  # оба предают
}

def is_pure_nash_2x2(a, b):
    # Проверяем ТОЛЬКО чистые профили: у каждого игрока стратегия 0 или 1.
    # A не должно быть выгодно сменить стратегию при фиксированном b
    a_ok = payoff[(a, b)][0] >= payoff[(1 - a, b)][0]
    # B не должно быть выгодно сменить стратегию при фиксированном a
    b_ok = payoff[(a, b)][1] >= payoff[(a, 1 - b)][1]
    return a_ok and b_ok

for a in (0, 1):
    for b in (0, 1):
        if is_pure_nash_2x2(a, b):
            print(f"Равновесие в чистых стратегиях: A={a}, B={b}, выигрыш={payoff[(a, b)]}")

# Вывод:
# Равновесие в чистых стратегиях: A=1, B=1, выигрыш=(1, 1)

Код перебирает все четыре сочетания чистых стратегий и оставляет только те, где ни одному игроку не выгодно передумать в одиночку. Единственная такая точка — «оба предают», что совпадает с разбором выше.

Важная оговорка: это не общий поиск равновесия Нэша. Перебор смотрит только на чистые стратегии (0 или 1) и пропустит игру, где равновесие есть лишь в смешанных стратегиях — например «камень-ножницы-бумага». Для смешанного равновесия нужны вероятности ходов и другой алгоритм; этот перебор его не найдет.

Частая ошибка новичка — искать равновесие как «клетку с самым большим общим выигрышем». Например, взять сумму пары:

best = max(payoff, key=lambda k: sum(payoff[k]))
print(best, payoff[best])
# Вывод: (0, 0) (3, 3)

Результат (0, 0) — это взаимное молчание: оно лучше по сумме, но равновесием Нэша не является, ведь каждому выгодно тайно предать. Правильный критерий — именно устойчивость к одностороннему отклонению (функция is_pure_nash_2x2), а не максимум суммы.

Повторяющиеся игры и стратегия «зуб за зуб»

Если дилемму играют один раз, предательство рационально. Когда та же пара встречается многократно, ответ уже зависит от горизонта — и здесь важно не спутать два разных случая.

  • Известный конечный горизонт. Если раундов заранее задано ровно N, работает обратная индукция: в последнем раунде мести можно не бояться, поэтому обоим выгодно предать; тогда предпоследний раунд превращается в «последний», и так до первого. В теории это ведет к предательству в каждом раунде.
  • Неопределенный или бесконечный горизонт. Если игра может продолжиться, а будущее для игроков достаточно ценно, кооперация может поддерживаться: угроза наказания в следующих раундах делает сотрудничество выгодным. Для этого нужно, чтобы прошлые ходы были наблюдаемы, а у сторон была возможность наказать за предательство.

На этом фоне известный результат перестает выглядеть скачком. В турнирах политолога Роберта Аксельрода (начало 1980-х) на повторяющейся дилемме победила простая стратегия «зуб за зуб» (tit for tat) Анатоля Рапопорта: начни с сотрудничества, дальше повторяй последний ход соперника. Она наблюдает прошлый ход, наказывает предательство и быстро возвращается к сотрудничеству — и в сумме набирает больше жестко эгоистичных стратегий.

Это не универсальный рецепт: результат зависит от состава соперников, числа раундов и «шума» (случайных ошибок). Но пример показывает, что при повторении с открытым горизонтом кооперация может быть выгодной, а не наивной.

Выводы

  • Теория игр описывает взаимодействие сторон; в нормальной форме это игроки, стратегии и выигрыши, а в последовательных играх добавляются порядок ходов и информация.
  • Любую матрицу читаем по шагам: игроки, стратегии, направление полезности, лучшие ответы, их пересечение.
  • Игры с нулевой суммой (шахматы, теннис) — строгое свойство функции выигрышей при заданной метрике, а не «уровень конфликта»; в играх с ненулевой суммой стороны способны выигрывать или проигрывать вместе.
  • Дилемма заключенного показывает: индивидуально выгодные решения могут приводить к худшему общему итогу.
  • Равновесие Нэша — это устойчивая точка, где никому не выгодно менять ход в одиночку; оно не обязано быть справедливым или лучшим для всех, а искать его перебором чистых стратегий можно не всегда.
  • В повторяющихся играх исход зависит от горизонта: при известном конце обратная индукция тянет к предательству, при открытом горизонте кооперация может окупаться — как показывает «зуб за зуб».

Где применяется / связь с практикой

Теория игр работает там, где решения одних влияют на выигрыш других: ценообразование и конкуренция компаний, аукционы и торги, переговоры, кибербезопасность, поведение алгоритмов и ИИ-агентов. Аналитику она помогает не столько выдать точный прогноз, сколько формулировать возможные реакции участников и проверять, как они зависят от стимулов и правил. Точность такого прогноза определяется допущениями модели: заданными выигрышами, доступной информацией, предпосылкой о рациональности и поведенческой калибровкой.

Освойте тему на практике

Чтобы уверенно строить и читать такие модели, нужна база по вероятности, матрицам и оптимизации. Разобрать этот фундамент системно можно на курсе Математика для аналитиков. А посмотреть, как это преподают, и задать вопросы вживую — на бесплатных вебинарах Otus.

Смежные темы: Основы игровой теории: введение, Теория чисел. Делители и кратные.

FAQ

Зачем теория игр программисту, если он не экономист?
Она нужна там, где взаимодействуют автономные агенты: распределенные системы, аукционы онлайн-рекламы, балансировка нагрузки, ИИ-боты в играх. Модель помогает рассуждать о поведении системы, а не только отдельной программы.

Чем равновесие Нэша отличается от оптимального решения?
Равновесие Нэша устойчиво: из него невыгодно уходить в одиночку. Оптимальное по сумме решение может давать больше всем вместе, но быть неустойчивым — как «оба молчат» в дилемме заключенного.

Всегда ли в игре есть равновесие Нэша?
В конечных играх (конечное число игроков и стратегий) равновесие есть всегда, но иногда только в смешанных стратегиях — когда игрок выбирает ходы случайно с определенной вероятностью. Пример — «камень-ножницы-бумага», где чистого равновесия нет.

OTUS Журнал
Скидка 10% 7-13 сентября на курсы из спецкаталога (pop-up)