Цветовое кодирование

Материал из testwiki
Перейти к навигации Перейти к поиску

Цветовое кодирование — Шаблон:Нп5, полезная для обнаружения Шаблон:Не переведено 5. Может быть использована, к примеру, для обнаружения простого пути длины Шаблон:Mvar в заданном графе. Традиционный алгоритм цветового кодирования является вероятностным, но решение может быть Шаблон:Не переведено 5 без существенного увеличения времени работы.

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

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

Метод цветового кодирования предложили и анализировали в 1994 году. Авторы - Нога Алон, Рафаэль Юстер и Юрий ЦвикШаблон:SfnШаблон:Sfn.

Результаты

Следующие результаты могут быть получены методом цветового кодирования:

Метод

Чтобы решить задачу нахождения подграфа H=(VH,EH) в данном графе G=(V,E), где Шаблон:Mvar может быть путём, циклом или любым графом с ограниченной древесной шириной, а |VH|=O(logV), метод цветового кодирования начинает со случайной раскраски каждой вершины в Шаблон:Mvar с помощью k=|VH| цветов, а потом пытается найти полноцветную копию Шаблон:Mvar в раскрашенном Шаблон:Mvar. Здесь под полноцветным графом понимается граф, в котором каждая вершина раскрашена в свой цвет. Метод работает путём повторения (1) случайной раскраски графа и (2) нахождения полноцветной копии целевого подграфа. В конечном счёте целевой подграф может быть найден, если процесс повторять достаточное число раз.

Предположим, что копия Шаблон:Mvar в Шаблон:Mvar становится полноцветной с некоторой ненулевой вероятностью Шаблон:Mvar. Отсюда следует, что при повторении случайной раскраски 1p раз эта копия однажды встретится. Заметим, что даже когда вероятность Шаблон:Mvar мала, известно, что при |VH|=O(logV) вероятность Шаблон:Mvar лишь полиномиально мала. Предположим, что существует алгоритм, который для данного графа Шаблон:Mvar и раскраски, которая отображает каждую вершину Шаблон:Mvar в один из Шаблон:Mvar цветов, находит копию полноцветной копии Шаблон:Mvar, если она существует, за некоторое время Шаблон:Math. Тогда ожидаемое время поиска копии Шаблон:Mvar в Шаблон:Mvar, если она существует, равно O(rp).

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

Пример

В качестве примера возьмём поиск простого цикла длины Шаблон:Mvar в графе G=(V,E).

При применении метода случайной раскраски каждый простой цикл имеет вероятность k!/kk>ek стать полноцветным, поскольку имеется kk способов выкрасить Шаблон:Mvar вершин цикла, среди которых встречается k! вариантов полноцветной раскраски. Тогда алгоритм (описан ниже) может быть использован для поиска полноцветных циклов в случайно раскрашенном графе Шаблон:Mvar за время O(Vω), где ω является константой умножения матриц. Тогда требуется полное время ekO(Vω) для нахождения простого цикла длины Шаблон:Mvar в Шаблон:Mvar.

Алгоритм поиска полноцветного цикла сначала находит все пары вершин в Шаблон:Mvar, соединённые простым путём длины Шаблон:Math, а потом проверяет, соединены ли две вершины в каждой паре. Если задана функция раскраски c:V{1,,k} для графа Шаблон:Mvar, перенумеруем все разбиения множества цветов {1,,k} на два подмножества C1,C2 размера примерно k/2 в каждом. Для каждого такого разбиения пусть V1 будет множеством вершинам, выкрашенных цветами из C1, а V2 будет множеством вершин, выкрашенных цветами из C2. Пусть G1 и G2 обозначают подграфы, порожденные V1 и V2 соответственно. Рекурсивно находим полноцветные пути длины k/21 в G1 и G2. Представим, что булевы матрицы A1 и A2 представляют связь каждой пары вершин в G1 и G2 полноцветным путём соответственно, и пусть Шаблон:Mvar будет матрицей, описывающей смежность вершин V1 и V2, тогда булево произведение A1BA2 даёт все пары вершин в Шаблон:Mvar, соединённые полноцветным путём длины Шаблон:Math. Объединение матриц, полученных на всех разбиениях множества цветов, даёт t(k)2kt(k/2), что приводит ко времени работы 2O(k)Vω=O(Vω). Хотя этот алгоритм находит только конечные точки полноцветного пути, может быть использован другой алгоритм Алона и НаораШаблон:Sfn, который и находит, собственно, полноцветный путь.

