LINGO Features
Durch die schnelle, höchst lesbare Formulierung Ihrer linearen, nichtlinearen und ganzzahligen Probleme unterstützt LINGO Sie beim Verkürzen Ihrer Entwicklungszeit. Mit LINGOs Modellierungssprache können Sie Modelle unmittelbar mit Hilfe von Summen und indizierten Variablen ausdrücken, ganz ähnlich dem einfachen Gebrauch von Bleistift und Papier. Modelle sind auf diese Wiese leichter aufgebaut, leichter zu verstehen und daher leichter zu pflegen.
Modellierungssprache
Modellentwickler
Schneller Modellentwickler
Eines von LINGOs leistungsstärksten Features ist seine mathematische Modellierungssprache. Diese Modellierungssprache gibt Ihnen die Möglichkeit, Ihre Aufgaben auf natürliche Weise auszudrücken, und ähnelt dadurch der standardmäßigen mathematischen Schreibweise. Mit LINGO können Sie z.B. eine Serie von ähnlichen Bedingungen in einer einzelnen kompakten Aussage schnell ausdrücken.Beim Modellieren gibt es normalerweise eine Menge oder mehrere Mengen von verwandten Objekten, z.B. Firmen, Kunden, Fahrzeugen oder Mitarbeitern. Häufig führt das Anwenden einer Nebenbedingung auf ein Mengenmitglied dazu, dass eine Bedingung derselben Form auch auf jedes der anderen Mengenmitglieder angewendet wird. Anstatt für jedes Mengenmitglied eine individuelle Bedingung ausdrücken zu müssen, können sie in LINGO die gesamte Gruppe von Bedingungen in einer einzigen präzisen Aussage ausdrücken. Das vorteilhafte Nutzen der Mengen ist die Grundlage von LINGOs Modellierungssprache und damit der grundlegende Baustein der leistungsstärksten Funktionalitäten des Programms. Mit LINGO können Sie sogar allgemeine Mengen implizit ausdrücken wie Tag der Woche oder Monat des Jahrs.
LINGOs Modellierungssprache kann Sie dabei unterstützen, die Entwicklungszeit Ihres Modells erheblich zu verkürzen. Sehr große Modelle können mit LINGO häufig effizient auf weniger als einer Seite ausgedrückt werden. Durch die Ähnlichkeit der Modellierungssprache mit standardmäßiger mathematischer Schreibweise ist sie sehr leicht zu lesen.
Durch die Verwendung von LINGO können sie Ihr Modell "skalieren". Dies bedeutet, dass die Dimensionen Ihres Modells sich ändern können, ohne dass Änderungen an dem Ausdruck des Problems erforderlich sind. Angenommen, Sie finden den preiswertesten Weg, ein Produkt von mehreren verschiedenen Warenlagern an mehrere verschiedene Kunden zu liefern. Wenn sich die Anzahl der Warenlager oder der Kunden ändert, würden viele Modellierungsprogramme aufwändige Änderungen an der Formulierung des Problems notwendig machen. Bei LINGO jedoch ist keine Modifizierung erforderlich. Sie können einfach die Größe Ihrer Daten ändern, während LINGO alles andere übernimmt.
Modellierungssprache
Modellierungssprache
LINGOs Modellierungssprache umfasst eine umfangreiche Bibliothek mathematischer, Wahrscheinlichkeits- und finanzmathematischer Funktionen. Weitere Informationen finden Sie in der Liste der Standardfunktionen. Sie können benutzerdefinierte Funktionen für LINGO erstellen.
Unterstützung von CCP
Unterstützung von Chance-Constrained-Programmen
Das Chance-Constrained-Programming (CCP) erlaubt die Verletzung einer oder mehrerer Verletzung einer oder mehrerer Mengen von Nebenbedingungen mit einer festgelegten Wahrscheinlichkeit. CCP ist nütz, wenn gewisse Ressourcen oder Ansprüche zufällig sind. Eine Lösung, die allen möglichen Ergebnissen genügt, kann ziemlich teuer oder sogar unmöglich sein. Es kann eine vernünftige und praktische Strategie sein, zu erlauben, dass gewisse Nebenbedingungen mit einer geringen Wahrscheinlichkeit verletzt werden.
Wahrscheinlichkeit
Neue Wahrscheinlichkeitsverteilungen
Über 65 neue, mit PDF, CDF und inversen CDF von Wahrscheinlichkeitsverteilungen verbundene Funktionen.
Verzweigungspriorität
Festlegung variabler Verzweigungspriorität
Sie haben nun die Möglichkeit, die Funktion @PRIORITY zu verwenden, um eine Verzweigungspriorität für ganzzahlige Variablen festzulegen.
Programmier-Schnittstelle
Neue Funktionen der LINGO-Programmierungsschnittstelle
LINGO API unterstützt neue Funktionsaufrufe, um variable Werte spontan in der Rückruffunktion aufzurufen, sowie eine Funktion, um eine Lizenz direkt aus einem String zu laden.
Verbesserte Modellverschlüsselung:
Bislang hat LINGO den Anwendern des Application Programming Interface (API) ermöglicht, ein Modell unter Verwendung des Befehls HIDE zu verschlüsseln. Der Verschlüsselungsalgorithmus wurde signifikant verstärkt, und verschlüsselte Modellfragmente können während der Laufzeit auch zu einem einzigen Modell zusammengeführt werden.
Dateitypen
Mehrere Dateitypen werden unterstützt/MPI Translator
Modelle, die im Low-Level MPI-Format im System LINDO abgespeichert wurden, können nun in LINGO geladen und dabei automatisch in die High-Level LINGO-Syntax übersetzt werden.
Datenhandhabung
Datenhandhabung
Komfortable Datenhandhabung
Sie können Modelle erzeugen, die Informationen direkt aus Datenbanken und Tabellenkalkulationsprogrammen ziehen. Gleichermaßen kann das Programm Ausgaben direkt in eine Datenbank oder ein Tabellenkalkulationsprogramm schreiben und damit das Erstellen von Berichten in der gewünschten Anwendung vereinfachen.
Datenoptionen
Komfortable Datenoptionen
LINGO bietet die Möglichkeit, Ihre Daten in folgenden Formen zu speichern:
- in einer Excel- oder Lotus-Tabellenkalkulationsdatei.
Weitere Informationen finden Sie unter LINGOs Tabellenkalkulationsfunktionalitäten. - in einer Datenbank wie Access, Oracle, DB/2, Paradox, SQL Server etc. Weitere Informationen finden Sie unter LINGOs Datenbankfunktionalitäten.
- in einer separaten Textdatei in Listen- oder Tabellenform,
- mit dem Modellausdruck zusammen,
- durch Eingabe von einem Anwender, während das Modell ausgeführt wird.
Aufgrund der Trennung von der Aufgabe und Daten sind LINGO-Modelle einfach zu lesen und zu modifizieren. Auch Prototyping-Aufgaben bei kleineren Datensätzen werden vereinfacht. Sobald Sie mit dem Modell vertraut sind, können Sie einen größeren Datensatz oder mehrere unterschiedliche Datensätze austauschen, um verschiedene Szenarien zu untersuchen.
LINGOs Flexibilität macht das Erstellen von Berichten einfach. Zusätzlich zum Einlesen von Daten aus Tabellenkalkulationsprogrammen und Datenbanken kann LINGO auch Lösungsinformationen in diese Formate schreiben. Das bedeutet, dass Sie die Lösung an die gewünschte Anwendung ausgeben können, um Berichte zu erzeugen und die Ausgabe zu analysieren, ohne sich in einen vorgegebenen Standardberichtsgenerator einarbeiten zu müssen.
Solver
Mächtige Solver
Mächtige Solver
LINGO verfügt über mehrere eingebaute Solver für die schnelle Optimierung von linearen, nichtlinearen (konvexen und nicht-konvexen), quadratischen, quadratischen mit Nebenbedingungen und Ganzzahlen-Modellen. Der Anwender muss die Solver weder bestimmen noch separat laden, weil LINGO diese automatisch wählt.
Die Basisversionen des eingebauten Linear Solvers enthalten den Primal und Dual Simplex Solver, der zahlreiche Erweiterungen für maximale Geschwindigkeit und Robustheit bietet. So sind z. B. Preisoptionen enthalten, die z. B. die partielle Schätzung und Devex enthalten. Der Solver wählt die beste Preisoption dynamisch, basierend auf Problemeigenschaften.
Für Modelle mit allgemeinen und binären ganzzahligen Einschränkungen, enthalten die LINDO API, LINGO und What'sBest! einen Ganzzahlen-Solver, der in Verbindung mit den linearen, nichtlinearen und quadratischen Solvern arbeitet. Für lineare Modelle enthält der Integer Solver eine Vorverarbeitung und dutzende von Bedingungs-/Beschränkungsroutinen (cut generation), mit denen die Lösungszeit bei großen Klassen von ganzzahligen Modellen entscheidend verbessert werden kann.
Linearisierung
Linearisierung
Linearisierungsfunktionalitäten können die Leistungsfähigkeit von Modellen mit gebräuchlichen nichtglatten Funktionen erheblich steigern. Dieses Feature kann viele nichtglatte Funktionen und Operatoren (z.B. @IF, @MAX und @ABS) automatisch in eine Serie von linearen, mathematisch äquivalenten Ausdrücken umwandeln. Das Produkt einer kontinuierlichen und binären Variablen kann auf ganz ähnliche Weise linearisiert werden. Viele nichtglatte Modelle können möglicherweise vollständig linearisiert werden. So ist der lineare Solver schnell in der Lage, eine globale Lösung für etwas zu finden, das ansonsten ein schwer lösbares Problem dargestellt hätte.
Vorverarbeitung
Vorverarbeitungsroutinen sind in allen Solvern enthalten. Die linearen und nichtlinearen Solver umfassen Skalierungs- und Modellreduktionstechniken. Skalierungsverfahren können die Geschwindigkeit und Robustheit bei numerisch schwierigen Modellen verbessern. Mit Modellreduktionstechniken ist es häufig möglich, die Lösungsfindung von Modellen zu beschleunigen, indem die ursprüngliche Formulierung analysiert und sie mathematisch zu einem kleineren Problem komprimiert wird. Der ganzzahlige Solver bietet umfangreiche Vorverarbeitungs- und Cut-Generation-Routinen
Verbesserung am Stochastic Server
Verbesserung am Stochastic Server
- Verbesserter Warmstart in mehrstufigen Stochastic-Programming-Modellen
- Verbesserte Methoden, um Korrelationen zwischen stochastischen Parameter zu induzieren
Verbesserung am MIP-Solver
Verbesserung am MIP-Solver
- Signifikante Verbesserungen in Wurzelknoten-Heuristiken, um auf schnellen Wege gute , ganzzahlige realisierbare Lösungen zu finden.
- Verbesserte Identifikation spezieller Strukturen in bestimmten Klassen von Modellen, wie multi-periodischen Modellen und die Möglichkeit, diese Struktur auszunutzen, um die Lösungszeiten signifikant zu reduzieren.
Verbesserungen am Global Solver
Verbesserungen am Global Solver
- Verbesserte Heuristiken, um auf schnellem Wege eine gute, realisierbare Lösungen zu finden.
- Nebenbedingungen können nun als konvex gekennzeichnet werden, wenn diese so komplex sind, dass der Global Solver Konvexität nicht automatisch bestimmen kann. Dadurch wird der Beweis globaler Optimalität beschleunigt.
- Verbesserte Möglichkeiten, Nebenbedingungen zu identifizieren, die als konische Nebenbedingungen (z.B. Second-Order Cone) umformuliert und daher schneller durch den Conic Solver gelöst werden können.
- Verbesserte Möglichkeiten, mit polynomialen Termen effizient zu arbeiten.
- Verbesserte Schranken für nicht-konvexe quadratische Terme unter Benutzung von SDP und Eigenwert-Umformulierungen.
Tabellen
Tabellenkalkulations-programme
Tabellenkalkulations-programme
Tabellenkalkulationsprogramme sind eines der am weitesten verbreiteten und bequemsten Werkzeuge zum Speichern von Daten. Sie können ebenfalls sinnvoll bei der Manipulation und Darstellung von Ergebnissen, die Ihr Modell erzeugt, eingesetzt werden. LINGOs Fähigkeit, Tabellenkalkulationsblätter miteinander zu verknüpfen, ermöglicht Ihnen außerdem die volle Nutzung der Leistungsfähigkeit und Flexibilität der Kalkulationsumgebung.
Lesen von Werten
Lesen von Werten aus Tabellenkalkulationsprogrammen
Sie können Daten für Ihr LINGO-Modell in einem oder mehreren Tabellenkalkulationsdateien speichern, wo sie eingegeben und bearbeitet werden können. Ihr LINGO-Modell kann mit direkten Befehlen Tabellenkalkulationsdaten mit einbeziehen. Beispielsweise greift die Aussage der LINGO-Sprache:
COST, CAPACITY = @OLE('SPECS.XLS');
auf Datentabellen in einer Excel-Datei mit dem Namen SPECS.XLS in Bereichen mit den Bezeichnungen COST und CAPACITY zu.
LINGO bietet direkten Echtzeitzugriff auf Excel-Tabellenkalkulationswerte mit Hilfe von OLE (Object Linking and Embedding)-Links. Außerdem kann das Programm Daten lesen, die in einer Lotus-Tabellenkalkulationsdatei gespeichert sind.
Schreiben
Schreiben von Lösungsinformationen in Tabellenkalkulationsprogrammen
Ergänzend zum Lesen von Tabellenkalkulationsinformationen können Sie mit LINGO auch Lösungsinformationen in eine Tabellenkalkulationsdatei schreiben. Auch hier ist es wieder möglich, ganz Berichte zu erstellen und Lösungen in einer geeigneten und vertrauten Umgebung zu analysieren.
Der Prozess kann automatisch durchgeführt werden, wenn das Modell gelöst ist, oder manuell nach dem Lösen. Lesen der Tabellenkalkulationsdaten gibt die LINGO-Aussage:
@OLE('ROUTING.XLS') = USED, LOAD;
die gelösten Werte für die Datensätze USED und LOAD automatisch in die Bereiche des gleichen Namens in die Excel-Datei ROUTING.XLS ein.
Ausführen
Ausführen von LINGO von einer Excel-Datei aus
LINGO kann als Serveranwendung von einem Excel-Makro aus ausgeführt werden. Dies ermöglicht Ihnen zum Beispiel das Erstellen einer Schaltfläche namens "Lösen" auf einem Excel-Blatt, die LINGO direkt aufruft und eine Serie von Befehlen ausführen kann.
Einbetten
Einbetten von LINGO-Modellen und Excel-Dateien
LINGO stellt Ihnen Modellformulierung und Excel-Arbeitsmappe in der gleichen Datei zur Verfügung. Sie können eine Excel-Arbeitsmappe in Ihrer LINGO-Modelldatei oder Ihre LINGO-Modelldatei in einer Excel-Arbeitsmappe einbetten. Durch Öffnen einer einzelnen Datei können Sie die Formulierung und Daten anzeigen und bearbeiten sowie beide Programme, LINGO und Excel, ausführen. Auf ähnliche Weise können Sie LINGO in andere unterstützte Anwendungen einbetten und umgekehrt.
Verbessertes Charting Feature
Die Möglichkeiten, Charts zu erstellen, wurden umfangreich aktualisiert:
- Zusätzlich zu Bar-, Line- und Pie-Charts unterstützt LINGO nun die folgenden Grafiktypen: Bubble, Contour, Curve, Histogramm, Radar, Scatter und Surface
- Mehrere Eigenschaften können in einem einzelnen Chart angezeigt werden, wobei jeder mit einer anderen Farbe versehen wird
- Charts können entweder in zwei oder drei Dimensionen angezeigt werden.
- Mengen eines Modells können verwendet werden, um Achsen und/oder Legenden zu beschriften.
- Charts können mit dem Befehl @CHART aus der Skriptsprache von LINGO automatisch angezeigt werden.
Anzeige permutierter Matrizen
Anzeige permutierter Matrizen
Sie können jetzt wählen, ob die dem Modell zugrundeliegende Matrix in einem permutierten Format angezeigt werden soll, wobei die Zeilen und Spalten automatisch so permutiert werde, dass die Matrix in die einer unteren Dreiecksmatrix am nächsten gelegenen Form angebracht wird. In einer solchen Form erweist sich ein Modell im Allgemeinen als einfacher zu lösen. Dies steht einem Modell mit einem hohen Grad an Simultanität entgegen, welches nicht in eine untere Dreiecksform permutiert werden kann.
Datenbank
Datenbanken
Datenbankenfunktionalität
Sollen großen Informationsmengen verwaltet werden, fällt die Wahl zumeist auf Datenbanken. LINGO verwendet ODBC-Technologie, um Ihnen den Zugriff auf Satzinformationen und Daten in praktisch jeder bekannten Windows-Datenbankanwendung zu ermöglichen. Mit Hilfe einer einzelnen Aussage in Ihrem Modell können Sie Daten zwischen LINGO und Datenbankanwendungen übertragen wie:
- Microsoft Access
- Oracle
- DB/2
- Paradox
- Microsoft SQL Server
oder jeder anderen Anwendung mit einem ODBC-Treiber. Ab LINGO Version 9.0 ist es möglich, auf Datenbanken zuzugreifen, die passwortgeschützt sind, indem Anwender-ID und Passwort zu Beginn Ihrer Sitzung in LINGO eingegeben werden.
Lesen
Lesen von Datenbankinformationen
Mit LINGO können Sie die Informationen Ihres in einer Datenbank speichern. LINGO kann zwei Informationstypen aus Datenbanken lesen. Zum einen liest es als Daten verwendete Zahlen in Ihr Optimierungsmodell ein. Zum anderen kann es festgelegte Mitgliedsnamen einer Menge, wie z.B. eine Liste von Zielstädten bei einem Routing-Problem, einlesen.
Schreiben
Schreiben von Lösungsinformationen in Datenbanken
Wie bei Tabellenkalkulationsprogrammen kann LINGO Lösungsinformationen direkt in eine Datenbankdatei schreiben. Dadurch wird das Erzeugen von benutzerdefinierten Lösungsberichten stark vereinfacht.
Erstellen
Erstellen “schlüsselfertiger” Datenbankanwendungen
LINGO kann als Serveranwendung von einem Datenbankprogramm aus ausgeführt werden. Wenn Sie beispielsweise Microsoft Access als Entwicklungsumgebung und LINGO als Solver verwenden, können Sie eine vollständige schlüsselfertige Datenbankanwendung für einen Kunden oder Kollegen erstellen. Die Anwender könnten mit Eingabebildschirmen, Ausgabebildschirmen und benutzerdefinierten Berichten sowie einer Schaltfläche für "Lösen" rechts in Ihrer Anwendung ausgestattet werden, die LINGO direkt aufruft und eine Serie von festgelegten Befehlen ausführt.Interaktiv Modellieren oder schlüsselfertige Anwendung
Für die interaktive Modellentwicklung stellt LINGO eine komplette Umgebung zum Konstruieren, Lösen und Analysieren von Modellen zur Verfügung. Zum Programmieren schlüsselfertiger Lösungen verfügt LINGO über und OLE Schnittstellen, die aus individuell programmierten Applikationen aufgerufen werden können. LINGO kann darüber hinaus direkt aus einem Excel Makro oder einer Datenbankapplikation aufgerufen werden.Schnittstellen
Aufrufbare DLL und OLE-Schnittstellen
Mit einer Entwicklungsumgebung von Windows wie C#.NET, VB.NET, Visual Java, Visual Basic, Visual C++ oder Delphi können Sie LINGOs Funktionalität nahtlos in eigene Anwendungen einbetten. Ihre Anwendung kann dabei als Anwender-Frontend für das Optimierungsproblem eingesetzt werden und übernimmt Aufgaben wie die Verarbeitung der Dateneingabe und -speicherung sowie die Vorbereitung der Daten für die Weitergabe an den Speicher von LINGO. Sie kann außerdem dafür eingerichtet werden, Lösungen anzuzeigen und benutzerdefinierte Berichte für den Anwender zu erstellen. LINGO bietet aufrufbare DLL- und OLE-Schnittstellen, die Ihnen Zugriff auf alle interaktiv verfügbaren Funktionen und Befehle gewähren.
Mehr Informationen über den ADDITIVE Software Support erhalten Sie ADDITIVE Software Support
Dokumentation
Ausführliche Dokumentation, Hilfefunktion und Beispiele
Das LINGO User Manual in gedruckter Form und in der Online-Hilfe beschreibt alle Befehle und Funktionen des Programms. In den Lizenzoptionen Super und höher ist Optimization Modeling with LINGO enthalten, ein umfangreiches Handbuch, das alle wichtigen Klassen von linearen, ganzzahligen und nichtlinearen Optimierungsklassen dokumentiert. LINGO wird mit Dutzenden Modellbeispielen mitgeliefert, die vom Anwender modifiziert und ausgeweitet werden.