Mathematische Formel

Der Weg vom realen Problem
zum mathematischen Model – und zurück…

Was versteht man eigentlich unter dem Begriff Mathematische Modellierung? Der niederländische Mathematiker Sjoerd W. Rienstra1 beschreibt mathematische Modellierung so:

„Describing a real-world problem in a mathematical way by what is called a model, such that it becomes possible to deploy mathematical tools for its solution. The accuracy of the description should be limited, in order to make the model not unnecessary complex. The model should be based on first principles and elementary relations, such that it has reasonable claims to predict both quantitative and qualitative aspects of the solution.”

Mathematik wird eingesetzt, um reale Probleme zu lösen. Fragestellungen wie „Welche Reihenfolge ist die beste für meine Maschinenbelegung?“ in der Produktionsplanung oder „Welcher Standortausbau macht am meisten Sinn?“ in der Investitionsplanung können mit mathematischer Unterstützung beantwortet werden.

Die Herausforderung von Modellierung besteht also darin, eine reale Fragestellung bzw. ein reales Problem in die Sprache der Mathematik zu übersetzen, um zunächst ein mathematisches Problem zu erhalten, dass mit Methoden der Mathematik gelöst werden kann. Die mathematische Lösung muss dann wieder in eine reale Lösung zurückübersetzt werden – und am realen Problem überprüft werden.

Mathematische Modellierung OPTANO

Hierbei sollte jedoch die Genauigkeit der Beschreibung auf das Erforderliche begrenzt sein, um die Komplexität des Models nicht unnötig zu steigern. Um sinnvolle Prognosen bzgl. Quantität und Qualität machen zu können, sollte das Model aus grundlegenden Daten und Beziehungen erstellt werden, die wiederum auf Erfahrungswerten basieren.

The mathematical clinic

Bis vor 50 Jahren war Mathematik eine deduktive Wissenschaft ohne Beziehung zur realen Welt. In den 70er Jahren des letzten Jahrhunderts holten Professoren in Claremont (Kalifornien), Oxford und Linz, Probleme der Industrie in die Hochschulen und bearbeiteten diese zusammen mit Studenten. In Kalifornien hieß das „mathematical clinic“: Die Probleme kamen krank herein und wurden als geheilt entlassen. Die Aktivitäten in Oxford, die schon 1968 begannen, hießen: „Study Group with Industry“. In Linz waren es die „Problemseminare“.

OPTANO Modeling: Ein (kurzer) Überblick zur Historie

Da verfügbare Mathematische Programmiersprachen/Matrix Generatoren leider nicht immer die gewünschte Performance erreichten und sich zudem die nahtlose Integration in enterprisefähigen Applikationen als schwer umsetzbar erwies, startete im Jahr 2006 die Entwicklung eines Modellierungssystems nach unseren Bedürfnissen im Rahmen einer Forschungsarbeit – zunächst unter dem Namen „optimization.framework“.
2011 erfolgte die Veröffentlichung auf nuget.org. 2016 wurde der Name im Zuge eines Rebrandings zu OPTANO Modeling.

Und da Zahlen ja auch so einiges erzählen können, noch diese Info: Optimization.framework wurde bis heute (Juli 2017) über 31.000 Mal abgerufen. OPTANO Modeling seit Veröffentlichung am 1. November 2016 über 1.000 Mal.

OPTANO Modeling für Entwickler

OPTANO Modeling ist eine .net API, die von Softwareentwicklern erstellt wurde, die hunderte von Optimierungsapplikationen gebaut haben. Es trifft die Anforderungen von Softwareentwicklern und unterscheidet sich in dieser Hinsicht von Modellierungssystemen, die für Mathematiker erstellt wurden. Der Softwareentwickler definiert nur die Aussage. Die Umsetzung geschieht dann automatisch. Somit wird Modelling zum Teil der Software. Und wer c# spricht, muss keine neue Programmiersprache dazu lernen.

OPTANO Modeling

OPTANO Modeling für OR-Experten

Jeden Tag arbeiten im Team der ORCONOMY Softwareentwickler und OR-Experten neben- und miteinander. Die Entwickler schreiben ihre Software in „ihrem“ .net ecosystem mit einer schicken Entwicklungsumgebung und tollen Tools wie Versionierung, automatisches Testen, Schritt-für-Schritt-Analyse und, und, und…

Und die ORler? Die wollten das auch! Also ein weiterer Grund OPTANO Modeling zu entwickeln und zu optimieren. OPTANO Modeling ist leicht in die eigene Arbeit zu integrieren: Mit der einfach zu verstehenden API und ohne aufwendige Mappings fühlt sich – egal ob Softwareentwickler oder OR-Experte – jeder wohl. In unserem Team gibt es jetzt also für die OR-Experten keinen Grund mehr neidisch auf die Software der Entwickler zu sein: Was das .net ecosystem kann, kann auch OPTANO Modeling.

OPTANO Modeling ist Multi-Plattform-fähig
Natürlich ist OPTANO Modeling einsatzfähig auf allen .net Plattformen (Windows, Linux und Mac).

OPTANO Modeling ermöglicht die freie Solverwahl
Einsetzbar sind freie Solver wie GLPK und Z3. Aber natürlich auch kommerzielle wie Gurobi, CPLEX und Xpress. Soweit es möglich ist, ergänzt OPTANO Modeling die Funktionen der einzelnen Solver, um für alle Solver eine einheitliche Verwendung zu ermöglichen.

Mit LINQ  ist OPTANO Modeling immer „up-to-date“
LINQ ist ein Sprachelement von c#. Der Einsatz von LINQ-Statements mit OPTANO Modeling macht die Modelle sehr gut lesbar, erzeugt schnellen Code und erhöht die Wartbarkeit. Das ist cool!

Debuggen mit OPTANO Modeling
Für Softwareentwickler ist es selbstverständlich sich Schritt-für-Schritt den Ablauf ihrer Software anzusehen. In der Mathematischen Programmierung ist das nicht so üblich. Aber im Gegensatz zu anderen Modellierungssystemen ist OPTANO Modeling keine Blackbox.

Testen – für OPTANO Modeling selbstverständlich
Die Qualität von Ergebnissen steht auch bei der Modellierung an erster Stelle. Softwareentwickler verfügen über ein breites Repertoire von Testmethoden und unterstützender Software. Diese können auch zur Prüfung der Qualität von Optimierungssoftware verwendet werden. Im Gegensatz zu anderen Modellierungssystemen sind Tests bei OPTANO Modeling somit selbstverständlich. Sie sind beliebig automatisierbar und wiederholbar und sichern so die hohe Qualität.

Gehört einfach dazu…

Was eigentlich schon selbstverständlich ist, aber trotzdem noch einmal erwähnt werden sollte:

  • Versionierung – Einfaches Verfolgen von Änderungen
  • Datenstrukturen parallel optimieren und aufbauen durch Multi-Threading
  • Code Completion – eine große Hilfe zum schnellen Programmieren
  • Asynchrone Programmierung
  • Import bestehender Modelle

Wenn jetzt die Frage „Warum OPTANO Modeling?“ noch nicht ausreichen beantwortet sein sollte, hier nochmals kurz zusammengefasst: Die .net Softwareentwicklung ist mit den ganzen genannten Vorteilen äußerst zeitsparend und zudem nahtlos integrierbar in enterprisefähige Applikationen!

Und die OR-Experten und Softwareentwickler unseres Teams finden das Arbeiten mit OPTANO Modeling richtig cool!

1 Sjoerd W. Rienstra: http://www.win.tue.nl/~sjoerdr/