Aproximační algoritmus

Aproximační algoritmus je algoritmus  v operačním výzkumu , který se používá k nalezení přibližného řešení optimalizačního problému .

Koncept aproximačního algoritmu byl formalizován v roce 1972 v práci Gareyho, Grahama a Ullmana [1] a později Johnsona [2] . Aproximační algoritmy jsou často spojovány s NP-těžkými problémy, protože pro ně stěží existuje účinný polynomiální časově přesný algoritmus řešení, takže má smysl snažit se najít řešení, které se blíží optimálnímu. Na rozdíl od heuristických algoritmů , které poskytují dostatečně dobrá řešení v přijatelném čase, poskytují aproximační algoritmy prokazatelnou kvalitu řešení v předem stanovených časových limitech. V ideálním případě poskytuje aproximace řešení, které se od optimálního liší o nějaký malý faktor (například v rozmezí 5 %). Aproximační algoritmy se stále častěji používají k řešení problémů, pro které jsou známy přesné algoritmy, které běží v polynomiálním čase, ale běží po dlouhou dobu. Typickým příkladem aproximačního algoritmu je algoritmus pro řešení problému pokrytí vrcholů v teorii grafů : najděte nepokrytou hranu a přidejte oba její vrcholy k pokrytí vrcholu a tak dále, dokud nejsou pokryty všechny. Je jasné, že výsledné krytí může být dvakrát větší než to optimální. Toto řešení je aproximační algoritmus s konstantním koeficientem 2.

NP-těžké problémy se velmi liší svou aproximovatelností. Některé, jako je problém s balením přihrádek , lze aproximovat jakýmkoli faktorem větším než 1 (tato rodina algoritmů se nazývá Přibližné polynomické časové schéma nebo PTAS ). Jiné problémy nelze aproximovat žádným konstantním koeficientem, dokonce ani polynomiálním koeficientem (pokud P ≠ NP ), a mezi takové problémy patří problém maximální kliky .

NP-těžké problémy lze často vyjádřit pomocí celočíselného programování a vyřešit je přesně v exponenciálním čase . Mnoho exponenciálních algoritmů pochází z redukce celočíselného problému na problém lineárního programování . [3]

Ne všechny aproximační algoritmy jsou vhodné pro řešení praktických problémů. Často používají CPU / LP / semi-definované úlohy , složité datové struktury nebo sofistikované programovací techniky jako dílčí úlohy, což vede ke složitosti implementace. Některé aproximační algoritmy mají nepřijatelné doby běhu, i když je čas polynomiální (např. O( n 2000 )). Studium ani takových nereálných algoritmů však nesleduje čistě teoretické cíle, protože umožňuje pochopit podstatu problému. Klasickým příkladem je počáteční algoritmus PTAS pro metrický problém obchodního cestujícího , který vlastní Sanjiv Arora , který měl téměř nereálnou dobu běhu. Během jednoho roku však Arora zdokonalila myšlenku na algoritmus, který běžel v lineárním čase. Takové algoritmy jsou také vhodné pro úlohy, kde lze odůvodnit provozní dobu a náklady. Tyto úkoly zahrnují výpočetní biologii , finanční inženýrství , plánování dopravy a řízení zásob .

Dalším omezením je, že přístup je vhodný pouze pro optimalizační problémy, ale ne pro "čisté" rozpoznávací problémy , jako je problém splnitelnosti booleovských vzorců , i když se často stává, že metoda je docela použitelná pro řešení optimalizačních verzí stejných problémů, např. například pro problém maximální splnitelnosti booleovské vzorce (Max SAT).


Nemožnost aproximace je plodnou oblastí výzkumu v oblasti výpočetní složitosti od doby, kdy Feige, Goldwasser, Lovasz, Safra a Szegedy v roce 1990 stanovili, že problém nalezení maximální nezávislé množiny nelze aproximovat . Rok poté, co Arora dokázal PCP teorém , Johnsonovy aproximační algoritmy z roku 1974 pro Booleovský problém uspokojitelnosti , Problém množinového pokrytí , Problém nezávislých množin a Problém chromatických čísel grafů mají optimální aproximační faktor (za předpokladu P ≠ NP)

Zaručená účinnost

U některých aproximačních algoritmů je možné prokázat některé vlastnosti výsledku aproximace. Například ρ -aproximační algoritmus A  je podle definice algoritmem, pro který poměr f ( x ) = hodnota/náklady na řešení aproximačního problému A ( x ) pro problém x nepřesahuje (nebo není menší, v závislosti na situace) součin koeficientu ρ na optimální hodnotu [4] [5] :

