Разработка на Puthon алгоритма поиска решения в чистых стратегиях антагонистической матричной игры

Автор: Сафина Г.Ф., Кагарманов И.А.

Журнал: Бюллетень науки и практики @bulletennauki

Рубрика: Естественные науки

Статья в выпуске: 1 т.11, 2025 года.

Бесплатный доступ

Приведен алгоритм поиска оптимального решения матричной антогонистической игры в чистых стратегих. Алгоритм реализует поиск верхней и нижней цен матричной игры посредством реализации максиминной и минимаксной стратегий игроков. Кодирование алгоритма произведено с помощью функционала языка программирования Python. Алгоритм протестирован на численном примере.

Матричная игра, оптимальное решение, чистые стратегии, алгоритм, разработка, язык python

Короткий адрес: https://sciup.org/14131768

IDR: 14131768   |   DOI: 10.33619/2414-2948/110/02

Текст научной статьи Разработка на Puthon алгоритма поиска решения в чистых стратегиях антагонистической матричной игры

Бюллетень науки и практики / Bulletin of Science and Practice

Бюллетень науки и практики / Bulletin of Science and Practice

УДК 519.83                                        

Теория игр является одним из мощных инструментов принятия оптимальных решений как в условиях в условиях информативной определенности (конкуренции), так и условиях неопределенности. Методы и технологии теории игр позволяют моделировать сложные взаимодействия между участниками и разрабатывать стратегии, которые помогают достичь оптимальных результатов в разрешениях конфликтов. Известно, что матричные игры с нулевой суммой являются примером антогонистических конфликтов двух сторон (игроков), в которых задается матрица выигрышей одного из игроков, чаще первого игрока [1-3].

В этой работе приводится алгоритм определения оптимального решения подобной игры в ее чистых стратегих. Алгоритм реализует поиск максиминной стратегии первого игрока и минимаксной стратегии второго игрока, которые широко используется в играх с нулевой суммой. Именно метод «минимакс» («максимин») дает возможность игрокам выбрать такие стратегии, которые минимизируют их максимальные потери, что особенно важно в условиях конфликтных ограничений и неопределенности [4; 5].

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

Поиск оптимального решения в чистых стратегиях (если такое решение существует) состоит в том, что игрок 1 выбирает одну свою стратегию (строку матрицы), а игрок 2 — одну свою стратегию (столбец), причем игроки принимают решения, исходя из того, как они могут минимизировать свои потери и максимизировать свои выигрыши.

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

Реализация алгоритма проведена с помощью функционала и библиотек языка программирования Python ; .

player1_strategy[i] = max(payoff_matrix[i]) — для каждой стратегии игрока 1 определяем максимальный возможный выигрыш (наилучший исход), который он может получить, независимо от того, какие стратегии выберет игрок 2;

player2_strategy[j] = min(payoff_matrix[:, j]) — для каждой стратегии игрока 2 находим минимальный возможный проигрыш, то есть наихудший исход для игрока 1, когда игрок 2 выбирает эту стратегию;

player1_best = min(player1_strategy) — после того как для всех стратегий игрока 1 определены максимальные выигрыши, выбираем минимальный из них, чтобы найти оптимальную стратегию для игрока 1.

player2_best = max(player2_strategy) — для игрока 2 мы выбираем максимальный из минимальных выигрышей, чтобы определить его оптимальную стратегию.

Описанный алгоритм теперь применим к следующему численному примеру:

[0, 4, -2],

[-1, 2, 3]])

def minimax(payoff_matrix):

for i in range(rows):

player1_strategy[i] = max(payoff_matrix[i])

for j in range(cols):

player2_strategy[j] = min(payoff_matrix[:, j])

player1_best = min(player1_strategy)

player2_best = max(player2_strategy)

return player1_best, player2_best player1_best, player2_best = minimax(payoff_matrix)

print(f"Оптимальная стратегия для Игрока 1: {player1_best}")

print(f"Оптимальная стратегия для Игрока 2: {player2_best}")

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

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

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

В военных стратегиях метод минимакса также применяется для планирования действий в условиях возможных конфликтов. Здесь важно предсказать наихудший исход для каждой из сторон и выбрать стратегию, которая минимизирует потери. Аналогичные подходы используются в политике, где принятие решений часто зависит от действий других стран или политических сил.

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

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

Список литературы Разработка на Puthon алгоритма поиска решения в чистых стратегиях антагонистической матричной игры

  • Видрич Р., Пирс С. Теория игр: основы и приложения. М.: Наука, 2015. 320 с.
  • Peters M, Sharp P. Game theory and operations research: Models and methods. London: Springer, 2017. 456 p.
  • Гамильтон Л., Ван дер Вудсен П. Игры, оптимизация и принятие решений: исследования и приложения. М.: Физматлит, 2016. 400 с.
  • Берн Э. Игры с многими игроками: от теории к практике. М.: Научное издательство УРСС, 2018. 350 с.
  • Миллер Р., Дэвис Т. Математика для анализа и принятия решений. М.: Академический проект, 2019. 480 с.
Статья научная