УДК 519.6
1СЯ
UDC 519.6
MODELING AND ANALYSIS OF PLAYERS' BEHAVIOR IN REPEATED SITUATIONS
МОДЕЛИРОВАНИЕ И АНАЛИЗ ПОВЕДЕНИЯ ИГРОКА ПРИ МНОГОКРАТНО ПОВТОРЯЮЩЕЙ СИТУАЦИИ
О. Ю. Величко, Т. А. Гробер
Донской государственный технический университет, Ростов-на-Дону, Российская Федерация [email protected] [email protected]
Рассматриваются матричные игры, в частности, игры с «природой». Анализируется задача нахождения
оптимальной стратегии игрока для извлечения максимальной выгоды при открытии автомастерской. Особенностью исследования является решение задачи с использованием программного кода, написанного на языке программирования VBA. Результатом исследования стала автоматически
составленная платежная матрица, анализируя данные которой с применением критериев Байеса-Лапласа, Лапласа и Вальда был сделан вывод о выборе оптимальной стратегии игрока.
O. Y. Velichko, T. A. Grober
Don State Technical University, Rostov-on-Don, Russian Federation
[email protected] [email protected]
The article is devoted to matrix games, in particular, games with "nature". It analyses the problem of finding the optimal strategy of the player for gaining maximum benefit when opening the auto repair shop. The peculiarity of the research is that the task was solved using the program code written in the VBA programming language. The result was an automatically generated payment matrix, analyzing the data of which with the application of the Bayes-Laplace, Laplace and Wald criteria, a conclusion was made of the choice of the optimal strategy for the player.
Ключевые слова: матричные игры, игры с Keywords: matrix games, games with nature, природой, платежная матрица, критерии, payment matrix, criteria, program code, VBA. программный код, VBA.
Введение. Во многих задачах теории игр принимают участие два игрока, интересы которых противоположны, причем каждый стремится выиграть. Однако в ряде игровых задач существует неопределенность, которая вызвана отсутствием информации об условиях, в которых осуществляется действие. Эти условия зависят не от осознанных действий другого игрока, а от объективной действительности, которую принято называть «природой». Такие игры называются играми с «природой».
Постановка задачи. Предприниматель желает построить авторемонтную мастерскую, и ему нужно определить, сколько потребуется ремонтных мест в мастерской, чтобы получить максимальную выручку.
Предполагаемое количество ремонтных мест составило 2, 3, 5 и 8 единиц, а количество машин, которые могут прибыть для ремонта от 1 до 10 единиц. Авторы обобщили пример, рассмотренный в [1].
Для подсчета максимальной выручки были введены следующие условия:
• тариф 9 у.е. за каждую обслуженную машину;
• минус 6 у.е. за простой (когда машин на обслуживании нет);
• минус 5 у.е. за убыток от невозможности обслуживания машин (когда не хватает ремонтных мест).
Далее строится платежная матрица, элементами которой являются прибыль или убыток от любого количества прибывших автомобилей.
Теоретическая часть. В играх с «природой» [2-6] осознанно действует только один игрок, а именно лицо, принимающее решение (обозначим его как игрока А). «Природа» действует совершенно случайно, возможные стратегии определяются как её состояние (например, условия погоды в данном районе, спрос на определенную продукцию, объем перевозок, некоторые сочетания производственных факторов и т. д.). Обозначим состояния «природы» через Qj, ]=1...п. В некоторых задачах для состояний «природы» может быть задано распределение вероятностей, в других — оно неизвестно. Условия игры задаются в виде платёжной матрицы А = (аij), г = 1...Ш, j = 1...п, строки которой соответствуют стратегии игрока А, а столбцы — состоянию «природы». Элемент ау равен выигрышу (в качестве выигрыша может выступать доход, полезность, экономическая эффективность и другие количественные критерии) игрока А, если он использует стратегию Аг, а состояние «природы» Qj.
Задача выбора игроком А оптимальной стратегии в игре с «природой» опирается на ряд критериев, которые подразделяют на классические и производные (составные). К классическим относят: критерий Байеса-Лапласа, критерий Лапласа, критерий Вальда, критерий Сэвиджа и другие. К производным относят: критерий Гурвица, Ходжа-Лемана, критерий произведений и другие.
Выбор критерия в условиях неопределенности является наиболее сложным и ответственным этапом. При этом не существует каких-либо универсальных рекомендаций. Выбор критерия должно производить лицо, принимающее решение, с учетом конкретной специфики решаемой задачи, а также опираясь на прошлый опыт и собственную интуицию.
В частности, если даже минимальный риск недопустим, то следует применять критерий Вальда и Севиджа. Если, наоборот, определенный риск вполне приемлем, то выбирают критерии Лапласа и Гурвица. Для выбора оптимальной стратегии в данной задаче рассмотрим подробнее вышеперечисленные критерии.
Критерий Байеса-Лапласа. При известном распределении вероятностей различных состояний «природы» применяется критерий Байеса-Лапласа. Если вероятности состояния «природы» Qj равны qj, у = 1. п, то выбор г-ой стратегии обеспечивает математическое ожидание выигрыша, равное:
£
у =1
(1)
Поэтому принимается решение об использовании стратегии, для которой используется формула:
(2)
г = тах м>г.
Критерий Лапласа. Этот критерий опирается на принцип «недостаточного основания» Лапласа, согласно которому все состояния «природы» считаются равновозможными (равновероятными):
^ =
Ч] = - <) = !> п. (3)
Далее выбирается стратегия, которой соответствует максимум ожидаемого выигрыша, т. е.:
1 п
- Е ^' 2 = тах wi. (4)
wi =-n
j=1
Критерий Вальда. В соответствии с критерием Вальда в качестве оптимальной принимается стратегия, которая в наихудших условиях гарантирует максимальный выигрыш. Критерий Вальда ориентирует игрока на самые неблагоприятные условия. Риск в этом случае является минимальным.
Если в исходной матрице результат представляет выигрыш лица, принимающего решение, то при выборе оптимальной стратегии используется максиминный критерий:
(5)
z = max wi,
i
Подобную задачу можно решить вручную. Однако, если возможных вариантов очень много, то чтобы составить платежную матрицу внушительных размеров, потребуется достаточно много времени и сил. Это очень сложный и трудоемкий процесс.
К решению данной задачи была привлечена вычислительная техника, с помощью которой был написан программный код на языке VBA в среде Microsoft Excel. VBA — это сокращение от слов Visual Basic for Applications. VBA является упрощенной версией языка программирования Visual Basic, которую поддерживают приложения Microsoft Office.
Кроме того, VBA встраивается и в другие программные продукты, такие как AutoCAD, SolidWorks, CorelDRAW, 3D Studio Max и многие другие. Данный язык очень удобен и прост в освоении [7-9], так как в наиболее используемых приложениях Microsoft Office имеется редактор VB (Visual Basic Editor), а также макрорекордер — средство кодирования действий пользователя для последующего их повторения.
Для решения поставленной задачи авторы автоматизировали (средствами VBA) получение платежной матрицы и выбор оптимальной стратегии с помощью различных критериев. На рис. 1 представлена полученная платежная матрица.
Р S $ §
s 1
I
■ 1 2 Количество машин, приехавших для ремонта 3 4 5 6 7 8 9 10
3 18 13 8 3 -2 -7 -12 -17 -22
-3 12 27 22 17 12 7 2 -3 -8
-15 0 15 30 45 40 35 30 25 20
-33 -18 -3 12 27 42 57 72 67 62
Рис. 1. Платежная матрица
Анализируя полученные данные в зависимости от количества мест в автомастерской или приехавших машин, предприниматель может получать как прибыль, так и убыток. Это легко прослеживается по смене знака перед некоторыми элементами матрицы. Получаем следующие выводы:
1. Оптимальное решение не очевидно, т. е. нет строки, все элементы которой содержат больше соответствующих элементов, чем в другой строке.
2. При увеличении количества мест возрастает степень риска, так как увеличивается возможная потенциальная прибыль и возможный потенциальный убыток.
Воспользуемся наиболее простыми классическими критериями выбора оптимальной стратегии — Лапласа и Вальда.
В соответствии с критерием Лапласа наиболее оптимальной оказалась 4-я стратегия, при которой выгодно иметь 8 ремонтных мест (рис. 2).
Критерий Лапласа
2 -2,382716052
3 -0,827160518
5 2,283948149
8 6,948148149
6,948148149
Рис. 2. Критерий Лапласа Согласно критерию Вальда наиболее выгодно иметь 3 ремонтных места (рис. 3).
| Критерий Вальда
2 -22
3 -8
5 -15
8 -33
-8
Рис. 3. Критерий Вальда
Так как по результатам рассмотренных выше критериев предпочтительными являются различные стратегии (2-я и 4-я), то для того, чтобы выбрать оптимальную, применим более тонкий критерий (критерий Байеса-Лапласа), учитывающий вероятности различных состояний «природы» (рис. 4). Большинство процессов в обычной жизни подчинено нормальному закону распределения [10], следовательно, возможна дискретная аппроксимация нормально распределённой дискретной случайной величины (количества автомобилей, нуждающихся в ремонте) (рис. 5).
Количество машин, приехавших для ремонта
1 2 3 4 5 6 7 8 9 10
а « 3 18 13 8 3 -2 -7 -12 -17 -22
§ № i 1 -3 12 27 22 17 12 7 2 -3 -8
S | 5 -15 0 15 30 45 40 35 30 25 20
8 -33 -18 -3 12 27 42 57 72 67 62
q(j) 0,02 0,06 0,1 0,14 0,18 0,18 0,14 0,1 0,06 0,02
Рис. 4. Вероятности состояний «природы»
Критерий Байеса-Лапласа _0,1_
12,5
30,5
32,5
32,5
Рис. 5. Критерий Баейса-Лапласа
При анализе полученных данных было выявлено, что наиболее оптимальной является 4-я стратегия, т. е. предпринимателю выгодно использовать 8 ремонтных мест. Программный код, разработанный авторами для решения поставленной задачи, выглядит следующим образом:
Public Sub Оптимаmнан_стратегин ()
Dim A As Variant, n(10) As Integer, S(4, 10) As Integer, M(4) As Variant, min(4) As Integer, Pr(4) As Variant, q(1 To 10) As Variant Range("B3:O8").Clear Cells(3, 3) = 1 For j = 1 To 9 Cells(3, j + 3) = j + 1 n(j) = Cells(3, j + 2) Next j n(10) = 10 A = Array(2, 3, 5, 8) For i = LBound(A) To UBound(A) Cells(4 + i, 2) = A(i) Next i
For i = LBound(A) To UBound(A)
For j = 1 To 10
If A(i) = n(j) Then
SO, j) = 9 * n(j)
Else
If A(i) > n(j) Then
SO, j) = n(j) * 9 - (AO) - n(j)) * 6
Else
SO, j) = A(i) * 9 - (n(j) - AO)) * 5
End If
End If
Next j
Next i
For i = LBound(A) To UBound(A) M(i) = 0 For j = 1 To 10 Cells(i + 4, j + 2) = S(i, j) M(i) = (M(i) + S(i, j)) /10 Cells(i + 4, 13) = M(i) Next j Next i k = 0
For i = LBound(M) To UBound(M)
If M(i) > k Then
Max = M(i)
End If
Next i
Cells(8, 13) = Max
For i = 0 To 3 min(i) = S(i, 1) For j = 2 To 10 If S(i, j) < min(i) Then min(i) = S(i, j) End If Next j
Cells(i + 4, 14) = min(i) Next i
max1 = min(0) For i = 1 To 3 If min(i) > max1 Then max1 = min(i)
End If
Pr(i) = summa Cells(i + 4, 15) = Pr(i)
Next i
Cells(8, 14) = maxl
Next i
For j = 1 To 10 q(j) = Cells(9, j + 2) Next j
For i = 0 To 3 summa = 0
max2 = Pr(0) For i = 1 To 3
If Pr(i) > max2 Then
max2 = Pr(i) End If
For j = 1 To 10
summa = summa + S(i, j) * q(j) Next j
Next i
Cells(8, 15) = max2 End Sub
Выводы. Был рассмотрен несложный пример, в котором число стратегий игрока, как и число состояний «природы», было незначительно. Однако размерность может быть увеличена в зависимости от требуемых условий. Подобные задачи очень важны для людей, работающих в сфере бизнеса. Составленная программа способна выявить наилучшую стратегию для любой сферы деятельности (автомастерская, торговый центр, строительная компания и т. д.). Так как главная цель предприятия не всегда достижение максимальной прибыли, задачи могут быть различны, например, грамотное управление транспортным потоком, правильное распределение рабочей площади или рабочей силы и т. д.
Библиографический список.
1. Невежин, В. П. Теория игр. Примеры и задачи / В. П. Невежин. — Москва : НИЦ ИНФРА-М, 2016. — 128 с.
2. Петросян, Л. А. Теория игр / Л. А. Петросян, Н. А. Зенкевич, Е. А. Семина. — Москва : Книжный дом «Университет», 1998. — 304 с.
3. Захаров, А. В. Теория игр в общественных науках / А. В. Захаров. — Москва : ИД ВШЭ, 2015. — 304 с.
4. Петросян, Л. А. Теория игр / Л. А. Петросян, Н. А. Зенкевич, Е. В. Шевкопляс. — Санкт-Петербург : БХВ-Петербург, 2012. — 432 с.
5. Костевич, Л. С. Исследование операций. Теория игр / Л. С. Костевич. — Минск : Вышэйшая школа, 2008. — 368 с.
6. Зубарев, Ю. М. Математическое моделирование многоагентных систем конкуренции и кооперации (Теория игр для всех) / Ю. М. Зубарев, С. В. Косаревский. — Санкт-Петербург : Лань, 2016. — 624 с.
7. Демидова Л. А. Программирование в среде Visual Basic For Applications: Практикум / Л. А. Демидова, А. Н. Пылькин. — Москва : Горячая линия — Телеком, 2004. — 175 с.
8. Гарнаев, А. Использование MS Excel и VBA в экономике и финансах / А. Гарнарев. — Санкт-Петербург : БХВ — Санкт-Петербург, 2000. — 336 с.
9. Visual Basic 6 : Полное Руководство. — Санкт-Петербург : BHV — Санкт-Петербург, 1999. — 992 с.
10. Краснов, М. Л. Вся высшая математика. Теория вероятностей. Математическая статистика. Теория игр / М. Л. Краснов, А. И. Киселев, Г. И. Макаренко. — Москва : ЛКИ, 2013.
— 296 с.