Parametrinen pelkistys on tekniikka tehokkaiden algoritmien suunnittelemiseksi , jotka saavuttavat tehokkuutensa esiprosessorivaiheen kautta, jossa algoritmin syöte korvataan pienemmällä syötteellä, jota kutsutaan "ytimeksi". Ytimen ongelman ratkaisun tuloksen tulee olla joko sama kuin lähtötiedoilla tai ytimen ratkaisun tulos on helposti muutettava alkuperäisen ongelman halutuksi tuotokseksi.
Parametrinen vähennys saavutetaan usein soveltamalla vähennyssääntöjä, jotka katkaisevat tietystä ongelmasta sen osan, joka on helppo käsitellä. Parametrisoidussa kompleksisuusteoriassa voidaan usein todistaa, että ydin, jolla on ytimen koosta riippuen taatut rajat ( joidenkin ongelmaan liittyvien parametrien funktiona), löytyy polynomiajasta . Jos mahdollista, tulos on kiinteä-parametrisesti ratkaistava algoritmi, jonka ajoaika on parametrisen pelkistyksen (polynomiajan) vaiheen ja ytimen ratkaisemiseen kuluvan (ei-polynomisen, mutta parametrirajoitetun) ajan summa. Lisäksi mikä tahansa ongelma, joka voidaan ratkaista kiinteän parametrin ratkaistavalla algoritmilla, voidaan ratkaista tämän tyyppisellä parametrisella pelkistysalgoritmilla.
Standardiesimerkki parametrisesta pelkistysalgoritmista on S. Bassin [1] vertex cover -ongelman parametrinen pelkistys . Tässä tehtävässä syöte on suuntaamaton graafi yhdessä luvun kanssa . Tulos on maksimipistejoukko , joka sisältää kunkin graafin loppupisteen, jos sellainen on olemassa, tai epäonnistuneen poikkeuksen, jos tällaista joukkoa ei ole olemassa. Tämä ongelma on NP-kova . Sen parametriseen vähentämiseen voidaan kuitenkin käyttää seuraavia sääntöjä:
Algoritmi, joka soveltaa näitä sääntöjä uudelleen, kunnes muita vähennyksiä ei voida tehdä, päättyy välttämättä ytimeen, jolla on korkeintaan reunoja ja (koska jokaisella reunalla on enintään kaksi päätepistettä eikä eristettyjä pisteitä) enintään pisteet. Tämä parametrinen vähennys voidaan tehdä lineaarisessa ajassa . Kun ydin on rakennettu, vertex cover -ongelma voidaan ratkaista brute force -algoritmilla , joka tarkistaa, että jokainen ytimen osajoukko on ytimen kansi. Siten kärkipeiteongelma voidaan ratkaista ajoissa graafille, jossa on kärkipisteitä ja reunoja, mikä mahdollistaa niiden tehokkaan ratkaisemisen pienenä, vaikka suurikin .
Vaikka tämä raja on kiinteä-parametrisesti ratkaistavissa, sen riippuvuus parametrista on suurempi kuin voisi toivoa. Monimutkaisemmat parametrivähennysmenettelyt voivat parantaa tätä sidosta etsimällä pienempiä ytimiä enemmän aikaa parametrivähennysvaiheessa. Parametrisen pelkistyksen kärkipeitto-ongelmalle tunnetaan algoritmeja, jotka antavat maksimiytimiä, joissa on kärkipisteitä. Algoritmi, joka saavuttaa tämän parannetun rajan, käyttää huippupisteen peittotehtävän puolikokonaislukurelaksaatiota George Nemhauserin ja Trotterin [2] mukaisella lineaarisella ohjelmointitehtävällä . Toinen parametrinen pelkistysalgoritmi, joka saavuttaa tämän rajan, perustuu temppuun, jota kutsutaan kruunun pienennyssäännöksi ja käyttää polun vuorotteluargumentteja [3] . Tällä hetkellä tunnetuin parametrinen pelkistysalgoritmi pisteiden lukumäärän suhteen on Lampis [4] ja saavuttaa pisteet mille tahansa vakiolle .
Tälle ongelmalle on mahdotonta löytää kokoista ydintä, ellei P=NP, jolloin ydin johtaisi polynomialgoritmiin NP-kovan vertex cover -ongelmalle. Tässä tapauksessa ytimen koon tiukemmat rajat voidaan kuitenkin todistaa - ellei coNP NP/poly (jota laskennallisen monimutkaisuuden teoreetikot pitävät epätodennäköisenä), kenenkään on mahdotonta löytää ytimiä, joissa on reunat polynomiajassa [5] .
Kirjallisuudessa ei ole selvää yksimielisyyttä siitä, kuinka parametrinen pelkistys tulisi muodollisesti määritellä, ja tällaisten ilmaisujen käytössä on hienovaraisia eroja.
Downey-Fellowes-merkinnässä [6] parametroitu ongelma on osajoukko , joka kuvaa ratkaistavuusongelmaa .
Parametrisoidun ongelman parametrinen pelkistys on algoritmi, joka ottaa edustajan ja kartoittaa sen ajallisesti polynomiaalisesti edustajaan , niin että
Parametrisen pelkistyksen tulosta kutsutaan ytimeksi. Tässä yleisessä yhteydessä merkkijonon kokoa kutsutaan usein sen pituudeksi. Jotkut kirjoittajat pitävät graafitehtävien yhteydessä parempana kärkien määrää tai reunojen määrää kokona.
Flam-Grohen notaatiossa [7] parametroitu ongelma koostuu päätösongelmasta ja funktiosta , itse parametrisoinnista. Tehtävää edustava parametri on numero .
Parametrisoidun ongelman parametrinen pelkistys on algoritmi, joka ottaa edustajan parametrin kanssa ja kartoittaa sen polynomiajassa edustajaksi siten, että
Huomaa, että tässä merkinnässä koon rajoitus tarkoittaa, että parametria rajoittaa myös funktio .
Toimintoa kutsutaan usein ytimen kooksi. Jos joku sanoo, että se hyväksyy polynomin ytimen. Vastaavasti ongelmalle myönnetään lineaarinen ydin.
Ongelma on kiinteä-parametrisesti ratkaistava, jos ja vain, jos se voidaan pienentää parametrisesti ja se on ratkaistavissa .
Se, että parametrisesti pelkistettävä ja ratkaistava ongelma on kiinteä-parametrisesti ratkaistava, voidaan nähdä yllä olevasta määritelmästä: parametrinen pelkistysalgoritmi, joka suoritetaan ajassa jonkin c:n ajan, kutsutaan koon ytimen saamiseksi . Ydin ratkaistaan sitten algoritmilla, joka tarkistaa, että ongelma on ratkaistavissa. Tämän menettelyn kokonaisajoaika on , missä on ytimien ratkaisemiseen käytetyn algoritmin ajoaika. Koska se on laskettavissa esimerkiksi olettaen, että se on laskettavissa, mutta se voidaan laskea luettelemalla kaikki mahdolliset pituuden syötteet , tästä seuraa, että ongelma on kiinteä-parametrisesti ratkaistava.
Todistaminen toiseen suuntaan, että kiinteä parametrisesti ratkaistava ongelma on parametrisesti pelkistettävissä ja ratkaistavissa, on hieman vaikeampi. Oletetaan, että kysymys on ei-triviaali, mikä tarkoittaa, että on olemassa vähintään yksi tehtäväedustaja nimeltä , joka kuuluu kieleen, ja vähintään yksi tehtäväedustaja, joka ei kuulu kieleen, nimeltä . Muussa tapauksessa minkä tahansa edustajan korvaaminen tyhjällä merkkijonolla on kelvollinen parametrinen vähennys. Oletetaan myös, että ongelma on kiinteäparametrisesti ratkaistava, eli sillä on algoritmi, joka toimii korkeintaan vaiheittain ongelman edustajilla jollekin vakiolle ja jollekin funktiolle . Tulon parametrisen pienentämisen toteuttamiseksi käytämme algoritmia annettuun tuloon enintään vaiheittain. Jos algoritmi päättyy vastaukseen, käytä vastausta valitaksesi joko tai ytimeksi. Jos sen sijaan saavutamme vaiheiden rajan keskeytyksettä, palautamme itse tehtävän ytimeksi. Koska se palautetaan syöteytimenä :lla , tästä seuraa, että tällä tavalla saadun ytimen koko ei ylitä . Kokoraja on laskettavissa kiinteän parametrisen ratkaistavuuden oletuksilla, mikä on laskettavissa.