Skip to content

About

R scripts to support game theory's task calculations

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GameTheory

GameTheory — открытый учебный репозиторий с воспроизводимыми R-примерами по антагонистическим матричным играм и прикладным финансовым моделям принятия решений. Он поддерживает материалы разделов Game Theory, Quizzes и Glossary сайта Math Gamification.

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

Соглашение о знаке. Строки матрицы принадлежат максимизирующему игроку A, столбцы — минимизирующему игроку B. Элемент a[i, j] интерпретируется как выигрыш игрока A; игра является антагонистической (с нулевой суммой).

Быстрый старт

Установите R версии 4.0 или новее, склонируйте репозиторий и выполните тесты из его корня. Команда ниже не скачивает сторонних зависимостей и должна закончиться сообщением All GameTheory tests passed.

git clone https://github.com/avladova/GameTheory.git
cd GameTheory
Rscript tests/test_game_theory.R

После этого запустите любой пример. Первые два примера посвящены антагонистическим матричным играм; примеры 03–06 воспроизводят учебные финансовые кейсы. Числовые данные в них условны и не являются инвестиционной рекомендацией.

Rscript examples/01_matrix_games.R
Rscript examples/02_mixed_strategies_2x2.R
Rscript examples/03_financial_decisions.R
Rscript examples/04_cooperative_investments.R
Rscript examples/05_sequential_finance_game.R
Rscript examples/06_financial_auctions_and_voting.R

Что находится в репозитории

Путь Содержание Для кого
R/game_theory.R Проверяемые функции для анализа матричных игр с нулевой суммой Студенты и преподаватели
R/financial_decision_games.R Базовые функции для сценарных решений, коалиций, последовательных игр, аукционов и голосования Студенты и преподаватели
examples/03_financial_decisions.R – examples/06_financial_auctions_and_voting.R Четыре финансовых учебных примера с условными данными Семинары и самостоятельная работа
tests/test_financial_decision_games.R Автоматические проверки финансовых примеров Авторы и сопровождающие
examples/ Небольшие воспроизводимые сценарии с интерпретацией Самостоятельное изучение и семинары
tests/test_game_theory.R Автоматические проверки эталонных и пограничных случаев Авторы и сопровождающие
docs/course-map.md Карта модулей, результатов обучения и связей с сайтом Преподаватели и редакторы
docs/exercise-bank.md Задания с уровнем сложности и самопроверкой Студенты и создатели квизов
docs/site-content-plan.md Готовые рекомендации по обновлению страниц сайта Редакторы сайта
audit/ Внутренние записи аудита и дорожная карта изменений Сопровождение проекта

Основные функции

Функция Назначение Ограничения
analyze_zero_sum_game() Вычисляет максимин, минимакс, строки/столбцы чистых оптимальных стратегий и все седловые точки Матрица не менее 2×2 с конечными числовыми значениями
has_saddle_point() Возвращает TRUE, если в игре существует чистая седловая точка Те же, что у analyze_zero_sum_game()
solve_mixed_2x2() Находит полностью смешанное решение и значение игры Только невырожденные игры 2×2 без чистой седловой точки
expected_payoff() Проверяет ожидаемый выигрыш для заданных смешанных стратегий Вероятности должны быть неотрицательны и суммироваться к единице
financial_decision_criteria() Считает критерии выбора в условиях неопределённости Строки – альтернативы, столбцы – состояния рынка
net_present_value() Рассчитывает NPV по заданным денежным потокам и ставке Денежные потоки начинаются в момент t0
shapley_value() Рассчитывает вектор Шепли по функции стоимости коалиций Требуются стоимости всех коалиций
two_stage_backward_induction() Решает двухшаговую игру совершенной информации Требуется таблица терминальных выигрышей
auction_outcome() и weighted_vote() Моделируют учебный аукцион и взвешенное голосование Не заменяют правовой или инвестиционный анализ

Минимальный пример

source(file.path("R", "game_theory.R"))

payoffs <- matrix(
  c(4, 2,
    3, 1,
    5, 0),
  nrow = 3,
  byrow = TRUE
)

analysis <- analyze_zero_sum_game(payoffs)
analysis$value          # 2
analysis$saddle_points  # строка 1, столбец 2

Алгоритм сначала находит минимальный выигрыш в каждой строке, затем выбирает из них наибольший (maximin). Аналогично он находит максимальный выигрыш в каждом столбце и выбирает из них наименьший (minimax). Равенство этих величин означает наличие седловой точки в чистых стратегиях.

Границы применимости

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

Пользователь должен самостоятельно интерпретировать модель: программа проверяет числовые условия, но не может определить, правильно ли реальная ситуация переведена в стратегии и выигрыши.

Как развивать проект

Новый пример следует помещать в examples/ и начинать с явного source(file.path("R", "game_theory.R")). Если пример раскрывает новую математическую функцию, она сначала добавляется в R/game_theory.R, затем покрывается эталонным и пограничным тестом в tests/. Учебная тема должна быть отражена в docs/course-map.md и связана хотя бы с одним термином и одним упражнением.

Вопросы и предложения по содержанию следует оформлять через Issues репозитория. Перед повторным использованием материалов необходимо согласовать условия с владельцем репозитория.

Литература

Концепции нормальной и развернутой формы, равновесия и смешанных стратегий следуют стандартной терминологии из учебника Осборна и Рубинштейна. Для краткого прикладного введения можно использовать книгу Лейтон-Брауна и Шохама.

  1. Osborne, M. J., & Rubinstein, A. (1994). A Course in Game Theory. MIT Press. Страница книги.
  2. Leyton-Brown, K., & Shoham, Y. (2008). Essentials of Game Theory. Morgan & Claypool. Страница книги.

About

R scripts to support game theory's task calculations

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages