Цветовое кодирование
Цветовое кодирование — алгоритмическая техника, которая полезна для обнаружения структурных мотивов. Например, оно может быть использовано для обнаружения простого пути длины k в заданном графе. Традиционный алгоритм цветового кодирования является вероятностным, но он может быть дерандомизирован без существенного увеличения времени работы.
Цветовое кодирование применимо также к обнаружению циклов заданной длины и, в более общем случае, к задаче поиска изоморфного подграфа (NP-полная задача), где оно даёт алгоритмы полиномиального времени, если искомый подграф имеет ограниченную древесную ширину.
Метод цветового кодирования предложили и анализировали в 1994 году Нога Алон, Рафаэль Юстер и Юрий Цвик[1][2].
Результаты
Следующие результаты могут быть получены методом цветового кодирования:
- Для любой фиксированной константы k, если граф содержит цикл размера k, такой цикл может быть найден за:
- среднее время, или
- худшее время, где является экспонентой умножения матриц[3].
- Для любой фиксированной константы k и любого графа из нетривиального семейства графов, замкнутого по минорам (например, планарные графы), если G содержит простой цикл размера k, то такой цикл может быт найден за:
- O(V) среднее время, или за
- O(V log V) время в худшем случае.
- Если граф содержит подграф, изоморфный графу ограниченной древесной ширины, который имеет O(log V) вершин, то такой подграф может быть найден за полиномиальное время.
Метод
Чтобы решить задачу нахождения подграфа в данном графе , где H может быть путём, циклом или любым графом с ограниченной древесной шириной, а , метод цветового кодирования начинает со случайной раскраски каждой вершины в G с помощью цветов, а потом пытается найти полноцветную копию H в раскрашенном G. Здесь под полноцветным графом понимается граф, в котором каждая вершина раскрашени в свой цвет. Метод работает путём повторения (1) случайной раскраски графа и (2) нахождения полноцветной копии целевого подграфа. В конечном счёте целевой подграф может быть найден, если процесс повторять достаточное число раз.
Предположим, что копия H в G становится полноцветной с некоторой ненулевой вероятностью p. Отсюда немедленно следует, что при повторении случайной раскраски раз эта копия однажды встретится. Заметим, что даже когда вероятность p мала, известно, что при вероятность p лишь полиномиально мала. Предположим, что существует алгоритм, который для данного графа G и раскраски, которая отображает каждую вершину G в один из k цветов, находит копию полноцветной копии H, если она существует, за некоторое время O(r). Тогда ожидаемое время поиска копии H в G, если она существует, равно .
Иногда желательно использовать более жёсткую версию цветной раскраски. Например, в контексте поиска циклов в планарных графах можно разрабатывать алгоритм для поиска хорошо раскрашенных циклов. Здесь под хорошо раскрашенным циклом понимается раскраска последовательными цветами.
Пример
В качестве примера возьмём поиск простого цикла длины k в графе .
При применении метода случайной раскраски каждый простой цикл имеет вероятность стать полноцветным, поскольку имеется способов выкрасить k вершин цикла, среди которых встречается вариантов полноцветной раскраски. Тогда алгоритм (описанный ниже) может быть использован для поиска полноцветных циклов в случайно раскрашенном графе G за время , где является константой умножения матриц. Тогда требуется полное время для нахождения простого цикла длины k в G.
Алгоритм поиска полноцветного цикла сначала находит все пары вершин в V, соединённые простым путём длины k − 1, а потом проверяет, соединены ли две вершины в каждой паре. Если задана функция раскраски для графа G, перенумеруем все разбиения множества цветов на два подмножества размера примерно в каждом. Для каждого такого разбиения пусть будет множеством вершинам, выкрашенных цветами из , а будет множеством вершин, выкрашенных цветами из . Пусть и обозначают подграфы, порожденные и соответственно. Рекурсивно находим полноцветные пути длины в и . Представим, что булевы матрицы и представляют связь каждой пары вершин в и полноцветным путём соответственно, и пусть B будет матрицей, описывающей смежность вершин и , тогда булево произведение даёт все пары вершин в V, соединённые полноцветным путём длины k − 1. Объединение матриц, полученных на всех разбиениях множества цветов, даёт , что приводит ко времени работы . Хотя этот алгоритм находит только конечные точки полноцветного пути, может быть использован другой алгоритм Алона и Наора[4], который и находит, собственно, полноцветный путь.
Дерандомизация
Дерандомизация цветового кодирования вовлекает перечисление возможных раскрашиваний графа G, так что рандомизация раскраски G больше не нужна. Чтобы можно было обнаружить целевой подграф H в G, перечисление должно включать по меньшей мере один случай, где H полноцветен. Чтобы это получить, достаточно перечислить k-совершенное семейство F хеш-функций из в {1, ..., k} . По определению, функция F k-совершенна, если для любого подмножества S множества , где , существует хеш-функция h из F, такая что является идеальной функции хеширования. Другими словами, должна существовать хеш-функци в F, которая раскрашивает заданные k вершин в k различных цвета.
Имеется несколько подходов к построению такого k-идеального семейства хеша:
- Лучшее явное построение предложили Мони Наор, Леонард Дж. Шульман и Аравинд Сринивасан[5], в котором можно получить семейство размера . Это построение не требует, чтобы целевой подграф содержался в исходной задаче нахождения подграфа.
- Другое явное построение предложили Джанетта П. Шмидт и Алан Сигель[6] даёт семейство размера .
- Ещё одно построение, которое появилось в исходной статье Нога Алона и др.[2], можно получить сначала путём построения k-совершенного семейства, которое отображает в , с построением другого k-совершенного семейства, которое отображает в . На первом шаге можно построить такое семейство с 2nlog k случайными битами, которое почти 2log k-независимо[7][8], и пространство, необходимое для генерации этих случайных бит, может быть ограничено величиной . На втором шаге, как показали Джанетта П. Шмидт и Алан Зигель [6], размер такого k-идеального семейства может быть . Следовательно, составляя k-идеальные семейства из обоих шагов, можно получить k-совершенное семейство размера , которое отображает из в .
В случае дерандомизации идеального раскрашивания, когда каждая вершина подграфа раскрашивается последовательно, требуется k-идеальное семейство хэш-функций из в . Достаточное k-совершенное семейство, отображающее из в , может быть построено способом, подобным подходу 3 выше (первый шаг). В частности, это делается использованием случайных бит, которые почти независимы, а размер получающегося k-совершенного семейства будет равен .
Дерандомизация метода цветового кодирования может быть легко распараллелена, что приводит к эффективным алгоритмам в классе NC.
Приложения
Недавно цветовое кодирование привлекло внимание в области биоинформатики. Пример — определение сигнальных путей в сетях белок-белкового взаимодействия (ББВ). Другим примером является обнаружение и подсчёт числа мотивов в сетях ББВ. При изучении как сигнальных путей, так и мотивов позволяет более глубокое понимание похожести разницы многих биологических функций, процессов и структур в организмах.
Вследствие большого числа генетических данных, которые можно собрать, поиск путей или мотивов может занимать большое время. Однако, используя метод цветового кодирования, мотивы и сигнальные пути с вершинами в сети G с n вершинами могут быть найдены очень эффективно за полиномиальное время. Это позволяет исследовать более сложные или больших размеров структуры в сетях ББВ.
Примечания
- Alon, Yuster, Zwick, 1994, с. 23-25.
- Alon, Yuster, Zwick, 1995, с. 844-856.
- См. Алгоритм Копперсмита — Винограда. Экспонента умножения матриц — это степень размера матрицы асимптотической сложности алгоритма умножения матриц.
- Alon, Naor, 1994.
- Naor, Schulman, Srinivasan, 1995, с. 182.
- Schmidt, Siegel, 1990, с. 775–786.
- Naor, Naor, 1990, с. 213-223.
- Alon, Goldreich, Hastad, Peralta, 1990, с. 544-553.
Литература
- Naor J., Naor M. Small-bias probability spaces: efficient constructions and applications // Proceedings of the Twenty-Second Annual ACM Symposium on theory of Computing (Baltimore, Maryland, United States, May 13–17, 1990) / H. Ortiz, Ed.. — New York, NY: ACM, 1990. — doi:http://doi.acm.org/10.1145/100216.100244[Ошибка: Неверный DOI!].
- Alon N., Goldreich O., Hastad J., Peralta R. Simple construction of almost k-wise independent random variables // Proceedings of the 31st Annual Symposium on Foundations of Computer Science (October 22–24, 1990). SFCS.. — Washington, DC: IEEE Computer Society, 1990. — doi:10.1109/FSCS.1990.89575.
- Alon N., Yuster R., Zwick U. Color-coding: a new method for finding simple paths, cycles and other small subgraphs within large graphs // Proceedings of the Twenty-Sixth Annual ACM Symposium on theory of Computing (Montreal, Quebec, Canada, May 23–25, 1994). STOC '94.. — New York, NY: ACM, 1994. — doi:http://doi.acm.org/10.1145/195058.195179[Ошибка: Неверный DOI!].
- Alon N., Yuster R., Zwick U. Color-coding. // J. ACM. — 1995. — Т. 42, вып. 4. — doi:http://doi.acm.org/10.1145/210332.210337[Ошибка: Неверный DOI!].
- Alon N., Naor M. Derandomization, Witnesses for Boolean Matrix Multiplication and Construction of Perfect Hash Functions. // Technical Report. UMI Order Number: CS94-11.,. — Weizmann Science Press of Israel, 1994.
- Naor M., Schulman L. J., Srinivasan A. Splitters and near-optimal derandomization // In Proceedings of the 36th Annual Symposium on Foundations of Computer Science (October 23–25, 1995). FOCS.. — Washington, DC: IEEE Computer Society, 1995. — Т. 182.
- Schmidt J. P., Siegel A. The spatial complexity of oblivious k-probe Hash functions // SIAM J. Comput.. — 1990. — Т. 19, вып. 5. — doi:10.1137/0219054.
Литература для дальнейшего чтения
- Alon N., Dao P., Hajirasouliha I., Hormozdiari F., Sahinalp S. C. Biomolecular network motif counting and discovery by color coding // Bioinformatics. — 2008. — Т. 24, вып. 13. — С. i241–i249. — doi:10.1093/bioinformatics/btn163. — PMID 18586721.
- Hüffner F., Wernicke S., Zichner T. Algorithm Engineering for Color-Coding with Applications to Signaling Pathway Detection // Algorithmica. — 2008. — Т. 52, вып. 2. — С. 114–132. — doi:10.1007/s00453-007-9008-7.