Реконфигурация токена - Token reconfiguration

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

Учитывая график , начальное состояние токенов определяется подмножеством вершин графа; позволять . Перемещение токена из вершины к вершине является действительный если и соединены путем в не содержащий других токенов; обратите внимание, что расстояние, пройденное внутри графа, несущественно, и перемещение токена через несколько ребер последовательно считается одним движением. Желаемое конечное состояние определяется как другое подмножество . Цель состоит в том, чтобы минимизировать количество допустимых ходов для достижения конечного состояния из начального состояния.[1]

Мотивация

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

Сложность

Калинеску, Думитреску и Пах показали несколько результатов, касающихся как оптимизации, так и аппроксимации этой задачи на различных типах графов.[2]

Оптимизация

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

Набросок оптимального алгоритма для деревьев выглядит следующим образом. Во-первых, мы получаем алгоритм, который перемещает каждый узел ровно один раз, что может быть неоптимальным. Сделайте это рекурсивно: рассмотрите любой лист наименьшего дерева в графе, содержащий как начальное, так и желаемое множества. Если лист этого дерева есть в обоих, удалите его и выполните рекурсию вниз. Если лист находится только в начальном наборе, найдите путь от него к вершине в желаемом наборе, который не проходит через какие-либо другие вершины в желаемом наборе. Удалите этот путь (это будет последний ход) и спуститесь вниз. Другой случай, когда лист находится только в желаемом множестве, является симметричным. Чтобы расширить алгоритм, который достигает оптимума, рассмотрите любой токен как в начальном, так и в желаемом наборе. Если при его удалении граф разбивается на поддеревья, все из которых имеют одинаковое количество элементов из начального и желаемого наборов, сделайте это и выполните рекурсию. Если такого жетона нет, то каждый жетон должен переместиться ровно один раз, поэтому решение, которое перемещает все жетоны ровно один раз, должно быть оптимальным.

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

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

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

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

Приближение

Проблема реконфигурации токена APX-полный, что означает, что в некотором смысле ее так же сложно аппроксимировать, как любую задачу, имеющую постоянный коэффициент алгоритм аппроксимации. Уменьшение такое же, как указано выше, из обложки набора. Однако проблема набора покрытий ограничивается подмножествами размером не более 3, что является сложной проблемой для APX.[3]

Используя ту же структуру, что и выше, мы получаем L-редукция, поскольку расстояние любого решения от оптимума равно между заданным экземпляром покрытия и задачей реконфигурации преобразованного токена. Единственное изменение - это добавление количества элементов во вселенной. Кроме того, оптимальное покрытие набора составляет не менее 1/3 числа элементов из-за ограниченного размера подмножества. Таким образом, константы из L-редукция находятся .

Фактически, можно изменить сокращение, чтобы оно работало и для реконфигурации помеченного токена. Для этого присоедините новую вершину к каждой из вершин подмножества, которая не является ни начальной, ни желаемой вершиной. Обозначьте вершины длинного пути от 1 до , и сделаем то же самое для вершин элементов. Теперь решение состоит в «отодвигании» каждой выбранной лексемы вершины подмножества, правильном размещении помеченных вершин из пути и возвращении жетонов вершин подмножества в исходные местоположения. Это L-редукция с .

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

Рекомендации

  1. ^ Демейн, Эрик (осень 2014 г.). «Алгоритмические нижние границы: развлечения с доказательствами твердости, лекция 11, примечания» (PDF).
  2. ^ Калинеску, Грюя; Думитреску, Адриан; Пах, Янош (2006). Реконфигурации в графах и сетках. ЛАТИН 2006: Теоретическая информатика, 7-й латиноамериканский симпозиум, Вальдивия, Чили, 20–24 марта 2006 г., Труды. Конспект лекций по информатике. 3887. С. 262–273. Дои:10.1007/11682462_27. ISBN  978-3-540-32755-4.
  3. ^ Papadimitriou, Christos H .; Яннакакис, Михайлис (1991). «Классы оптимизации, аппроксимации и сложности». Журнал компьютерных и системных наук. 43 (3): 425–440. Дои:10.1016 / 0022-0000 (91) 90023-Х.