EssayAI
Блог
Блог
Математика и алгоритмы

Матричная игра: решение в чистых стратегиях

11 июня 2026Время чтения: 9 минут
#матричная игра#чистые стратегии#седловая точка#теория игр#метод доминирования
Матричная игра: решение в чистых стратегиях

Матричная игра - модель конфликта двух игроков с противоположными интересами: игрок A выбирает строку матрицы выигрышей, игрок B - столбец, а число в клетке показывает, сколько A получает от B при этой паре ходов. Прежде чем искать сложные смешанные стратегии с вероятностями, любую такую игру сначала проверяют на решение в чистых стратегиях - вариант, при котором обоим игрокам достаточно один раз выбрать свою строку или столбец и больше от неё не отклоняться. Ниже разберём, как найти нижнюю и верхнюю цену игры, что такое седловая точка и почему её наличие сразу даёт готовое решение, как упростить громоздкую матрицу методом доминирования и как выглядит разбор типового примера 3 на 3. Задайте свою матрицу в калькуляторе ниже - он подсветит минимум каждой строки, максимум каждого столбца и покажет, есть ли седловая точка.

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

Пусть матрица выигрышей A имеет размер m на n, где aija_{ij} - выигрыш игрока A, если он играет строку ii, а игрок B играет столбец jj. Игра с нулевой суммой означает, что выигрыш A равен проигрышу B, поэтому B стремится минимизировать то же самое число, которое A стремится максимизировать. Чистая стратегия - это выбор одной конкретной строки (для A) или одного конкретного столбца (для B), который игрок использует всегда, без всякой случайности. Если для такой пары строка-столбец ни одному из игроков не выгодно в одиночку менять свой выбор, это и есть устойчивое решение игры - оно называется седловой точкой, а стоящее в ней число - ценой игры.

Алгоритм: нижняя и верхняя цена игры

Проверка решения в чистых стратегиях всегда начинается с одной и той же процедуры, не требующей никаких вероятностей:

  1. Для каждой строки найти минимальный элемент - это худший для A исход, если он выбрал именно эту строку, а B сыграл против него наилучшим образом.
  2. Из всех найденных минимумов строк взять максимум. Это нижняя цена игры, или максимин: α=maximinjaij.\alpha = \max_i \min_j a_{ij}.
  3. Для каждого столбца найти максимальный элемент - худший для B исход в этом столбце.
  4. Из всех найденных максимумов столбцов взять минимум. Это верхняя цена игры, или минимакс: β=minjmaxiaij.\beta = \min_j \max_i a_{ij}.

Смысл прост: строка с максимальным минимумом - это самая безопасная стратегия A, при которой он гарантированно получит не меньше α\alpha, что бы ни делал соперник. Аналогично столбец с минимальным максимумом - самая безопасная стратегия B, при которой он гарантированно отдаст не больше β\beta.

Маркер пробегает по каждой строке и отмечает её минимум, затем по каждому столбцу и отмечает его максимум; когда отмеченная строка и отмеченный столбец пересекаются в одной клетке, она вспыхивает золотым - это седловая точка

Всегда выполняется неравенство αβ\alpha \le \beta: A никогда не может гарантировать себе больше, чем позволяет минимаксная защита B. Если это неравенство обращается в строгое равенство, значит, найдена клетка, которая одновременно является минимумом своей строки и максимумом своего столбца, - именно она и есть седловая точка.

Когда существует седловая точка

Седловая точка существует тогда и только тогда, когда нижняя цена равна верхней: α=β\alpha = \beta. В этом случае решение в чистых стратегиях не просто существует - оно единственно устойчиво в следующем смысле. Если A отклонится от строки седловой точки на любую другую, а B продолжит играть свой столбец, выигрыш A может только уменьшиться. Если же отклонится B, а A останется на месте, проигрыш B может только увеличиться. Поэтому обеим сторонам невыгодно менять свой выбор в одиночку - ровно это и требуется от устойчивого решения игры. Цена игры v=α=βv = \alpha = \beta показывает, сколько A получит от B при разумной игре обеих сторон, и это число не зависит от того, знает ли соперник заранее вашу стратегию: седловая точка устойчива к разглашению.

