Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
ЕСТЕСТВЕННЫЕ НАУКИ6.21. Идентификация в химииОдна из основных задач теории графов состоит в нахождении хорошего алгоритма для определения того, являются ли два конечных графа одинаковыми в абстрактном смысле или, в более общем случае, является ли один граф подграфом другого. Первая задача называется задачей идентификации графа, а вторая — задачей идентификации подграфа. Чтобы формулировка задачи была более четкой, слову «хороший» нужно придать некоторый математический смысл. Будем считать, что алгоритм является «хорошим», если объем вычислений связанных с его применением для любой пары графов, растет в худшем случае как степенная функция, а не экспоненциально с ростом числа ребер в выбранной паре графов. Хороший алгоритм идентификации деревьев (но не поддеревьев) разработал Эдмондс. Этот алгоритм мы рассмотрим ниже. Эдмондс считает, что хорошего алгоритма идентификации произвольных подграфов или даже произвольных графов в общем случае не существует. С практической точки зрения задачи индентификации графов и подграфов важны в органической химии, где молекулы представляются в виде графов. Вершины соответствуют атомам, а ребра — связям между атомами. Существование нескольких видов атомов не вносит серьезных трудностей в задачу идентификации. В настоящее время много внимания уделяется разработке «эвристических» алгоритмов химической идентификации — алгоритмов, не являющихся «хорошими» в нашем смысле, но хорошо работающих на практике. Для химиков важно не только решить задачу идентификации структур, но гораздо более интересно найти удобную систему каталогизации химических препаратов так, чтобы любой препарат можно было легко найти в каталоге или внести туда. (Поиск химических патентов в настоящее время является довольно сложной задачей.) Алгоритм идентификации деревьев использует каталожную систему, построенную на основе линейного упорядочения множества всех конечных деревьев. Однако наличие такой системы совершенно не обязательно. Например, существует хороший алгоритм для определения идентичности (в комбинаторном смысле) любых двух поверхностных карт. Карты обладают свойством комбинаторной «жесткости» — так, что если карты и Упомянутое выше свойство «жесткости» можно использовать для определения идентичности деревьев Можно считать (хотя мы и не будем придерживаться такой точки зрения), что алгоритм идентификации деревьев есть процедура приведения деревьев к каноническому виду. Напомним, что корневым деревом является дерево, в котором одна из вершин, в отличие от других, называется корнем. Алгоритм идентификации фактически применяется к корневым деревьям. Поэтому опишем сначала хороший алгоритм приведения любого дерева В случае, когда получена вершина, будем считать, что она и есть корень дерева Каждому корневому дереву будет соответствовать определенная конечная последовательность целых чисел. Не существует двух разных корневых деревьев, которые имели бы одинаковые последовательности. Алгоритм определения идентичности двух корневых деревьев основан на вычислении соответствующих последовательностей и их сравнении. Для сравнения последовательностей существует хороший алгоритм, так как число членов в последовательности и наибольший ее член равны числу вершин в дереве, соответствующем последовательности. Как это будет видно из определения, хороший алгоритм вычисления последовательности для данного дерева всегда существует. Ранг корневых деревьев устанавливается в соответствии с лексикографическим упорядочением соответствующих последовательностей. Таким образом, ранг Если удалить из корневого дерева Последовательность для корневого дерева Заметим, что существует единственное взаимно однозначное соответствие между членами словами, Важнейшей характеристикой последовательности Осталось проверить достаточность идентичности соответствующих последовательностей. Это легко сделать, убедившись, что из последовательности Если Определенные таким образом После построения Рассмотренный метод идентификации деревьев вряд ли может дать хороший алгоритм решения более общей задачи определения того, содержит ли данное корневое дерево подграф, идентичный другому заданному корневому дереву при совпадении их корней. Такой алгоритм было бы очень интересно получить. Упражнение 6.25. Показать, что последовательности, полученные удалением всех членов, равных 1, из последовательностей
|
1 |
Оглавление
|