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.
Inhaltsverzeichnis |
Güte von Approximationsalgorithmen [Bearbeiten]
Es sei
der zu einer Eingabe
gehörige Lösungsraum. Zu jeder möglichen Lösung
sei
die Güte. Die Güte einer optimalen Lösung sei
. Ein Approximationsalgorithmus sucht nun nach einer Lösung
, so dass
möglichst nah an
liegt.
Die Güte eines Approximationsverfahrens (sogenannte Approximationsgüte) wird durch die Performanz
des Algorithmus bestimmt. Sie ist definiert durch das Verhältnis von approximierter Lösung zur exakten Lösung, gemessen in einer angemessenen Norm. Die Performanz einer Lösung
wird bestimmt durch:

Diese Definition der Performanz kann sowohl auf Minimierungs- wie auch auf Maximierungsprobleme angewandt werden. Es gilt immer
.
Klassen von Approximationsalgorithmen [Bearbeiten]
Optimierungsprobleme werden in der Theoretischen Informatik in verschiedene Approximationsklassen unterschieden, je nachdem welcher Grad an Approximation möglich ist:
APX [Bearbeiten]
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 polynomialer Algorithmus existiert, der bei jeder zulässigen Eingabe
eine Lösung mit einer Performanz
liefert.
PTAS/PAS [Bearbeiten]
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 Performanz
liefert. Der Algorithmus muss also nicht nur für eine bestimmte Performanz, sondern für jede Performanz effizient sein, der Existenzquantor wird durch einen Allquantor ersetzt.
FPTAS [Bearbeiten]
FPTAS steht für fully polynomial time approximation scheme. Hier wird gefordert, dass sich der Algorithmus nicht nur polynomial zur Eingabe, sondern auch zur Güte der Approximation verhält. Dass es also zu jeder Eingabe
und jedem
eine Lösung mit der Performanz
gibt, wobei der Algorithmus polynomial 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.
Fasst man die Inklusionskette etwas weiter:
hieße das auch, dass es Optimierungsprobleme gibt, die nicht einmal in APX liegen. Dies lässt sich unter der Annahme
zum Beispiel für das Cliquenproblem zeigen.
Literatur [Bearbeiten]
- 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
{Optimierungsprobleme in