Kann mir jemand erklären, was (Problem-) Kernel sind und wozu sie dienen? Meine Folien sagen:
Der Kern eines parametrisierten Problems ist eine Transformation so dass:
- für eine Funktion
- für eine Funktion
- Die Transformation muss in Polynomzeit berechnet werden.
Meine Fragen sind:
- Wie hängt dies mit einem Problem zusammen, bei dem feste Parameter nachvollziehbar sind?
- Was macht Kernel nützlich?
- Woher kommt diese Definition?
Das Beispiel auf meinen Folien ist für die Scheitelpunktabdeckung, aber ich verstehe es nicht wirklich, weil die Folien etwas kurz sind.
Antworten:
Intuitiv ist ein Kernelisierungsalgorithmus ein Algorithmus, der in Polynomzeit eine bestimmte Instanz vorverarbeitet und eine Instanz ausgibt, deren Größe im Parameter begrenzt ist. Das Ziel der Kernelisierung ist (mindestens) zweifach. Wir erhalten nachweisbare Leistungsgarantien, dh wir können Obergrenzen für die Ausgabeinstanz nachweisen, die sowohl beim Entwurf von Algorithmen als auch als Komplexitätsmaß Anwendung findet.
Formal gesehen ist ein Kernelisierungsalgorithmus (oft als Kernel bezeichnet) ein Algorithmus für ein Problem, das bei einer Eingabe auftritt(G,k) gibt eine äquivalente Instanz aus (G′,k′) mit max{|G′|,k′}≤f(k) für eine Funktion f . Darüber hinaus muss der Algorithmus in Polynomzeit ausgeführt werden.
Das folgende Ergebnis zeigt, dass die Leistung von Kerneln sozusagen der Leistung der Traktierbarkeit fester Parameter ( PDF ) entspricht.
Satz (Folklore). Ein Problem ist ein fester Parameter, der genau dann nachvollziehbar ist, wenn er einen Kernel zulässt und entscheidbar ist.
Obwohl der Begriff des Kernels mit der Traktierbarkeit fester Parameter übereinstimmt, gibt es eine stärkere Version der Kernelisierung, bei der wir die Funktion fordernf oben ein Polynom sein.
Wenn Sie die ursprünglichen Definitionen sehen möchten, empfehle ich Ihnen, das Buch von Downey und Fellows über parametrisierte Komplexität in die Hand zu nehmen oder mit Niedermeiers oben erwähnter Habilitationsarbeit zu beginnen. Es gibt auch einen Wikipedia-Artikel über Kernelisierung .
quelle