Научная статья на тему 'Алгоритмический анализ игр на четность'

Алгоритмический анализ игр на четность Текст научной статьи по специальности «Математика»

CC BY
227
64
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Черничкин М. С.

Мы рассматриваем применение алгоритма поиска стационарных равновесий в циклических играх [1] для решения игр на четность. Представлен алгоритм, показана его экспоненциальная сложность и приведен пример, на котором эта оценка достигается. Известно, что игры на четность лежат в NP ∩ co-NP, и неизвестно ни одного полиномиального алгоритма для их решения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ALGORITHMIC ANALYSIS OF PARITY GAMES

We consider an application of stationary balance searching algorithm in cyclic games [1] for solving parity games. Algorithm is presented with it's exponential complexity estimation, and we provide an example of parity game structure, for which this complexity is reached. Parity games are known to be in NP ∩ co-NP, and no polynomial algorithm is known for them.

Текст научной работы на тему «Алгоритмический анализ игр на четность»

М.С. Черничкин, 2004

УДК 519.6

АЛГОРИТМИЧЕСКИЙ АНАЛИЗ ИГР НА ЧЕТНОСТЬ

М.С. Черничкин

Мы рассматриваем применение алгоритма поиска стационарных равновесий в циклических играх [1] для решения игр на четность. Представлен алгоритм, показана его экспоненциальная сложность и приведен пример, на котором эта оценка достигается. Известно, что игры на четность лежат в ЫР П со-ЫР, и неизвестно ни одного полиномиального алгоритма для их решения.

Введение

Игра на четность представляет собой игру для двух игроков на двудольном графе, вершинам которого присвоены некоторые целочисленные стоимости. В данной работе рассматривается такая постановка игры, в которой победитель определяется четностью максимальной стоимости вершины среди всех вершин, которые в результате поочередных ходов игроков образовали цикл. Если максимальная стоимость вершины четная, то выигрывает первый игрок, в противном случае выигрывает второй. Задача состоит в том, чтобы по заданному игровому графу и начальной вершине определить выигравшего игрока.

Интерес к играм на четность обусловлен двумя причинами. Первая состоит в том, что эта задача полиномиально эквивалентна задаче проверки формул в модальном ¿¿-счислении 12]. Таким образом, разработка более быстрых алгоритмов для решения игр на четность позволит получить более совершенные инструменты для проверки формул, что имеет большое значение в компьютерной верификации и позволяет строить высоконадежные вычислительные системы. Вторая причина — интерес к играм на четность с точки зрения теории сложности. Известно, что данная задача принадлежит ЫРПсо-^Р [2]. Поэтому маловероятно, что она NP-пoлнa, но и ее полиномиальность также не доказана.

В данной работе рассматривается применение алгоритма поиска стационарных равновесий в циклических играх [1] для решения игр на четность. Алгоритм для каждого игоока находит подграфы игпового гпягЬа. где этот игоок выигоывает, а

Г ^ ^ Т Г 1 '1 ’ ' ' 1 л

также строит выигрышную стационарную стратегию.

1. Основные понятия

Игровым графом будем называть конечный двудольный ориентированный граф @ С = (V, Е,р), где V = А и В, А П В = 0 — множество вершин графа, а Л и

В — доли графа, Е — множество ребер, р : V —► N — функция стоимости. Мы будем рассматривать только нетупиковые графы, т. е. из каждой вершины графа выходит по крайней мере одно ребро. Г(У1) будем обозначать множество вершин, которые являются конечными для ребер, начинающихся в вершинах У\. Е(У\) будем обозначать множество ребер, исходящих из вершин множества У\.

Игра на четность — это бесконечная игра для двух игроков (четного и нечетного) на игровом графе, которая происходит следующим образом. Игра начинается с выбора произвольной начальной вершины у0 6 V, в которую устанавливается фишка. Затем игроки по очереди передвигают фишку вдоль одного из ребер, исходящих из текущей вершины, нижеописанным способом. Пусть фишка находится в вершине V € V. Если V £ А, то первый (четный) игрок передвигает фишку в следующую вершину и> € В, (у, ю) Е Е. Если же у € В, то, соответственно, второй (нечетный) игрок передвигает фишку в следующую вершину V) Е А, (у, го) £ Е. В результате данной бесконечной игры фишка пройдет бесконечный маршрут Р = у^.-.у^... Если максимальная стоимость вершины, которая повторяется бесконечно часто на полученном пути, является четной, то выиграл первый игрок. В противном случае выигрывает второй игрок.

