1313
правок
Irina (обсуждение | вклад) м (→Другие примеры) |
KVN (обсуждение | вклад) |
||
| (не показано 6 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
== Ключевые слова и синонимы == | == Ключевые слова и синонимы == | ||
'''Задача изоморфизма графов''' --- ''Graph isomorphism problem'' | |||
Паросочетания в графах (''Graph matching''); Группы симметрии (''Symmetry group'') | |||
== Постановка задачи == | == Постановка задачи == | ||
| Строка 29: | Строка 31: | ||
== Основные результаты == | == Основные результаты == | ||
Задача определения изоморфизма графов играет ключевую роль в современной теории сложности вычислений. Неизвестно, является ли она разрешимой за полиномиальное время, NP-полной или принадлежащей к классу co-NP. Подробнее об этом в работах [3] и [8]. Алгоритмы с полиномиальным временем | Задача определения изоморфизма графов играет ключевую роль в современной теории сложности вычислений. Неизвестно, является ли она разрешимой за полиномиальное время, NP-полной или принадлежащей к классу co-NP. Подробнее об этом в работах [3] и [8]. Алгоритмы с полиномиальным временем выполнения известны для многих специальных классов графов – в частности, графов ограниченного рода, графов с ограниченной степенью, ограниченной древесной шириной и ограниченной кратностью собственного значения. Самый быстрый теоретический алгоритм для графов общего вида требует <math>exp(n^{1/2+o(1)}) \; </math> времени [1], однако нет сведений о его практичности. | ||
В данном контексте наиболее практически полезным вариантом считается программа nauty. Брендан Маккей написал первую версию nauty в 1976 году, изложив метод ее работы в статье [5]. Известно [7], что она имеет экспоненциальное время | В данном контексте наиболее практически полезным вариантом считается программа nauty. Брендан Маккей написал первую версию nauty в 1976 году, изложив метод ее работы в статье [5]. Известно [7], что она имеет экспоненциальное время выполнения в наихудшем случае, но на практике этот наихудший случай встречается редко. | ||
| Строка 80: | Строка 82: | ||
Программа nauty позволяет выбирать между разреженными и плотными структурами данных и предлагает специальные варианты для некоторых конкретных сложных классов графов. В следующих примерах лучшие результаты были получены на единичном процессоре Intel Core-duo с тактовой частотой 2,4 ГГц. | Программа nauty позволяет выбирать между разреженными и плотными структурами данных и предлагает специальные варианты для некоторых конкретных сложных классов графов. В следующих примерах лучшие результаты были получены на единичном процессоре Intel Core-duo с тактовой частотой 2,4 ГГц. | ||
1. Граф произвольного вида с 10 000 вершин, p = | 1. Граф произвольного вида с 10 000 вершин, p = 1/2: 0,014 с. только для групп, 0,4 с. – с учетом канонической разметки. | ||
2. Произвольный кубический граф с 100 000 вершин: 8 с. | 2. Произвольный кубический граф с 100 000 вершин: 8 с. | ||
3. 1-мерный остов 20- | 3. 1-мерный остов 20-мерного куба (1 048 576 вершин, размер группы <math>2,5 \times 10^{24}</math>): 92 с. | ||
4. 3-мерная сетка размера 50 (125 000 вершин): 0,7 с. | 4. 3-мерная сетка размера 50 (125 000 вершин): 0,7 с. | ||
| Строка 91: | Строка 93: | ||
Примеры более сложных графов можно найти в документации программы nauty. | Примеры более сложных графов можно найти в документации программы nauty. | ||
== Ссылка на код == | == Ссылка на код == | ||
Исходный код nauty доступен по адресу http://cs.anu. edu.au/~bdm/nauty/. Еще одна реализация фрагмента nauty, посвященного группам автоморфизмов и оптимизированного для больших разреженных графов, доступна под названием saucy [ ]. Nauty входит в состав множества пакетов общего назначения, включая GAP, Magma и MuPad. | Исходный код nauty доступен по адресу http://cs.anu.edu.au/~bdm/nauty/. Еще одна реализация фрагмента nauty, посвященного группам автоморфизмов и оптимизированного для больших разреженных графов, доступна под названием saucy [2]. Nauty входит в состав множества пакетов общего назначения, включая GAP, Magma и MuPad. | ||
== См. также == | == См. также == | ||
| Строка 118: | Строка 118: | ||
8. Toran, J.: On the hardness of graph isomorphism. SIAM J. Comput. 33,1093-1108 (2004) | 8. Toran, J.: On the hardness of graph isomorphism. SIAM J. Comput. 33,1093-1108 (2004) | ||
[[Категория: Совместное определение связанных терминов]] | |||