Участник:Konstantin 013: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 20: Строка 20:


== Вычислительное ядро алгоритма ==
== Вычислительное ядро алгоритма ==
В описываемом алгоритме выделяется и описывается [[глоссарий#Вычислительное ядро|''вычислительное ядро'']], т.е. та часть алгоритма, на которую приходится основное время работы алгоритма. Если в алгоритме несколько вычислительных ядер, то отдельно описывается каждое ядро. Описание может быть сделано в достаточно произвольной форме: словесной или с использованием языка математических формул. Вычислительное ядро может полностью совпадать с описываемым алгоритмом.
Сначала будет естественно для каждого столбца матрицы <math> F </math> найти максимум в нём и для каждой строки матрицы <math> G  </math> найти максимум в ней. Т.е. мы ищем для каждого из <math> m </math> векторов <math> R^n </math> мы ищем максимум и для каждого из <math> n </math> векторов <math> R^m </math> мы ищем максимум.
После этого для каждой ситуации <math> (x^0, y^0) </math> несложно понять, является ли она равновесием Нэша: нужно просто проверить, что <math> F(x^0, y^0) </math> - максимальный элемент в <math> y^0 </math>-м столбце матрицы  <math> F </math> и  <math> G(x^0, y^0) </math> - максимальный элемент в <math> x^0 </math>-ой строке матрицы  <math> G </math>.


= Программная реализация алгоритма =
= Программная реализация алгоритма =


= Литература =
= Литература =

Версия от 08:47, 16 октября 2017

Основные авторы описания: К.В.Телегин

Свойства и структура алгоритмов

Общее описание алгоритма

Данный алгоритм находит равновесие Нэша в игре двух лиц с конечным числом стратегий

Математическое описание алгоритма

Определим игру двух лиц. Пусть первый игрок имеет в своём распоряжении стратегии [math]\displaystyle{ x }[/math] из множества стратегий [math]\displaystyle{ X }[/math], а второй игрок стратегии [math]\displaystyle{ y }[/math] из множества стратегий [math]\displaystyle{ Y }[/math]. Будем рассматривать игру в нормальной форме. Это означает, что каждый из игроков выбирает стратегию, не зная выбора партнёра. Пару стратегий [math]\displaystyle{ (x, y) }[/math] будем называть ситуацией. у первого игрока имеется функция выигрыша [math]\displaystyle{ F(x, y) }[/math], а у второго [math]\displaystyle{ G(x, y) }[/math]. определённые на на множестве всех ситуаций [math]\displaystyle{ X × Y }[/math]. каждый игрок стремится, по возможности, максимизировать свою функцию выигрыша. Таким образом, игра двух лиц в нормальной форме может быть задаётся набором [math]\displaystyle{ \Gamma \langle X, Y, F(x, y), G(x, y) \rangle }[/math] Определение. Ситуация [math]\displaystyle{ (x^0, y^0) }[/math] называется равновесием по Нэшу игры [math]\displaystyle{ \Gamma }[/math] если: [math]\displaystyle{ \max_{x \in X} F(x, y^0) = F(x^0, y^0) \quad , \quad \max_{y \in Y} F(x^0, y) = G(x^0, y^0) }[/math]

Иными словами, каждому из игроков невыгодно отколняться от ситуации равновесия.[1]

В данной статье мы рассмотрим нахождение ситуаций равновесий Нэша в случае, когда [math]\displaystyle{ X, Y }[/math] - конечные множества. тогда можно считать, что [math]\displaystyle{ X = [1, ..., n], Y = [1, ..., m] }[/math], а [math]\displaystyle{ F, G }[/math] - являются матрицами [math]\displaystyle{ R^{n × m} }[/math]

Вычислительное ядро алгоритма

Сначала будет естественно для каждого столбца матрицы [math]\displaystyle{ F }[/math] найти максимум в нём и для каждой строки матрицы [math]\displaystyle{ G }[/math] найти максимум в ней. Т.е. мы ищем для каждого из [math]\displaystyle{ m }[/math] векторов [math]\displaystyle{ R^n }[/math] мы ищем максимум и для каждого из [math]\displaystyle{ n }[/math] векторов [math]\displaystyle{ R^m }[/math] мы ищем максимум. После этого для каждой ситуации [math]\displaystyle{ (x^0, y^0) }[/math] несложно понять, является ли она равновесием Нэша: нужно просто проверить, что [math]\displaystyle{ F(x^0, y^0) }[/math] - максимальный элемент в [math]\displaystyle{ y^0 }[/math]-м столбце матрицы [math]\displaystyle{ F }[/math] и [math]\displaystyle{ G(x^0, y^0) }[/math] - максимальный элемент в [math]\displaystyle{ x^0 }[/math]-ой строке матрицы [math]\displaystyle{ G }[/math].

Программная реализация алгоритма

Литература

  1. ↑ супер книжулька от Костяна