En tilnærmelsesalgoritme er en algoritme i operationsforskning , der bruges til at finde en omtrentlig løsning på et optimeringsproblem .
Konceptet med en tilnærmelsesalgoritme blev formaliseret i 1972 i et papir af Garey, Graham og Ullman [1] og senere af Johnson [2] . Approksimationsalgoritmer er ofte forbundet med NP-hårde problemer, da der næppe findes en effektiv polynomisk tidseksakt løsningsalgoritme for dem, så det giver mening at forsøge at finde en løsning, der er tæt på optimal. I modsætning til heuristiske algoritmer , som giver tilstrækkeligt gode løsninger på en acceptabel tid, giver tilnærmelsesalgoritmer en beviselig kvalitet af løsningen inden for forudbestemte tidsgrænser. Ideelt set giver tilnærmelsen en løsning, der adskiller sig fra den optimale med en lille faktor (f.eks. inden for 5%). Approksimationsalgoritmer bliver i stigende grad brugt til at løse problemer, for hvilke der kendes eksakte algoritmer, der kører i polynomiel tid, men kører i lang tid. Et typisk eksempel på en tilnærmelsesalgoritme er algoritmen til løsning af toppunktsdækslet i grafteori : find en udækket kant og tilføj begge dens toppunkter til toppunktsdækslet, og så videre, indtil alle er dækket. Det er klart, at den resulterende dækning kan være dobbelt så stor som den optimale. Denne løsning er en tilnærmelsesalgoritme med en konstant koefficient på 2.
NP-hårde problemer varierer meget i deres tilnærmelighed. Nogle, såsom bin-packing-problemet , kan tilnærmes med en hvilken som helst faktor større end 1 (denne familie af algoritmer kaldes Approximate Polynomial Time Scheme eller PTAS ). Andre problemer kan ikke tilnærmes med nogen konstant koefficient eller endda med en polynomiel koefficient (hvis P ≠ NP ), og blandt sådanne problemer er det maksimale klikproblem .
NP-hårde problemer kan ofte udtrykkes i form af heltalsprogrammering og løses nøjagtigt i eksponentiel tid . Mange eksponentielle algoritmer stammer fra at reducere et heltalsproblem til et lineært programmeringsproblem . [3]
Ikke alle tilnærmelsesalgoritmer er egnede til at løse praktiske problemer. Ofte bruger de CPU / LP / semi-definerede opgaver , komplekse datastrukturer eller sofistikerede programmeringsteknikker som underopgaver , hvilket fører til implementeringskompleksitet. Nogle tilnærmelsesalgoritmer har uacceptable køretider, selvom tiden er polynomiel (f.eks. O( n 2000 )). Ikke desto mindre forfølger studiet af selv sådanne urealistiske algoritmer ikke rent teoretiske mål, da det gør det muligt at forstå essensen af problemet. Et klassisk eksempel er den indledende PTAS-algoritme for det metriske rejsende sælgerproblem , ejet af Sanjiv Arora , som havde en næsten urealistisk køretid. Men inden for et år forfinede Arora ideen til en algoritme, der kørte i lineær tid. Sådanne algoritmer er også velegnede til opgaver, hvor driftstiden og omkostningerne kan begrundes. Disse opgaver omfatter Computational Biology , Financial Engineering , Transportation Planning og Inventory Management .
En anden begrænsning er, at tilgangen kun er egnet til optimeringsproblemer, men ikke til "rene" genkendelsesproblemer som problemet med tilfredsstillelse af booleske formler , selvom det ofte sker, at metoden er ret anvendelig til at løse optimeringsversioner af de samme problemer, f. for eksempel for det maksimale tilfredsstillelsesproblem booleske formler (Max SAT).
Umuligheden af tilnærmelse har været et frugtbart forskningsfelt inden for beregningskompleksitet lige siden Feige, Goldwasser, Lovasz, Safra og Szegedy i 1990 fastslog, at problemet med at finde det maksimale uafhængige sæt ikke kan tilnærmes . Et år efter Arora beviste PCP-sætningen , har Johnsons tilnærmelsesalgoritmer fra 1974 for det boolske tilfredshedsproblem, sætdækningsproblemet , det uafhængige sætproblem og grafens kromatisk talproblem en optimal tilnærmelsesfaktor (forudsat at P ≠ NP)
For nogle tilnærmelsesalgoritmer er det muligt at bevise nogle egenskaber ved tilnærmelsesresultatet. For eksempel er en ρ -approksimationsalgoritme A per definition en algoritme, for hvilken forholdet f ( x ) = værdi/omkostning for at løse tilnærmelsesproblemet A ( x ) for opgave x ikke overstiger (eller ikke mindre, afhængigt af situationen) produktet af koefficienten ρ til den optimale værdi [4] [5] :
Koefficienten ρ kaldes den relative garanterede effektivitet .
En tilnærmelsesalgoritme har en absolut garanteret effektivitet eller en begrænset fejl c , hvis for ethvert problem x ,
Den garanterede effektivitet , R ( x, y ), af en løsning y for problem x defineres på lignende måde
hvor f ( y ) er værdi/omkostningsforholdet for løsning y af opgave x . Det er klart, at den garanterede effektivitet ikke er mindre end én og kun er lig med én i det tilfælde, hvor y er den optimale løsning. Hvis algoritme A garanterer en løsning med maksimal effektivitet r ( n ), så siges A at være en r ( n )-approksimationsalgoritme og har en tilnærmelsesfaktor r ( n ) [6] [7] .
Det er let at se, at i tilfælde af minimeringsproblemet giver begge definitioner af garanteret effektivitet samme værdi, mens for maksimeringsproblemet .
Det vigtige begreb om relativ fejl forbundet med optimeringsproblemer er defineret i litteraturen på forskellige måder: for eksempel definerer W. Kann [7] det som , og Ausiello et al. [6] som .
Den absolutte garanterede effektivitet af en eller anden tilnærmelsesalgoritme A er defineret som
Her betegner x en opgave, og a er den garanterede effektivitet af A for x .
Således er den øvre grænse for den garanterede effektivitet r for alle mulige opgaver.
Den asymptotiske effektivitet defineres på lignende måde :
r -ca. [6] [7] | ρ -ca. | vedrører. fejl c [7] | vedrører. c fejl [6] | normer. forhold fejl c [6] [7] | abs. fejl c [6] [7] | |
---|---|---|---|---|---|---|
max: | ||||||
min: |
I øjeblikket er der flere standardtilgange til udvikling af en tilnærmelsesalgoritme. Blandt dem:
I litteraturen er tilnærmelseskoefficienten for det maksimale (eller minimum) problem skrevet som (eller ) for et eller andet tal i det tilfælde, hvor der er varianter af algoritmen med en tilnærmelseskoefficient for nogen , men ikke for . Et eksempel på en sådan tilnærmelse er uopnåeligheden af koefficienten 7/8 for MAX-3SAT-problemet [8] .
![]() |
---|