Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost Graph Library: is_kuratowski_subgraph

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

is_kuratowski_subgraph

template <typename Graph, typename ForwardIterator, typename VertexIndexMap>
bool is_kuratowski_subgraph(const Graph& g, ForwardIterator begin, ForwardIterator end, VertexIndexMap vm)

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:

  1. B) длина, длина, длина, длина Курорты, Курорты, Португалия, Португалия, Португалия (Ни один край{a,b}) , , ,aиb.
  2. К5, [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто] 3.
Второе ограничение необходимо как для различения нацеливания на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).

    Where Defined

    boost/graph/is_kuratowski_subgraph.hpp [ORIG_END] -->

    Parameters

    IN: Graph& g
    An undirected graph with no self-loops or parallel edges. The graph type must be a model of Vertex List Graph.
    IN: ForwardIterator
    A ForwardIterator with value_type graph_traits<Graph>::edge_descriptor.
    IN: VertexIndexMap vm
    A Readable Property Map that maps vertices from g to distinct integers in the range [0, num_vertices(g) )
    Default: get(vertex_index,g)

    Example

    Примеры/kuratowski_subgraph.cpp

    See Also

    Планарные графики в библиотеке Boost Graph


    Copyright © 2007 Aaron Windsor ( aaron.windsor@gmail.com)

    Статья Boost Graph Library: is_kuratowski_subgraph раздела может быть полезна для разработчиков на c++ и boost.




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



    :: Главная :: ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-05-21 01:00:34/0.0036258697509766/0