Если же α<β\alpha < \beta, седловой точки нет вообще, ни в одной клетке матрицы, и чистой оптимальной стратегии не существует: любой фиксированный выбор строки соперник рано или поздно раскроет и подстроится под него. В таком случае переходят к решению в смешанных стратегиях, где игроки чередуют ходы случайно с расчётными вероятностями.

Метод доминирования: как упростить большую матрицу

Прежде чем вручную искать минимумы строк и максимумы столбцов в большой матрице, её часто удаётся сократить методом доминирования. Строка ii доминирует строку kk, если каждый элемент строки ii не меньше соответствующего элемента строки kk: тогда A никогда не выгодно играть строку kk, её можно вычеркнуть. Симметрично столбец jj доминирует столбец ll, если каждый элемент столбца jj не больше соответствующего элемента столбца ll: тогда B никогда не выгодно играть столбец ll, его тоже вычёркивают. Цена игры при этом не меняется - доминируемые строки и столбцы попросту никогда не входят в оптимальную стратегию ни одного из игроков.

Матрица 5, 3, 6 / 2, 1, 3 / 7, 4, 8: строка 2, 1, 3 вычеркнута, потому что строка 7, 4, 8 доминирует её в каждой клетке; из оставшихся столбцов вычеркнуты столбец 1 и столбец 3, потому что столбец 3, 4 доминирует их поэлементно, остаётся единственная клетка со значением 4
Матрица 5, 3, 6 / 2, 1, 3 / 7, 4, 8: строка 2, 1, 3 вычеркнута, потому что строка 7, 4, 8 доминирует её в каждой клетке; из оставшихся столбцов вычеркнуты столбец 1 и столбец 3, потому что столбец 3, 4 доминирует их поэлементно, остаётся единственная клетка со значением 4

На схеме видно, как матрица (536213748)\begin{pmatrix} 5 & 3 & 6 \\ 2 & 1 & 3 \\ 7 & 4 & 8 \end{pmatrix} сжимается шаг за шагом. Строка 2 вычеркивается первой: каждый её элемент не больше соответствующего элемента строки 3, значит A всегда предпочтёт строку 3. Дальше сравниваются столбцы оставшихся двух строк: второй столбец (3, 4) поэлементно не больше первого (5, 7) и третьего (6, 8), поэтому оба вычёркиваются. Остаётся один столбец с двумя числами 3 и 4 - A выбирает строку с большим значением, и матрица схлопывается до единственного ответа: седловая точка в клетке строка 3, столбец 2 со значением 4. Метод доминирования особенно полезен для матриц 4 на 4 и крупнее, где перебор всех строк и столбцов вручную занимает много времени.

Пример решения матричной игры 3 на 3

Возьмём матрицу выигрышей

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

Находим минимум каждой строки: min(3,2,4)=2\min(3, 2, 4) = 2, min(6,5,7)=5\min(6, 5, 7) = 5, min(8,4,9)=4\min(8, 4, 9) = 4. Нижняя цена - максимум из этих чисел: α=max(2,5,4)=5\alpha = \max(2, 5, 4) = 5, достигается во второй строке.

Находим максимум каждого столбца: max(3,6,8)=8\max(3, 6, 8) = 8, max(2,5,4)=5\max(2, 5, 4) = 5, max(4,7,9)=9\max(4, 7, 9) = 9. Верхняя цена - минимум из этих чисел: β=min(8,5,9)=5\beta = \min(8, 5, 9) = 5, достигается во втором столбце.

Поскольку α=β=5\alpha = \beta = 5, седловая точка найдена: это клетка на пересечении второй строки и второго столбца, a22=5a_{22} = 5. Проверим определение напрямую: в строке (6,5,7)(6, 5, 7) число 5 действительно минимально, а в столбце (2,5,4)(2, 5, 4) число 5 действительно максимально - оба условия выполнены одновременно, значит клетка и правда седловая. Значит, игроку A достаточно всегда играть вторую строку, игроку B - всегда второй столбец, а цена игры равна 5: именно столько A будет получать от B при любой стратегии соперника, если сам не отклонится от найденной строки.

