1 Перечень условных обозначений 2
2 Введение 4
2.1 Мотивация 8
2.2 Правила игры и постановка задачи 9
3 Некоторые факты о полицейском числе 11
4 Построение алгоритмов уклонения 13
4.1 Простейшее уклонение методом потенциалов 13
4.2 Улучшение алгоритма для некоторых частных случаев ... 18
4.3 Сопряженный алгоритм (для полицейских) 20
5 Моделирование C&R на JavaScript 22
5.1 Визуальное моделирование 22
5.2 Консольное приложение 24
6 Оценка эффективности пар алгоритмов с помощью эмпирического полицейского числа 27
7 Заключение 32
Список литературы 33
В данной работе рассматриваются один из частных случаев задачи поиска на графах — игра «полицейские и грабитель». Здесь и далее вместо «полицейские и грабитель» будет использоваться англоязычное сокращение C&R (cops and robber).
Впервые определение игры C&R было дано в работе Winkler & Nowakowski [NW83], там рассматривался только случай с одним полицейским, и независимо Alain Quilliot.
В наиболее общем случае C&R можно описать как класс пошаговых игр на графах, в которых два игрока в каждый момент времени занимают некоторое множество вершин своими фишками, и один из двух игроков (играющий за полицейских) своими ходами (передвижениями фишек) «преследует» другого (грабителя) и пытается его «поймать». Количество фишек игроков, их начальная растановка, процесс преследования, правила захвата грабителя и прочее зависит от конкретных правил игры.
Наиболее распространённые правила (и в то же время наиболее простые) можно кратко описать так:
у грабителя 1 фишка, у полицейских — несколько. В начале игры игроки расставляют свои фишки в выбранные ими вершины и далее по очереди передвигают их вдоль рёбер графа, пока грабитель не будет пойман. Если игра не заканчивается за конечное количество ходов, то победа присуждается грабителю. Для избежания путаницы с другими возможными правилами, эта вариация игры называется в работе простой C &Я-игрой.
Кроме простой C&R-ugpbi существует довольно много её разновидностей, однако большинство из них лишь немного дополняют её правила. Вот некоторые примеры модификаций игры C&R:
1. Игра с «быстрыми» грабителями и/или полицейскими (т.е. игрок может передвигать свои фишки вдоль нескольких рёбер за один ход)
2. Игра с неполной информацией (полицейские и грабитель имеют определённый «радиус видимости»)
3. Игра с «радиусом захвата» (полицейские захватывают грабителя па растояпии)
4. «Стреляющий» грабитель (и/или полицейские)
В статье [XS14] содержится более полный список модификаций игры, а также описания их правил и для некоторых из них доказываются содержательные теоремы (в частности там доказывается несколько утверждений про игру с быстрым грабителем).
Рис. 1: Пример C&Д-игры с двумя полицейскими и одним грабителем па случайно сгенерированном связном пеориептироваппом графе.
В данной работе будет рассматриваться наиболее простая вариация игры — простая C&Д-игра.
В этой работе для простой C&Д-игры строятся некоторые эмпирические алгоритмы («потспциальпый алгоритм») для уклонения и поимки грабителя («сопряженный алгоритм»), а также для них даются некоторые числовые характеристики («эмпирическое полицейское число»).
Построенный в работе «потспциальпый алгоритм» не является универсальным решением задачи, однако, он может оказаться пригодным в некоторых частных случаях. В частности, в работе показывается работоспособность алгоритма в наиболее простых случаях: циклы, деревья, сетки, графы с некоторыми другими характеристиками вершин и минимальных циклов, и т.п. В работе также численными методами строятся некоторые статистики для случайно сгенерированных графов.
В рамках работы разработано приложение, моделирующее поведение полицейских и грабителей. Приложение состоит из трёх частей: основной модуль — game.js (программа, написанная па языке JavaScript), и два фроптепда: веб-страничка index.html, используемая для наглядной визуализации игры, и модуль для запуска программы в консольном режиме ng. js.
Рис. 2: Пример работы программы: визуализация C&R на тессеракте.
При запуске в визуальном режиме программа генерирует граф (либо случайный, либо один из выбранных частных случаев) и даёт возможность пользователю делать ходы за полицейского. Ходы за грабителя делаются по упомянутому выше потенциальному алгоритму. У пользователя есть возможность тестировать «двойственный алгоритм» полицейских, нажимая кнопку «автоход».
В консольном режиме программа запускается посредством утилиты node.js. Консольный режим используется для построения статистик численным методом (т.е. для запуска большого количества игр на случайно сгенерированных графах и подведения статистик).
2.1 Мотивация
На данный момент существуют точные алгоритмы для поимки грабителя в C&Д-игре лишь в некоторых частных случаях. Так, например, в [NW83] рассматривается случай одного полицейского и строится необходимое и достаточное условие существования алгоритма для поимки грабителя (которое даёт ключ к построению алгоритма).
В работе [AF84] рассматривается способ поимки грабителя двумя полицейскими с помощью контроля каждым из полицейских одного наикратчайшего пути (на графах, на которых это возможно). Так, например, в случае сетки достаточно двух полицейских: один контролирует строку, другой — столбец. Поочерёдно сдвигая контролируемые столбцы и строки, грабитель прижимается в угол и там захватывается.
Однако, способ предлагаемый в [AF84] не может быть использован в общем случае. Столкнувшись с задачей C&R-игр, мне в первую очередь стало интересно, как могли бы выглядеть алгоритмы уклонения или поимки грабителя, работающие пусть и не точно, но в какой-то степени эффективно на произвольных графах и с произвольным количеством полицейских.
В этой работе строятся эмпирические алгоритмы для построения стратегий поимки и уклонения грабителем.
2.2 Правила игры и постановка задачи
Как уже упоминалось в введении, существует огромное множество вариаций игры «полицейские и грабитель». Дадим детальное описание наиболее простой вариации:
Определение 1. Простая C&Я-игра.
Пусть, дан связный неориентированный граф G = G(V,E), где V — множество вершин графа, a E — множество его рёбер. В игре два участника. Первый из них играет за полицейских, второй — за грабителя. Для краткости в некоторых случаях для обозначения игроков будут использоваться сокращения C (cops — полицейские), R (robber — грабитель). У C имеется k фишек, а у R — одна (число фишек у каждого из игроков в течение игры не меняется). От начала и до конца игры оба игрока полностью видят текущее состояние игры, т.е. это игра с полной информацией. Игроки делают ходы по очереди.
В первый ход, основываясь только на графе G, C расставляет свои фишки C = (ci,..., ck), тдр с-1, ...,ck 2 V в произвольные вершины графа.
Во второй ход, основываясь на графе G и расположении фишек соперника, R выбирает произвольную вершину r 2 V для своей фишки. Во все последующие ходы игроки двигают свои фишки вдоль рёбер графа. За свой ход C может подвинуть все свои фишки, a r только свою единственную. Допустимым также считается оставить одну или несколько фишек на месте. Две или более фишек C могут занимать одну и ту же вершину. Игра заканчивается в момент, когда хотя бы одна из а оказывается равной г, т.е. когда один из полицейских оказывается на той же вершине, что и грабитель. Если грабитель был пойман, то победа присуждается полицейским. Если игра не заканчивается за конечное количество ходов, то победа присуждается грабителю.
Определение 2. Стратегия, Sr для, R есть пара (IR, aR) где IR 2 V начальная позиция грабителя, и aR : Vk х V ! V — функция, которая сопоставляет новую позицию грабителя г’ каждой конфигурации игры S = (ci,...,cfc,r) 2 Vk х V.
Определение 3. Стратегия для, C — есть пара SC = (IC,aC), где IC 2 Vk начальные позиции k полицейских, и aC : Vk х V ! Vk функция, которая сопоставляет новые позиции полицейских (c/1,...,c/k) каждой конфигурации игры S = (c1,..., ck, r) 2 Vk х V
Определение 4. Полицейское число (сор number) cn(G) связного графа есть минимальное количество полицейских необходимое для достоверной поимки R в независимости от поведения R Полицейским числом несвязного графа будем называть сумму полицейских чисел его компонент связности.
Заметим, что полицейское число является характеристикой графа и не зависит от стратегий игроков.
В данной работе ставится задача построения алгоритмов уклонения для грабителя при cn(G) > |C|.
Результатом данной работы стали пара алгоритмов для грабителя и полицейских. Алгоритмы были протестированы для многомерных графов- сеток. Кроме того, был указан способ «бесплатного» построения алгоритма для полицейских, в случае наличия функции оценки позиции для грабителя (в частности, в случае наличия потенциального алгоритма). В работе вводится понятие «эмпирического полицейского числа», позволяющее давать оценку относительной эффективности пар алгоритмов (или стратегий), что продемонстрировано на примере пар потенциального и дуального алгоритмов.
Другим результатом работы стало приложение, предоставляющее удобный пользовательский и программный интерфейс для экспериментов, связанных с C&R (а также удобный способ демонстрации). Данное приложение публикуется вместе с этой работой.
Построенные в данной работе программные средства и алгоритмы нельзя воспринимать как конечную цель. Автор видит широкие возможности для дальнейшей работы. Так использованный в процессе построения статистик алгоритм содержит большое количество эмпирических параметров. Эти эмпирические параметры, возможно, имеет смысл находить генетическим алгоритмом или с помощью нейронных сетей. Кроме того, в работе построены только самые простые статистики, в то время как потенциал программы позволяет строить множество «тонких» статистик.
[AF84] Martin Aigner and Michael Fromme. A game of cops and robbers, Discrete Appl. Math. 8 (1984), no. 1, 1-11. MR 739593 (85f:90124)
[BB12] William Baird, Anthony Bonato MeynieTs conjecture on the cop number: a survey, Journal of Combinatorics Volume 0, Number 0 (2012), 1-8
[Fra87a] Peter Frankl Cops and robbers in graphs with large girth and cayley graphs, Discrete Applied Mathematics, 17 (1987), 301-305.
[NS14] Nicolas Nisse. Algorithmic Complexity Between Structure and Knowledge.How Pursuit-evasion Games help, HDR Univ. Nice Sophia Antipolis, CNRS, I3S, UMR 7271, Sophia Antipolis, France, (May 26th 2014), 1-43
[NW83] Richard J. Nowakowski and Peter Winkler. Vertex-to-vertex pursuit in a graph. Discrete Mathematics, 43 (1983), 235-239.
[SchOl] Bernd S. W. Schroder The copnumber of a graph is bounded by |_3genus(g') + 3_|, Categorical perspectives, Trends in Mathematics (2001), 243-263