Стационарной стратегией для четного игрока в графе С(У, Е,р) будем называть функцию а : А —> V такую, что V V Е А (у, а (у)) Е Е. В этом случае, когда фишка попадает в вершину у € А, четный игрок передвигает ее вдоль одного и того же ребра (у, а (у)). Стационарная стратегия для нечетного игрока определяется двойственным образом.

Из результатов [1] следует, что оптимальные стратегии игроков являются только стационарными, поэтому вместо бесконечной игры на четность имеет смысл рассматривать следующую ее конечную постановку. Игроки по очереди двигают фишку вдоль ребер. Игра заканчивается в тот момент, когда маршрут игры образует цикл, т. е. в некоторый момент времени игра возвращается в вершину, которая уже присутствует в игровом маршруте. Если максимальная стоимость вершины в данном цикле четная, то выигрывает первый игрок, в противном случае выигрывает второй игрок.

2. Теорема существования равновесия

В этом параграфе используются результаты работы [1].

Пусть Si(i>2) будет множество всех стационарных стратегий первого (второго) игрока в приведенной игре. Пусть C(si, s2, v0) будет цикл, который образуется в результате применения стационарных стратегий si,s2 из начальной вершины у0, и c(si, s-2,Vo) ~ платеж этого цикла, который определяется следующим образом:

(—1, если тахр(г») — четно;

1 veC / \

1, если maxp(v) — нечетно.

vec v '

Теорема 1. Для каждой игры ((Л, В),Е) с целочисленной стоимостной функцией р : V —> N существуют стационарные стратегии а и ¡3 первого и второго игро-

ков такие, что для любой начальной вершины Vq выполнено следующее седловое условие

тахс(а, s2,vq) = minc(si, /3,vo) := c(v0),

S 2 Sl

c(vq) называют ценой игры в позиции vQ.

Для доказательства теоремы введем следующие определения.

Определение 1. Будем говорить, что упорядоченное разбиение на непересекающиеся подмножества множества вершин V называется эргодическим, если:

а) для каждого i = 1, ,.,m подграф G(Vi), образованный множеством Ц, нетупиковый;

б) для любых 1 < i < j < m не существует ребер (у, w) таких, что v £ А П V,- и

w G Уг; или v £ В dVi и w £ Vj.

Непосредственно из определения эргодичности следует следующее утверждение.

Утверждение 1. Пусть Vi,V2 — эргодическое разбиение в графе G{V) и V3,V4 —

эргодическое разбиение в подграфе G(V2). Тогда разбиение V\ U V3,V4 есть эргодическое разбиение У в графе G(V).

Будем обозначать (А, В\а, Е(В, А)) — граф с множеством вершин А U В и множеством ребер а U Е(В, А) {а — ребра некоторой стационарной стратегии первого игрока). Для краткости обозначим этот граф как (V:a). Для второго графа (А, В\ E(A,B),ß) (ß — ребра некоторой стационарной стратегии второго игрока) обозначение — (V;ß).

Доказательство теоремы будет следовать непосредственно из леммы 1.

Лемма 1. Пусть G((A, В), Е,р) — игровой граф с целочисленной стоимостной функцией р : V —> N. Тогда существуют:

(1) эргодическое разбиение V\,V2 (возможно \\ = 0 или V2 — 0) и две стационарные стратегии ai, ß2 для G(Vi) и G(V2), соответственно, такие, что следующее справедливо:

(2) цена всех простых циклов графа (Vi;ai) равна —1;

(3) цена всех простых циклов графа (V2; ß2) равна 1.

Тогда, играя согласно стратегии аъ первый игрок выигрывает в графе G(Vi), а второй игрок, играя согласно стратегии ß2, выигрывает в G(V2).

Определение 2. Шлейфом первого игрока, порожденным множеством Ух С V в графе С(У, Е), будем называть множество вершин 1(У\), которое получается в результате следующего процесса пометок.

Первоначально помечаем множество Х0 = У\. Допустим, что уже помечены множества Х0, ...,Х^ — попарно непересекающиеся, непустые подмножества V. Обозначим 1^ := Х0 и... иХ^-. Определим подмножество Х^+х следующим образом:

Х^х := {уа,ув € У\1^ : Г(г>в) С 1^Т(уА)П^ ф 0}.

Определим стационарное ребро (уд,ги) для каждой уа £ ] > 0, как

одно ребро (ьа,п}), для которого «; е а в множестве VI это будет произвольное исходящее из вершины ребро. Множество стационарных ребер обозначим а.

Если Ху+1 — 0, то процесс пометок завершается, и есть результирующее множество I. Конечное множество стационарных ребер а будем называть стационарной стратегией первого игрока, порожденной множеством VI.

