Сер. 10. 2012. Вып. 4
ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА
УДК 519.83
М. И. Карпов, Л. А. Петросян
КООПЕРАТИВНЫЕ РЕШЕНИЯ В КОММУНИКАЦИОННЫХ СЕТЯХ
1. Модель. Игра происходит на сети G = (X, D), где X - конечное множество, называемое множеством вершин, и D - множество пар вида (x',x''), где x' G X, x" G X, называемое множеством ребер. Точки x G X будем называть вершинами (или узлами) сети, а пару (x', x'') G D - ребром, соединяющим вершины x' и x''. На множестве ребер D задана неотрицательная симметричная вещественная функция c(x', x'') = c(x'', x') ^ 0, интерпретируемая для каждого ребра (x',x'') G D как затраты, связанные с переходом из вершины x' в вершину x'' по ребру (x',x''), c(x,x) = 0. Если сеть не полная, то определим множество D' как множество ребер, соединяющих пары вершин из X, не соединенных ребрами из D. При этом каждому ребру (y',y'') G D' сопоставим значение функции затрат c(y',y'') = (x' x")eD c(x',x''). В дальнейшем под множеством D будем понимать множество D U D'. Задано множество игроков L = {1, 2,...,l}.
Перед тем, как описать игровой процесс на сети, введем определения некоторых понятий, которые понадобятся в дальнейшем.
Определение 1. Состоянием сети G будем называть вектор z = (z1,...,zl), каждая компонента гг которого - вершина, в которой находится игрок i.
Каждую вершину z1, г = 1,1, входящую в вектор состояния z, будем называть местоположением игрока i в данном состоянии сети G. Согласно этому определению, различные местоположения игроков обусловливают разные состояния сети G. Заметим, что некоторые компоненты вектора состояния z могут принимать одинаковые значения, тогда соответствующие игроки находятся в одной и той же вершине при данном состоянии сети. Множество всевозможных состояний сети обозначим через Q = {z} .
Под путем из вершины xi в вершину xm в сети G будем понимать любую конечную последовательность ребер из множества D вида p(xi,xm) = {(xi,xi), (x^,xz),..., (xm-i,xm)}. Будем говорить, что пути p' и p'' не пересекаются, и писать p' П p'' = 0, если они не содержат общих ребер.
Опишем теперь игру нескольких лиц на сети G. Игра Г представляет собой набор Г =< G, L, zo, zn >, где G - сеть; L - множество игроков, \L\ = l; zo и zn - заданные наперед состояния сети G. Состояния zo и zn будем называть соответственно начальным
Карпов Михаил Игоревич — ассистент кафедры математической теории игр и статистических решений факультета прикладной математики—процессов управления Санкт-Петербургского государственного университета. Научный руководитель: доктор физико-математических наук, проф. Л. А. Петросян. Количество опубликованных работ: 1. Научное направление: дискретная математика и математическая кибернетика. E-mail: [email protected].
Петросян Леон Аганесович — доктор физико-математических наук, профессор кафедры математической теории игр и статистических решений, декан факультета прикладной математики—процессов управления Санкт-Петербургского государственного университета. Количество опубликованных работ: 250. Научное направление: дискретная математика и математическая кибернетика. E-mail: [email protected].
© М. И. Карпов, Л. А. Петросян, 2012
и конечным состояниями сети, а вершины гг0, - начальным и конечным местоположениями игрока г, г = 1,1.
Определим стратегии игроков в игре Г. Под стратегией игрока г € Ь в Г будем понимать любой путь, соединяющий его начальное местоположение гО и конечное местоположение ггм. Множество всех стратегий игрока г обозначим через Иг = {Кг}, г = 1, /, а множество всевозможных ситуаций в игре - !К = {¡г = (Н1,..., /г')}. В некоторых случаях, если это не будет приводить к недоразумениям, говоря «стратегия», будем иметь в виду путь, соответствующий данной стратегии, и наоборот.
Введем в определение ключевой термин настоящей работы - понятие суммарных затрат. Для этого рассмотрим ситуацию Н = (/г.1,..., 1г1) в игре Г. Каждая стратегия Нг, г = 1,1, являющаяся путем в сети О, состоит из некоторого множества ребер. Заметим, что соответствующие стратегиям К1,...,К1 пути могут пересекаться, т. е. содержать одинаковые ребра. Введем обозначение
Е{К) = {{х' ,х")\{х' ,х") е Ь\г=~1},
т. е. Е(К) С Е и О' - это множество всех ребер в ситуации К = (К1,..., К) или, другими словами, множество всех ребер, входящих в пути ¡г1, г = 1,1. Обратим внмание, что, хотя некоторые из стратегий К1 ,...,К и могут содержать одинаковые ребра, множество Е (К = (К1,...,К1)) содержит только различные ребра.
Определение 2. Суммарными затратами в игре Г, соответствующими ситуации К, будем называть величину
Б (Н)= ^ с(х',х'').
(х' ,х'')еЕ(Н)
Таким образом, для каждой ситуации Н в игре Г суммарными затратами будет сумма затрат на переход по каждому из ребер, составляющих стратегии игроков г € Ь, г = 1,1, при этом затраты на переход по определенному ребру входят в эту сумму только однажды, независимо от того, сколько игроков используют данное ребро для построения своих стратегий ¡г1 € Н, г = 1,1.
Рассмотрим в качестве примера игру Г трех лиц, происходящую на сети О, граф которой изображен на рис. 1. Чтобы не загромождать рисунок, затраты на переход по ребрам не указаны, будем считать, что для любого ребра (г,]) € Е затраты на переход по нему равны с(г,]). Начальное состояние сети - го = (1,2, 3), конечное -гN = (11,11,12), т. е. первый игрок стремится попасть из вершины 1 в вершину 11, второй игрок - из вершины 2 в вершину 11, третий игрок - из вершины 3 в вершину 12.
Предположим, что в игре сложилась ситуация К = (К1, К2, К3), где К1 = ((1, 5), (5, 8), (8,11)), К2 = ((2, 6), (6,9), (9,11)), К3 = ((3, 6), (б,9), (9,12)). Заметим, что К1 П К1 = 0, К1 П К3 = 0, К2 П К3 = {(6, 9)}, т. е. второй и третий игроки для построения своих стратегий используют общее ребро (6, 9). При этом Е(К) = {(1, 5), (5, 8), (8,11), (2, 6), (6,9), (9,11), (3, 6), (9,12)}, а суммарные затраты Б (К) равны Б (К) = с(1, 5) + с(5, 8) + с(8,11) + с(2, 6) + с(6,9) + с(9,11) + с(3, 6) + с(9,12), т. е. затраты на переход по ребру (6, 9) вошли в суммарные затраты только один раз.
Определим понятие траектории в сети О как некоторую последовательность состояний сети {х1, Х2,..., гт} и будем обозначать траекторию перехода из состояния г1 в состояние гт через Р(г1,гт). Рассмотрим траекторию Р(г1,гт) = (г1,г1,...,гт). Каждое состояние г/. = (г^, ..., г1к), к = 1, то, определяет I вершин, в которых находятся игроки, т. е. в состоянии первый игрок находится в вершине второй игрок -
Рис. 1. Граф сети G
в вершине z^, и т. д. Таким образом, каждой траектории соответствуют l стратегий игроков и, следовательно, некоторая ситуация h в игре Г.
Оптимальной траекторией в сети G будем называть траекторию P*, которой отвечает ситуация h*, минимизирующая суммарные затраты S(h*) в игре G.
Рассмотрим сперва следующую задачу: найти оптимальную траекторию в игре Г =< G, L, zo, zn >.
2. Метод последовательных приближений. Поставленная задача решается с помощью метода динамического программирования, в основе которого лежит принцип оптимальности, сформулированный Р. Беллманом [1].
Введем в рассмотрение функцию Беллмана W(z). Ее значение в любой точке z e Q равно минимальным суммарным затратам при переходе из некоторого состояния z в конечное состояние zn. Для этой функции справедливо следующее уравнение:
W(z) = min (F(z, z') + W(z')) z'EQ
с граничным условием
W (zN) = 0.
Здесь F(z, z') - суммарные затраты на непосредственный переход из состояния z в состояние z' (без промежуточных состояний).
Введем функцию Wk(z), которая в каждой точке z e Q равна минимальным суммарным затратам при переходе из некоторого состояния z в состояние zN при дополнительном ограничении, что оптимальная траектория P** (z,zn), обеспечивающая это минимальное значение суммарных затрат, содержит не более k промежуточных состояний, k = 0,1, 2,... .
Тогда получаем, что
Wo(z)= F (z,zn ), Wk(z) = min(F(z,z') + Wk-1(z')), z e Q, k = 1, 2,....
z' EQ
Ясно, что с увеличением числа шагов к величины функций Wk (z) не возрастают. Пусть R - число всевозможных состояний сети G, = R. Тогда при к ^ R последовательность функций Wk(z) сходится: Wr(z) = Wß+i(z) = W(z). Таким образом, значение Wr (zo) есть минимальные суммарные затраты W (zo) при переходе из начального состояния zo в конечное состояние zn по оптимальной траектории
р * (zo,zN ) = (z0,z* 1,zN ).
Приведенный алгоритм более подробно описан в [2]. Ссылки на другие алгоритмы расчета оптимальной траектории, не основанные на методе динамического программирования, даны в [3].
3. Кооперативная игра. Приведенный в п. 2 алгоритм позволяет найти оптимальную траекторию перехода из начального состояния сети в конечное состояние, доставляющую минимальное значение суммарных затрат. Однако вопрос о распределении суммарных затрат между игроками остается открытым. Для его решения построим кооперативный вариант игры Г, который обозначим как Гс =< G, L, zo,zn > (впервые предложенный в [4]). Пусть K = {¡1,i2,...,ik} Q L - некоторая коалиция игроков, обозначим через ГС(К) =< G, K, zo(K), zn(K) > соответствующую кооперативную подыгру, здесь zo(K) = (zo1,. ..,zg°) и zN(K) = (zN, . ..,z%N) - начальное и конечное состояния сети G в игре гС(К), где Zq и z^ - начальное и конечное местоположения игрока ij в игре Г, j = l,k. Через Н(К) обозначим множество ситуаций в подыгре
rc(K).
Рассмотрим следующий пример.
Пусть в некоторой игре Г =< G, L, zo, zn > множество игроков есть L = {1, 2, 3, 4}, начальное и конечное состояния сети G заданы соответственно векторами zo = (zq,zq,zq,zo) и zN = (zN,zN,zN,zN). Тогда, если, например, в кооперативной подыгре коалиция состоит из двух игроков K = {2,4}, то в этой подыгре начальное и конечное состояния будут соответственно zo(K) = (z2, z4) и zN(K) = (zN, zN).
Рассмотрим кооперативную игру Гс =< G, L, zo,zn >. Пусть A, B - два непересекающихся подмножества множества игроков игры Гс, т. е. A С L, B С L, A П B = 0. Рассмотрим две подыгры: Г1 = ГС(А) и Г2 = Гс(B); пусть h* £ H(A), h\ е H(B) - оптимальные траектории соответствующих игр, а Si = S(h*), S2 = S(h*) - отвечающие этим траекториям значения суммарных затрат.
Рассмотрим теперь игру Г3 = rc(AuB) и ситуацию h3 = h*Uh*, h3 £ H(AuB) в ней, т. е. h-з - это траектория в игре Г3, состоящая из объединения путей, составляющих оптимальные траектории игр Г1 и Г2, а суммарные затраты, соответствующие этой траектории, равны
S (h3)= J2 с(х' ,х" )= J2 c(x',x").
(x',x")eE(h3) (x',x")eE(h*Uh*)
Если у траекторий h* и h* нет общих ребер, т. е. E(h*) U E(h*) = 0, то S(h3) = S1 + S2. Если же траектории h\ и h2 имеют хотя бы одно общее ребро, то, очевидно, S(h.3) < S1 + S2. Пусть h3 - оптмальная траектория в игре Г3. Так как h3 - это траектория, доставляющая минимальное значение суммарных затрат в игре Г3, то S(h3) ^ S(h3) ^ S1+S2. Таким образом, мы показали, что функция минимальных затрат S(h) удовлетворяет условию супераддитивности, а значит, характеристическую функцию $(K) игры Гс можно определить следующим образом:
d(K) = min S(h) = S(h*), h* £ H(K), heH(K)
т. е. значение характеристической функции §(К) для заданной коалиции К есть минимальные суммарные затраты Б (к*) соответствующей игры Гс (К), К С Ь (см. [3, 4]). Тогда для каждой коалиции К С Ь характеристическая функция §(К) будет равна функции Беллмана:
#(К ) = Ш (г0(К)).
Расширим игру Гс =< О, Ь, го,гп > следующим образом: сопоставим каждому игроку г € Ь упорядоченное множество вершин Вг = (Ь1,... ), через которые игрок г должен пройти, перемещаясь из своего начального местоположения ¿0 в конечное
местоположение Совокупность множеств В; обозначим как 23 = {В;.}, г = 1, /, а расширенную указанным способом игру - как Г =< С, Ь, ¿о, -гдг, 23 >.
Определение 3. Промежуточным состоянием в игре Г будем называть состояние ¡3^ = {Ъ\,...,Ц); ] = 1, А: (к = т.-IX /л. к,, = \Вг\), при котором каждый игрок г находится в ]-й вершине множества своих промежуточных вершин В¿, г = 1,1.
Если для какого-либо множества В,, выполняется к^ < к, то положим, что =
Л+2 _ _ ф _ Л
°г — ■ ■ ■ — — N' _
Определим характеристическую функцию в игре Г как сумму вида
1+1
д(К)=£ Ег (К),
г=1
где Ег(К) - значение характеристической функции для коалиции К в игре Гс =< О, Ь, /3.1-1, ¡Зг >, т. е. в игре, в которой начальное и конечное состояния есть соответственно (г — 1)-тое и г-тое промежуточные состояния игры Г. Таким образом, Д.ДА') - это минимальные суммарные затраты игроков, входящих в коалицию К, на переход из соответствующих местоположений промежуточного состояния [Зг-\ в соответствующие местоположения промежуточного состояния вг. При этом положим, что Е\(К) есть значение характеристической функции г)(К) в игре Гс =< С, Ь, га, /3\ >, а Щ+1(К) -в игре Гс =< С, Ь, /Здг, гдг >• Ясно, что функция $(К), будучи суммой супераддитивных функций, также является супераддитивной. Заметим, однако, что величины характеристической функции, построенной указанным способом, вообще говоря, не являются минимальными суммарными затратами игроков. Покажем это на следующем примере.
Рассмотрим игру Г двух лиц на сети, граф которой изображен на рис. 2.
Рис. 2. Граф сети О Рис. 3. Оптимальная траектория
Здесь начальное состояние zo = (1,3), конечное состояние zn = (6,7), B = (B1,B2), B1 = {2,4}, B2 = {5}, т. е. первый игрок должен попасть из вершины 1 в вершину 6, при этом его путь должен пройти последовательно через вершины 2 и 4, а второй игрок - из вершины 3 в вершину 6 через вершину 5. Согласно определению 3, промежуточными в этой игре будут два состояния: ß1 = (2, 5) и ß2 = (4, 7). Найдем значение характеристической функции для коалиции L = {1, 2}: $(L) = R1 + R2 + R3 = (с(1, 2) + с(3, 5)) + (с(2,4) + с(5, 7)) + (с(4, 6) + с(7, 7)) = 9. Пути игроков изображены на рисунке жирными линиями.
Покажем теперь, что полученная величина характеристической функции $(L) больше, чем минимальные суммарные затраты на переход игроков из коалиции L.
Так, если бы первый игрок выбрал путь p1 = {(1, 2), (2,4), (4, 7)}, а второй игрок -путь p2 = {(3, 2), (2,4), (4, 5), (5, 7)} (пути выделены на рис. 3 жирными линиями), то при этом ребро (2, 4) входило бы в пути обоих игроков, его стоимость входила бы в суммарные затраты только один раз, а суммарные затраты игроков были бы равны S = с(1, 2) + с(2, 4) + с(4, 6) + с(3, 2) + с(4, 5) + с(5, 7) = 8. Нахождение вида характеристической функции, значение которой равно минимальным суммарным затратам, представляется темой дальнейшего исследования.
Определив характеристическую функцию в игре Г, перейдем к вопросу распределения затрат между игроками. В качестве принципа оптимальности выберем вектор Шепли. Пусть а = (Ф($)1,..., Ф($);) - вектор Шепли распределения затрат между игроками, каждая компонента Ф($)г которого есть значение затрат, который несет г-й игрок. Как известно, Ф($)г определяется следующим образом:
ф(*), = Е - т\ {<»).
KCL
4. Пример. Рассмотрим игру трех лиц Г =< G, L, zo, zn, Ъ >, граф которой изображен на рис. 4. Начальное состояние сети zo = (1, 2, 3), zN = (24, 25, 26), B = (B1, B2, B3), B1 = 10, B2 = 11, B3 = 12. Таким образом, первый игрок перемещается из вершины 1 в вершину 24 через вершину 10, второй игрок - из вершины 2 в вершину 25 через вершину 11, третий игрок - из вершины 3 в вершину 26 через вершину 12.
На рис. 4 жирными линиями выделены пути игроков, действующих индивидуально. Путь каждого из игроков есть оптимальная траектория в кооперативной подыгре игры Г, в которой коалиция L состоит из единственного игрока, а стоимость этого пути -соответственно значение характеристической функции для данной коалиции. Стоимости путей каждого из игроков, а также суммарная стоимость траектории приведены в табл. 1.
Таблица 1. Пути игроков, действующих индивидуально
Игрок г Путь pi Затраты (¿>i + ¿>2)
1 (1, 3), (3, 6), (6, 10), (10, 13), (13, 17), (17, 21), (21, 24) 8+ 11 = 19
2 (1, 4), (4, 8), (8, 11), (11, 14), (14, 18), (18, 22), (22, 25) 8+ 13 = 21
3 (2, 5), (5, 9), (9, 12), (12, 16), (16, 20), (20, 23), (23, 26) 5 + 15 = 20
Суммарные затраты......................................... 60
Рассмотрим теперь случай коалиции, состоящей из всех игроков, т. е. когда игроки действуют сообща (рис. 5). В таком случае затраты каждого игрока на переход из начальной вершины в конечную равны соответствующему значению компоненты вектора
Рис. 4. Пути игроков, действующих индивидуально
Шепли. Пути игроков в этой ситуации, а также величины компонент вектора Шепли для каждого из игроков приведены в табл. 2.
Таблица 2. Пути игроков из коалиции Ь = {1, 2, 3} и значения вектора Шепли
Игрок г Путь ¡и Ф(1?)г
1 (1,4), (4,7), (7, 10), (10, 14), (14, 19), (19,22), (22, 24) 15.6
2 (1,4), (4,7), (7, 11), (11, 14), (14, 19), (19,22), (22, 25) 16.3
3 (2, 5), (5, 9), (9, 12), (12, 15), (15, 19), (19, 22), (22, 26) 19.1
Суммарные затраты......................................... 51
Рис. 5. Траектория коалиции Ь
5. Заключение. Построенный в работе алгоритм позволяет находить более эффективные решения игр на сетях, а введение кооперативной игры дает возможность эффективно разделить затраты между игроками.
Литература
1. Беллман Р. Е. Динамическое программирование / пер. с англ. И. М. Андреевой. М.: Изд-во иностр. лит., 1960. 400 с.
2. Карпов М. И., Петросян Л. А. Минимизация затрат в транспортной сети // Процессы управления и устойчивость: Труды 42-й междунар. науч. конференции аспирантов и студентов / под ред. А. С. Еремина, Н. В. Смирнова. СПб.: Издат. Дом С.-Петерб. гос. ун-та, 2011. С. 508—513.
3. Avrachenkov K., Elias J., Martignon F., Neglia G., Petrosyan L. A Nash bargaining solution for Cooperative Network Formation Games // NETWORKING. 2011. Pt I. LNCS 6640. P. 307-318.
4. Karpov M. I., Petrosyan L. A. The Game-Theoretical Model of Cost Allocation in Communication Network // Game Theory and Management: collected abstracts. SPb.: Graduate School of Management St. Petersburg University, 2011. P. 116.
Статья принята к печати 21 июня 2012 г.