В этом разделе мы предложим метод построения решения игры ,
который приведет также к построению соответствующего оптимального пути.
Решение игры строим методом обратной индукции,
двигаясь от окончательных позиций к начальной. Процедура поиска решения игры
напоминает схему построения равновесия по
Нэшу в обычной позиционной игре. Существующие различия заключаются в следующем.
Предположим, что поддерево
принадлежит области кооперативного
поведения игрока
.
Как указывалось выше, кооперативная функция
определяет для каждой
позиции некоторую коалиционную структуру.
Тогда на множестве окончательных позиций поддерева
вместо выигрышей игрока
необходимо рассматривать выигрыши коалиций,
включающих игрока
. На поддереве
, используя схему Нэша,
решение игрока
, максимизирующего выигрыш коалиции, к которой он
принадлежит, может быть легко определено. Однако, поскольку выигрыш игрока
не выделен из коалиционного выигрыша, при определении решений игрока
в его личных позициях, находящихся между позицией
и начальной позицией
,
где игрок
играет индивидуально, возникают трудности.
Если доля игрока
в коалиционном выигрыше известна, то, применяя снова
схему Нэша, мы можем найти решения игрока
в его личных позициях
вдоль пути
.
Таким образом, определение изменений
выигрыша при переходе игрока с кооперативного поведения на
индивидуальное является главной проблемой, рассматриваемой в предлагаемом
алгоритме.
В дальнейшем мы будем использовать следующие
обозначения. Пусть - некоторая позиция.
Обозначим через
множество позиций, непосредственно следующих за
.
Обозначим игрока, принимающего решение в позиции
,
, в игре
через
. Будем говорить, что решение игрока
в позиции
ведет в позицию
.
Введем вспомогательную функцию
, определяемую с помощью кооперативной
функции
:
![]() |
(2.1) |
Предположим, что длина игры составляет
позицию.
Рассмотрим разбиение множества всех позиций дерева игры
на
множеств
,
, где множество
состоит из позиций достигаемых из начальной позиции
за
ходов.
Обозначим множество позиций, принадлежащих множеству
, через
,
.
Начальный шаг.
Рассмотрим множество окончательных позиций .
Коалиционная структура в позиции
совпадает с коалиционной структурой в позиции
,
.
Согласно кооперативной функции
, в позиции
формируются коалиции
,
.
Выигрыш игрока
в позиции
равен
![]() |
(2.2) |
Шаг 1.
Перейдем из окончательных позиций ,
, к
предшествующим. Рассмотрим окончательную позицию
.
Предположим, что
.
Тогда игрок
кооперируется, и
в позиции
делает ход игрок
,
.
Мы предписываем игроку
выбрать позицию
из условия
![]() |
(2.3) |
![]() |
(2.4) |
![]() |
(2.5) |
Шаг 2.
Продолжим движение по направлению к корню дерева игры.
Найдем решения игроков
в позициях
. Если на множестве
известны выигрыши каждого игрока
,
,
то мы можем построить путь игры на поддеревьях
,
.
Рассмотрим множество
![]() |
(2.6) |
![]() |
(2.7) |
![]() |
(2.8) |
В качестве примера, подтверждающего существование непустого множества
,
предположим, что игрок
делает ход в поддереве
дважды, т.е. существует позиция
такая, что
и
есть один и тот же игрок.
Допустим, что
и
.
Тогда игрок
принадлежит коалиции
на поддереве
и играет индивидуально в позиции
.
Поскольку выигрыш игрока
не выделен из выигрыша
коалиции
, то
его выигрыш в позиции
не известен.
В общем случае отсутствие информации о выигрыше происходит в позициях,
где изменяется коалиционная структура, и это изменение касается текущего
игрока, принимающего решение. Для каждой позиции мы рассмотрим
два основных случая.
1) Предположим, что
.
Пусть
.
Следовательно, в позиции
принимает решение игрок
.
Мы предписываем игроку
выбрать позицию
из условия
![]() |
(2.9) |
![]() |
(2.10) |
2) Предположим, что
.
Как выше указывалось, возникает неопределенность с выигрышами коалиции
при
и коалиции
при
.
Чтобы построить путь игры на поддереве
,
необходимо найти некоторый дележ выигрыша коалиции
для каждой позиции
.
Определим требуемый дележ, рассматривая вспомогательную
кооперативную игру
на поддереве
с множеством игроков
и х. ф.
,
, для каждой позиции
.
Для связности изложения детальное объяснение построения
х. ф. приводится ниже.
Сейчас же будем предполагать лишь, что х. ф.
известна.
Выигрыш наибольшей коалиции в кооперативной игре
равен
![]() |
(2.11) |
![]() |
(2.12) |
![]() |
(2.13) |
![]() |
(2.14) |
Предположим, что .
Тогда для игрока
является оптимальным
реализация пути, проходящего через позицию
,
которая удовлетворяет условию:
![]() |
(2.15) |
Теперь пусть .
Так как игрок
кооперируется, то в позиции
совершает ход
коалиция
.
Мы предписываем ей выбрать позицию
,
удовлетворяющую условию:
![]() |
(2.16) |
Таким образом, путь на каждом поддереве ,
, построен.
Отсюда, чтобы построить путь игры на поддеревьях
,
,
достаточно определить решения игроков
,
.
Зададим на множестве
функции
,
,
такие, что для
и
![]() |
(2.17) |
Дальнейшие шаги процедуры аналогичны шагу 1 и 2. Опуская изложение
каждого шага, рассмотрим шаг .
Предположим, что продолжая двигаться к корню
дерева игры, мы достигли позиций
.
Пусть функции
,
,
определяют, какие выигрыши получают игроки
после выполнения игроками
,
,
предписанных нами решений.
Шаг t.
Мы не будем затрагивать окончательные позиции из множества
,
потому что они могут быть рассмотрены точно так же, как в разделе 3.2.
Определим решения игроков
в промежуточных позициях
.
Пусть
![]() |
(2.18) |
![]() |
(2.19) |
![]() |
(2.20) |
1) Допустим, что
для всех позиций
.
Согласно функциям
,
,
если решение игрока
приводит игру в позицию
, то выигрыши, получаемые игроками
в конце игры, будут равны
для игрока
и
для игроков
,
,
соответственно.
Если
, то в позиции
делает ход игрок
и мы предпишем ему выбрать позицию
удовлетворяющую условию
![]() |
(2.21) |
![]() |
(2.22) |
2) Предположим, что для некоторой позиции
множество
, состоящее из позиций,
для которых выигрыш игрока
не определен, не пусто.
Чтобы узнать решение игрока в позиции
,
для каждой позиции
рассмотрим кооперативную игру
лиц с х. ф.
,
.
Выигрыш наибольшей коалиции в этой кооперативной игре равен
![]() |
(2.23) |
![]() |
(2.24) |
![]() |
(2.25) |
![]() |
(2.26) |
Если , мы предписываем игроку
выбрать позицию
из условия
![]() |
(2.27) |
![]() |
(2.28) |
В итоге, так как решения игроков были определены
для каждой позиции
, развитие игры
на каждом поддереве
,
, найдено.
Кроме этого, на шаге
процедуры были построены функции
, определяющие, какой выигрыш получат
игроки
после принятия игроками
в позициях
предписанных нами решений.
Для
и
функция
задается следующим
образом:
![]() |
(2.29) |
Продолжая спускаться по дереву игры к начальной позиции
и последовательно определяя решения игроков
на оставшихся
множествах
,
,
мы построим путь, который реализуется в игре
при задании кооперативной функции
.
Мы будем называть данный путь оптимальным путем
частично-кооперативной игры
и
обозначать его через
.
Кооперативные игры
Обсудим построение кооперативных игр ,
.
Укажем метод построения х. ф.
,
, игры
.
При построении оптимального пути развития игры
в разделах 3.2-3.5 было определено поведение игроков
в каждой личной позиции принятия решения. Такое поведение,
как функция от текущих позиций, называется стратегией.
Обозначим через
набор стратегий, определенных в разделах 3.2-3.5, приводящий
к оптимальному пути
игры
.
Кооперативная игра
строится с помощью этих стратегий.
Рассмотрим след
набора
на поддереве
.
Для игроков
зафиксируем стратегии
и рассмотрим подыгру
игры
,
в которой выборы игроков
в их личных позициях
зафиксированы в соответствии со стратегиями
.
Таким образом, игра
есть игра между игроками из
коалиции
.
Для каждой подкоалиции
рассмотрим ассоциированную
с
игру с нулевой суммой
между двумя игроками:
коалицией
, являющейся максимизирующим игроком
(выигрыш коалиции
равен сумме выигрышей игроков из
),
и коалицией
, являющейся минимизирующим
игроком (выигрыш коалиции
равен выигрышу
коалиции
с обратным знаком).
Можно показать, что выигрыш каждой коалиции
,
определенный таким образом, не может превысить величины
,
поскольку по построению коалиция
получает
выигрыш
, используя наилучшие ответные
стратегии против стратегий
игроков
.
Пусть
будет значением игры
.
С помощью выигрышей
,
, вектор Шепли
строится в игре
обычным способом.