Koeficient ρ se nazývá relativní zaručená účinnost .

Aproximační algoritmus má absolutní zaručenou účinnost nebo omezenou chybu c , pokud pro jakýkoli problém x ,

Zaručená účinnost , R ( x, y ) řešení y pro úlohu x je definována podobným způsobem

kde f ( y ) je poměr hodnota/náklady pro řešení y problému x . Je jasné, že garantovaná účinnost není menší než jedna a rovná se jedné pouze v případě, kdy y je optimální řešení. Pokud algoritmus A zaručuje řešení s maximální účinností r ( n ), pak A je považován za r ( n )-aproximační algoritmus a má aproximační faktor r ( n ) [6] [7] .

Je snadné vidět, že v případě problému minimalizace dávají obě definice garantované účinnosti stejnou hodnotu, zatímco pro problém maximalizace .

Důležitý pojem relativní chyby spojený s optimalizačními problémy je v literatuře definován různými způsoby: například W. Kann [7] jej definuje jako , Ausiello et al., [6] jako .

Absolutní zaručená účinnost některého aproximačního algoritmu A je definována jako

Zde x označuje úlohu a  a je zaručená účinnost A pro x .

Je tedy  horní mez garantované účinnosti r pro všechny možné problémy.

Asymptotická účinnost je definována podobným způsobem :

Zaručená účinnost: Dolní (horní) hranice pro problémy s minimalizací (maximalizací) při různých hodnotách
r -cca. [6] [7] ρ -cca. se týká. chyba c [7] se týká. chyba c [6] normy. vztah chyba c [6] [7] břišní svaly. chyba c [6] [7]
max:
min:

Techniky vývoje algoritmů

V současné době existuje několik standardních přístupů k vývoji aproximačního algoritmu. Mezi nimi:

  1. Chamtivý algoritmus .
  2. Místní vyhledávání .
  3. Enumerace a dynamické programování .
  4. Řešení oslabeného konvexního programovacího problému s možností získání zlomkového řešení. Roztok se pak zaokrouhlováním převede na vhodný roztok. Populární metody zmírnění problémů jsou:
    1. Redukce na problém lineárního programování .
    2. Redukce na problém semidefinitního programování .
  5. Definování nějaké jednoduché metriky pro problém a řešení problému s touto metrikou.

Člen Epsilon

V literatuře se aproximační koeficient pro maximální (nebo minimální) problém zapisuje jako (nebo ) pro nějaké číslo v případě, že existují varianty algoritmu s aproximačním koeficientem pro libovolné ale ne pro . Příkladem takové aproximace je nedosažitelnost koeficientu 7/8 pro problém MAX-3SAT [8] .

Poznámky

  1. MRGarey, RL Graham a JD Ullman. Analýza nejhoršího případu algoritmů alokace paměti. V Proc. 4. ACM Symp. O teorii výpočetní techniky. 143-152, 1972.
  2. D.S. Johnson. Aproximační algoritmy pro kombinatorické úlohy. J Výpočet. System Sci., 9, 256-278, 1974.
  3. Gomory, Ralph E. (1958), "Náčrt algoritmu pro celočíselná řešení lineárních programů", Bulletin of the American Mathematical Society 64 (5): 275-279, doi: 10.1090/S0002-9904-1958-1022 čtyři.
  4. Dorit S. Hochbaum, editor, Aproximační algoritmy pro NP-Hard Problems, strana XV. Vydavatelská společnost PWS
  5. Tjark Vredeveld, Experimentální kombinatorické aproximační algoritmy: Zaručená versus výkon, Technische Universiteit Eindhoven, 2002, SBN 90-386-0532-3
  6. 1 2 3 4 5 6 G. Ausiello, P. Crescenzi, G. Gambosi, V. Kann, A. Marchetti-Spaccamela a M. Protasi. Složitost a aproximace: Problémy kombinatorické optimalizace a jejich  vlastnosti aproximovatelnosti . — 1999.
  7. 1 2 3 4 5 6 Viggo Kann. O aproximovatelnosti NP-úplných optimalizačních  problémů . — 1992.
  8. Johan Hastad. Některé výsledky optimální nepřiblížení  //  Journal of the ACM  : journal. — 1999.

Literatura

Odkazy