<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Problemkern</id>
	<title>Problemkern - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Problemkern"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Problemkern&amp;action=history"/>
	<updated>2026-05-19T02:27:53Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Problemkern&amp;diff=1237623&amp;oldid=prev</id>
		<title>imported&gt;Thomas Dresler: Kommasetzung</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Problemkern&amp;diff=1237623&amp;oldid=prev"/>
		<updated>2023-04-14T07:15:14Z</updated>

		<summary type="html">&lt;p&gt;Kommasetzung&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In der [[Theoretische Informatik|theoretischen Informatik]] bezeichnet der &amp;#039;&amp;#039;&amp;#039;Problemkern&amp;#039;&amp;#039;&amp;#039; ([[Englische Sprache|engl]]. &amp;#039;&amp;#039;&amp;#039;problemkernel&amp;#039;&amp;#039;&amp;#039;) den [[Algorithmus|algorithmisch]] „schwierig“ [[entscheidbar]]en Teil einer [[Probleminstanz|Instanz]] eines [[NP-Schwere]]n Problems. Viele Instanzen NP-schwerer Probleme enthalten Teilprobleme, die leicht entscheidbar sind. Zum Beispiel in vielen Instanzen von Problemen, bei denen eine Teilmenge &amp;#039;&amp;#039;S&amp;#039;&amp;#039; von einer Menge &amp;#039;&amp;#039;M&amp;#039;&amp;#039; gewählt werden soll, haben Elemente &amp;#039;&amp;#039;x&amp;#039;&amp;#039; von &amp;#039;&amp;#039;M&amp;#039;&amp;#039; gewisse Eigenschaften, durch die man [[Effizienz (Informatik)|effizient]] entscheiden kann, dass &amp;#039;&amp;#039;x&amp;#039;&amp;#039; in &amp;#039;&amp;#039;S&amp;#039;&amp;#039; sein muss oder nicht in &amp;#039;&amp;#039;S&amp;#039;&amp;#039; sein kann.&lt;br /&gt;
