Kernelisering

Inom datavetenskap är en kärnbildning en teknik för att designa effektiva algoritmer som uppnår sin effektivitet genom ett förbearbetningssteg där indata till algoritmen ersätts av en mindre indata, kallad "kärna". Resultatet av att lösa problemet på kärnan bör antingen vara detsamma som på originalinmatningen, eller så bör det vara lätt att omvandla utdata på kärnan till önskad utdata för originalproblemet.

Kernelisering uppnås ofta genom att tillämpa en uppsättning reduktionsregler som skär bort delar av instansen som är lätta att hantera. I parameteriserad komplexitetsteori är det ofta möjligt att bevisa att en kärna med garanterade gränser för storleken på en kärna (som en funktion av någon parameter associerad med problemet) kan hittas i polynomtid . När detta är möjligt resulterar det i en med fasta parametrar, vars körtid är summan av (polynomtiden) kärnbildningssteget och (icke-polynomet men begränsat av parametern) tiden för att lösa kärnan. Faktum är att varje problem som kan lösas med en algoritm med fasta parametrar kan lösas med en kärniseringsalgoritm av denna typ. Detta gäller även för ungefärlig kärnbildning .

Exempel: vertexskydd

Ett standardexempel för en kerneliseringsalgoritm är kerneliseringen av vertextäckningsproblemet av S. Buss. I detta problem är inmatningen en oriktad graf tillsammans med ett tal . Utdata är en uppsättning av högst hörn som inkluderar en ändpunkt för varje kant i grafen, om en sådan uppsättning finns, eller ett misslyckande undantag om ingen sådan uppsättning finns. Detta problem är NP-svårt . Följande reduktionsregler kan dock användas för att kernelisera den:

  1. Om och är en vertex som är större än ta bort från grafen och minska med ett. Varje vertextäcke av storleken måste innehålla eftersom annars för många av dess grannar skulle behöva väljas för att täcka de infallande kanterna. Således kan ett optimalt vertextäcke för den ursprungliga grafen bildas från ett täcke av det reducerade problemet genom att lägga till tillbaka till omslaget.
  2. Om är en isolerad vertex, ta bort den. En isolerad vertex kan inte täcka några kanter, så i det här fallet inte vara en del av någon minimal täckning.
  3. Om mer än kanter finns kvar i grafen, och ingen av de två föregående reglerna kan tillämpas, kan grafen inte innehålla ett vertextäcke av storleken k {\ . För, efter att ha eliminerat alla hörn som är större än , kan varje återstående vertex endast täcka högst kanter och en uppsättning hörn kunde bara täcka högst kanter. I det här fallet kan instansen ersättas av en instans med två hörn, en kant och , som inte heller har någon lösning.

En algoritm som tillämpar dessa regler upprepade gånger tills inga fler reduktioner kan göras avslutas nödvändigtvis med en kärna som har högst kanter och (eftersom varje kant har högst två ändpunkter och det inte finns några isolerade hörn) högst hörn. Denna kernelisering kan implementeras i linjär tid . När kärnan väl har konstruerats kan problemet med vertextäckning lösas med en brute force- sökningsalgoritm som testar om varje delmängd av kärnan är en täckning av kärnan. Således kan vertextäckningsproblemet lösas i tiden för en graf med hörn och kanter, vilket gör att det kan lösas effektivt när är liten även om och båda är stora.

Även om denna gräns kan hanteras med fasta parametrar, är dess beroende av parametern högre än vad som kan vara önskvärt. Mer komplexa kerneliseringsprocedurer kan förbättra denna gräns, genom att hitta mindre kärnor, på bekostnad av längre körtid i kerneliseringssteget. I topplocksexemplet är kärnbildningsalgoritmer kända som producerar kärnor med högst hörn. En algoritm som uppnår denna förbättrade gräns utnyttjar halvintegriteten i den linjära programavslappningen av vertextäckning på grund av Nemhauser och Trotter. En annan kerneliseringsalgoritm som uppnår den gränsen är baserad på vad som kallas kronreduktionsregeln och använder alternerande vägargument . Den för närvarande mest kända kerneliseringsalgoritmen när det gäller antalet hörn beror på Lampis (2011) och uppnår hörn för varje fast konstant .

Det är inte möjligt, i detta problem, att hitta en kärna av storleken såvida inte P = NP, för en sådan kärna skulle leda till en polynom-tidsalgoritm för problemet med NP-hårda vertextäckning. Men mycket starkare gränser för kärnans storlek kan bevisas i det här fallet: om inte coNP NP/poly (tros osannolikt av komplexitetsteoretiker ), för varje är det omöjligt i polynomtid att hitta kärnor med kanter. Det är okänt för vertextäckning om kärnor med hörn för vissa skulle ha några osannolika komplexitetsteoretiska konsekvenser.

Definition

I litteraturen finns det ingen tydlig konsensus om hur kärnbildning formellt ska definieras och det finns subtila skillnader i användningen av det uttrycket.

Downey–Fellows notation

I notationen av Downey & Fellows (1999) är ett parametriserat problem en delmängd som beskriver ett beslutsproblem .

En kernelisering för ett parameteriserat problem är en algoritm som tar en instans och mappar den i tidspolynom i och till en instans så att

  • är i om och endast om är i ,
  • storleken på begränsas av en beräkningsbar funktion i , och
  • begränsas av en funktion i .

Utgången från kernelisering kallas en kärna. I detta allmänna sammanhang hänvisar storleken på strängen Vissa författare föredrar att använda antalet hörn eller antalet kanter som storleksmått i samband med grafproblem.

Flum–Grohe notation

I beteckningen av Flum & Grohe (2006 , s. 4) består ett parametriserat problem av ett beslutsproblem och en funktion , parametreringen. Parametern för en instans är talet { .

En kärnisering för ett parameteriserat problem är en algoritm som tar en instans med parametern och mappar den i polynomtid till en instans så att

  • är i om och endast om är i och
  • storleken på begränsas av en beräkningsbar funktion i .

Observera att i denna notation innebär gränsen på storleken på att parametern för också begränsas av en funktion i .

Funktionen kallas ofta för storleken på kärnan. Om sägs det att tillåter en polynomkärna. På liknande sätt, för medger problemet linjär kärna.

Kernelizerbarhet och spårbarhet med fasta parametrar är likvärdiga

Ett problem kan lösas med fasta parametrar om och bara om det är kärnlizerbart och avgörbart .

Att ett kärnlizerbart och avgörbart problem kan hanteras med fasta parametrar kan ses från definitionen ovan: Först kerneliseringsalgoritmen, som körs i tiden för vissa c, anropas för att generera en kärna av storleken . Kärnan löses sedan av algoritmen som bevisar att problemet är avgörbart. 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 beräkningsbar, t.ex. genom att använda antagandet att är beräkningsbar och testa alla möjliga indata av längden , detta innebär att problemet kan hanteras med fasta parametrar.

Den andra riktningen, att ett lösbart problem med fasta parametrar är kernelizbart och avgörbart är lite mer involverat. Antag att frågan är icke-trivial, vilket betyder att det finns minst en instans som finns i språket, kallad , och minst en instans som inte finns i språket, kallas ; Annars är att ersätta valfri instans med den tomma strängen en giltig kärnisering. Antag också att problemet är löst med fasta parametrar, dvs det har en algoritm som körs i högst steg på instanser , för vissa konstanter och vissa funktioner . För att kärnisera en ingång, kör den här algoritmen på den givna ingången för högst steg. Om det avslutas med ett svar, använd det svaret för att välja antingen eller som kärna. Om det istället överskrider bunden till antalet steg utan att avsluta, returnera sedan sig själv som kärnan. Eftersom endast returneras som en kärna för indata med det följer att storleken på kärnan som produceras på detta sätt är högst . Denna storleksgräns är beräkningsbar, genom antagandet från följbarhet med fasta parametrar att är beräkningsbar.

Fler exempel

  • Vertextäcket parametriseras av storleken på vertextäcket: Vertextäckningsproblemet har kärnor med högst hörn och kanter. Dessutom, för alla , har vertextäcket inte kärnor med kanter om inte . Problemen med vertextäckning i -uniform hypergraphs har kärnor med kanter med hjälp av solroslemma , och den har inte kärnor av storlek om inte .
  • Återkopplingspunktuppsättning parametriserad av storleken på återkopplingspunktuppsättningen: Problemet med återkopplingspunktuppsättning har kärnor med hörn och kanter. Dessutom har den inte kärnor med kanter om inte .
  • -path: problemet är att avgöra om en given graf har en bana med längden minst . Det här problemet har kärnor av storleken exponentiell i , och det har inte kärnor av storleken polynom i om inte .
  • Tvådimensionella problem: Många parametriserade versioner av tvådimensionella problem har linjära kärnor på plana grafer, och mer allmänt på grafer som exkluderar någon fast graf som en mindre .

Kernelisering för strukturella parametreringar

Även om parametern i exemplen ovan är vald som storleken på den önskade lösningen, är detta inte nödvändigt. Det är också möjligt att välja ett strukturellt komplexitetsmått på ingången som parametervärde, vilket leder till så kallade strukturella parametriseringar. Detta tillvägagångssätt är fruktbart för fall vars lösningsstorlek är stor, men för vilka något annat komplexitetsmått är begränsat. Till exempel definieras återkopplingspunktnumret för en oriktad graf acyklisk. Problemet vertextäckning parametrerat av återkopplingspunktnumret för ingångsgrafen har en polynomisk kärnbildning: Det finns en polynom-tidsalgoritm som, givet en graf vars återkopplingspunktnummer är , matar ut en graf hörn så att ett minimalt vertextäcke i kan omvandlas till ett minimum vertextäcke för i polynomtid. Kerneliseringsalgoritmen garanterar därför att instanser med ett litet återkopplingspunktnummer reduceras till små instanser.

Se även

Anteckningar

Vidare läsning