Для второго игрока понятия шлейфа и стационарной стратегии, порожденной множеством Уь вводятся двойственным образом.

Доказательство леммы 1. Лемма будет доказана индукцией по числу вершин п = \У\ в графе игры С(У,Е,р). Для п — 2 утверждение очевидно. Пусть утверждение доказано для каждого натурального т : 2 < т < п. Пусть теперь число вершин в игровом графе равно п + 1. Будем использовать следующее индуктивное упрощение.

Утверждение 2. Пусть имеется разбиение Ух; У2 : Ух ф 0 вершин V на непересекающиеся множества Ух П У2 — 0 такое, что выполнено следующее:

а) условия эргодичности для Ух справедливы: граф G'(VЛ1) нетупиковый и

ад,к2) = 0; .

б) существует стационарная стратегия а.\ в графе (2(1^) такая, что цена всех простых циклов (У\\ах) равна —1.

Тогда индуктивное утверждение справедливо.

Доказательство утверждения 2. Рассмотрим разбиение У\, У2. Условия эргодиче-ского разбиения для вершин У\ справедливы, но условия эргодичности для вершин У2, возможно, не имеют место. Подправим множество У2, чтобы получить эргодиче-ское разбиение.

Рассмотрим шлейф первого игрока 1 и стационарную стратегию а, которые порождены множеством У\ (рис. 1). Тогда из условий утверждения 2 и процесса пометок следует:

(4) разбиение /, V — /— эргодическое.

(5) цена всех циклов графа (1;ах и а) равна —1.

Обозначим \¥ := У—1. В силу У\ ф 0, для графа С(\¥) применимо предположение индукции: существует эргодическое разбиение У\ := У/Х\У2 := 1¥2; И^иИ^ = IV и две требуемые из утверждения для разбиения стационарные стратегии

/?2, так что (1), (2), (3) справедливо.

Рис. 1. Подправление множества У2

Тогда для всего графа верно:

1. Цена всех циклов графа (/ и \УХ\а\ и а и а[) равна —1 по (4), (5), (2).

2. Цена всех циклов графа равна 1 по (3).

3. Разбиение / и \У\, Нг2 эргодическое по утверждению 1.

Таким образом, получили разбиение /иИ^, \У2 и пару стационарных стратегий а! и а и а'] и 0’2, требуемые для индуктивного предположения. Утверждение 2 доказано.

Для стоимостной функции р(у) определим значение М тахр(у) и множе-

ьеУ

ство вершин с максимальной стоимостью УМ {у : р(у) — М}.

Рассмотрим два случая: М — нечетное и М — четное.

Случай М — нечетное.

Рассмотрим шлейф I и стационарную стратегию /3 второго игрока, которые порождены множеством вершин УМ (рис. 2). Стационарную стратегию 0 доопределим в вершинах УМ по правилу: для каждой вершины Ув £ Х0 берем произвольное ребро (ув, ту) ■ Р^в,™) = М. Доопределенную стратегию обозначим (3'.

Из процесса пометок легко видеть, что:

(6) цена всех циклов (/;/?;) равна 1 (здесь ¡3\ := (3' П £’(/,/));

(7) множество ребер Е(Ув\1,1) пусто.

V-!

Рис. 2. Разбиение (/, V — I)

Если V — /, тогда эргодическое разбиение Уг — 0, У2 = I и ¡3' — требуемые по (6). Пусть V — I ф 0. Граф й{У — /) не имеет тупиковых вершин, поэтому в графе С(У — /) по индукции существует:

(8) эргодическое разбиение Ух, У2 : Ух и У2 = V — I и две стационарные стратегии сх1,р2 такие, что справедливо:

(9) цена всех простых циклов (Ух',схх) равна —1;

(10) цена всех простых циклов (У2; (32) равна 1.

Если Ух = 0, тогда эргодическое разбиение Ух = 0; У21Л и стационарная стратегия и/3' требуемые, так как цена любого цикла у0, ...,Ук,Уо : Уо, ...,Ук £ У2 равна 1 по (10), цена любого цикла Уо,Ук, Уо '■ Уо,...,Ук £ I равна 1 по предположению (6) и цена каждого другого цикла у0, ...,г^,у1+1, ...,у0 : Е У2 равна 1, т. к.

каждый такой цикл содержит максимальную нечетную вершину из множества УМ.

В случае Ухф$ рассмотрим разбиение Уг, У2и1. Условия эргодического разбиения для вершин Ух справедливы по (8), (7), и для графа (Ух]0-х) все циклы равны — 1, поэтому применимо утверждение 2, что заканчивает рассмотрение этого случая. Случай, когда М — четно, рассматривается двойственным образом.

Из доказательства леммы следует следующий рекурсивный алгоритм.

3. Алгоритм

Здесь приводится алгоритм, который позволяет построить стационарные стратегии и найти выигрышные множества вершин для каждого из игроков.

Алгоритм состоит из основной процедуры А^огШгт() и двух вспомогательных процедур Мах8е1(), GetTo.H0. Процедура А1§опЛНт() на вход принимает игровой граф С((А,В),Е,р), а на выходе выдает разбиение Ух<У2 множества вершин V и пару стратегий для каждого игрока. Процедура МахБе^) выдает множество вершин с максимальными стоимостями для заданного множества вершин. Процедура Се1ТаИ() строит шлейф, порожденный множеством, которое подается на вход этой процедуры, и выбирает стационарные ребра, которые входят в стратегию.

Процедура Algor it hm( G(V, E, p)):

1) Ум = MaxSet(V);

2) if Vt’ 6 Vm p(v) — четная then i = 0 else i = 1;

3)Ii(VM)=GetTail(VM,a?y,

4) V ~ V\k(VM)\

5) if V = 0 then return(Vi = V, V\-i — 0, <7j = erf, oj-i = 0);

