Техника Бренды Бейкер

Материал из testwiki
Перейти к навигации Перейти к поиску

Техника Бренды Бейкер — это метод построения приближенных схем полиномиального времени (ПСПВ, PTAS) для задач на планарных графах. Метод назван именем американской учёной в области информатики Шаблон:Не переведено 5, сообщившей о методе на конференции 1983 года и опубликовавшей статью в журнале Journal of the ACM в 1994.

Идея техники Бренды Бейкер заключается в разбиении графа на уровни, так что задача может быть решена оптимально на каждом уровне, затем решения на каждом уровне комбинируются удовлетворительным способом, что приводит к реалистичному решению. Эта техника дала ПСПВ для следующих задач: задача поиска изоморфного подграфа, задача о максимальном независимом множестве, задача о вершинном покрытии, минимальное доминирующее множество, минимальное доминирующее множество рёбер многие другие.

Шаблон:Не переведено 5 Эрика Демайна, Фёдора Фомина, Мухаммеда Хаджигайи и Димитроса Тиликоса и её ответвление упрощённые декомпозицииШаблон:SfnШаблон:Sfn обобщает и существенно расширяет область применения техники Бренды Бейкер на обширное множество задач на планарных графах и, более обще, на графах, не содержащих определённого минора, таких как графы с ограниченным родом, а также другие классы графов, не замкнутые по взятию минора, такие как 1-планарные графы.

Пример техники

Пример, на котором продемонстрируем технику Бренды Бейкер — это задача нахождения максимума взвешенного независимого множества.

Алгоритм

НЕЗАВИСИМОЕ МНОЖЕСТВО(G,w,ϵ)

Выбираем произвольную вершину r
k=1/ϵ
Находим уровни поиска в ширину для графа G с корнем r (modk): {V0,V1,,Vk1}
Для всех =0,,k1
Находим компоненты G1,G2,, графа G после удаления уровня V
Для всех i=1,2,
Вычисляем  Si, независимое множество с максимальным весом для графа  Gi
S=iSi
Пусть S* является решением задачи с максимальным весом среди {S0,S1,,Sk1}
Возвращаем S*

Заметим, что приведённый алгоритм правдоподобен, поскольку каждое множество S является объединением непересекающихся независимых множеств.

Динамическое программирование

Динамическое программирование используется для вычисления независимого множества максимального веса для каждого Gi. Эта задача динамического программирования работает, поскольку каждый граф Gi является k-внешнепланарным. Многие NP-полные задачи можно решить с помощью динамического программирования на k-внешнепланарных графах.

Примечания

Шаблон:Примечания

Литература

Шаблон:Refbegin

Шаблон:Refend Шаблон:Rq