Parametrisk reduktion är en teknik för att designa effektiva algoritmer som uppnår sin effektivitet genom ett förprocessorsteg där algoritmens inmatning ersätts av en mindre ingång som kallas "kärnan". Resultatet av att lösa problemet på kärnan måste antingen vara detsamma som för de initiala data, eller också måste utdata från lösningen för kärnan enkelt omvandlas till den önskade utdata från det ursprungliga problemet.
Parametrisk reduktion uppnås ofta genom att tillämpa en uppsättning reduktionsregler som skär bort den del av ett visst problem som är lätt att hantera. I parameteriserad komplexitetsteori , kan man ofta bevisa att en kärna med garanterade gränser beroende på storleken på kärnan (som en funktion av vissa problemrelaterade parametrar) kan hittas i polynomtid . Om möjligt kommer resultatet att bli en fast-parametriskt avgörbar -algoritm vars körtid är summan av (polynomtiden) parametriska reduktionssteget och den (icke-polynomiska men parameterbegränsade) tiden för att lösa kärnan. Dessutom kan alla problem som kan lösas med en lösbar algoritm med fasta parametrar lösas med en parametrisk reduktionsalgoritm av denna typ.
Ett standardexempel på en parametrisk reduktionsalgoritm är den parametriska reduktionen av vertextäckningsproblemet med S. Bass [1] . I det här problemet är inmatningen en oriktad graf tillsammans med ett nummer . Utdata är en maximal vertexuppsättning som inkluderar slutpunkten för varje graf om en sådan uppsättning finns, eller ett misslyckande undantag om en sådan uppsättning inte finns. Det här problemet är NP-svårt . Följande regler kan dock användas för dess parametriska minskning:
En algoritm som återanvänder dessa regler tills inga ytterligare minskningar kan göras, avslutas nödvändigtvis med en kärna som har högst kanter och (eftersom varje kant har högst två terminala hörn och inga isolerade hörn) vid de flesta hörn. Denna parametriska minskning kan göras i linjär tid . När kärnan väl är byggd kan problemet med vertextäckning lösas med en brute force- algoritm , som kontrollerar att varje delmängd av kärnan är ett kärnhölje. Därmed kan vertextäckningsproblemet lösas i tid för en graf med hörn och kanter, vilket gör att de kan lösas effektivt när de är små, även om de är stora .
Även om denna gräns är fast-parametriskt lösbar, är dess beroende av parametern högre än man skulle kunna önska. Mer komplexa parametriska reduktionsprocedurer kan förbättra denna gräns genom att hitta mindre kärnor till priset av mer tid i det parametriska reduktionssteget. Algoritmer för problem med vertextäckning med parametrisk reduktion är kända, vilka ger maximala kärnor med hörn. Algoritmen som uppnår denna förbättrade gräns använder halvheltalsrelaxationen av vertextäckningsproblemet genom ett linjärt programmeringsproblem enligt George Nemhauser och Trotter [2] . En annan parametrisk reduktionsalgoritm som uppnår denna gräns är baserad på ett trick som kallas kronreduktionsregeln och använder vägväxlingsargument [3] . För närvarande är den mest kända parametriska reduktionsalgoritmen vad gäller antalet hörn på grund av Lampis [4] och uppnår hörn för vilken konstant som helst .
Det är omöjligt för detta problem att hitta en kärna av storlek om inte P=NP, i vilket fall kärnan skulle leda till en polynomalgoritm för NP-hårda vertextäckningsproblem. Men snävare gränser för storleken på kärnan kan bevisas i detta fall - såvida inte coNP NP/poly (vilket beräkningskomplexitetsteoretiker anser osannolikt), är det omöjligt för någon att hitta kärnor med kanter i polynomtid [5] .
Det finns ingen tydlig konsensus i litteraturen om hur parametrisk reduktion formellt ska definieras, och det finns en subtil skillnad i användningen av sådana uttryck.
I Downey-Fellowes-notationen [6] är ett parametriserat problem en delmängd som beskriver lösbarhetsproblemet .
Parametrisk reduktion av ett parametriserat problem är en algoritm som tar en representant och avbildar den i tid polynomiskt i och till en representant , så att
Utdata från parametrisk reduktion kallas kärnan. I det här allmänna sammanhanget hänvisas ofta till storleken på en sträng som dess längd. Vissa författare föredrar antalet hörn eller antalet kanter som storlek i samband med grafproblem.
I Flam-Grohe-notationen [7] består ett parametriserat problem av ett beslutsproblem och en funktion , själva parametriseringen. Den uppgiftsrepresentativa parametern är ett tal .
Parametrisk reduktion för ett parameteriserat problem är en algoritm som tar en representant med en parameter och mappar den i polynomtid till en representant så att
Observera att storleksgränsen i denna notation innebär att parametern också begränsas av en funktion av .
Funktionen kallas ofta för storleken på kärnan. Om man säger att den tillåter en polynomkärna. På samma sätt, för problemet medger en linjär kärna.
Ett problem är fast-parametriskt lösbart om och bara om det kan reduceras parametriskt och det är lösbart .
Att ett parametriskt reducerbart och lösbart problem är fast-parametriskt lösbart framgår av definitionen ovan: en parametrisk reduktionsalgoritm som körs i tid för något c anropas för att få en kärna av storlek . Kärnan löses sedan av en algoritm som kontrollerar att problemet är lösbart. Den totala körtiden för denna procedur är , där är körtiden för algoritmen som används för att lösa kärnorna. Eftersom det är beräkningsbart, till exempel under antagandet att det är beräkningsbart, men kan beräknas genom uppräkning av alla möjliga indata av längd , följer det att problemet är fast-parametriskt lösbart.
Beviset åt andra hållet för att ett fixerat parametriskt lösbart problem är parametriskt reducerbart och lösbart är lite svårare. Anta att frågan är icke-trivial, vilket betyder att det finns minst en uppgiftsrepresentant som heter , som tillhör språket, och minst en uppgiftsrepresentant, som inte tillhör språket, heter . Annars är det en giltig parametrisk minskning att ersätta en representant med en tom sträng. Låt oss också anta att problemet är fast-parametriskt lösbart, det vill säga det har en algoritm som som mest fungerar i steg på representanter för problemet för någon konstant och någon funktion . För att implementera den parametriska reduktionen av ingången tillämpar vi algoritmen på en given ingång i maximalt steg. Om algoritmen slutar med ett svar, använd svaret för att välja antingen eller som kärna. Om vi istället når gränsen för antalet steg utan avbrott returnerar vi själva uppgiften som kärnan. Eftersom den returneras som indatakärnan med , följer det att storleken på kärnan som erhålls på detta sätt inte överstiger . Storleksgränsen är beräkningsbar under antaganden om fast-parametrisk lösbarhet, som är beräkningsbar.