
Der Simplex-Algorithmus ist das wichtigste Optimierungsverfahren zur Lösung linearer Optimierungsprobleme im Operations Research. Mit seiner Hilfe läßt sich bspw. die Produktionsplanung eines Unternehmens optimieren, wenn sich das Problem in Form eines linearen Ungleichungssystems darstellen lässt. Das Simplex-Verfahren findet in endlich vielen Schritten entweder die optimale Lösung oder es stellt die Unlösbarkeit des Problems fest.
In der Praxis ist der Algorithmus weit verbreitet, unter anderem weil es die Wiederverwendung der Berechnungsschritte einer einmal gefundenen Lösung erlaubt. Das bedeutet, dass die Eingangsparameter einer bereits gefundenen optimalen Lösung variiert werden können, ohne die Berechnung vollständig neu durchführen zu müssen. Das ist ein großer Vorteil gegenüber anderen Optimierungsverfahren, die ein bestimmtes Problem zwar schneller Lösen als der Simplex-Algorithmus, die bei der Berechnung einer Variante des Problems aber jedes Mal neu starten müssen. Denn meist müssen sehr viele Variationen berechnet werden (bspw.bei der Anwendung des Branch-and-Cut-Verfahrens).
Im Rahmen einer in 2016 angefertigten Projektarbeit habe ich eine Java-Applikation implementiert, die das Simplex-Verfahren anwendet. Zum Parsen des Ungleichungssystems wird der Parser-Generator JavaCC verwendet. Der Sourcecode und die Projektarbeit finden sich hier: https://github.com/wolubo/SimplexSolver