6). if 1/^0 then (У/, V/^, a', cri_j) = Algonthm(C(V))-,

7) if = 0 then return(V- = V, V^ = 0, a* = erf U a-, <7^ = 0);

8) ify;_t ф 0 then - GetTailiV^a^)-,

9) У =_П/Ы(^);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

10) if F = 0 then return(K = 0, Fi-i = V, <Jj = 0, <7i_i = ст°_г U o^);

11) if V ф 0 then (V", V"_i, = Algonthm(G(V));

12) return (Vi - Vf, Vi_,- = К_г и и V-г! ^ = al

<?1~г = ^i-i U СГ'_4 U С7"_г).

4. Сложность алгоритма

Покажем, что алгоритм требует экспоненциального от размера задачи времени работы. Под размером задачи будем понимать количество вершин п игрового графа G(V,E,p). Элементарной операцией будем считать рекурсивный вызов алгоритмической .процедуры.

Утверждение 3. Временная сложность алгоритма на графе с п вершинами есть

2°(п)

Доказательство. Пусть Fin) — количество элементарных операций, которое алгоритм выполняет при решении задачи размера п. Оценим вклад каждого шага алгоритма при условии максимально возможных временных затрат, т. е. представим оценку в виде

F{n) = F](n) + F2(n),

где Fi(n) — число рекурсивных вызовов при прямом ходе алгоритма (после удаления начального шлейфа), F2(n) — число рекурсивных вызовов при обратном ходе алгоритма (при восстановлении удаленных шлейфов).

На вход алгоритма поступает игровой граф G(V,E,p), т. е. имеем задачу размера п — jT/|. Первый шаг есть определение множества VM Ç V вершин с максимальными стоимостями и построение шлейфа I(VМ), порожденного множеством VM (будем называть его прямым ходом алгоритма). В худшем случае множество ¡(VM) будет состоять из одной вершины. Тогда при рекурсивном вызове алгоритму будет передан игровой граф G(V',E',p), из которого выброшена 1 вершина и инцидентные ей ребра. Таким образом, для прямого хода получаем

Fx(n) = F(n — 1).

Затем алгоритм выполняет подправку множеств вершин V\(V2) и стратегии а\ (<7г) первого (второго) игрока, возвращенных после рекурсивного вызова процедуры

(обратный ход). В самом худшем варианте развития событий с шлейфом I(VM) за первого (второго) игрока множество У2(У\) состоит из двух вершин — четной и нечетной. При этом шлейф, порожденный им, состоит из него же самого, то есть ЛУ) = V2 (I(V\) = Vi). После чего происходит рекурсивный вызов алгоритма, на вход которому подается граф G{V'\E'\p), где V" = V — V2 (V" — V — Vi), Е" = Е — Е{у2) (Е" = Е — E(Vi)) при I(VM) за первого (второго) игрока.

Следовательно, оценка обратного хода алгоритма:

F2(n) = F(n - 2).

Таким образом, для общей оценки сложности алгоритма получаем следующее рекуррентное соотношение (последовательность Фибоначчи)

F(n) — F(n — 1) + F(n — 2).

После элементарных преобразований получаем, что в худшем случае входной задачи размера п алгоритм выполняет

