Научная статья на тему 'Разработка и анализ высокопроизводительных параллельных алгоритмов решения кооперативных игр'

Разработка и анализ высокопроизводительных параллельных алгоритмов решения кооперативных игр Текст научной статьи по специальности «Математика»

CC BY
481
68
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТЕОРИЯ ИГР / КООПЕРАТИВНЫЕ ИГРЫ / ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ / GAME THEORY / COOPERATIVE GAMES / THE PARALLEL ALGORITHM

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

В работе рассматривается подход к решению вычислительно-сложной задачи построение оптимальной коалиции и распределение выигрыша в кооперативной игре заданной множеством биматричных игр для п игроков с помощью решения стратегических игр и использованием параллельных вычислительных технологий.

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

Похожие темы научных работ по математике , автор научной работы — Нестеренко Максим Юрьевич, Кириллов А. С.

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

DEVELOPMENT AND ANALYSIS OF HIGH PERFORMANCE PARALLEL ALGORITHMS FOR SOLVING COOPERATIVE GAMES

An approach to solving computationally complex problems construction of an optimal coalition and distribution of the profit in a cooperative game of a given set of bimatrix games for n players with solving strategic games and the use of parallel computing technologies is discussed in paper.

Текст научной работы на тему «Разработка и анализ высокопроизводительных параллельных алгоритмов решения кооперативных игр»

УДК 519.834:519.6

РАЗРАБОТКА И АНАЛИЗ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ РЕШЕНИЯ КООПЕРАТИВНЫХ ИГР

М.Ю. Нестеренко, А.С. Кириллов

DEVELOPMENT AND ANALYSIS OF HIGH PERFORMANCE PARALLEL ALGORITHMS FOR SOLVING COOPERATIVE GAMES

M.U. Nesterenko, A.S. Kirillov

В работе рассматривается подход к решению вычислительно-сложной задачи - построение оптимальной коалиции и распределение выигрыша в кооперативной игре заданной множеством биматричных игр для п игроков с помощью решения стратегических игр и использованием параллельных вычислительных технологий.

Ключевые слова: теория игр, кооперативные игры, параллельный алгоритм.

An approach to solving computationally complex problems - construction of an optimal coalition and distribution of the profit in a cooperative game of a given set of bimatrix games for n players with solving strategic games and the use of parallel computing technologies is discussed in paper.

Keywords: game theory, cooperative games, the parallel algorithm.

1. Актуальность

Возросшие запросы производства и экономики, развитие информационных систем и технологий предъявляют все большие требования к процессу принятия решений и управления в различных областях человеческой деятельности. При создании систем поддержки принятия решений активно используется аппарат теории игр. При этом очень актуальна проблема разработки эффективных алгоритмов для поиска оптимальных стратегий в игровых моделях. На практике требуется, чтобы алгоритмы были способны обрабатывать большое количество информации в режиме реального времени.

Среди направлений теории игр особое место занимают кооперативные игры, например, в разработке оптимальных стратегий производства, безопасности систем, эффективной ценовой политики и др. В кооперативных играх игроки имеют возможность принимать совместные решения и, в некоторых случаях, перераспределять выигрыши между собой. В кооперативной игре задаются возможности и предпочтения различных групп игроков (коалиций), для которых строятся оптимальные стратегии и задаются распределения между ними суммарных выигрышей. Результатом решения кооперативной игры являются оптимальная коалиция, в которую следует вступить игрокам, их оптимальные смешанные стратегии и выигрыш коалиции. Особого внимания заслуживают задачи игрового моделирования. Примером подобной задачи может быть моделирование конкурентного рынка в различных отраслях, где игроки имеют возможность объединяться в коалиции, конкурировать за соответствующие ниши рынка.

Разработка параллельных алгоритмов для решения задач теории игр - новое направление в алгоритмической теории игр. На сегодняшний день имеются лишь единичные публикации в этой области, например работы Уиджера и Гросу для некооперативных игр [1, 2, 3]. Для решения кооперативных игр параллельные алгоритмы пока не разработаны.

