Reduktion (theoretische Informatik)
Die Reduktion ist eine Methode der theoretischen Informatik, mit der die Komplexität von Problemen oder Sprachen durch Umformung eines Problems in ein anderes verglichen werden kann.
Eine Sprache ist auf eine Sprache reduzierbar, wenn sich über eine Funktion jedes Wort der Sprache in ein Wort der Sprache bijektiv abbilden lässt.
Formal ausgedrückt:
Zusätzlich ist gefordert, dass sich diese Funktion auf deterministischem Wege berechnen lässt.
So lässt sich beispielsweise die Sprache aller Quadratzahlen
auf die Sprache aller Multiplikationen mit 2 Faktoren
reduzieren, da über die Abbildung jedes Wort aus in ein Wort aus abgebildet werden kann und jedes Bild dieser Funktion wiederum ein Urbild in besitzt.
Mit dieser Reduktion ist gezeigt, dass ein Algorithmus, welcher zwei natürliche Zahlen miteinander multipliziert, auch eine natürliche Zahl quadrieren kann, das Quadrieren also ein „höchstens so schweres “ Problem wie das Multiplizieren ist.
Formal wird hierfür geschrieben.
Oft spielt auch die Zeit oder der Speicherplatz eine Rolle, die bzw. der zum Berechnen der Reduktion gebraucht wird, siehe hierzu unter Anderem: Polynomialzeit-Reduktion.