Алгоритм плоской укладки графа
Изложим алгоритм, с помощью которого устанавливается возможность получения плоской укладки графа, если он является планарным, и невозможность укладки в противном случае.
Пусть даны граф 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, обе концевые вершины которой - единственные ее вершины, принадлежащие уложенному графу. Выбор простой цепи осуществляется после того, как будет проанализирована совместимость каждого куска и граней уложенного графа. При анализе совместимости возможны варианты:
кусок совместим с единственной гранью;
каждый кусок совместим более чем с одной гранью;
существует кусок, с которым каждая грань уложенного подграфа несовместима.
В первом случае в куске находится простая цепь, обе концевые вершины которой (и только они) являются вершинами уложенного подграфа, и эта цепь укладывается в совместимую грань.
Во втором случае простая цепь выбирается в любом из кусков и выполняется такое же действие, как и в первом случае.
Третий случай говорит о том, что граф G не является планарным.
Рассмотрим работу алгоритма при получении плоской укладки графа, изображенного на рисунке
В качестве начального планарного подграфа возьмем простой цикл v1 v2 v5 v6 v1 , и обозначим его . Удалим все вершины этого подграфа и получим подграф G'(V', X') c двумя компонентами связности:
Получим два куска, дополняя каждую компоненту связности графа G'(V', X'), и добавляя ребро {v1, v5}:
V6
Начинаем плоскую укладку. Простой цикл образует две грани:
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 |
Все куски совместимы с двумя гранями. Возьмем ребро {v1, v5} и уложим его в грани S0, которая разбивается на две грани S2 и S3.
Вершины куска | Контактные вершины | Совместимые грани |
v3, v7, v2, v6 | v2, v6 | S1 |
v4, v1, v2, v5 | v1, v2, v5 | S1, S2 |
Рассмотрим первый кусок, который совместим только с гранью S1. Выбираем в нем простую цепь v2 v7 v3 v6 и укладываем ее в грани S1 , которая разбивается на две грани S4 и S5.
Вершины куска | Контактные вершины | Совместимые грани |
v7, v6 | v7, v6 | S4, S5 |
v4, v1, v2, v5 | v1, v2, v5 | S2 |
Первый кусок совместим с двумя гранями . Поместим ребро {v6, v7} в грань S4, она разбивается на две новые грани S6 и S7.
Вершины куска | Контактные вершины | Совместимые грани |
v4, v1, v2, v5 | v1, v2, v5 | S2 |
Имеем один кусок, который совместим с единственной гранью. Выделяем в нем простую цепь v5 v4 v1 и укладываем ее в грань S2, разбивая ее на грани S8 , S9.
Вершины куска | Контактные вершины | Совместимые грани |
v4, v2 | v4, v2 | S8 |
Последний кусок совместим с гранью S8 , значит граф планарный. Укладываем ребро {v2, v4} в грань S8, заканчивая плоскую укладку графа.
Yandex.RTB R-A-252273-3
- Лекция 2
- Лекция 3
- Лекция 4
- Лекция 5
- Лекция 13
- Лекция 14
- Лекция 16
- Основные понятия
- Понятие множества. Способы задания множеств.
- Понятие множества. Способы задания множеств.
- Отношения между множествами.
- 3, Операции над множествами.
- Алгебра множеств.
- Теорема о количестве подмножеств конечного множества.
- Формула включений и исключений.
- Лекция 2
- 1.Понятие вектора. Прямое произведение множеств.
- 2.Теорема о количестве элементов прямого произведения.
- Понятие вектора. Прямое произведение множеств.
- Теорема о количестве элементов прямого произведения.
- Лекция 3
- 2. Понятие высказывания.
- 3. Логические операции над высказываниями
- 4.Формулы алгебры логики.
- Лекция 4
- 2. Важнейшие равносильности алгебры логики.
- 3.Равносильные преобразования формул.
- Задачи для самостоятельного решения
- Лекция 5
- Дизъюнктивная нормальная форма.
- Конъюнктивная нормальная форма.
- Проблема разрешимости.
- Лекция 6
- Функции алгебры логики.
- 3. Представление произвольной функции алгебры логики в виде формулы алгебры логики.
- 4.Приложения алгебры логики в технике (релейно-контактные схемы).
- Контрольные вопросы
- Лекция 7
- Совершенная дизъюнктивная нормальная форма.
- Совершенная конъюнктивная нормальная форма.
- Совершенная дизъюнктивная нормальная форма.
- 2.Совершенная конъюнктивная нормальная форма.
- Лекция 8
- 2.Понятие минимальной днф. Метод минимизирующих карт.
- 3.Метод Квайна.
- 4.Метод Карно.
- 5.Постановка задачи минимизации в геометрической форме.
- 6.Сокращенная днф.
- 7.Тупиковая днф. Днф Квайна.
- Лекция 9
- Некоторые логические операции. Двоичное сложение.
- Полином Жегалкина.
- Некоторые логические операции. Двоичное сложение.
- Полином Жегалкина.
- Лекция 10
- Полная система . Достаточное условие полноты.
- Критерий полноты системы булевых функций.
- Независимые системы. Базис замкнутого класса.
- Полная система. Достаточное условие полноты.
- Критерий полноты системы булевых функций.
- 3. Независимые системы. Базис замкнутого класса.
- Лекция 11
- Понятие предиката.
- Логические операции над предикатами.
- 1. Понятие предиката
- 2. Логические операции над предикатами
- Лекция 12
- 2. Формулы логики предикатов.
- Значение формулы логики предикатов.
- 4. Равносильные формулы логики предикатов.
- Лекция 13
- Построение противоположных утверждений.
- 3. Прямая, обратная и противоположная теоремы.
- 4. Необходимые и достаточные условия.
- 5. Доказательство методом от противного.
- Задачи для самостоятельного решения
- Лекция 14
- 2. Использование метода математической индукции для нахождения сумм конечного числа слагаемых
- 3. Использование метода математической индукции для доказательства неравенств и делимости выражений, зависящих от n на некоторое число
- 4. Обобщение метода математической индукции
- Контрольные вопросы
- Лекция 15
- Операции над бинарными отношениями.
- 3. Свойства бинарных отношений.
- 4. Специальные бинарные отношения.
- Контрольные вопросы
- Лекция 16
- Функция
- 1. 4. Отображение
- Обратная функция
- 2. Свойства отображений и функций
- 3.Операции над функциями. Свойства операций
- Контрольные вопросы
- Лекция 17
- Основные понятия .
- 2. Смежность, инцидентность, степени вершин.
- 3. Способы задания графов
- Маршруты в неориентированном графе
- Операции над графами.
- Связность. Компоненты связности
- Контрольные вопросы
- Лекция 18
- 2. Метрические характеристики неориентированного графа
- Минимальные маршруты в нагруженных графах
- Задачи на деревьях
- Цикловой ранг графа. Цикломатическое число
- Контрольные вопросы
- Лекция 19
- Эйлеровы цепи и циклы
- Гамильтоновы циклы и цепи
- Эйлеровы цепи и циклы
- Гамильтоновы циклы и цепи.
- Контрольные вопросы
- Лекция 20
- Двудольный граф. Условие существования двудольного графа
- Паросочетания . Реберные покрытия
- Двудольный граф. Условие существования двудольного графа
- Паросочетания. Реберные покрытия
- Контрольные вопросы
- Лекция 21
- Основные определения
- Алгоритм плоской укладки графа
- Контрольные вопросы
- Лекция 22
- Способы задания ориентированного графа
- Путь в ориентированном графе
- 4. Связность. Компоненты связности в орграфе
- Контрольные вопросы
- Лекция 23
- 2. Минимальные пути в нагруженных орграфах
- 3. Порядковая функция орграфа без контуров
- Контрольные вопросы