Существуют различные способы решения кооперативных игр, например: решение на основе функции полезности Неймана - Моргенштерна, решение игры в виде С-ядра и в стратегиях угроз, однако эти подходы не определяют оптимальных стратегий игроков внутри коалиций. А решение игры в виде С-ядра дает целое множество допустимых решений, не определяя оптимального решения. Кроме того, эти подходы рассматривают кооперативные игры на основе характеристических функций и опускают способы получения значений характеристической функции, что само по себе является отдельной и трудоемкой задачей.

Как видно, решение задач кооперативных игр процесс трудоемкий, и с увеличением числа игроков, трудоемкость решения задачи только повышается [4].

2. Понятие кооперативной игры

Кооперативной игрой [4, 5, 6, 7, 8, 9] п лиц называется игра вида Г = (Ы,ь), где N = {1,2,..., п} - множество игроков, которым разрешено вести переговоры и объединяться в коалиции, а V : 2^ -» Я - характеристическая функция, определяющая наибольший уверенно получаемый выигрыш у(К) для каждой возможной коалиции К С N [7].

3. Алгоритм решения кооперативной игры, заданной биматричными играми

Обозначим через N множество всех игроков, N = {1,2, ...,п}, а через К - любое его подмножество. Пусть игроки из К договариваются между собой о совместных действиях и, таким образом, образуют одну коалицию. Образовав коалицию, множество игроков К действует как один игрок против остальных игроков, и выигрыш этой коалиции зависит от применяемых стратегий каждым из п игроков.

Функция V, ставящая в соответствие каждой коалиции К наибольший, уверенно получаемый ею выигрыш ь(К), называется характеристической функцией игры [4]. Всего значений характеристической функции может быть 2П, по количеству коалиций, причем коалиция с номером 0 является пустой коалицией, т.е. состоящей из пустого множества игроков, и ее выигрыш по условию всегда равен нулю.

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

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

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

Назовем систему Г = (./V, В), состоящую из множества игроков N и набора биматричных игр В = {Вху. х Е .ЛГ, у £ И, х ф у}, кооперативной игрой на основе биматричных игр. Для решения такой игры необходимо иметь или составить исходный набор биматричных игр.

Легко увидеть, набор биматричных игр будет состоять из п ■ (п — 1) матриц, как набор размещений из п по 2,

Оговоримся сразу, что количество стратегий всех игроков одинаково и равно к, в противном случае можно добавить пустые «фиктивные» стратегии.

Набор биматричных игр В строится исходя из исходных данных задачи для каждой пары игроков ж, у £ N в виде матрицы размера к х к:

где элементы матрицы hj(i,j = 1, /г) — выигрыши игрока х, при выборе игроком х стратегии г, в игре с игроком у, при выборе игроком у стратегии j.

Согласно [4,8,10], характеристическая функция для коалиции S определяет максимальный уверенно получаемый ею выигрыш. Следовательно, для вычисления этого выигрыша целесообразно считать оставшуюся часть игроков, не входящих в S, в первом приближении антагонистически настроенными и действующими совместно. В результате чего получаем матричную игру Asp коалиции S С N и антикоалиции Р = N — S = {р G N,p S}, которая строится на основании биматричных игр.

При этом выигрыш коалиции S в этой матричной игре будет равен значению характеристической функции для данной коалиции S. При решении игры в смешанных стратегиях v — v — v(S) = \Asp\, где IAspI - решение матричной игры А$р в смешанных стратегиях.

Матрицы матричной игры Asp коалиции S в игре с остальными участниками будет иметь размер:

где к - количество стратегий одного игрока, а т- количество игроков в текущей коалиции. Такой размер матриц обусловлен тем, что матрицы А$р строятся на основании комбинированных стратегий коалиций 8. Матрицы матричной игры будут иметь следующий вид:

где Оу - выигрыш игроков коалиции 8 в игре с антикоалицией Р, причем i и j - комбинированные стратегии коалиций. Элемент вычисляется по следующему алгоритму:

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

