Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ДМ.doc
Скачиваний:
133
Добавлен:
21.11.2019
Размер:
4.91 Mб
Скачать
  1. Алгоритм плоской укладки графа

Изложим алгоритм, с помощью которого устанавливается возможность получения плоской укладки графа, если он является планарным, и невозможность укладки в противном случае.

Пусть даны граф G(V, X) и его подграф Этот подграф называется начальным и должен быть планарным (в качестве такого подграфа можно взять простой цикл, простую цепь). Через G'(V', X') обозначим подграф графа G, порожденный удалением из него вершин (напомним, что при удалении вершины удаляются и все инцидентные ей ребра). Пример представлен на рисунке.

Граф G' может быть не связным, т.е. иметь Р компонент связности. Обозначим компоненты связности G'i(V’i, X’i), где i =1 – р. Множество ребер X’I дополним всеми ребрами, инцидентными в G вершинам V’i , а множество вершин V’i дополним соответствующими вершинами этих ребер и назовем их контактными вершинами. Полученный таким образом подграф назовем куском графа G относительно подграфа Объединением всех кусков графа должен быть исходный граф G. На рисунке представлены куски данного графа, относительно подграфа

Грань, определяемую графом на плоскости , и кусок назовем совместимыми, если все контактные вершины куска являются граничными точками этой грани.

Алгоритм плоской укладки графа состоит в последовательном присоединении к любому уже уложенному подграфу графа G простой цепи L, обе концевые вершины которой - единственные ее вершины, принадлежащие уложенному графу. Выбор простой цепи осуществляется после того, как будет проанализирована совместимость каждого куска и граней уложенного графа. При анализе совместимости возможны варианты:

  1. кусок совместим с единственной гранью;

  2. каждый кусок совместим более чем с одной гранью;

  3. существует кусок, с которым каждая грань уложенного подграфа несовместима.

В первом случае в куске находится простая цепь, обе концевые вершины которой (и только они) являются вершинами уложенного подграфа, и эта цепь укладывается в совместимую грань.

Во втором случае простая цепь выбирается в любом из кусков и выполняется такое же действие, как и в первом случае.

Третий случай говорит о том, что граф G не является планарным.

Рассмотрим работу алгоритма при получении плоской укладки графа, изображенного на рисунке

  1. В качестве начального планарного подграфа возьмем простой цикл v1 v2 v5 v6 v1 , и обозначим его . Удалим все вершины этого подграфа и получим подграф G'(V', X') c двумя компонентами связности:

  1. Получим два куска, дополняя каждую компоненту связности графа G'(V', X'), и добавляя ребро {v1, v5}:

V6

  1. Начинаем плоскую укладку. Простой цикл образует две грани:

V1

V1

Заполним таблицу:

Вершины куска

Контактные вершины

Совместимые грани

v1, v5

v1, v5

S0, S1

v3, v7, v2, v6

v2, v6

S0, S1

v4, v1, v2, v5

v1, v2, v5

S0, S1

  1. Все куски совместимы с двумя гранями. Возьмем ребро {v1, v5} и уложим его в грани S0, которая разбивается на две грани S2 и S3.

Вершины куска

Контактные вершины

Совместимые грани

v3, v7, v2, v6

v2, v6

S1

v4, v1, v2, v5

v1, v2, v5

S1, S2

  1. Рассмотрим первый кусок, который совместим только с гранью S1. Выбираем в нем простую цепь v2 v7 v3 v6 и укладываем ее в грани S1 , которая разбивается на две грани S4 и S5.

Вершины куска

Контактные вершины

Совместимые грани

v7, v6

v7, v6

S4, S5

v4, v1, v2, v5

v1, v2, v5

S2

  1. Первый кусок совместим с двумя гранями . Поместим ребро {v6, v7} в грань S4, она разбивается на две новые грани S6 и S7.

Вершины куска

Контактные вершины

Совместимые грани

v4, v1, v2, v5

v1, v2, v5

S2

  1. Имеем один кусок, который совместим с единственной гранью. Выделяем в нем простую цепь v5 v4 v1 и укладываем ее в грань S2, разбивая ее на грани S8 , S9.

Вершины куска

Контактные вершины

Совместимые грани

v4, v2

v4, v2

S8

  1. Последний кусок совместим с гранью S8 , значит граф планарный. Укладываем ребро {v2, v4} в грань S8, заканчивая плоскую укладку графа.