Частые ошибки

  • Путаница, что берётся первым - минимум или максимум. Для строк сначала берут минимум (худший исход A), а из этих минимумов - максимум. Для столбцов наоборот: сначала максимум (худший исход B), а из этих максимумов - минимум. Перепутанный порядок сразу даёт неверные числа.
  • Остановка после первого совпадающего числа. Нужно сравнивать именно посчитанные нижнюю и верхнюю цену игры целиком, а не одну случайно совпавшую пару элементов - седловая клетка обязана быть одновременно минимумом своей строки и максимумом своего столбца, оба условия проверяются отдельно.
  • Применение доминирования с нестрогим неравенством не в ту сторону. Строка доминируется, если она не лучше другой строки в каждой клетке; попытка вычеркнуть строку, которая лучше хотя бы в одной клетке, разрушает решение.
  • Поиск седловой точки в игре, где её нет. Если после подсчёта нижняя цена оказалась строго меньше верхней, седловой точки нет ни в одной клетке - дальнейшая ручная проверка клеток бессмысленна, нужно переходить к смешанным стратегиям.
  • Путаница ролей игроков. A выбирает строку и максимизирует число в клетке, B выбирает столбец и минимизирует то же число. Перепутав, кто есть кто, нижнюю и верхнюю цену игры считают наоборот.

FAQ

Как быстро проверить, есть ли седловая точка в матрице? Посчитать минимум каждой строки и взять максимум из них (нижняя цена), затем максимум каждого столбца и взять минимум из них (верхняя цена). Если два числа совпали - седловая точка есть, игра решается в чистых стратегиях без всяких вероятностей.

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

Что делать, если после доминирования матрица не сжимается до одной клетки? Значит, доминируемых строк или столбцов больше нет, но матрица всё ещё больше 1 на 1. Тогда нужно напрямую посчитать нижнюю и верхнюю цену игры для оставшейся матрицы; если они не совпадут, решение придётся искать в смешанных стратегиях.

Коротко

Решение матричной игры в чистых стратегиях начинается с расчёта нижней цены (максимин по минимумам строк) и верхней цены (минимакс по максимумам столбцов). Если они равны, найдена седловая точка - клетка, которая одновременно минимальна в своей строке и максимальна в своём столбце, а её значение и есть цена игры. Метод доминирования позволяет заранее вычеркнуть заведомо невыгодные строки и столбцы и сократить перебор в больших матрицах. Если нижняя цена оказалась строго меньше верхней, чистой оптимальной стратегии не существует, и решение нужно искать среди смешанных стратегий.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также

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

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

Как решить матричную игру 2x2 в смешанных стратегиях: проверка седловой точки, формулы p, q и цены игры v, разбор графического метода и типовой пример с числами.

11 июня 20269 минут
Ним-сумма позиции игры: как XOR решает кто выиграет

Ним-сумма позиции игры: как XOR решает кто выиграет

Ним-сумма позиции игры это XOR размеров куч. Разбираем, как она задаёт выигрышную и проигрышную позиции, теорему Спрэга-Гранди и поиск выигрышного хода.

19 июня 20267 минут
Равновесие в смешанных стратегиях: как найти p и q

Равновесие в смешанных стратегиях: как найти p и q

Что такое равновесие в смешанных стратегиях в теории игр: как через условие безразличия найти вероятности p и q, посчитать цену игры и разобрать пример с пенальти в футболе.

11 июня 20268 минут
Атрибуты сущности в ER-модели: пять типов и примеры

Атрибуты сущности в ER-модели: пять типов и примеры

Разбираем пять типов атрибутов сущности в ER-модели: простой, составной, ключевой, многозначный, производный, с примерами и переходом к столбцам и таблицам реляционной схемы.

7 июля 20269 минут
Циркуляция векторного поля по контуру: формула и смысл

Циркуляция векторного поля по контуру: формула и смысл

Циркуляция векторного поля по контуру: что это такое, как вычислить линейный интеграл по параметризации и через ротор поля с теоремой Грина, разбор типичных ошибок и примеров расчёта.

7 июля 20267 минут
Динамическое программирование: основы и идея мемоизации

Динамическое программирование: основы и идея мемоизации

Что такое динамическое программирование простыми словами: перекрывающиеся подзадачи, оптимальная подструктура, мемоизация и табуляция на примере чисел Фибоначчи, разница с наивной рекурсией.

7 июля 20267 минут