&lt;br /&gt;
Die Methode, solche Elemente zu suchen und aus der Instanz zu entfernen, bezeichnet man als &amp;#039;&amp;#039;&amp;#039;Problemkern-Reduktion&amp;#039;&amp;#039;&amp;#039; ([[Englische Sprache|engl]]. &amp;#039;&amp;#039;&amp;#039;kernelization&amp;#039;&amp;#039;&amp;#039;). Die Elemente, die solche Eigenschaften nicht haben und nach Problemkern-Reduktionen übrig sind, bilden den Problemkern der Instanz.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Bei Instanzen &amp;#039;&amp;#039;G&amp;#039;&amp;#039; des [[Färbung (Graphentheorie)|&amp;#039;&amp;#039;q&amp;#039;&amp;#039;-Färbungsproblems]] können sukzessive [[Knoten (Graphentheorie)|Knoten]] &amp;#039;&amp;#039;x&amp;#039;&amp;#039; entfernt werden, deren [[Grad (Graphentheorie)|Grad]] kleiner als &amp;#039;&amp;#039;q&amp;#039;&amp;#039; ist, weil in einer &amp;#039;&amp;#039;q&amp;#039;&amp;#039;-Färbung des Restgraphen die [[Nachbarschaft (Graphentheorie)|Nachbarschaft]] von &amp;#039;&amp;#039;x&amp;#039;&amp;#039; höchstens &amp;#039;&amp;#039;q-1&amp;#039;&amp;#039; Farben enthält, womit mindestens eine Farbe für &amp;#039;&amp;#039;x&amp;#039;&amp;#039; übrig ist. Dadurch ist &amp;#039;&amp;#039;G&amp;#039;&amp;#039; genau dann &amp;#039;&amp;#039;q&amp;#039;&amp;#039;-färbbar, wenn der Graph &amp;#039;&amp;#039;G’&amp;#039;&amp;#039;, der sich aus &amp;#039;&amp;#039;G&amp;#039;&amp;#039; nach Entfernung des Knotens &amp;#039;&amp;#039;x&amp;#039;&amp;#039; ergibt, &amp;#039;&amp;#039;q&amp;#039;&amp;#039;-färbbar ist.&lt;br /&gt;
&lt;br /&gt;
Bei Instanzen &amp;#039;&amp;#039;(G,k)&amp;#039;&amp;#039; des parametrisierten [[Knotenüberdeckungsproblem]]s (d.&amp;amp;nbsp;h. bei der Suche nach einer Knotenüberdeckung der Größe &amp;#039;&amp;#039;k&amp;#039;&amp;#039;) kann man sukzessive Knoten &amp;#039;&amp;#039;x&amp;#039;&amp;#039; auswählen, deren Grad größer als &amp;#039;&amp;#039;k&amp;#039;&amp;#039; ist. Diese müssen Teil der Knotenüberdeckung sein, weil die zu &amp;#039;&amp;#039;x&amp;#039;&amp;#039; [[Nachbarschaft (Graphentheorie)#Für ungerichtete Graphen|inzidenten]] [[Kante (Graphentheorie)|Kanten]] überdeckt werden müssen, wofür anderenfalls nur noch die gesamte Nachbarschaft von &amp;#039;&amp;#039;x&amp;#039;&amp;#039; in Frage käme. Dies wären aber mehr als &amp;#039;&amp;#039;k&amp;#039;&amp;#039; Knoten, womit sofort das Limit für die Größe der Knotenüberdeckung überschritten wäre. Dadurch besitzt &amp;#039;&amp;#039;G&amp;#039;&amp;#039; genau dann eine Knotenüberdeckung der Größe &amp;lt;math&amp;gt;\le k&amp;lt;/math&amp;gt;, wenn &amp;#039;&amp;#039;G-x&amp;#039;&amp;#039; eine Knotenüberdeckung der Größe &amp;lt;math&amp;gt;\le k-1&amp;lt;/math&amp;gt; besitzt.&lt;br /&gt;
&lt;br /&gt;
Bei Instanzen &amp;#039;&amp;#039;G&amp;#039;&amp;#039; des [[Cliquenproblem|&amp;#039;&amp;#039;q&amp;#039;&amp;#039;-Cliquenproblems]] können sukzessive Knoten &amp;#039;&amp;#039;x&amp;#039;&amp;#039; entfernt werden, deren Grad kleiner als &amp;#039;&amp;#039;q-1&amp;#039;&amp;#039; ist, weil die Knoten einer &amp;#039;&amp;#039;q&amp;#039;&amp;#039;-Clique mit den anderen &amp;#039;&amp;#039;q-1&amp;#039;&amp;#039; Knoten der Clique benachbart sind, woraus für diese Knoten ein Grad von mindestens &amp;#039;&amp;#039;q-1&amp;#039;&amp;#039; folgt. Dadurch besitzt &amp;#039;&amp;#039;G&amp;#039;&amp;#039; genau dann eine &amp;#039;&amp;#039;q&amp;#039;&amp;#039;-Clique, wenn &amp;#039;&amp;#039;G-x&amp;#039;&amp;#039; eine &amp;#039;&amp;#039;q&amp;#039;&amp;#039;-Clique besitzt.&lt;br /&gt;
&lt;br /&gt;
Das vorausgesetzte Problem muss nicht notwendig [[entscheidbar]] oder [[Semi-entscheidbare Menge|semi-entscheidbar]] sein. Zum Beispiel entspricht auch die Entfernung von [[Erreichbarkeitsproblem in Graphen|unerreichbaren]] Zuständen einer [[Turingmaschine]] der Definition einer Problemkern-Reduktion für die (nicht semi-entscheidbare) Frage, ob die Turingmaschine eine [[partielle Funktion]] berechnet.&lt;br /&gt;
&lt;br /&gt;
== Formale Definition ==&lt;br /&gt;
Sei &amp;lt;math&amp;gt;P\subseteq M\times\mathbb{N}&amp;lt;/math&amp;gt; ein parametrisiertes Problem mit einer [[Norm (Mathematik)|Norm]] &amp;lt;math&amp;gt;|.|&amp;lt;/math&amp;gt; auf &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Eine Problemkern-Reduktion ist eine Funktion &amp;lt;math&amp;gt;f\colon M\times\mathbb{N}\rightarrow M\times\mathbb{N}&amp;lt;/math&amp;gt; mit den Eigenschaften&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;(I,k)\in P \Leftrightarrow (I^\prime,k^\prime):=f(I,k)\in P&amp;lt;/math&amp;gt; (Äquivalenz) &lt;br /&gt;
# &amp;lt;math&amp;gt;|I^\prime| \le |I|&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;k^\prime \le k&amp;lt;/math&amp;gt; (Simplifikation) &lt;br /&gt;
# &amp;#039;&amp;#039;f&amp;#039;&amp;#039; ist in [[Polynomialzeit]] berechenbar&lt;br /&gt;
&lt;br /&gt;
Problemkern-Reduktionen definieren je eine [[Transitive Relation|transitive]], [[Wohlfundierte Relation|wohlfundierte]] [[Ordnungsrelation]] &amp;#039;&amp;#039;R&amp;#039;&amp;#039; auf &amp;lt;math&amp;gt;M\times\mathbb{N}&amp;lt;/math&amp;gt;. Ein Problemkern einer Instanz &amp;#039;&amp;#039;(I,k)&amp;#039;&amp;#039; ist eine [[Wohlfundierte Relation|&amp;#039;&amp;#039;R&amp;#039;&amp;#039;-Normalform]] von &amp;#039;&amp;#039;(I,k)&amp;#039;&amp;#039; bezüglich einer Problemkern-Reduktionsrelation &amp;#039;&amp;#039;R&amp;#039;&amp;#039;. Problemkern-Reduktionen sind häufig [[Konfluenz (Informatik)|konfluent]], wodurch ihre Normalformen dann eindeutig sind. Daher spricht man oft auch von „dem“ Problemkern einer Instanz, wobei man aber außer Acht lässt, dass andere (möglicherweise noch unbekannte) Problemkern-Reduktionen zu noch kleineren Instanzen führen könnten.&lt;br /&gt;
&lt;br /&gt;
== Obere Schranken für die Größe ==&lt;br /&gt;
Jedes entscheidbare, parametrisierte Problem, für das man garantieren kann, dass die Größe des Problemkerns jeder Instanz &amp;#039;&amp;#039;(I,k)&amp;#039;&amp;#039; beschränkt ist durch &amp;#039;&amp;#039;g(k)&amp;#039;&amp;#039;, für eine beliebige Funktion &amp;#039;&amp;#039;g&amp;#039;&amp;#039;, ist [[Parametrisierter Algorithmus|fixed parameter tractable]], da man nach einer Problemkern-Reduktion einen Algorithmus mit beliebiger (endlicher) Laufzeit &amp;#039;&amp;#039;h&amp;#039;&amp;#039; auf den Problemkern anwenden kann, womit sich eine Laufzeit von &amp;lt;math&amp;gt;poly(n)+h(g(k))&amp;lt;/math&amp;gt; ergibt.&lt;br /&gt;
&lt;br /&gt;
Umgekehrt hat jede Instanz &amp;#039;&amp;#039;(I,k)&amp;#039;&amp;#039; eines Problems, das fixed parameter tractable ist, einen Problemkern, der in Polynomialzeit berechenbar ist und dessen Größe durch &amp;#039;&amp;#039;g(k)&amp;#039;&amp;#039; beschränkt ist, für eine Funktion &amp;#039;&amp;#039;g&amp;#039;&amp;#039;. Beweisskizze: Gegeben sei ein parametrisiertes Problem, das fixed parameter tractable ist, für das also ein Algorithmus existiert, der jede Instanz &amp;#039;&amp;#039;(I,k)&amp;#039;&amp;#039; mit einer Laufzeit von &amp;lt;math&amp;gt;f(k) |I|^c&amp;lt;/math&amp;gt; löst. Eine Problemkern-Reduktion ist nun: wenn &amp;#039;&amp;#039;|I|&amp;lt;f(k)&amp;#039;&amp;#039; ist, dann ist &amp;#039;&amp;#039;(I,k)&amp;#039;&amp;#039; selbst ein geeigneter Problemkern (dessen Größe durch &amp;#039;&amp;#039;f(k)&amp;#039;&amp;#039; beschränkt ist). Anderenfalls kann man den FPT-Algorithmus benutzen, um zu ermitteln ob &amp;lt;math&amp;gt;(I,k)\in P&amp;lt;/math&amp;gt; ist. Darauf basierend wählt man als Problemkern eine beliebige (aber fest gewählte) Instanz &amp;lt;math&amp;gt;I_\text{ja}\in P&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;I_\text{nein}\not\in P&amp;lt;/math&amp;gt;, womit die Größe jedes Problemkerns beschränkt ist durch &amp;lt;math&amp;gt;g(k) := \max\{f(k),|I_\text{ja}|,|I_\text{nein}|\}&amp;lt;/math&amp;gt;. Entscheidend ist hierbei: Im Fall, dass &amp;#039;&amp;#039;f(k)&amp;lt;|I|&amp;#039;&amp;#039; ist, ist die Laufzeit des Algorithmus&lt;br /&gt;
&amp;lt;math&amp;gt;f(k) |I|^c \le |I|^{c+1}&amp;lt;/math&amp;gt;, womit die polynomielle Laufzeit folgt.&lt;br /&gt;
&lt;br /&gt;
Damit stellt sich heraus, dass die [[Komplexitätsklasse]] FPT genau der Klasse von parametrisierten Problemen entspricht, deren Problemkerne durch eine Funktion des Parameters beschränkt sind.&lt;br /&gt;
&lt;br /&gt;
Trotzdem ist es auch bei Problemen, die nicht fixed parameter tractable sind, wo also nicht garantiert werden kann, dass der Problemkern relativ klein ist, sinnvoll, Problemkern-Reduktionen am Anfang jedes [[Rekursion]]saufrufs anzuwenden, da sie in der Praxis auch dort große Verbesserungen der [[Laufzeit (Informatik)|Laufzeiten]] bringen.&lt;br /&gt;
&lt;br /&gt;
== Feinere Abstufung von FPT ==&lt;br /&gt;
Die unterschiedlichen Schranken für die Größe des Problemkerns liefern eine feinere Abstufung der Komplexitätsklasse FPT. Zum Beispiel ist das Knotenüberdeckungsproblem „leichter“ als das [[Min-Multicut]] Problem auf Bäumen, obwohl beide in FPT sind, weil der Problemkern einer Instanz des Knotenüberdeckungsproblems (nach Nemhauser und Trotter) höchstens Größe &amp;#039;&amp;#039;2k&amp;#039;&amp;#039; hat, wogegen die beste bekannte Problemkern-Reduktion für Min-Multicut auf Bäumen Problemkerne liefert, deren Größe durch &amp;lt;math&amp;gt;k^6&amp;lt;/math&amp;gt; beschränkt ist. Beide befinden sich aber in der wichtigen Klasse &amp;#039;&amp;#039;POLYKERNEL&amp;#039;&amp;#039;, welche die Probleme enthält, deren Instanzen Problemkerne haben, deren Größe durch ein [[Polynom]] in &amp;#039;&amp;#039;k&amp;#039;&amp;#039; beschränkt ist.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Rolf Niedermeier: &amp;#039;&amp;#039;Invitation to Fixed-Parameter Algorithms&amp;#039;&amp;#039;. Oxford University Press, Oxford 2006, ISBN 0-19-856607-7, (&amp;#039;&amp;#039;Oxford Lecture Series in Mathematics and its Applications&amp;#039;&amp;#039; 31). &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Komplexitätstheorie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Thomas Dresler</name></author>
	</entry>
</feed>