Approximationsalgorithmus
Ein Approximationsalgorithmus ist in der Informatik ein Algorithmus, der ein Optimierungsproblem näherungsweise löst.
Viele Optimierungsprobleme lassen sich mit exakten Algorithmen vermutlich nicht effizient lösen. Für solche Probleme kann es sinnvoll sein, wenigstens eine Lösung zu finden, die einer optimalen Lösung möglichst nahe kommt.
Güte von Approximationsalgorithmen
Es sei die zu einer Eingabe gehörige Menge zulässiger Lösungen. Zu jeder möglichen Lösung sei Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle v(y)} der Wert der Zielfunktion für . Der Zielfunktionswert einer optimalen Lösung für Eingabe Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle I} sei . Ein Approximationsalgorithmus (oder Approximationsverfahren) gibt bei Eingabe eine Lösung aus, so dass relativ nah an liegt.
Ist Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle y} die von einem Approximationsverfahren für die Eingabe berechnete Lösung, so ist die Güte des Approximationsverfahrens bei der Eingabe
- bei Maximierungsaufgaben als und bei Minimierungsaufgaben als definiert.
Es ist also immer . Gilt , liefert der Algorithmus eine optimale Lösung für .
Hat ein Approximationsverfahren für alle möglichen Eingaben eine Güte von höchstens , so spricht man von einer -Approximation. Die garantierte Güte eines Algorithmus ist die Gütegarantie.
Klassen von Approximationsalgorithmen
Optimierungsprobleme werden in der Theoretischen Informatik in verschiedene Approximationsklassen unterschieden, je nachdem welcher Grad an Approximation möglich ist:
APX
Die Abkürzung APX steht für approximable und deutet an, dass das Optimierungsproblem, zumindest bis zu einem gewissen Grad, effizient approximierbar ist. Ein Problem liegt in der Klasse APX, wenn eine Zahl und ein polynomieller Algorithmus, der bei jeder zulässigen Eingabe Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle I} eine Lösung mit einer Güte liefert, existieren.
PTAS/PAS
PTAS oder PAS steht für polynomial time approximation scheme. Anders als bei der Klasse APX wird hier für jedes gefordert, dass ein polynomialer Algorithmus existiert, der bei jeder zulässigen Eingabe eine Lösung mit einer Güte liefert. Der Algorithmus muss also nicht nur für eine bestimmte Güte, sondern für jede Approximationsgüte effizient sein.
FPTAS
FPTAS steht für fully polynomial time approximation scheme. Hier wird gefordert, dass sich der Algorithmus nicht nur polynomiell zur Eingabe, sondern auch zur Güte der Approximation verhält; Dass er also zu jeder Eingabe und jedem Fehler beim Parsen (Konvertierungsfehler. Der Server („/media/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle k\in \mathbb {N} } eine Lösung mit der Güte Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle r \leq 1+1/k} ausgibt und seine Laufzeit polynomiell in und ist.
Es gilt:
Unter der Annahme sind die obigen Inklusionsabbildungen echte Inklusionen. Das heißt, es gibt zum Beispiel mindestens ein Optimierungsproblem, das in der Klasse PTAS liegt, aber nicht in der Klasse FPTAS. Unter dieser Annahme existiert auch mindestens ein Optimierungsproblem, das nicht in APX liegt. Dies lässt sich unter der Annahme Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle P \subsetneq NP} zum Beispiel für das Cliquenproblem zeigen.
Sei ein Optimierungsproblem, dessen Zielfunktion für alle Instanzen ganzzahlig ist. Falls es ein Polynom Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle p} mit für jede Instanz gibt, dann folgt aus der Existenz eines FPTAS für die Existenz eines pseudopolynomiellen Algorithmus für . Hierbei ist die optimale Lösung für die Instanz und der maximale Wert einer Variable von Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle I} .
Da stark NP-vollständige Probleme keinen pseudopolynomiellen Algorithmus haben (falls ), besitzen diese daher kein FPTAS.
Siehe auch
Literatur
- Rolf Wanka: Approximationsalgorithmen – Eine Einführung, Teubner, Wiesbaden, 2006, ISBN 3-519-00444-5
- Klaus Jansen, Marian Margraf: Approximative Algorithmen und Nichtapproximierbarkeit, de Gruyter, Berlin, New York, 2008, ISBN 978-3-11-020316-5