is_kuratowski_subgraph(g, start, end)возвращаетистинноеименно тогда, когда последовательность краев определяется диапазоном[начало, конец]образуетподграф Куратовскогов графег. Если вам нужно проверить, что произвольный граф имеетK5илиK3,3минор, вы должны использовать функциюboyer_myrvold_planarity_testИзолировать такую незначительную вместо этой функции.is_kuratowski_subgraphсуществует для помощи в тестировании и проверке функцииboyer_myrvold_planarity_test, и по этой причине он ожидает, что его вход будет ограниченным набором краев, образующих подграф Куратовского, как подробно описано ниже.
is_kuratowski_subgraphсоздает временный граф из последовательности заданных краев и многократно сжимает края до тех пор, пока он не заканчивается графом со всеми краями степени 3 или со всеми краями степени. 4. Окончательный контрактный график затем проверяется наK5илиK3,3с использованием функции изоморфизмаизоморфизма библиотеки Boost Graph. Процесс сжатия начинается с выбора краев, прилегающих к вершине степени 1 и сжатия их. Когда ни один из них не остается, он перемещается на края, прилегающие к вершине степени. 2. Если после этой стадии остаются только вершины 3 степени, граф проверяется наК3,3. В противном случае, если есть по крайней мере одна вершина 4 степени, края, прилегающие к вершинам 3 степени, сокращаются по мере необходимости, и окончательный график сравнивается сK5.
Для того, чтобы этот процесс был детерминированным, мы вводим следующие два ограничения на входной граф, данныйis_kuratowski_subgraph:
B) длина, длина, длина, длина Курорты, Курорты, Португалия, Португалия, Португалия (Ни один край{a,b}) , , ,aиb.
Второе ограничение необходимо как для различения нацеливания наK5, так и наK3,3и для детерминированного сокращения вершин степени 4 после того, какK5был нацелен. Подграф Куратовского выводится функциейboyer_myrvold_planarity_testгарантированно удовлетворяет обоим вышеуказанным требованиям.
Сложность
На графике сnвершинами эта функция работает во времениO(n).
Где определен
boost/graph/is_kuratowski_subgraph.hppНикакое сжатие края, необходимое для получения подграфа Куратовского, не приводит к нескольким краям между одной и той же парой вершин (Ни один край{a,b}не будет сжат в любой момент процесса сжатия, еслиaиbимеют общего соседа).
Если граф сжимается доK5, то после того, как граф сжимается только до вершин степени по меньшей мере 3, не существует циклов, которые содержат только вершины степени 3.
The second restriction is needed both to discriminate between targeting a
K5 or a K3,3 and to determinstically
contract the vertices of degree 4 once the K5 has been
targeted. The Kuratowski subgraph output by the function boyer_myrvold_planarity_test is
guaranteed to meet both of the above requirements.
Complexity
On a graph with n vertices, this function runs in time O(n).
Статья Boost Graph Library: is_kuratowski_subgraph раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.