Reducerea parametrică este o tehnică de proiectare a algoritmilor eficienți care își ating eficiența printr-un pas de preprocesor în care intrarea algoritmului este înlocuită cu o intrare mai mică numită „kernel”. Rezultatul rezolvării problemei pe nucleu trebuie fie să fie același ca pentru datele inițiale, fie rezultatul soluției pentru nucleu trebuie să fie ușor transformat în rezultatul dorit al problemei inițiale.
Reducerea parametrică este adesea realizată prin aplicarea unui set de reguli de reducere care elimină partea unei anumite probleme care este ușor de rezolvat. În teoria complexității parametrizate , se poate dovedi adesea că un nucleu cu limite garantate în funcție de dimensiunea nucleului (în funcție de unii parametri legați de problemă) poate fi găsit în timp polinomial . Dacă este posibil, rezultatul va fi fix-rezolvabil parametric un algoritm al cărui timp de rulare este suma pasului (timpul polinom) al reducerii parametrice și timpul (nepolinom, dar mărginit de parametru) de rezolvare a nucleului. Mai mult, orice problemă care poate fi rezolvată printr-un algoritm solubil cu parametri fix poate fi rezolvată printr-un algoritm de reducere parametrică de acest tip.
Un exemplu standard de algoritm de reducere parametrică este reducerea parametrică a problemei acoperirii vârfurilor de către S. Bass [1] . În această problemă, intrarea este un grafic nedirecționat împreună cu un număr . Ieșirea este un set de vârfuri maxim care include vârful final al fiecărui grafic dacă există o astfel de mulțime sau o excepție de eșec dacă un astfel de set nu există. Această problemă este NP-hard . Cu toate acestea, următoarele reguli pot fi utilizate pentru reducerea parametrică a acestuia:
Un algoritm care reaplică aceste reguli până când nu se mai pot face reduceri ulterioare se termină neapărat cu un nucleu care are cel mult muchii și (deoarece fiecare muchie are cel mult două vârfuri terminale și niciun vârf izolat) cel mult vârfuri. Această reducere parametrică se poate face în timp liniar . Odată construit nucleul, problema acoperirii nodurilor poate fi rezolvată printr-un algoritm de forță brută , care verifică dacă fiecare subset al nucleului este o acoperire a nucleului. Astfel, problema acoperirii nodurilor poate fi rezolvată în timp pentru un grafic cu vârfuri și muchii, ceea ce le permite să fie rezolvate eficient atunci când sunt mici, chiar dacă mari .
Deși această limită este fixă-parametric rezolvabilă, dependența sa de parametru este mai mare decât s-ar putea dori. Procedurile mai complexe de reducere parametrică pot îmbunătăți această limită prin găsirea de nuclee mai mici cu costul a mai mult timp în etapa de reducere parametrică. Sunt cunoscuți algoritmi pentru problema acoperirii vârfurilor a reducerii parametrice, care dau nuclee maxime cu vârfuri. Algoritmul care realizează această limită îmbunătățită folosește relaxarea pe jumătate întreg a problemei acoperirii vârfurilor printr-o problemă de programare liniară conform lui George Nemhauser și Trotter [2] . Un alt algoritm de reducere parametrică care realizează această limită se bazează pe un truc numit regula de reducere a coroanei și folosește argumente de alternanță a căii [3] . În prezent, cel mai cunoscut algoritm de reducere parametrică în ceea ce privește numărul de vârfuri se datorează lui Lampis [4] și realizează vârfuri pentru orice constantă .
Este imposibil ca această problemă să găsească un nucleu de dimensiune decât dacă P=NP, caz în care nucleul ar duce la un algoritm polinomial pentru problema acoperirii vertexului NP-hard. Cu toate acestea, limite mai strânse ale mărimii nucleului pot fi dovedite în acest caz - cu excepția cazului în care conNP NP/poly (pe care teoreticienii complexității computaționale îl consideră puțin probabil), este imposibil pentru cineva să găsească nuclee cu muchii în timp polinomial [5] .
Nu există un consens clar în literatură cu privire la modul în care reducerea parametrică ar trebui definită formal și există o diferență subtilă în utilizarea unor astfel de expresii.
În notația Downey-Fellowes [6] , o problemă parametrizată este o submulțime care descrie problema de solubilitate .
Reducerea parametrică a unei probleme parametrizate este un algoritm care ia un reprezentant și îl mapează în timp polinom în și către un reprezentant , astfel încât
Ieșirea reducerii parametrice se numește nucleu. În acest context general , dimensiunea unui șir este adesea denumită lungimea sa. Unii autori preferă numărul de vârfuri sau numărul de muchii ca mărime în contextul problemelor de graf.
În notația Flam-Grohe [7] , o problemă parametrizată constă dintr- o problemă de decizie și o funcție , parametrizarea însăși. Parametrul reprezentativ al sarcinii este un număr .
Reducerea parametrică pentru o problemă parametrizată este un algoritm care ia un reprezentant cu un parametru și îl mapează în timp polinomial la un reprezentant astfel încât
Rețineți că în această notație limita de dimensiune implică faptul că parametrul este , de asemenea, mărginit de o funcție de .
Funcția este adesea denumită dimensiunea nucleului. Dacă se spune că admite un nucleu polinom. În mod similar, pentru problemă admite un nucleu liniar.
O problemă este fixată-parametric rezolvabilă dacă și numai dacă poate fi redusă parametric și este rezolvabilă .
Că o problemă reductibilă și rezolvabilă parametric este fix-parametric rezolvabilă se poate vedea din definiția de mai sus: un algoritm de reducere parametrică care rulează în timp pentru un anumit c este invocat pentru a obține un nucleu de dimensiune . Nucleul este apoi rezolvat de un algoritm care verifică dacă problema este rezolvabilă. Timpul total de rulare al acestei proceduri este , unde este timpul de rulare al algoritmului utilizat pentru rezolvarea nucleelor. Deoarece este calculabil, de exemplu, sub ipoteza că este calculabil, dar poate fi calculat prin enumerarea tuturor intrărilor posibile de lungime , rezultă că problema este rezolvabilă fix-parametric.
Dovada în cealaltă direcție că o problemă fixă rezolvabilă parametric este reductibilă și rezolvabilă este puțin mai dificilă. Să presupunem că întrebarea este netrivială, ceea ce înseamnă că există cel puțin un reprezentant al sarcinii numit , aparținând limbii și cel puțin un reprezentant al sarcinii, care nu aparține limbii, numit . În caz contrar, înlocuirea oricărui reprezentant cu un șir gol este o reducere parametrică validă. Să presupunem, de asemenea, că problema este rezolvabilă fix-parametric, adică are un algoritm care funcționează cel mult în pași pe reprezentanți ai problemei pentru o constantă și o anumită funcție . Pentru a implementa reducerea parametrică a intrării, aplicăm algoritmul pe o intrare dată în maximum pași. Dacă algoritmul se termină cu un răspuns, utilizați răspunsul pentru a alege oricare sau ca nucleu. Dacă, în schimb, ajungem la limita numărului de pași fără întrerupere, returnăm sarcina în sine ca nucleu. Deoarece este returnat ca nucleu de intrare cu , rezultă că dimensiunea nucleului obținut în acest mod nu depășește . Limita mărimii este calculabilă în baza ipotezelor de solvabilitate parametrică fixă, care este calculabilă.