Interested Article - Аппроксимационный алгоритм
- 2020-01-25
- 2
Аппроксимационный алгоритм — в исследовании операций алгоритм , использующийся для поиска приближённого решения оптимизационной задачи .
Концепция аппроксимационного алгоритма была формализована в 1972 году в статье Гарея, Грэхэма и Ульмана , а позднее Джонсоном . Аппроксимационные алгоритмы часто связаны с NP-трудными задачами, поскольку для них вряд ли найдётся эффективный алгоритм точного решения за полиномиальное время, так что имеет смысл попробовать найти близкое оптимальному решение. В отличие от эвристических алгоритмов , дающих достаточно хорошие решения за приемлемое время, аппроксимационные алгоритмы обеспечивают доказуемое качество решения в заранее определённых границах времени. В идеале аппроксимация даёт решение, отличающееся от оптимального на некоторый небольшой множитель (например, в пределах 5 %). Аппроксимационные алгоритмы всё чаще используются для решения задач, для которых известны точные алгоритмы, работающие за полиномиальное время, но работающие долго. Типичным примером аппроксимационного алгоритма может служить алгоритм решения задачи о вершинном покрытии в теории графов : найти непокрытое ребро и добавить обе его вершины к покрытию вершин, и так продолжать, пока все не будут покрыты. Ясно, что полученное покрытие может оказаться вдвое больше оптимального. Такое решение является аппроксимационным алгоритмом с постоянным коэффициентом 2.
NP-трудные проблемы сильно различаются по возможности аппроксимации. Некоторые, среди которых, например, задача об упаковке в контейнеры , могут быть аппроксимированы с любым коэффициентом, большим 1 (это семейство алгоритмов называют приближённой схемой полиномиального времени , или PTAS ). Другие задачи невозможно аппроксимировать ни с каким постоянным коэффициентом, или даже с полиномиальным коэффициентом (если P ≠ NP ), и среди таких задач находится задача о максимальной клике .
NP-трудные задачи часто можно выразить в терминах целочисленного программирования и решить в точности за экспоненциальное время . Многие экспоненциальные алгоритмы берут своё начало из целочисленной задачи.
Не все аппроксимационные алгоритмы подходят для решения практических задач. Часто они используют в качестве подзадач ЦП / ЛП / полуопределённые задачи , сложные структуры данных или изощрённую технику программирования, что ведёт к сложности реализации. Некоторые аппроксимационные алгоритмы имеют неприемлемое время работы, хотя время и полиномиально (например, O( n 2000 )). Всё же изучение даже таких нереальных алгоритмов не преследует чисто теоретические цели, поскольку оно даёт возможность понять суть проблемы. Классический пример — начальный PTAS алгоритм для метрической задачи о коммивояжёре , принадлежащий Санджив Арора и имевший практически нереальное время работы. Однако, в течение года, Арора отточил идею до алгоритма, работающего за линейное время. Такие алгоритмы пригодны также для задач, в которых время работы и цена могут быть оправданы. К таким задачам относятся Вычислительная биология , , и .
Другое ограничение связано с тем, что подход годится только для задач оптимизации, но не для «чистых» задач распознавания наподобие задачи выполнимости булевых формул , хотя часто бывает, что метод вполне применим для решения оптимизационных версий тех же задач, например, для (Max SAT).
Невозможность аппроксимации является плодотворным полем исследований в области вычислительной сложности с тех пор, как в 1990 году Фейг (Feige), Голдвассер (Goldwasser), Ловаш (Lovasz), Сафра (Safra) и Шегеди (Szegedy) установили невозможность аппроксимации задачи нахождения максимального независимого множества вершин . Через год после того, как Арора (Arora) доказал теорему PCP , было доказано, что аппроксимационные алгоритмы Джонсона (Johnson) 1974 года для задачи о выполнимости булевых формул , задачи о покрытии множества , задачи о независимом множестве и задача о хроматическом числе графа имеют оптимальный аппроксимационный коэффициент (в предположении, что P ≠ NP)
Гарантированная эффективность
Для некоторых аппроксимационных алгоритмов удаётся доказать некоторые свойства результата аппроксимации. Например, ρ -аппроксимационный алгоритм A — это по определению алгоритм, для которого отношение f ( x ) = ценность/затраты для решения аппроксимационной задачи A ( x ) для задачи x не превосходит (или не менее, в зависимости от ситуации) произведения коэффициента ρ на оптимальную величину ценности :
Коэффициент ρ называется относительной гарантированной эффективностью .
Аппроксимационный алгоритм имеет абсолютную гарантированную эффективность или ограниченную ошибку c , если для любой задачи x выполняется
Подобным образом определяется гарантированная эффективность , R ( x, y ), решения y для задачи x
где f ( y ) — отношение ценность/затраты для решения y задачи x . Ясно, что гарантированная эффективность не меньше единицы и равна единице только в случае, когда y является оптимальным решением. Если алгоритм A гарантирует решение с максимальной эффективностью r ( n ), то говорят, что A является r ( n )-аппроксимационным алгоритмом и имеет аппроксимационный коэффициент r ( n ) .
Легко заметить, что в случае задачи минимизации оба определения гарантированной эффективности дают одно значение, в то время как для задачи максимизации .
Важное понятие относительной ошибки , связанной с задачами оптимизации, определяется в литературе по-разному: например, В. Канн определяет её как , а Аузиелло и др. как .
Абсолютная гарантированная эффективность некоторого аппроксимационного алгоритма A определяется как
Здесь х обозначает задачу, а — это гарантированная эффективность A для x .
Таким образом, — это верхняя граница гарантированной эффективности r для всех возможных задач.
Подобным образом определяется асимптотическая эффективность :
r -аппрокс. | ρ -аппрокс. | относит. ошибка c | относит. ошибка c | норм. относ. ошибка c | абс. ошибка c | |
---|---|---|---|---|---|---|
max: | ||||||
min: |
Техника разработки алгоритмов
На настоящее время существует несколько стандартных подходов к разработке аппроксимационного алгоритма. Среди них:
- Жадный алгоритм .
- Локальный поиск .
- Перебор и динамическое программирование .
-
Решение ослабленной задачи
выпуклого программирования
с возможностью получения дробного решения. Затем решение преобразуется в подходящее решение путём округления. Популярными методами ослабления задачи являются:
- Сведение к задаче линейного программирования .
- Сведение к задаче полуопределённого программирования .
- Определение для задачи некоторой простой метрики и решение задачи с этой метрикой.
Эпсилон-член
В литературе коэффициент аппроксимации для задачи на максимум (или минимум) записывается как (или ) для некоторого числа в том случае, когда существуют варианты алгоритма с коэффициентом аппроксимации для любого , но не для . Пример такой аппроксимации — недостижимость коэффициента 7 / 8 для задачи MAX-3SAT .
Примечания
- M.R.Garey, R.L. Graham and J.D. Ullman. Worst case analysis of memory allocation algorithms. In Proc. Of the 4th ACM Symp. On Theory of Computing. 143—152, 1972.
- D.S.Johnson. Approximation algorithms for combinatorial problems. J. Comput. System Sci., 9, 256—278, 1974.
- Gomory, Ralph E. (1958), «Outline of an algorithm for integer solutions to linear programs», Bulletin of the American Mathematical Society 64 (5): 275—279, doi:10.1090/S0002-9904-1958-10224-4.
- Dorit S. Hochbaum, editor, Approximation Algorithms for NP-Hard Problems, page XV. PWS Publishing Company
- Tjark Vredeveld, Combinatorial approximation algorithms: Guaranteed versus experimental performance, Technische Universiteit Eindhoven, 2002, SBN 90-386-0532-3
- ↑ G. Ausiello, P. Crescenzi, G. Gambosi, V. Kann, A. Marchetti-Spaccamela, and M. Protasi. Complexity and Approximation: Combinatorial Optimization Problems and their Approximability Properties (англ.) . — 1999.
- ↑ Viggo Kann. (англ.) . — 1992. 12 августа 2021 года.
- Johan Håstad. (англ.) // Journal of the ACM : journal. — 1999. 12 марта 2012 года.
Литература
- ISBN 3-540-65367-8 . Approximation Algorithms (англ.) . — Berlin: Springer, 2003. —
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms , Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7 . Chapter 35: Approximation Algorithms, pp. 1022—1056.
- Dorit H. Hochbaum, ed. Approximation Algorithms for NP-Hard problems, PWS Publishing Company, 1997. ISBN 0-534-94968-1 . Chapter 9: Various Notions of Approximations: Good, Better, Best, and More
-
Williamson, David; Shmoys, David (April 26, 2011),
The Design of Approximation Algorithms
,
Cambridge University Press
,
ISBN
978-0521195270
{{ citation }}
: Неизвестный параметр|middle1=
игнорируется ( справка ) ; Неизвестный параметр|middle2=
игнорируется ( справка )
Ссылки
- Pierluigi Crescenzi, Viggo Kann, Magnús Halldórsson, Marek Karpinski and Gerhard Woeginger, (англ.)
- 2020-01-25
- 2