Санкт-Петербургский государственный университет
Кафедра математической теории игр и статистических решений
Савельева Маргарита Михайловна
Выпускная квалификационная работа бакалавра
Эволюционная модель конкуренции
операторов связи
Направление 010400
Прикладная математика и информатика
Научный руководитель,
кандидат физ.-мат. наук,
доцент
Губар Е.А.
Санкт-Петербург
2016
Содержание
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Краткий обзор литературы . . . . . . . . . . . . . . . . . . . . . . . .
6
Глава 1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . .
7
1.1. Основные понятия и определения . . . . . . . . . . . . . . .
7
1.2. Эволюционные динамики . . . . . . . . . . . . . . . . . . . .
9
Глава 2. Визуализация процесса принятия решений . . . . . . . . . .
13
2.1. Алгоритм построения графического изображения динамики
системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.2. Результаты работы программы . . . . . . . . . . . . . . . . .
15
2.3. Интерфейс программы . . . . . . . . . . . . . . . . . . . . .
16
Глава 3. Модель конкуренции операторов связи . . . . . . . . . . . .
19
3.1. Формализация задачи конкуренции сотовых операторов . .
19
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
Приложение A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Приложение B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
Приложение C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
2
Введение
С развитием средств коммуникаций, в том числе интернета и мобильных сетей, люди стали быстро получать подробную информацию обо всех
предложениях на рынке товаров и услуг. Бурный рост в сфере интернетторговли, в частности онлайн магазинов и курьерских служб, позволяет
людям осуществлять покупки в любых точках планеты. Значимость географического положения производства товара со временем уменьшается.
Все это приводит к увеличению ассортимента конкурирующих товаров и
услуг и, соответственно, росту конкуренции среди продавцов. В связи с
этим на рынке складывается ситуация, при которой даже незначительная
разница в цене или качестве продукта может сильно повлиять на спрос
в пользу конкурента. Поведение покупателей ставит перед продавцом вопрос: как регулировать цены на товары, учитывая конкуренцию, чтобы
избежать потери клиентов? Поэтому задача прогнозирования поведения
потребительских предпочтений является одной из наиболее актуальных.
Анализ процесса принятий агентами решений о выборе компанийпродавцов должен учитывать совокупное изменение состояния потребительского рынка. Для описания таких процессов могут быть использованы
модели и методы эволюционной теории игр.
Это относительно новый раздел в области динамической теории игр.
Базовые понятия эволюционной теории игр сформировались на основе исследований процесса естественного отбора в биологических системах [10].
Данная теория изучает поведение больших групп населения (популяций),
состоящих из стратегически взаимодействующих агентов, и оценивает их
эффективность.
С развитием эволюционного подхода и расширением его для применения к экономическим моделям, идеи распространения "успешных" стратегий поведения через наследование были преобразованы в модель подражания "успешным" стратегиям. Благодаря такому подходу в последние
несколько лет эволюционная теория игр развивается особенно быстро. На-
3
пример, ее инструменты применяют в задачах логистики и управления для
исследования мультиагентных систем, то есть в тех областях, где традиционные представления об агентах и их рациональности не могут быть
оправданы.
В предположениях эволюционной теории агенты популяции выбирают свои стратегии исходя из состояния окружающей среды. То есть, лучшая стратегия обеспечивает лучшую адаптацию. Одной из основных задач эволюционной тории игр является прогнозирование "выживаемости"
стратегии. В исследованиях, касающихся процесса естественного отбора,
"выживаемость" определенной стратегии предполагает реальную выживаемость группы особей, использующих (наследующих) определенное поведение, обусловленное их физическими особенностями. Однако, по мере развития теории была получена возможность экономической интерпретации
данных моделей. Под популяцией однородных особей может пониматься
большая группа агентов с определенными экономическими целями, а под
множеством стратегий – набор экономических действий, выбор которых
влияет на достижение указанных целей.
Например, при моделировании поведения потребительского рынка
можно говорить о стратегии агента как о выборе агентом одной из конкурирующих компаний в качестве поставщика товаров или услуг. В этом
случае "выживаемость" стратегии подразумевает достаточное число клиентов, пользующихся услугами определенной компании продолжительное
время.
Аналогичный эволюционный подход может быть применен к задаче прогнозирования поведения абонентов сотовых компаний. Выбор такого подхода обусловлен тем, что множество абонентов представляет собой
большую группу лиц, в которой расходы каждого индивида зависят от поведения остальных. Долевое распределение абонентов по представленным
на рынке сотовым операторам формирует состояние среды.
Моделирование таких процессов имеет ряд особенностей. Во-первых,
изменения состояния системы описываются системой нелинейных диффе-
4
ренциальных уравнений. Получить их решение в общем виде достаточно
сложно, поэтому многие эволюционные задачи требуют численного решения. Во-вторых, для получения представления об общих тенденциях поведения клиентов компаний необходимо рассмотреть большое количество
различных начальных условий.
С учетом этих особенностей, целью данной работы являлось получение программного продукта для графического моделирования процесса
принятия решений агентами с помощью инструментов эволюционной теории игр с возможностью изменения пользователем различных параметров
и начальных условий задачи.
5
Краткий обзор литературы
В качестве основных источников для изучения эволюционного подхода в данной работе были использованы такие признанные учебники,
как Weibull J. "Evolutionary Game Theory" [11] и Hofbauer J., Sigmund K.
"Evolutionary Games and Population Dynamics" [5]. В данных учебниках
авторы приводят основные результаты и исследуют нелинейную динамику
саморегуляции социального и экономического поведения агентов и тесно
связанное с ней взаимодействие между видами в экологических сообществах. Расширение этих подходов и их классификация были представлены позже в учебнике Sandholm W. H "Population Games and Evolutionary
Dynamics" [6]. Работа представляет собой обобщение многих известных результатов и методов эволюционной теории игр, а также подробное описание основных эволюционных динамик. Другим учебником, в котором приведены основные методы эволюционной теории игр является Cressman R.
"Evolutionary Dynamics and Extensive Form Games" [3]. В работе представлена адаптация игр в развернутой форме к эволюционному подходу. Способ графического представления динамики наилучших ответов для задач с
тремя стратегиями, используемый в данной выпускной квалификационной
работе, базируется на материалах указанного ученика.
Концепции, описанные в приведенных выше работах, были применены к реальным задачам медицины и представлены в учебном пособии Колесин И. Д., Губар Е. А., Житкова Е. М. "Стратегии управления в медикосоциальных системах" [1]. Исследованию эволюционной теории игр также
посвящено большое количество статей. При подготовке к выполнению данной работы наибольшее внимание было уделено статьям Sandholm W. H,
Hofbauer J. "Stable Games and their Dynamics" [7], Sandholm W. H, Lahkar R.
"The projection dynamic and the geometry of population games" [8], Gubar E.
"Construction of different types of dynamics in an evolutionary model of trades
in the stock market" [4], в которых представлены дополнительные результаты, касающиеся эволюционного моделирования.
6
Глава 1. Постановка задачи
Для создания визуального представления поведения абонентов сотовых копаний была описана математическая модель процесса принятия
решений в рамках эволюционной теории игр.
Рассмотрим множество клиентов компаний как популяцию, отвечающую нескольким предположениям:
∙ число агентов популяции велико, но конечно;
∙ каждый отдельный агент не оказывает (или оказывает незначительное
влияние) на других агентов;
∙ выигрыш каждого агента зависит выбора стратегий другими агентами;
∙ каждый агент использует какую-либо чистую стратегию, число которых конечно. Таким образом вся популяция делится на группы агентов,
использующих одинаковые стратегии [6].
Выбор стратегии каждым агентом популяции эквивалентен выбору
поставщика товаров или услуг среди конкурирующих компаний, при этом
вероятность выбора определенной стратегии в каждый момент времени
зависит от состояния среды.
1.1. Основные понятия и определения
Введем основные обозначения для описания эволюционной игры. Рассмотрим эволюционную игру 𝐺, в которой число агентов популяции конеч∑︀
но и может быть записано как 𝑁 = 𝑛(𝑡) = 𝑖∈𝐾 𝑛𝑖 (𝑡) > 0, где 𝑛𝑖 (𝑡) > 0 —
число агентов, использующих чистую стратегию 𝑖 из множества чистых
стратегий 𝐾 = {1, . . . , 𝑘}. Обозначим через Δ - множество смешанных
стратегий. Вектор 𝑥(𝑡) = {𝑥1 (𝑡), . . . , 𝑥𝑘 (𝑡)} характеризует долевое распределение агентов по 𝑘 стратегиям, где
𝑥𝑖 (𝑡) =
7
𝑛𝑖 (𝑡)
.
𝑛(𝑡)
Таким образом, состояние популяции 𝑥 описывается совместным поведением агентов. Множество всех возможных состояний популяции составляет
пространство Δ:
Δ = {𝑥 :
∑︁
𝑥𝑖 = 1, 𝑥𝑖 > 0, ∀𝑖 ∈ 𝐾}.
(1)
𝑖∈𝐾
То есть вектор состояния популяции 𝑥(𝑡) ∈ Δ, и следовательно, его
можно формально идентифицировать как смешанную стратегию [1].
Пусть 𝐴 — матрица выигрышей первого игрока в симметричной игре,
описывающая попарное взаимодействие агентов. Тогда средний выигрыш
популяции может быть записан в виде:
𝐹 (𝑥) = 𝑥𝐹 (𝑥),
где 𝐹 (𝑥) = 𝐴𝑥T — вектор выигрышей в чистых стратегиях.
В рамках эволюционной игры предполагается, что все агенты популяции "близоруки". То есть выбор агентом чистой стратегии зависит только
от текущего состояния популяции.
Также каждый агент в случайный момент времени, независимо от
других агентов, имеет возможность пересмотреть свою стратегию. Смена
стратегии происходит с вероятностью, зависящей от состояния системы,
и только при условии увеличения выигрыша агентом. Для определения
правила пересмотра решений используется следующее понятие [6], [11]:
Определение. Протокол пересмотра решений — это такое непрерыв𝑛×𝑛
ное по Липшицу отображение 𝜌 : 𝑅𝑛 × 𝑋 → 𝑅+
. Скалярную величину
𝜌𝑖𝑗 (𝐹 (𝑥), 𝑥) называют условной вероятностью переключения с чистой стратегии 𝑖 ∈ 𝐾 на чистую стратегию 𝑗 ∈ 𝐾 при заданном состоянии популяции
𝑥 и векторе выигрышей 𝐹 (𝑥(𝑡)).
Определение. Пусть 𝐺 эволюционная игра, 𝜌 протокол пересмотра
решений, тогда имитационная динамика для игры 𝐺 и протокола 𝜌 есть
𝑥˙𝑖 =
∑︁
𝑥𝑗 𝜌𝑗𝑖 (𝐹 (𝑥), 𝑥) − 𝑥𝑖
𝑗∈𝐾
∑︁
𝑗∈𝐾
8
𝜌𝑖𝑗 (𝐹 (𝑥), 𝑥).
(2)
Таким образом, изменение доли агентов, использующих чистую стратегию
𝑖, описывается как разность математических ожиданий доли агентов, меняющих чистые стратегии 𝑗 ∈ 𝐾 на чистую стратегию 𝑖 ∈ 𝐾 и доли агентов,
меняющих стратегию 𝑖 ∈ 𝐾 на любую из стратегий 𝑗 ∈ 𝐾.
Определение. Состояние популяции 𝑥 называется стационарным
тогда и только тогда, когда
(𝐹𝑖 (𝑥) − 𝐹 (𝑥)) 𝑥𝑖 = 0
(3)
для всех стратегий 𝑖 ∈ 𝐾.
Определение. Стратегия 𝑥 ∈ Δ называется эволюционно устойчивой стратегией, если для каждого 𝑦 ̸= 𝑥 существует некоторое значение 𝜀𝑦
такое, что
𝑥𝐴(𝜀𝑦 + (1 − 𝜀)𝑥)T > 𝑦𝐴(𝜀𝑦 + (1 − 𝜀)𝑥)T
(4)
выполняется для всех 𝜀 ∈ (0, 𝜀𝑦 ).
Множество эволюционно устойчивых стратегий является подмножеством множества равновесных по Нэшу стратегий.
1.2. Эволюционные динамики
Рассмотрим несколько примеров имитационных динамик, использованных в данной работе для визуального моделирования процесса изменения состояния системы в зависимости от начальных условий.
Репликативная динамика (Replicator dynamic). В случае репликативной динамики протокол пересмотра решений определяется как
𝜌𝑗𝑖 (𝐹 (𝑥), 𝑥) = 𝑥𝑗 [𝐹𝑗 − 𝐹𝑖 ]+ .
(5)
Функцию [𝐹𝑖 (𝑥)−𝐹𝑗 (𝑥)]+ в общем виде можно записать как 𝜑(𝐹𝑖 (𝑥)−𝐹𝑗 (𝑥)),
9
где 𝜑(𝑥) : 𝑅 → 𝑅+ обладает свойствами:
⎧
⎪
⎨0,
𝑥 ∈ (−∞, 0),
𝜑(𝑥) =
⎪
⎩возрастающая функция, 𝑥 ∈ [0, ∞).
Подставляя выражение (5) для протокола пересмотра решений в выражение (2), получаем систему уравнений, описывающих репликативную
динамику:
𝑥˙ 𝑖 =
∑︁
𝑥𝑗 𝜌𝑗𝑖 (𝐹 (𝑥), 𝑥) − 𝑥𝑖
𝑗∈𝐾
=
∑︁
𝜌𝑖𝑗 (𝐹 (𝑥), 𝑥) =
𝑗∈𝐾
∑︁
𝑥𝑗 𝑥𝑖 [𝐹𝑖 (𝑥) − 𝐹𝑗 (𝑥)]+ − 𝑥𝑖
𝑗∈𝐾
∑︁
(6)
𝑥𝑗 [𝐹𝑗 (𝑥) − 𝐹𝑖 (𝑥)]+ , 𝑖 ∈ 𝐾.
𝑗∈𝐾
Из определения симплекса (1) следует, что 𝑥𝑖 > 0 для всех 𝑖 ∈ 𝐾.
Тогда выражение (6) можно преобразовать следующим образом:
𝑥˙ 𝑖 = 𝑥𝑖 [𝐹𝑖 (𝑥)
∑︁
𝑥𝑗 −
𝑗∈𝐾
∑︁
𝑥𝑗 𝐹𝑗 (𝑥)]+ − 𝑥𝑖 [
𝑗∈𝐾
∑︁
𝑥𝑗 𝐹𝑗 (𝑥) − 𝐹𝑖 (𝑥)
𝑗∈𝐾
∑︁
𝑗∈𝐾
𝑥𝑗 ]+ =
(7)
= 𝑥𝑖 [𝐹𝑖 (𝑥) − 𝐹 (𝑥)]+ − 𝑥𝑖 [𝐹 (𝑥) − 𝐹𝑖 (𝑥)]+
Используя свойства функции 𝜑, описанные ранее, из системы (7) получаем уравнение репликативной динамики:
𝑥˙ 𝑖 = 𝑥𝑖 𝐹̂︀𝑖 (𝑥),
(8)
где 𝐹̂︀𝑖 (𝑥) = 𝐹𝑖 (𝑥) − 𝐹 — избыток выигрыша игрока, использующего чистую стратегию 𝑖 ∈ 𝐾. В данном случае агенты принимают решение о
смене стратегии на основе сравнения своего текущего выигрыша со средним выигрышем популяции.
Аналогичным способом можно вывести все эволюционные динамики.
Динамика Смита (Smith dynamic).
𝑥˙ 𝑖 =
∑︁
𝑥𝑗 [𝐹𝑖 (𝑥) − 𝐹𝑗 (𝑥)]+ − 𝑥𝑖
∑︁
𝑗∈𝐾
𝑗∈𝐾
10
[𝐹𝑗 (𝑥) − 𝐹𝑖 (𝑥)]+ .
(9)
Распределение агентов по стратегиям осуществляется с помощью попарного сравнения выигрыша агентов с различными стратегиями.
Динамика Браун-фон Нейман-Нэша
(Brown-von Neumann-Nash dynamic).
𝑥˙ 𝑖 = [𝐹̂︀𝑖 (𝑥)]+ − 𝑥𝑖
∑︁
[𝐹̂︀𝑗 (𝑥)]+ .
(10)
𝑗∈𝐾
Здесь поведение агентов формируется путем сравнения избытков выигрышей по каждой стратегии.
Правые части системы дифференциальных уравнений (8), (9), (10)
удовлетворяют условию Липшица, поэтому согласно теореме о существовании и единственности решения задачи Коши системы этих уравнений
для любых заданных начальных условий всегда имеют единственное решение [6].
Динамика наилучших ответов (Best response dynamic).
Динамика наилучших ответов предполагает дискретный способ изменения состояния популяции. Каждый агент ведет себя рационально и
принимает решение о смене стратегии в пользу наилучшего ответа на текущее состояние системы.
Определение. Обозначим через 𝐵𝑅(𝑥) — множество наилучших ответов:
𝐵𝑅(𝑥) = arg max 𝑦𝐴(𝑥) = {𝑦 ∈ Δ : 𝑦𝐴(𝑥) > 𝑧𝐴(𝑥), ∀𝑧 ∈ Δ} ⊆ Δ.
𝑦∈Δ
(11)
Динамику состояния системы можно описать следующем способом:
𝑥˙ ∈ 𝐵𝑅(𝑥) − 𝑥.
(12)
В данном случае протокол пересмотра решений 𝜌𝑗𝑖 (𝐹 (𝑥), 𝑥) ∈ 𝐵𝑅(𝑥)
и подчиняется механизму фиктивного разыгрывания [5], [3]. В связи с возможностью существования более чем одного наилучшего ответа, такое правило может быть не единственным. В этом случае агенты популяции принимают решение о смене стратегий в пользу одного из наилучших ответов
11
с равной вероятностью.
Предполагается, что в некоторые моменты времени агенты некоторого подмножества множества всех агентов популяции имеют возможность
изменить стратегию. Так как каждый агент имеет множественный выбор,
нельзя вычислить состояние системы 𝑥. Обозначим через 𝑠𝑚 математическое ожидание долевого распределения агентов 𝑥, при заданном количестве
моментов выбора 𝑚. Эту величину можно оценить как
𝑚
1 ∑︁
𝑠𝑚 =
𝑟𝑗 ,
𝑚 𝑗=1
(13)
где 𝑟𝑚+1 = 𝐵𝑅(𝑠𝑚 ). При построении графической модели динамики наилучших ответов величина 𝑠𝑚 используется как характеристика состояния
системы.
Замечание. Обозначим через Δ3 – множество смешанных стратегий
в эволюционной игре с тремя альтернативными стратегиями.
Тогда в случае игры с тремя стратегиями линии
𝑙𝑖 : {𝑥 ∈ Δ3 : (𝐴𝑥T )𝑖−1 = (𝐴𝑥T )𝑖+1 },
(14)
где (𝐴𝑥T )𝑖 – 𝑖-ая строка матрицы 𝐹 , делят пространство Δ3 на три региона. В пределах каждого региона траектория изменения состояния системы
сохраняет направление, но меняет его строго на границе [3].
12
Глава 2. Визуализация процесса принятия решений
Математическая модель конкуренции операторов сотовой связи характеризуется большим числом параметров. Поэтому в процессе работы
большое внимание было уделено способу представления результатов работы программы удобным для пользователя способом. Для этого был разработан и реализован алгоритм графического изображения решения эволюционных задач, описанных упомянутыми ранее уравнениями динамик
изменения состояния системы (8), (9), (10), (12).
2.1. Алгоритм построения графического изображения
динамики системы
Представим алгоритмы визуального представления поведения агентов популяции для четырех имитационных динамик, реализованных в пакете Wolfram Mathematica, в рамках решения эволюционных задач с матрицей попарного взаимодействия агентов размерности 3 × 3. Перечислим
их основные этапы.
Шаг 1. Составим систему дифференциальных уравнений (2), где протокол пересмотра решений 𝜌𝑖𝑗 (𝐹 (𝑥), 𝑥) описывается уравнением, соответствующим выбранной динамики изменения системы. Находим решение системы (2) для различных начальных условий 𝑥1 (0), 𝑥2 (0), 𝑥3 (0), подобранных следующим образом: 𝑥1 (·) принимает значения от 0 до 1 с шагом 𝑛,
при этом 𝑥2 (·) принимает значения от 0 до 1 − 𝑥1 с шагом 𝑛 для каждого
𝑥1 (·). 𝑥3 = 1 − 𝑥1 − 𝑥2 для всех 𝑥1 (·) и 𝑥2 (·). В большинстве примерах результатов работы программы значением 𝑛 было выбрано 0, 1. Установление
такого шага в большинстве случаев является оптимальным для графического описания большого числа начальных условий (шестьдесят шесть) без
перегрузки изображения.
Шаг 2. Далее изобразим проекцию пространства смешанных страте∑︀
гий Δ = {𝑥 : 𝑖∈𝐾 𝑥𝑖 = 1, 𝑥𝑖 > 0, ∀𝑖 ∈ 𝐾} в новых координатах как
равносторонний треугольник с длиной стороны равной единице и верши13
нами в точках 𝑎1 с координатами (0, 0), 𝑎2 c координатами (0, 1) и 𝑎3 c
координатами ( 12 ,
√
3
2 ).
Рис. 1: Графическое изображение проекции пространства Δ3
Шаг 3. Из определенного ранее симплекса следует, что все изменения
состояния системы можно описать двумя функциями 𝑥1 (𝑡) и 𝑥2 (𝑡). Пусть
точки 𝑏1 , 𝑏2 с координатами зависящими от времени принадлежат отрезкам, составляющим стороны треугольника как показано на рис. 1. Обо−𝑐 (𝑡), →
−𝑐 (𝑡) вектора, удовлетворяющие условиям: →
−𝑐 (𝑡) =
значим через →
1
2
1
−−→ →
−
−
→
−𝑐 (𝑡)| =
𝑎1 𝑏1 и −𝑐 2 (𝑡) = 𝑎1 𝑏2 . Тогда, если в каждый момент времени |→
1
→
−
𝑥 (𝑡), | 𝑐 (𝑡)| = 𝑥 (𝑡), то координаты конца вектора, полученного следую3
2
2
щим преобразованием:
⎛ ⎞
⎛ ⎞
⎛ ⎞
1
0
1
2
⎝
⎠
⎝
⎠
⎝
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥1
+ 𝑥2
+ 𝑥 3 √3 ⎠
0
0
2
будут описывать состояние популяции в каждый момент времени 𝑡. Из построения следует, что точки 𝑎1 , 𝑎2 и 𝑎3 соответствуют состояниям системы,
когда 𝑥1 = 1, 𝑥2 = 1 и 𝑥3 = 1.
Таким образом, применение преобразования 𝑓 к координатам, удовлетворяющим симплексу (1) есть отображение области трехмерного пространства 𝑥1 + 𝑥2 + 𝑥3 = 1 на плоскость.
14
Для обратного отображения используется преобразование
⎛ ⎞
⎛ ⎞
⎛ ⎞
−1
√
1
−1
⎜ ⎟
⎜ ⎟
⎜ 3⎟
−1 ⎟
⎜
⎟
⎜
⎟
𝑔(𝑦1 , 𝑦2 ) = ⎝0⎠ + 𝑦1 ⎝ 1 ⎠ + 𝑦2 ⎜
⎝ √3 ⎠ .
√2
0
0
3
Шаг 4. Изобразим на графике скорость изменения состояния популяции с помощью встроенной функции DensityPlot. Для этого в каждой точке
графика вычислим вектор 𝑥(𝑡).
˙
С помощью преобразования, полученного
на предыдущем шаге, вычислим 𝑓 (𝑥˙ 1 (𝑡), 𝑥˙ 2 (𝑡), 𝑥˙ 3 (𝑡)). Норма полученного
вектора и будет характеризовать скорость изменения системы в каждой
точке.
Шаг 5. Поиск стационарных состояний системы, то есть решение систем уравнений (3).
2.2. Результаты работы программы
Результатом работы каждого раздела программного продукта, отвечающему определенной динамике, является изображение, показывающее
изменение состояния системы в рамках любой численно заданной эволюционной задачи.
В качестве примера на рис. 2 приведен результат работы программного комплекса для игры "Камень - ножницы - бумага" [6] в случае динамики Браун - фон Нейман - Нэша. Описание данной игры представлено в
приложении C.
На рисунке кривыми черного цвета изображены траектории изменения состояния системы в зависимости от начальных условий, описанных
решениями системы уравнений (2).
Области графика разного цвета отображают разную скорость измене→
−
ния состояния системы и зависят от значения функции || 𝑓 (𝑥(𝑡))||.
˙
Области
красного цвета соответствуют областям наиболее быстрого изменения со→
−
стояния системы, то есть наиболее высокому значению функции || 𝑓 (𝑥(𝑡))||,
˙
синего – наиболее медленного.
15
Рис. 2: Процесс изменения состояния системы в игре "Камень - ножницы - бумага",
описанный динамикой Браун - фон Нейман - Нэша.
Точками белого цвета отмечены стационарные состояния системы.
Координаты таких положений системы генерируются около изображения
в виде таблице.
2.3. Интерфейс программы
Для удобного анализа зависимости поведения агентов популяции от
значений матрицы попарного взаимодействия 𝐴 был разработан интерфейс, представленный на рис. 3.
16
Рис. 3: Интерфейс программы
С помощью помещенных слева от графика ползунков пользователь
программного продукта может задавать начальные условия и получать наглядное представление об изменении траектории процесса принятия решений агентами в зависимости от изменения одного или нескольких параметров.
В частности, интерфейс позволяет регулировать значения элементов
матрицы 𝐴. В рамках модели конкуренции операторов сотовой связи на
экономическом рынке, описанной в следующей главе, предполагается, что
значения матрицы 𝐴 соответствуют затратам агентов на связь, поэтому
интерфейс позволяет изменять значения элементов 𝑎𝑖𝑗 в пределах от −1
до 0.
Стоить отметить, что любую матрицу выигрышей можно привести к
такому виду, что значения ее элементов будут принадлежать промежутку
от −1 до 0 [2].
Выбор шага 𝑛, описанного на первом шаге алгоритма, регулируется
с помощью ползунка 𝑠𝑡𝑒𝑝. От его значения зависит количество рассматриваемых начальных условий, то есть количество графически изображенных
траекторий изменения состояния системы.
Это позволяет пользователю сконцентрировать внимание на траектории изменения долевого распределения агентов по стратегиям с одним
17
определенным начальным условием или оценить общую тенденцию популяцию, меняя шаг 𝑛 от 0 до 1.
С помощью ползунка 𝑡 можно регулировать максимальное время изменения состояния системы и оценивать возможные положения системы в
определенный момент. Изменение этого параметра позволяет пользователю
сравнивать скорость достижения состоянием популяции различных стационарных положений в зависимости от начальных условий. Например, на
рис. 4 изображены динамики изменения состояния одной и той же системы в разные промежутки времени.
Рис. 4: Разница степени изменения состояния системы при 𝑡 = 5 и 𝑡 = 35
В случае использования программы для анализа динамики наилучших ответов пользователь регулирует 𝑚 – количество моментов, когда
некоторое подмножество множества всех агентов популяции принимает решение о смене стратегии.
18
Глава 3. Модель конкуренции операторов связи
Программный продукт, разработанный в ходе работы, может быть
использован для визуализации процесса изменения состояния популяции в
любой эволюционной игре с тремя заданными стратегиями. То есть подходит для решения задач, описанных любыми матрицами попарного взаимодействия размерности 3×3. Продемонстрируем пример использования программного продукта для решения прикладной задачи графического описания модели конкуренции операторов сотовой связи.
Примеры реализации двух частей программного продукта, описывающих репликативную динамику (6) и динамику наилучших ответов (12)
представлены в приложениях A и Б.
3.1. Формализация задачи конкуренции сотовых
операторов
Рассмотрим динамику поведения агентов популяции, при условии,
что на рынке услуг существуют три компании, предоставляющие услуги
сотовой связи. В этом случае выбор агентами стратегий эквивалентен выбору сотового оператора.
Клиенты каждой из компаний хотят минимизировать затраты. Предполагаем, что в игре 𝐺 матрица 𝐴 описывает затраты на услуги сотовой
связи взятые со знаком минус. Каждый элемент матрицы 𝑎𝑖𝑗 – средние затраты абонента 𝑖−ой компании на общение с абонентами 𝑗−ой компании.
Все абоненты хотят минимизировать свои затраты. В связи с постановкой задачи эта цель эквивалентна максимизации агентами выигрыша
в игре 𝐺. Таким образом, затраты всех пользователей мобильной связи
зависят от состояния системы.
Каждый клиент компании в некоторый момент времени может принять решение о смене оператора, то есть о смене стратегии, если при этом
стоимость услуг связи для него уменьшится. Вероятности таких решения
описываются выбором протокола пересмотра решений. В итоге некоторое
19
подмножество множества всех абонентов меняют свои стратегии в некоторые моменты времени.
Рассмотрим случаи, когда изменение состояния системы описывается
одной из четырех динамик (8), (9), (10), (12), приведенных выше. Продемонстрируем работу программного комплекса на конкретном численном
примере.
Задача. Пусть средняя стоимость звонков на номера того же оператора, что и номер агента составляет 40, 20 и 30 рублей в месяц для 1, 2 и
3 компании соответственно. Звонки на номера любой из конкурирующих
компаний составляют 50 рублей в месяц для пользователей номеров 1 и 2
компании и 60 для третьей. Таким образом, матрица попарного взаимодействия 𝐴 принимает следующий вид:
⎛
⎞
−0, 4 −0, 5 −0, 5
⎜
⎟
⎟.
𝐴=⎜
−0,
6
−0,
2
−0,
6
⎝
⎠
−0, 5 −0, 5 −0, 3
Элементы матрицы 𝐴 – затраты на мобильную связь, взятые со знакам
минус и исчисляемые в сотнях рублей.
Промежуточные результаты и итоги численного моделирования. Учитывая условия задачи, составим вектор выигрышей 𝐹 в чистых
стратегиях:
𝐹1 (𝑥(𝑡)) = −0, 5 + 0, 1𝑥1 (𝑡),
𝐹2 (𝑥(𝑡)) = −0, 6 + 0, 4𝑥2 (𝑡),
𝐹3 (𝑥(𝑡)) = −0, 3 − 0, 2𝑥1 (𝑡) − 0, 2𝑥2 (𝑡).
→
−
В данном примере функции || 𝑓 (𝑥(𝑡))||,
˙
характеризующая скорость изменения долевого распределения агентов по стратегиям, принимает значения
от 0 до 0, 4.
Приведем результаты численного моделирования (см.рис. 5 — 8) для
каждой из четырех динамик (8), (9), (10), (12).
20
Рис. 5: Репликативная динамика
Рис. 6: Динамика Смита
Рис. 7: Динамика Браун - фон Нейман Нэша
Рис. 8: Динамика наилучших ответов
Полученные рисунки демонстрируют общие тенденции поведения агентов популяции. Как видно из рис. 5 — 8 стационарные точки совпадают.
Это связано с тем, что стационарные состояния достигаются тогда, когда
все агенты популяции получают одинаковые значения выигрыша [1]. Координаты таких положений не зависят от выбора эволюционной динамики.
Таблица координат стационарных положений, полученная в результате работы программы, представлена на рис. 9.
21
Рис. 9: Стационарные положения системы.
Результат работы программы для описания динамики наилучших ответов (рис. 8) имеет дополнительный, отличный от других программ результат. Прямыми белого цвета изображены прямые 𝑙𝑖 , описанные уравнениями (14).
Этим прямым принадлежат границы областей сходимости функций,
которые делят пространство Δ3 на три региона. Решая уравнения (14),
получаем следующее описание прямых 𝑙𝑖 :
𝑙1 =
⎧
⎪
⎪
⎨ 0 6 𝑥1 6 0, 75,
𝑥2 = 0, 5 − 0, 333333𝑥1 ,
⎪
⎪
⎩
𝑙2 =
𝑥3 = 0, 5 − 0, 666667𝑥1 ;
⎧
⎪
⎪
⎨ 0 6 𝑥1 6 0, 666667,
𝑥2 = 1 − 1, 5𝑥1 ,
⎪
⎪
⎩
𝑙3 =
𝑥3 = 0, 5𝑥1 ;
⎧
⎪
⎪
⎨ 0 6 𝑥1 6 0, 6,
𝑥2 = 0, 25 + 0, 25𝑥1 ,
⎪
⎪
⎩
𝑥3 = 0, 75 − 1, 25𝑥1 .
Выводы. Оценивая динамику системы с помощью полученных изображений (рис. 5 — 8), можно сделать вывод о зависимости долевого распределения абонентов компаний от ситуации на рынке услуг сотовой связи
в начальный момент времени. С течением времени распределение клиентов
устанавливается в соответствии с одним из семи стационарных положений,
приведенных на рис. 9.
22
Например, рассмотрим случай, когда в начальный момент времени
все агенты популяции являются абонентами одной и той же компании.
Эти положения потребительского рынка соответствуют состояниям системы (1; 0; 0), (0; 1; 0) и (0; 0; 1). Из рис. 5 — 8 видно, что эти точки являются
устойчивыми положениями динамических систем, описывающих изменения состояния системы. Это значит, что при заданной стоимости услуг,
клиентам компаний невыгодно менять своего оператора. Поэтому для привлечения абонентов компаниям, на долю которых в начальный момент
приходилась нулевая часть всех абонентов, необходимо снизить цены на
услуги.
На рис. 5 — 8 также представлены три области сходимости функций,
которые представляют собой решения систем уравнений (8), (9), (10), (12).
Каждая область соответствует множеству начальных состояний рынка,
при которых абонентам выгодно пользоваться услугами определенного оператора. Оценивая площади этих областей любым возможным способом,
можно сделать вывод о том, нуждается ли компания в снижении цен для
удержания уже имеющихся клиентов или привлечения новых.
В данном численном примере, при большинстве начальных положений рынка услуг сотовой связи, абоненты из соображений выгоды предпочтут пользоваться услугами второй или третьей компании. Первой компании удастся привлечь клиентов только при условии, что в начальный
момент времени доля абонентов, пользующихся ее услугами, больше, чем
доля клиентов второй и третьей компании.
Можно сделать вывод о том, что положения системы, соответствующее векторам состояний (1; 0; 0), (0; 1; 0) и (0; 0; 1) являются эволюционно
устойчивыми.
Рисунки 5 — 8 также демонстрируют наличие состояний потребительского рынка клиентов, не принадлежащих областям сходимости. Эти
состояния соответствуют векторам (0;0,5;0,5), (0,4285;0,3571;0,2142) и
(0,66667;0;0,33333). Если в начальный момент рынок услуг сотовой связи
находится в одном из таких состояний, то при фиксированных ценах, кли-
23
ентам компаний невыгодно менять оператора связи и экономическая ситуация останется неизменной. Однако при малейшем изменении ситуации
на рынке, то есть при даже незначительных изменениях предложенными
операторами цен, произойдет перераспределение клиентов среди компаний.
Поэтому эти положения системы не являются эволюционно устойчивыми.
24
Заключение
В ходе проделанной работы был создан универсальный механизм визуализации процессов принятия решений для четырех эволюционных динамик.
Поскольку существует возможность задания любых начальных условий, полученный продукт можно использовать как для графического представления решения различных задач, так и для получения общего представления о тестируемых эволюционных моделях.
Похожий результат был изложен в 2013 году в работе Hofbauer J.,
Franchetti F. "An Introduction to Dynamo: Diagrams for Evolutionary Game
Dynamics" [9]. Однако, по причине частично скрытого исходного кода и
авторской этики результаты этой работы могут быть использованы только
для создания демонстрационных изображений и не могут быть расширены
для решения некоторых задач.
Программный код, реализованный в результате данной работы, является хорошей базой для дальнейшей работы с эволюционными динамиками.
Их дополнение в дальнейшем позволит получать более подробную информацию об интересующих нас аспектах процесса изменения состояния системы. Алгоритм построения пространства Δ3 , приведенный во второй главе,
может быть использован для описания процессов, подчиняющихся любым
эволюционным динамикам. Таким образом, был разработан программный
продукт, решающий задачу визуализации решения эволюционных задач с
широким спектром возможных расширений.
25
Список литературы
[1] Колесин И. Д., Губар Е. А., Житкова Е. М. Стратегии управления в
медико-социальных системах. СПб.: Изд-во С.-Петерб. университета,
2014. 128 с.
[2] Петросян Л.А., Зенкевич Н.А, Шевкопляс Е.В. Теория игр: учебник.
2-е изд. изд. Спб.: БХВ-Петербург, 2012. 432 с.
[3] Cressman R. Evolutionary Dynamics and Extensive Form Games.
Cambrige: MIT Press, 2003. 312 p.
[4] Gubar E. Construction of different types of dynamics in an evolutionary
model of trades in the stock market // Contributions to Game Theory and
Management. 2010. Vol. 3. P. 162–170.
[5] Hofbauer J., Sigmund K. Evolutionary Games and Population Dynamics.
Cambrige: Cambridge University Press, 1998. 323 p.
[6] Sandholm W. H. Population Games and Evolutionary Dynamics.
Cambrige: MIT Press, 2009. 442 p.
[7] Sandholm W. H., Hofbauer J. Stable Games and their Dynamics //
Economic Theory. 2009. P. 1665 - 1693.
[8] Sandholm W. H., Lahkar R. The projection dynamic and the geometry of
population games // Games and Economic Behavior. 2008. Vol. 64. P. 565590.
[9] Sandholm W. H., Franchetti F. An Introduction to Dynamo: diagrams for
evolutionary game dynamics // Biological Theory . 2013. Vol. 8. P. 167-178.
[10] Smith J. M. Evolution and the Theory of Games. Cambrige: Cambridge
University Press, 1982. 234 p.
[11] Weibull J. Evolutionary Game Theory. Cambrige: MIT Press, 1995. 365 p.
26
Приложение A.
Код программы визуализации процесса изменения состояния системы для репликативной динамики.
Simplex2D[{x1_, x2_, x3_}] :=
x1*{0, 0} + x2*{1, 0} + x3*{1/2, Sqrt[3]/2}
Simplex2DInverse[{y1_, y2_}] := {1, 0, 0} + y1*{-1, 1, 0} +
y2*{-1/Sqrt[3], -1/Sqrt[3], 2/Sqrt[3]}
Payoff[x_, A_] := A.x
(*описание репликативной динамики*)
expectedChange[x_, A_] := (A.x)*x - (x.A.x)*x
trajectory[initialPoint_List, A_, time_] :=
Module[{expChange, phaseSolutions},
expChange = expectedChange[{x1[t], x2[t], x3[t]}, A];
phaseSolutions = NDSolve[
{Derivative[1][x1][t] == expChange[[1]],
Derivative[1][x2][t] == expChange[[2]],
Derivative[1][x3][t] == expChange[[3]],
x1[0] == initialPoint[[1]], x2[0] == initialPoint[[2]],
x3[0] == initialPoint[[3]]}, {x1, x2, x3}, {t, 0, time}];
Join[x1[t] /. phaseSolutions, x2[t] /. phaseSolutions,
x3[t] /. phaseSolutions]]
Manipulate[Module[{initialPoints,
A = Table[{{a11,a12,a13}, {a21,a22,a23}, {a31,a32,a33}}],
list, listOfArrows, graphWithTrajectories, background,
criticalPoints, tMax = tm},
(*начальные условия*)
list = Flatten[Table[Simplex2D[trajectory[N[{initx1,
27
initx2, 1 - initx1 - initx2}], A, tMax]], {initx1, 0, 1 +
step/2, step}, {initx2, 0, 1 - initx1, step}], 1];
(*траектория и направление изменения состояния системы*)
listOfArrows = Flatten[Map[Table[{Arrowheads[0.03],
Arrow[{# /. t -> i, # /. t -> (i + 0.1)}]},
{i, 0.2, 3, 2}] &,list], 1];
graphWithTrajectories =
ParametricPlot[Evaluate[list], {t, 0, tMax}, PlotStyle ->Black];
(*скорость изменения состояния системы*)
background = DensityPlot[Norm[Simplex2D[
expectedChange[Simplex2DInverse[{y1, y2}], A]]], {y1, 0,
1}, {y2, 0, Sqrt[3]/2}, ImageSize -> {400, 275},
ColorFunction -> "Rainbow", RegionFunction ->
Function[{y1, y2, z}, y2 < Sqrt[3] y1 && y2 < Sqrt[3] (1 - y1)],
BoundaryStyle -> Directive[Black, Thick], Frame -> False,
AspectRatio -> Sqrt[3]/2, PlotLegends -> Automatic,
PlotRange -> {{-0.1, 1 + 0.1}, {-0.1, Sqrt[3]/2 + 0.1}}];
(*стационарные состояния*)
stationaryPoint =
Reduce[{((Table[{Payoff[{x1, x2, x3}, A],
Payoff[{x1, x2, x3}, A], Payoff[{x1, x2, x3}, A]}] Transpose[Table[{Payoff[{x1, x2, x3}, A],
Payoff[{x1, x2, x3}, A], Payoff[{x1, x2, x3}, A]}]] == 0) ||
(Payoff[{x1, x2, x3}, A][[1]] ==
Payoff[{x1, x2, x3}, A][[2]] &&
x3 == 0) || (Payoff[{x1, x2, x3}, A][[3]] ==
Payoff[{x1, x2, x3}, A][[2]] &&
x1 == 0) || (Payoff[{x1, x2, x3}, A][[1]] ==
28
Payoff[{x1, x2, x3}, A][[3]] && x2 == 0) || (x1 == 0 &&
x2 == 0) || (x1 == 1 && x2 == 0) || (x1 == 0 && x2 == 1)) &&
1 == x1 + x2 + x3}, {x1, x2, x3}, Reals,
Backsubstitution -> True];
(*вывод графического изображения*)
Pane[Row[{Show[{background, graphWithTrajectories,
Graphics[listOfArrows], Graphics[{EdgeForm[Thick],
White, (Disk[Simplex2D[#], 0.01] &) /@ ({x1, x2,
x3} /. {ToRules[criticalPoints]})}], Graphics[{
Inset[Style[Row[{Subscript[Style["x", Italic], 3], " = 1"}],
12], {0.65, 0.9}],
Inset[Style[Row[{Subscript[Style["x", Italic], 1], " = 1"}],
12], {0, -0.05}],
Inset[Style[Row[{Subscript[Style["x", Italic], 2], " = 1"}],
12], {1, -0.05}]}]},
PlotRange -> {{-0.1, 1 + 0.1}, {-0.1, Sqrt[3]/2 + 0.1}},
Frame -> False, Axes -> False], Column[{
Text@Style["Стационарные состояния", Red, Bold, 12],
Text[Row[{TableForm[{x1, x2, x3} //.
List[ToRules[N[stationaryPoint]]],
TableHeadings -> {None, {Style[Subscript[
Style["x", Italic], 1], 12],
Style[Subscript[Style["x", Italic], 2], 12],
Style["x3", 12]}}, TableSpacing -> {1, 1},
TableAlignments -> {Left, Bottom}]}, "
"],
BaseStyle -> {12}]}, Alignment -> Center, Spacings -> 1,
Frame -> True]}], ImageSize -> {1800, 2000}]],
(*организация интерфейса*)
Style["payoffs", Bold],"",
29
{{a11, -0.2, "a11"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a12, -0.3, "12"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a13, -0.4,"a13"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny}, "",
{{a21, -0.6, "a21"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a22, -0.2, "a22"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a23, -0.4, "a23"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},"",
{{a31, -0.3, "a31"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a32, -0.5, "a32"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a33, -0.3, "a33"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},"", "",
{{step, 0.1, "step"}, 0., 1.1, 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},"","",
{{tm, 3, "t"}, 0, 50, 5, Appearance -> "Labeled",
ImageMargins ->-2, ImageSize -> Tiny},
SaveDefinitions -> True,
SynchronousUpdating -> False,
Alignment -> {Center, Top} ,
ControlPlacement -> Left]
30
Приложение B.
Код программы визуализации процесса изменения состояния системы для динамики наилучших ответов.
Simplex2D[{x1_, x2_, x3_}] :=
x1*{0, 0} + x2*{1, 0} + x3*{1/2, Sqrt[3]/2}
Simplex2DInverse[{y1_, y2_}] := {1, 0, 0} + y1*{-1, 1, 0} +
y2*{-1/Sqrt[3], -1/Sqrt[3], 2/Sqrt[3]}
Payoff[x_, A_] := A.x;
(*описание динамики наилучших ответов*)
expectedChange[x_, A_] :=
Table[FindArgMax[{(Table[{z1, z2, z3}]).A.x, z1 <= 1, z2 >= 0,
z2 <= 1, z1 >= 0, z3 <= 1, z3 >= 0, z1 == 1 - z2 - z3},
{z1, z2,z3}] - x];
BR[r_] := Table[FindArgMax[{(Table[{z1, z2, z3}]).A.r,
z1 <= 1, z2 >= 0, z2 <= 1, z1 >= 0, z3 <= 1, z3 >= 0,
z1 == 1 - z2 - z3}, {z1, z2, z3}]];
Manipulate[ Module[{list,
A = Table[{{a11, a12, a13}, {a21, a22, a23}, {a31, a32, a33}}],
a, background, line, stationaryPoint, t = tm, n = m},
(*начальные условия*)
list = Flatten[Table[{initx1, initx2, 1 - initx1 - initx2},
{initx1, 0., 1 + 0.5, step}, {initx2, 0., 1 - initx1, step}], 1];
(*вспомогательные элементы*)
a =Table[1,{i,Length[list]}]; h =Table[1,{i,Length[list]},{j,2}];
v = Table[1,{i,Length[list]},{j,2}]; m =Table[1,{i,Length[list]}];
31
For[k = 0, k <= Length[list] - 1, k++;
p = Table[1, {i, n}, {j, 3}]; d = Table[1, {i, n}, {j, 2}];
(*математическое ожидание положения системы в k-ый момент*)
c = Table[list[[k]]]; p[[1]] = c;
For[i = 1, i <= n - 1, i++;
b := (1/(i - 1)) Sum[BR[p[[j]]], {j, 1, i - 1}]; p[[i]] = b;];
(*преобразование в координаты проекции симплекса*)
For[i = 0, i <= n - 1, i++;
g := Simplex2D[p[[i]]]; d[[i]] = g];
u1 = d[[5]]; h[[k]] = u1;
u2 = d[[6]]; v[[k]] = u2;
(*траектория изменения состояния системы*)
w = ListLinePlot[d, PlotStyle -> Directive[Black],
PlotRange -> {{0, 1}, {-0.01, Sqrt[3]/2 + 0.1}},
AspectRatio -> 1]; a[[k]] = w;]
(*скорость изменения состояния системы*)
background = DensityPlot[
Norm[Simplex2D[expectedChange[Simplex2DInverse[{y1, y2}], A]]],
{y1, 0, 1}, {y2, 0, Sqrt[3]/2}, ImageSize -> {800, 550},
ColorFunction -> "Rainbow", RegionFunction ->
Function[{y1, y2, z}, y2 < Sqrt[3] y1 && y2 < Sqrt[3] (1 - y1)],
BoundaryStyle -> Directive[Black, Thick], Frame -> False,
AspectRatio -> Sqrt[3]/2, PlotLegends -> Automatic,
PlotRange -> {{-0.1, 1 + 0.1}, {-0.1, Sqrt[3]/2 + 0.1}}];
For[k = 0, k <= Length[list] - 1, k++;
q := Graphics[{Arrowheads[0.03], Arrow[{h[[k]], v[[k]]}]},
Frame -> True, Axes -> False,
PlotRange -> {{0, 1},
32
{-0.01, Sqrt[3]/2 + 0.1}}, AspectRatio -> 1];
m[[k]] = q]; xx := Table[{x1, x2, x3}];
(*поиск стационарных состояний*)
stationaryPoint =
Reduce[{((Table[{Payoff[xx, A], Payoff[xx, A], Payoff[xx, A]}] Transpose[Table[{Payoff[xx, A], Payoff[xx, A], Payoff[xx, A]}]]
== 0) || (Payoff[xx, A][[1]] == Payoff[xx, A][[2]] &&
x3 == 0) || (Payoff[xx, A][[3]] == Payoff[xx, A][[2]] &&
x1 == 0) || (Payoff[xx, A][[1]] == Payoff[xx, A][[3]] &&
x2 == 0) || (x1 == 0 && x2 == 0) || (x1 == 1 &&
x2 == 0) || (x1 == 0 && x2 == 1)) &&
1 == x1 + x2 + x3}, {x1, x2, x3}, Reals,
Backsubstitution -> True];
(*построение прямых l*)
dd1 = Reduce[{((x1 == 0 && x2 == 0) ||
(Payoff[xx, A][[1]] == Payoff[xx, A][[2]] &&
x3 == 0)) && 1 == x1 + x2 + x3}, {x1, x2, x3},
Reals, Backsubstitution -> True];
dd2 = Reduce[{((x1 == 0 && x2 == 1) ||
(Payoff[xx, A][[1]] == Payoff[xx, A][[3]] &&
x2 == 0)) && 1 == x1 + x2 + x3}, {x1, x2, x3}, Reals,
Backsubstitution -> True];
dd3 = Reduce[{((x1 == 1 && x2 == 0) ||
(Payoff[xx, A][[3]] == Payoff[xx, A][[2]] &&
x1 == 0)) && 1 == x1 + x2 + x3}, {x1, x2, x3}, Reals,
Backsubstitution -> True];
line := Show[ListLinePlot[(Simplex2D[#] &) /@ ({x1, x2,
x3} /. {ToRules[dd1]}), PlotStyle -> Directive[White]],
ListLinePlot[(Simplex2D[#] &) /@ ({x1, x2,
33
x3} /. {ToRules[dd2]}), PlotStyle -> Directive[White]],
ListLinePlot[(Simplex2D[#] &) /@ ({x1, x2,
x3} /. {ToRules[dd3]}), PlotStyle -> Directive[White]]]
(*вывод графического изображения*)
Pane[Row[{Show[background, a, m, line,
Graphics[{EdgeForm[Thick],
White, (Disk[Simplex2D[#], 0.01] &) /@ ({x1, x2,
x3} /. {ToRules[stationaryPoint]})}], Graphics[{
Inset[Style[Row[{Subscript[Style["x", Italic], 3], " = 1"}],
30], {0.65, 0.9}],
Inset[Style[Row[{Subscript[Style["x", Italic], 1], " = 1"}],
30], {0, -0.05}],
Inset[Style[Row[{Subscript[Style["x", Italic], 2], " = 1"}],
30], {1, -0.05}]}]], Column[{
Text@Style["Стационарные состояния", Red, Bold, 12],
Text[Row[{TableForm[{x1, x2, x3} //.
List[ToRules[N[stationaryPoint]]], TableHeadings -> {None,
{Style[Subscript[Style["x", Italic], 1], 12],
Style[Subscript[Style["x", Italic], 2], 12], Style["x3", 12]}},
TableSpacing -> {1, 1},TableAlignments -> {Left, Bottom}]}, ""],
BaseStyle -> {12}]}, Alignment -> Center, Spacings -> 1,
Frame -> True]}], ImageSize -> {1800, 2000}]],
(*организация интерфейса*)
Style["payoffs", Bold], "",
{{a11, -0.2, "a11"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a12, -0.3, "12"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a13, -0.4,"a13"}, -1., 0., 0.1, Appearance -> "Labeled",
34
ImageMargins -> -2, ImageSize -> Tiny}, "",
{{a21, -0.6, "a21"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a22, -0.2, "a22"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a23, -0.4, "a23"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},"",
{{a31, -0.3, "a31"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a32, -0.5, "a32"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
{{a33, -0.3, "a33"}, -1., 0., 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny}"","",
{{step, 0.1, "step"}, 0., 1.1, 0.1, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},"","",
{{m, 3, "m"}, 0, 50, 5, Appearance -> "Labeled",
ImageMargins -> -2, ImageSize -> Tiny},
SaveDefinitions -> True,
SynchronousUpdating -> False,
Alignment -> {Center, Top} ,
ControlPlacement -> Left]
35
Приложение C.
Игра "камень - ножницы - бумага". В игре принимают участие два игрока. Каждый из них независимо от другого выбирает одну из
трех стратегий, называемых «камень», «ножницы» и «бумага». Сравнивая
выбранные стратегии, игроки определяют победителя. Если стратегии обоих игроков совпадают, выигрыш каждого игрока составляет 0 (ничья), в
противном случае побеждает игрок с более сильной стратегией. «Камень»
считается сильнее «ножниц», которые, в свою очередь, сильнее «бумаги»,
которая сильнее «камня». Матрица попарного взаимодействия в данном
случае имеет вид:
К
⎛
К
Н
Б
0
1
−1
⎜
𝐴 = Н⎜
⎝ −1 0
Б
1 −1
⎞
⎟
1 ⎟
⎠.
0
Если игра ведется внутри популяции, то каждый агент с некоторой
вероятностью вступает в игру с другим случайным агентом. Чем больше
доля агентов, использующих определенную стратегию, тем выше вероятность встречи с агентом, использующим эту стратегию.
36
Отзывы:
Авторизуйтесь, чтобы оставить отзыв