2°(п)

рекурсивных вызовов. Что и требовалось

доказать.

5. Пример задачи экспоненциальной сложности

Рассмотрим семейство графов, на котором алгоритм затрачивает экспоненциальное время для решения задачи.

Графы данного семейства имеют блочную структуру. Блок состоит из 5 вершин с разными стоимостями и 6 ребер. Строение блока показано на рис. 3, где ромбами обозначены вершины первого игрока, а квадратами — вершины второго игрока. В стоимость каждой вершины, указанную внутри ромбов и квадратов, входит слагаемое В, которое является началом отсчета стоимости для конкретного блока и определяется следующим выражением В = 6г + 1, где г = 0,1,... — порядковый номер блока в графе.

Рис. 3. Строение блока

Графы строятся из блоков по приведенным ниже правилам. Вершины в блоках будем идентифицировать приписанными им стоимостями. Например, (В + 1)2 — вершина со стоимостью 5 + 1 первого блока (нумерацию блоков будем вести слева направо). Пусть граф состоит из Ь блоков. Блоки соединяются следующими ребрами:

а) ((В + 1)г,(В)т), г = 0 ... Ь — 2;

б) ((В),-,(£ + 3)ш), г = О ... Ь — 2.

Пример графа С3, состоящего из 3 блоков, представлен на рис. 4. Отметим, что для всех графов (У(У, £,р) данной структуры в итоге второй игрок выигрывает на вершинах У2 = {(-В + 2)ь-1, (В + 1)ь_1}. На всех остальных вершинах Ух = У\У2 выигрывает первый игрок.

Рис. 4. Игровой граф

Утверждение 4. Для любого графа, состоящего из Ь <Е N блоков, решение задачи размера п = 56 с игровым графом потребует 0,(3Ь) вызовов процедуры А^огИНт().

Доказательство. Пусть на вход алгоритма подан игровой граф Съ,Ь > 1. При прямом ходе алгоритма при разборе (Ь — 1)-го блока будут отделяться следующие подмножества вершин:

{(Б + 5)б_1 }о, {(В + 3)б-1.}<>, {(В + 2)й_х, (В + 1)ь—1 }□, {(В)ь-1}п-

Оставшаяся часть прямого хода алгоритма, а также часть обратного хода до момента рассмотрения множества {(В) ь—1 }□ соответствуют рекурсивному вызову процедуры алгоритма, на вход которой подается игровой граф Сь-г, а возвращает процедура множества вершин и У2 для первого и второго игроков соответственно. В результате подправления множества У2и{(В)Ь-1}п последнее полностью входит в шлейф /(V]), то есть выигрышное множество для второго игрока становится пустым. Подправление множества V] множеством {(В + 2)ь_1, (В + 1)ь_х}п требует одного рекурсивного вызова процедуры и приводит к следующим результатам:

При подиравлении множества У2 множеством У\ и {(В + 3)ь_1} происходит рекурсивный вызов процедуры с графом Сь-\ на входе и две рекурсии для разбора вершин рассматриваемого блока. Последний шаг работы алгоритма — подправление множества У2 множеством Т/^и{(^+3)*_1и{(-В+5)ь—г}} — аналогичен предыдущему шагу, но выполняет на один рекурсивный вызов больше.

Пусть F(n) — количество рекурсивных вызовов, выполняемых алгоритмом при решении задачи размера п. Тогда для графа G& имеем

F(n) = 3F(n - 5) + 6.

Таким образом, если на вход алгоритма подан граф Сь, то алгоритм форсированных стационарных стратегий выполнит F(n) = Q(3"/5) = Q(3b) рекурсивных вызовов.

Summary

ALGORITHMIC ANALYSIS OF PARITY GAMES Л4.5. Chernichkin

We consider an application of stationary balance searching algorithm in cyclic games [1] for solving parity games. Algorithm is presented with it’s exponential complexity estimation, and we provide an example of parity game structure, for which this complexity is reached. Parity games are known to be in NP П co-NP, and no polynomial algorithm is known for them.

Литература

1. Лебедев В.H. Поиск и структура стационарных равновесий в циклических играх // Математические заметки. 2000. Т. 67. № 6. С. 913-921.

2. Emerson Е.А., Jutla C.S., Sistla A.P. On model-checking for fragments of

/¿-calculus. In Computer Aided Verification: Proc. 5th Int. Workshop. Elounda,

Crete, June 1993. Lecture Notes in Computer Science, Springer-Verlag.V. 697.

P. 385-396.

i Надоели баннеры? Вы всегда можете отключить рекламу.