где Су + 1(у = 1,т ~ стратегия и-го игрока коалиции 5).

2) из номера комбинированной стратегии антикоалиции Р равного j отнимают 1 и переводят из десятичной системы счисления в систему счисления по основанию к, получившееся число имеет вид:

(Ьц Ь\2 ... bik^ 621 &22 ■ • • Ь2к

\hi h2 Ькк/

кт х kn~~m

( an 012 021 «22

CL-у fan —m

■Asp =

при 0 < m < n,

yafcml Ofcm2 . . . Q,fcmfcn — m J

(* l)lO — (CmCm— 1 ' ' ’ Cl)kh

(j l)lO — {Сп-т^п-т—1 ' ' ' Cl)fcM

где сш + 1(го = 1,п — т- стратегия ад-го игрока антикоалиции Р.

3) на основании найденных стратегий каждого игрока для игровой ситуации (г,^') находят значение выигрыша коалиции в при игре против антикоалиции Р:

ац= X] Ьсхсу + ьСхСу-

Ьсхсу еВху ,х,у£в,хфу ЬСхсу еВху ,хеБ,уеР

Для решения матричной игры, в основном, используют задачу линейного программирования [4, 8].

В результате решения матричной игры получаем значение V, которое будет равно значению характеристической функции V(5') для коалиции 5. После получения характеристической функции необходимо проверить игру на существенность, для чего необходимо проверить, удовлетворяет ли полученная характеристическая функция свойству супераддитивности: \/К, Б С ЫК П Б = 0 =Ф- у(К и в) > ь(К) + у(3).

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

Существует несколько способов решения кооперативных игр и получения дележа: С-ядро, решение Неймана - Моргенштерна и вектор Шепли.

С-ядро [4, 5] представляет собой множество недоминируемых дележей кооперативной игры. Оно устойчиво к отклонениям любой коалиции игроков.

Однако множество может быть пустым, тогда соответствующая кооперативная игра не будет иметь решения в рамках понятия С-ядра.

С-ядро в кооперативной теории представляет собой основной множественный принцип оптимальности. Однако остается проблема выбора подходящего дележа в каждом конкретным случае. Также С-ядро на практике часто оказывается пустым [4], поэтому были предложены другие методы решения кооперативной игры.

НМ-решение [5, 6]. НМ-решение кооперативной игры - результат работы ученых Дж. фон Неймана и О. Моргенштерна [10]. Они предложили в качестве решения рассматривать множество подмножеств дележей, обладающих определенными свойствами, каждое из них носит название НМ-решения.

НМ-решение обладает внутренней и внешней устойчивостью. Внутренняя устойчивость обеспечивается равноправностью его дележей, т.е. невозможностью найти пару дележей, чтобы один из них доминировал над другим. Смысл внешней устойчивости в том, что произвольный дележ, не принадлежащий НМ-решению, доминируется дележом из НМ-решения.

Заметим, что если игра сбалансирована, то НМ-решение содержит в себе в качестве подмножества С-ядро [5].

Существуют игры, не имеющие НМ-решения, но чаще всего кооперативные игры имеют огромное количество НМ-решений. Трудоемкость нахождения ограничивает их практическое использование.

Также имеет место проблема совместного выбора участниками одного из нескольких НМ-решений, в рамках которого будет определяться вектор распределения выигрыша. Это ограничивает возможность применения данного подхода.

Вектор Шепли [4, 5, 7] - принцип оптимальности распределения выигрыша между игроками в задачах теории кооперативных игр. Представляет собой вектор дележа <£>[и], в котором выигрыш каждого игрока равен его среднему вкладу в благосостояние коалиции при определенном механизме ее формирования.

Одним из недостатков вектора Шепли является то, что он не является селектором С-ядра в общем случае, хотя обеспечивает справедливое (в смысле эффективного вклада участников) распределение выигрыша.

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

4. Параллельный алгоритм решения кооперативной игры, заданной биматричными играми

На основании вышесказанного нами разработан параллельный алгоритм решения кооперативной игры, заданной набором биматричных игр, с использованием технологии МР1.

Суть разработанного параллельного алгоритма состоит в следующем.

Каждым процессом выполняется считывание матриц, задающих биматричные игры, причем биматричные игры задаются в виде набора текстовых файлов, при этом нумерация файлов идет от 1 до п ■ (п — 1): номер 1 соответствует набору игроков (1, 2), номер 2 соответствует (1, 3) и т.д. до п ■ (п — 1), который соответствует набору (п,п — 1).

После прочтения исходных данных каждый процесс вычисляет свой диапазон коалиций, с которыми он будет в дальнейшем работать. Для каждой коалиции из своего диапазона процесс формирует матричную игру по алгоритму, описанному выше, и решает полученную матричную игру с помощью симплекс-метода. Номера игроков, входящих в коалицию, определяются по номерам позиций единичных элементов двоичного представления порядкового номера коалиции.

Как только все процессы закончат расчет на своих диапазонах, результаты отсылаются нулевому процессу, который затем проверяет игру на существенность, и, если игра существенна, то вычисляется дележ по Шепли. Затем все результаты записывается в выходной файл.

Схема работы параллельного алгоритма представлена на рис. 1.

Исходные данные

Процесс 0 Процесс п-1

Чтение исходных данных Чтение исходных данных

Определение рабочего диапазона Определение рабочего диапазона

Формирование матричной игры • » • Формирование матричной игры

Решение матричной игры Решение матричной игры

Общий сбор результатов со всех процессов ка нулевой процесс

Проверка игры на существенность Завершение работы

Расчет вектора Шепли

Вывод результатов —► Результат

Рис. 1. Схема работы параллельного алгоритма

Тестирование разработанного параллельного алгоритма производилось на вычислительном кластере Оренбургского Государственного Университета, состоящего из следующих компонентов:

- головного узла (мастера) на базе двух процессоров 1п1е1 Хеоп 3.2 ГГц, оперативной памятью 2 Гб и дисковым пространством 750 Гбайт;

- шести двухпроцессорных вычислительных узлов на базе 1гйе1 Хеоп 3.2 ГГц, оперативной памятью 2 Гб и дисковым пространством 80 Гбайт (всего 12 вычислительных ядер);

- четырех двухпроцессорных вычислительных узлов на базе четырехъядерных процессоров Intel Хеоп 5440, оперативной памятью 16 Гб и дисковым пространством 320 Гбайт (всего 32 вычислительных ядра).

Все узлы объединены вычислительной сетью Infiniband со скоростью 10 Гбит/с и управляющей сетью Ethernet со скоростью 1 Гбит/с. Суммарная пиковая производительность кластера составляет 451,6 GFLOP/s.

На кластере установлено следующее системное программное обеспечение:

- операционная система SUSE Linux 11;

-дистрибутивы MPI: OpenMPI 1.3.2, Mvapich2-0.9.8p3;

- компиляторы: GNU GCC 4.3.2, Intel C/C++/Fortran 11.0;

- менеджер ресурсов Torque-2.3.6.

Для запуска тестовых задач использовалось четыре двухпроцессорных вычислительных узла на базе процессоров Intel Хеоп 5440, на каждом узле использовалось только два ядра. Такая методика тестирования была связана с тем, что решаемая задача кооперативных игр очень требовательна к объему оперативной памяти, и для каждого экземпляра задачи выделялось до 6 Гб памяти. Тестирование разработанного алгоритма производилось после-

Рис. 2. График зависимости времени работы программы от количества процессоров и количества стратегий для пяти игроков

довательно для 4, 5, 6, 7 и 8 игроков, при этом каждый игрок имел 4, 5, 6, 7 и 8 стратегий. Для каждой задачи формировался произвольный набор исходных данных. Полученный набор исходных данных затем решался последовательно на 1, 2, 4 и 8 процессорах, при этом замерялось время выполнения каждой задачи.

Как видно из графиков, представленных на рис. 2, 3, 4 и 5, не удалось добиться приемлемого масштабирования разработанного параллельного алгоритма.

Это, прежде всего, связано с тем, что формирующиеся матричные игры требуют различного времени решения и нет сбалансированного метода распределения матричных игр по

0,8

и 4 стратегии 7 5 стратегии 6 стратегий 7 стратегий 8 стратегий

— 4- 2 ядра 0,615847543 0,565479177 0,669699499 0,658676894 0,692511753

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

~Ш - 4 ядра 0,336992316 0,38229308 0,417429761 0,534584126 0,494092844

8 ядер 0,036934552 0,145833333 | 0,240786315 0,326383024 0,287441223

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

о !- | 4 стратегии 5 стратегий б стратегий \ 7 стратегий 8 стратегий

— 1 0,5717 2,8744 30,7895 187,4967 1755,5704

-Ш -2 0,4173 >,2582 25,0761 145,6267 1266,913

«—4 0,3315 1,5705 21,04 101,4809 1306,8114

0,2452 1,1176 13,0794 75,4896 1275,1027

Рис. 4. График зависимости времени работы программы от количества процессоров и количества стратегий для шести игроков

процессам, для равномерного распределения нагрузки на процессы. Причем, существенно на размер матричной игры и, соответственно, на время решения задачи влияет количество

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

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

Однако, в среднем, эффективность разработанного параллельного алгоритма (отношение времени работы последовательного алгоритма к произведению времени работы параллельного алгоритма и количества процессов) составляет порядка 40 %.

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

Работа выполнена при финансовой поддержке Министерства образования и науки Российской Федерации в рамках реализации ФЦП «Научные и научно-педагогические кадры инновационной России»на 2009-2013 гг., номер контракта 14-740.11.0689.

Статья рекомендована к публикации программным комитетом международной научной конференции <Параллельные вычислительные технологии 2011>.

Литература

1. Grosu, D. Computing Equilibria in Bimatrix Games by Parallel Support Enumeration / D. Grosu, J. Widger //In Proceedings of the 2008 international Symposium on Parallel and Distributed Computing (July 01 - 05, 2008). ISPDC. IEEE Computer Society. - Washington, 2008. - P. 250 - 256.

2. Grosu, D. Computing Equilibria in Bimatrix Games by Parallel Vertex Enumeration / D. Grosu, J. Widger // Parallel Processing, 2009. ICPP ’09. International Conference (22 -25 Sept. 2009). - P. 116 - 123.

3. Grosu, D. Parallel Computation of Nash Equilibria in N-Player Game / D. Grosu, J. Widger // Computational Science and Engineering, IEEE International Conference. - 2009. -P. 209 - 215.

4. Крушевский, А.В. Теория игр / А.В. Крушевский. - Киев.: Вища Шк., 1977.

5. Губко, М.В. Управление организационными системами с коалиционным взаимодействием участников / М.В. Губко. - М.: ИПУ РАН (научное издание), 2003.

6. Губко, М.В. Теория игр в управлении организационными системами / М.В. Губко, Д.А. Новиков. - Изд. 2-е. - М., 2005.

7. Данилов, В.И. Лекции по теории игр / В.И. Данилов. - М.: Рос. экон. шк., 2002.

8. Оуэн, Г. Теория игр / Г. Оуэн. - М.: Мир, 1971.

9. Шеллинг, Т. Стратегия конфликта / Т. Шеллинг. - М.: ИРИСЭН, 2007.

10. Нейман, Д. Теория игр и экономическое поведение / Д. Нейман, О. Моргенштерн. - М.: Наука, 1970.

Нестеренко Максим Юрьевич, кандидат технических наук, доцент, кафедра «Математическое обеспечение информационных систем», Оренбургский государственный университет, n_mu@mail.ru.

Кириллов Алексей Сергеевич, аспирант, кафедра «Администрирование информационных систем», Оренбургский государственный университет, alexey.s.kirillov@gmail.com.

Поступила в редакцию 2 марта 2011 г.

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