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)
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 :
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: |
V současné době existuje několik standardních přístupů k vývoji aproximačního algoritmu. Mezi nimi:
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] .
![]() |
---|