Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Глава 19. Орграфы и ориентированные ациклические графы. Транзитивноесокращение. Пусть задан орграф, требуется найти орграф, который име­ет то же транзитивное замыкание и минимальное число ребер среди орграфов этого








Транзитивное сокращение. Пусть задан орграф, требуется найти орграф, который име­ет то же транзитивное замыкание и минимальное число ребер среди орграфов этого клас­са. Эта задача поддается решению (см. упражнение 19.150); однако если наложить на нее дополнительное условие, потребовав, чтобы результатом был подграф исходного графа, она сразу же становится NP-трудной.

Ориентированный эвклидов путь. Существует ли на орграфе путь, соединяющий две заданных вершины, который использует каждое ребро орграфа в точности один раз? Эта задача решается довольно просто в силу тех же причин, что и соответствующая задача для неориентированных графов, которую мы рассматривали в разделе 17.7 (см. упражнение 17.92).

Ориентированный маршрут почтальона. Пусть задан граф, существует ли ориентиро­ванный цикл с минимальным числом ребер, который использует каждое ребро графа, по меньшей мере, один раз (при этом он имеет возможность воспользоваться каждым кон­кретным ребром многократно). Как мы увидим в разделе 22.7, эта задача сводится к за­даче выявления потоков с минимальной стоимостью, и в силу этого обстоятельства она поддается решению.

Ориентированный гамильтонов путь. Найти в орграфе простой ориентированный путь максимальной длины. Эта задача относится к числу NP-трудных, однако она легко реша­ется, если граф представляет собой DAG (см. упражнение 19.114).

Односвязный подграф. Говорят, что граф односвязный (uniconnected), если существует самое большее один ориентированный путь между любой парой вершин. Если задан орг­раф и целое число k, определить, существует ли односвязный подграф, имеющий, по мень­шей мере, к ребер. Известно, что для произвольного к эта задача принадлежит к катего­рии NP-трудных.

Множество вершин обратной связи. Определить, имеет ли заданный орграф подмно­жество, состоящее максимум из к вершин, которое содержит, по меньшей мере, одну вершину из каждого направленного цикла в G. Известно, это задача принадлежит к ка­тегории NP-трудных.

Четные циклы. Определите, содержит ли заданный орграф цикл четной длины. Как было показано в разделе 17.8, это проблема не принадлежит к числу трудно разрешимых, тем не менее, никому не удалось получить алгоритм, который можно было бы исполь­зовать на практике.

Так же как и в случае неориентированных графов, было исследовано великое мно­жество задач, при этом часто определение того, является ли рассматриваемая задача лег­ко или трудно решаемой, сама по себе является сложной проблемой (см. раздел 17.8). Как подчеркивалось на протяжении всей этой главы, некоторые обнаруженные нами факты, касающиеся орграфов, суть выражения более общих математических закономер­ностей, а многие из используемых нами алгоритмов имеют применение на уровнях абст­ракций, отличающихся от тех, на которых мы работаем. С другой стороны, понятие труд­но решаемой задачи говорит нам о том, что в своем стремлении получить эффективные алгоритмы, обеспечивающие эффективное решение тех или иных задач, мы можем столк­нуться с фундаментальными препятствиями. С другой стороны, классические алгоритмы, опи­санные в настоящей главе, имеют фундаментальное значение и находят широкое примене­ние на практике, поскольку они предлагают эффективные решения задач, которые часто возникают в реальной жизни и не могут быть решены каким-либо другим способом.



Часть 5. Алгоритмы на графах


Упражнения

19.144. Внесите соответствующие изменения в программы 17.18 и 17.19, позволяющие реализовать функцию АТД распечатки эйлерова пути в орграфе, если таковой суще­ствует. Поясните назначение каждого изменения и дополнения, которые придется вне­сти в программный код.

> 19.145. Начертите дерево доминаторов орграфа

3-7 1-4 7-8 0-5 5-2 3-0 2-9 0-6 4-9 2-6 6-4 1-5 8-2 9-0 8-3 4-5 2-3 1-6 3-5 7-6

•• 19.146. Постройте класс, использующий поиск в глубину для создания представления доминаторного дерева заданного орграфа в виде родительских связей (см. раздел ссы­лок).

о 19.147. Найдите транзитивное сокращение орграфа

3-7 1-4 7-8 0-5 5-2 3-0 2-9 0-6 4-9 2-6 6-4 1-5 8-2 9-0 8-3 4-5 2-3 1-6 3-5 7-6

19.148. Найдите подграф графа

3-7 1-4 7-8 0-5 5-2 3-0 2-9 0-6 4-9 2-6 6-4 1-5 8-2 9-0 8-3 4-5 2-3 1-6 3-5 7-6,

имеющего то же транзитивное замыкание и минимальное число ребер среди всех та­ких подграфов.

о 19.149. Докажите, что каждый DAG имеет уникальное транзитивное сокращение, и дайте эффективную реализацию функции АТД для вычисления транзитивного сокра­щения DAG.

19.150. Постройте эффективную функцию АТД для орграфов, которая вычисляет
транзитивное сокращение.

19.151. Предложите алгоритм, который определяет, принадлежит ли заданный орграф
к категории односвязных. Предлагаемый вами алгоритм в худшем случае должен ха­
рактеризоваться временем выполнения, пропорциональным VE.

19.152. Найдите односвязный подграф максимальных размеров орграфа

3-7 1-4 7-8 0-5 5-2 3-0 2-9 0-6 4-9 2-6 6-4 1-5 8-2 9-0 8-3 4-5 2-3 1-6 3-5 7-6.

> 19.153. Разработайте реализацию класса орграфа, который поддерживает операции
вставки ребра, удаления ребра и проверку, находятся ли заданные вершины в одной
и той же сильной компоненте, такого, что в худшем случае для выполнения всех опе­
раций построения, вставки ребер и удаления требуется линейное время, а на выпол­
нение запросов о сильной связности — постоянное время.

о 19.147. Решите упражнение 19.153 таким образом, чтобы запросы на вставку ребра, удаления ребра и принадлежность к сильной компоненте выполнялись за время, про­порциональное log К в худшем случае.

•••19.146. Решите упражнение 19.153 таким образом, чтобы запросы на вставку ребра, удаления ребра и принадлежность к сильной компоненте выполнялись за время, близ­кое к постоянному (как это имеет место для алгоритмов поиска-объединения для оп­ределения связности в неориентированных графах).







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.