Дерандомизация

Шаблон:Не переведено 5 цветового кодирования вовлекает перечисление возможных раскрашиваний графа Шаблон:Mvar так, что рандомизация раскраски Шаблон:Mvar больше не нужна. Для обнаружения целевого подграфа Шаблон:Mvar в Шаблон:Mvar, перечисление должно включать, по меньшей мере, один случай, где Шаблон:Mvar полноцветн. Чтобы это получить, достаточно перечислить Шаблон:Mvar-совершенное семейство Шаблон:Mvar хеш-функций из {1,,|V|} в Шаблон:Math. По определению, функция Шаблон:Mvar Шаблон:Mvar-совершенна, если для любого подмножества Шаблон:Mvar множества {1,,|V|}, где |S|=k, существует хеш-функция Шаблон:Mvar из Шаблон:Mvar, такая что h:S{1,,k} является Шаблон:Не переведено 5. Другими словами, должна существовать хеш-функци в Шаблон:Mvar, которая раскрашивает заданные Шаблон:Mvar вершин в Шаблон:Mvar различных цвета.

Имеется несколько подходов к построению такого Шаблон:Mvar-идеального семейства хеша:

  1. Лучшее явное построение предложили Мони Наор, Леонард Дж. Шульман и Аравинд СринивасанШаблон:Sfn, в котором можно получить семейство размера ekkO(logk)log|V|. Это построение не требует, чтобы целевой подграф содержался в исходной задаче нахождения подграфа.
  2. Другое явное построение предложили Джанетта П. Шмидт и Алан СигельШаблон:Sfn даёт семейство размера 2O(k)log2|V|.
  3. Ещё одно построение, которое появилось в исходной статье Нога Алона и др.Шаблон:Sfn, можно получить сначала путём построения Шаблон:Mvar-совершенного семейства, которое отображает {1,,|V|} в {1,,k2}, с построением другого Шаблон:Mvar-совершенного семейства, которое отображает {1,,k2} в {1,,k}. На первом шаге можно построить такое семейство с Шаблон:Math случайными битами, которое почти Шаблон:Math-независимоШаблон:SfnШаблон:Sfn, и пространство, необходимое для генерации этих случайных бит, может быть ограничено величиной kO(1)log|V|. На втором шаге, как показали Джанетта П. Шмидт и Алан Зигель Шаблон:Sfn, размер такого Шаблон:Mvar-идеального семейства может быть 2O(k). Следовательно, составляя Шаблон:Mvar-идеальные семейства из обоих шагов, можно получить Шаблон:Mvar-совершенное семейство размера 2O(k)log|V|, которое отображает из {1,,|V|} в {1,,k}.

В случае дерандомизации идеального раскрашивания, когда каждая вершина подграфа раскрашивается последовательно, требуется Шаблон:Mvar-идеальное семейство хэш-функций из {1,,|V|} в {1,,k!}. Достаточное Шаблон:Mvar-совершенное семейство, отображающее из {1,,|V|} в {1,,kk}, может быть построено способом, подобным подходу 3 выше (первый шаг). В частности, это делается использованием nklogk случайных бит, которые почти klogk независимы, а размер получающегося Шаблон:Mvar-совершенного семейства будет равен kO(k)log|V|.

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

Приложения

Недавно цветовое кодирование привлекло внимание ученых из области биоинформатики. Пример — определение сигнальных путей в сетях белок-белкового взаимодействия (ББВ). Другим примером является обнаружение и подсчёт числа Шаблон:Не переведено 5 в сетях ББВ. При изучении как сигнальных путей, так и Шаблон:Не переведено 5 позволяет более глубокое понимание похожести разницы многих биологических функций, процессов и структур в организмах.

Вследствие большого числа генетических данных, которые можно собрать, поиск путей или мотивов может занимать продолжительное время. Однако, используя метод цветового кодирования, мотивы и сигнальные пути с k=O(logn) вершинами в сети Шаблон:Mvar с Шаблон:Mvar вершинами могут быть найдены очень эффективно за полиномиальное время. Это позволяет исследовать более сложные или больших размеров структуры в сетях ББВ.

Примечания

Шаблон:Примечания

Литература

Шаблон:Refbegin

Шаблон:Refend

Литература для дальнейшего чтения

Шаблон:Rq

  1. См. Алгоритм Копперсмита — Винограда. Экспонента ω умножения матриц — это степень ω размера матрицы n асимптотической сложности алгоритма умножения матриц.