0Rf trum
9 Springer-Verlag 1997
OR Software
LINGO
1. Kurzbeschreibung 2. Installation
LINGO (Language for Interactive General Optimization) Das Programm und die Anwendungsbeispiele werden in
ist eine algebraische Modellierungssprache, mit der li- der DOS-Version automatisch durch Eingabe von A : \ IN -
neare und nichtlineare Optimierungsprobleme formuliert STALL installiert; ftir die WINDOWS-Version ist der
und gel6st werden kOnnen. Sowohl die Zielfunktion als Befehl A : \ SETUP im Windows Program Manager einzu-
auch die Nebenbedingungen kOnnen dabei nichtlinear geben. Die gesamte Installation verlfiuft unproblematisch
sein; LINGO erkennt automatisch, ob es sich um ein und fehlerfrei.
lineares oder nichtlineares Modell handelt. Unterschied-
liche Versionen des Programms sind fur Problemgr6gen
(Anzahl der Nebenbedingungen x Anzahl der Variablen) 3. Bedienung
yon 200 x 400 bis 32.000 x 100.000, verschiedene Hard-
wareplattformen (PC, Macintosh, Workstation) und Be- LINGO wird durch die Eingabe lingo gestartet. Das
triebssysteme (DOS, WINDOWS, UNIX) erhfiltlich. Das Programm besitzt drei verschiedene Bearbeitungsmodi:
von uns getestete LINGO INDUSTRIAL/PC wird im Kommando-Modus, Modelleingabe-Modus und Editier-
Paket als DOS- und als WINDOWS-Version ausgeliefert Modus. Nach dem Aufruf befindet sich das Programm im
und kann Probleme bis zu 8.000 Nebenbedingungen und Kommando-Modus, in dem Dateien eingelesen und aus-
16.000 Variablen bearbeiten. Wir gehen in den folgenden gegeben, Modelle gel6st sowie Einstellungen in der Pro-
Ausftihrungen in erster Linie auf die in der DOS-Version grammumgebung vorgenommen werden kOnnen. Die Ein-
vorhandene (Kern-)Funktionalitfit des Programms ein. Die gabe des Befehls m o d e l wechselt in den Modelleingabe-
WINDOWS-Version zeichnet sich dartiber hinaus durch Modus, der es erlaubt, zeilenweise das Modell einzuge-
eine benutzerfreundliche Oberflfiche aus; auf diese weisen ben. Diese Form der Eingabe ist insbesondere ftir grOl3ere
wir in den entsprechenden Abschnitten hin. Probleme recht mfihsam und fehleranffillig. In der DOS-
K. Haase, R. Kolisch: LINGO
Version l~igt sich durch den Befehl e d i t in den Editier- Element k6nnen schlieglich ein oder mehrere Attribute
Modus wechseln. Hier steht ein Ganzseiten-Editor zur Be- definiert werden; so besitzt bspw. jedes Element der
arbeitung der Problemformulierung zur VerfiJgung. In der Menge A N B I E T E R das Attribut K A P A Z I T A E T . Analog zu
WINDOWS-Version wird dem Anwender eine sehr tiber- Zeile 3 ] folgt in Zeile 4] die Definition der 4-elemen-
sichtliche Entwicklungsoberfl~iche mit einem komforta- tigen Menge NACHFRAGER mit dem Attribut BEDARF. In
blen Editor, der auch Such- und Ersetzfunktionen sowie Zeile 5] wird das sehr hilfl'eiche Konstrukt der soge-
Sprungbefehle beinhaltet, pr~isentiert. nannten ,,derived sets" verwendet, um eine zweifach indi-
hn Kommando-Modus stellt LINGO Hilfen zur Verfii- zierte Variable zu definieren. Die Elemente der Menge
gung. Die Eingabe des Befehls corn (command) zeigt alle VERBZNDUNGEN sind als das Kreuzprodukt der Mengen
verftigbaren Befehle an; Informationen zu einem spezifi- ANBIETER und NACHFRAGER definiert; jedes Element
schen Befehl kOnnen mit help 'Name d e s B e f e h l s ' besitzt zwei Attribute: die Transportmenge (TMENGE) und
angefordert werden. Bspw. gibt der Befehl h e l p m o d e l die Kosten des Transports einer Mengeneinheit (KO STEN).
eine Obersicht der zur Modellierung verftigbaren Opera- Die Definition der Variablen mug mit dem Befehl SETS :
toren und Funktionen. (in Zeile 2 ] ) begonnen und mit dem Befehl E N D S E T S (in
Zeile 6 ] ) abgeschlossen werden.
Die Zeile 8] enth~ilt die Formulierung der Zielfunk-
4. Anwendungsbeispiel tion. Dabei wird von dem Operator @SUM Gebrauch ge-
macht. Dieser summiert das Produkt aus K O S T E N und
Um die Arbeitsweise von LINGO darzustellen, verwen- TMENGE tiber alle 12 Elemente der Menge VERBINDUN-
den wit das in Abbildung 1 gegebene Beispiel eines Trans- GEN auf.
portproblems mit drei Anbietern und vier Nachfragern. Der erste Nebenbedingungstyp (in den Zeilen 10 ] und
In den Zeilen 2 ] bis 6 ] werden die Parameter und Va- 11 ] ) fordert, dab fttr jeden Nachfrager die Summe der von
riablen des Modells definiert. LINGO unterscheidet dabei den vier Anbietern gelieferten Mengen mindestens der Be-
zun~ichst nicht zwischen Variablen und Parametern, son- darfsh6he entspricht. Zur kompakten Formulierung wird da-
dern definiert alle Angaben als Variablen. Erst dutch das bei der @FOR-Operator verwendet. Dieser generiert for je-
Gleichsetzen von Variablen mit Konstanten werden diese des Element der NACHFRAGER-Menge die in der Folgezeile
zu Parametern. Es besteht die M6glichkeit, einfache Va- definierte Nebenbedingung. Bei der eigentlichen Nebenbe-
riablen sowie (mehrfach) indizierte Variablen zu definie- dingung (in Zeile 11 ] ) wird wiederum von dem @SUM-Ope-
ten. Werden, wie im vorliegenden Beispiel, einfach indi- rator zur Aufsummierung der an den Nachfrager gelieferten
zierte Variablen verwendet, so ist zun~ichst ein Bezeichner Transportmengen Gebrauch gemacht. Die Erzeugung des
der Menge, bspw. ANBIETER in Zeile 3 ], voranzustellen. zweiten Nebenbedingungstyps (Zeilen 12 ] und 13 ] ), der
Anschliegend folgt die Angabe der in der Menge befind- ffir jeden Anbieter garantiert, dab die ausgelieferten Men-
lichen Elemente, hier die Elemente 1 bis 3. FOr jedes gen die Kapazit~it nicht (ibersteigen, erfolgt analog.
In den Zeilen 15 ] bis 19 ] werden die Daten definiert. Problemformulierung und versucht dann alle Variablen
Beispielsweise betragen die Kosten ffir den Transport zu instanzieren, die entweder bereits im Datenteil mit
einer Mengeneinheit von Anbieter eins zu Nachfrager Konstanten gleichgesetzt wurden oder deren Wert sich aus
vier sieben Geldeinheiten. Der Angabe der Daten ist ein dem Nebenbedingungssystem ergibt. In unserem Beispiel
DATA:-Befehl voran und ein ENDDATA-Befehl hintenan werden K A P A Z I T A E T , B E D A R F und K O S T E N z u Para-
zu stellen. metern, und es verbleibt nur die Entscheidungsvariable
Mit dem gen-Befehl (generate) kann aus der alge- TMENGE. Anschliegend wird das Problem auf Linearifiit
braischen Formulierung das vollstfindig ausgeschriebene fiberprfift, und in Abhfingigkeit von der Problemstellung
Optimierungsproblem generiert werden. Abbildung 2 gibt wird ein Verfahren zur L6sung linearer (Simplexverfah-
das lineare Optimierungsproblem (LOP) ffir unser Beispiel ren, Branch-and-Bound) bzw. nichtlinearer Probleme auf-
wieder. Ober die Generierung des Optimierungsmodells gerufen. Wfihrend der Berechnung informiert eine PopUp-
hinaus besteht die M6glichkeit, eine MPS- oder LINGO- Box fiber den Zielfunktionswert und das Ausmal3 der
Formulierung des Modells zu erzeugen sowie abzuspei- Unzul~issigkeit der derzeit besten L6sung sowie fiber die
chern. Anzahl der bisher durchgeffihrten (Pivot-)Schritte. Abbil-
Die L6sung des aktuellen Problems erfolgt mit dem Be- dung 3 zeigt ffir das optimale Ergebnis mit einem Ziel-
fehl go. LINGO generiert zun~chst intern die vollst~ndige funktionswert von 161 die Instanzierung von Struktur- und
K. Haase, R. Kolisch: LINGO
Schlupfvariablen sowie deren Schattenpreise (REDUCED mung von Referenzergebnissen. Die M6glichkeit, un-
COST bzw. DUAL PRICE). Die Interpretation der kompliziert einzelne Nebenbedingungen hinzuzuffigen
REDUCED COST ist folgendermagen: Wird bspw. die in und ausblenden zu k6nnen, macht L I N G O zu einem hilf-
der Optimall6sung nicht in der Basis befindliche Struktur- reichen Instrument bei der Generierung von Schranken
variable TMGENGE ( 1 , 4 ) in die Basis aufgenommen, so und Schnittebenen.
verschlechtert, d.h. erh6ht sich der Zielfunktionswert um Mit Hilfe der Funktion @RAND lassen sich gleichver-
zwei Einheiten je Mengeneinheit von TMGENGE ( 1 , 4 ). teilte Zufallszahlen generieren. Dadurch kann L I N G O
Die Schattenpreise ftir die Schlupfvariablen zeigen, um als flexibler Datengenerator eingesetzt werden, der zu-
wieviel sich der Zielfunktionswert bei Aufstockung der dem die M6glichkeit bietet, die erzeugten Problemin-
Bedarfsmengen (Nebenbedingungen 2] bis 5 ] ) erh6ht stanzen in unterschiedlichen Formaten abzuspeichern.
bzw. bei Ausweitung der Angebotsmengen (Nebenbedin-
gungen 6] bis 8 ] ) verringert. Mit dem Befehl r a n g e Schwiichen
kann im Anschlug an die optimale L6sung des Problems
9 Der in der DOS-Version integrierte Editor ist nicht sehr
eine Sensitivit~itsanalyse durchgeffihrt werden.
bedienungsfreundlich. Bspw. fehlt die M6glichkeit, be-
stimmte Zeichenstrings zu suchen oder zu ersetzen so-
wie in eine bestimmte Zeile zu springen.
5. Weitere Mi~glichkeiten
9 Die Fehlermeldungen erleichtern nur bedingt die Suche
nach syntaktischen Fehlern. Bei der Modellierung emp-
Das dargestellte Beispiel zeigt nur einen kleinen Teil der
fiehlt es sich daher, die Restriktionen sukzessive einzu-
mit L I N G O gebotenen M6glichkeiten. Weitere Optionen
geben und zu fiberprfifen.
sind folgende:
9 In der DOS-Version k6nnen Daten sehr leicht verloren
9 Parameter k6nnen im Datenteil mit einem ? instanziert gehen, weil L I N G O sowohl beim Einlesen eines neuen
werden. L I N G O fragt dann nach Start des L6sungsver- Modells als auch bei Beendigung des Programms das
fahrens automatisch nach den aktuellen Werten. aktuell im Arbeitsspeicher befindliche Modell ohne vor-
9 Die @-Operatoren k6nnen mit einer oder mehreren Be- herigen Hinweis fiberschreibt. Ebenso werden beim Ab-
dingungen versehen werden, so dab die Summe fiber speichern von Modellen bereits existierende Dateien
eine Teilmenge gebildet wird. ohne Vorwarnung fiberschrieben.
9 Dtinn besetzte Matrizen k6nnen so definiert werden, dab 9 Die Verwendung von Indizes <0 ist nicht m6glich.
nur die von Null verschiedenen Eintragungen gespei- 9 Eine parametrische Sensitivit~itsanalyse ist nicht durch-
chert werden. ftihrbar.
9 Teile der Modellformulierung k6nnen mit einem
@FILE-Operator aus separaten Dateien eingebunden
werden. Damit er6ffnet sich die M6glichkeit, den Mo- 7. Resiimee
dellteil mit verschiedenen a priori definierten Daten zu
16sen. L I N G O ist ein ausgereiftes und leicht bedienbares Pro-
9 Mit der @IMPORT-Funktion lassen sich Daten aus Ta- gamm zur Modellierung und L6sung linearer und nicht-
bellenkalkulationsprogrammen laden. linearer Optimierungsprobleme. Die Robustheit des Pro-
9 L I N G O l~igt sich in Batch-Programme einbinden oder gramms, die schnell erlernbare Modellierungssprache und
als Subroutine in C-Programmen aufrufen. das didaktisch hervorragend aufgebaute Handbuch ma-
chen L I N G O zu einem wertvollen Hilfsmittel in der quan-
titativ orientierten Betriebswirtschaftslehre. Wfihrend die
6. Stiirken und Schwiichen des Programms (Kern-)Funktionalit~it in der DOS- und in der WINDOWS-
Version identisch ist, sei dem Anwender jedoch die WIN-
Folgende St~irken und Schw~ichen des Programms sind zu DOWS-Version empfohlen, da diese eine sichere Hand-
konstatieren: habung von Dateien erlaubt und zudem eine Entwick-
lungsoberfl~iche bietet.
Stiirken
9 L I N G O ist sehr leicht zu erlernen. Erfahrungen bei Se- Dr. Knut Haase
minar- und Diplomarbeiten haben gezeigt, dab Studen- Dr. Rainer Kolisch
ten ohne Vorkenntnisse in (algebraischen) Program- Christian-Albrechts-Universit~it zu Kiel
Institut ftir Betriebswirtschaftslehre
miersprachen L I N G O innerhalb weniger Stunden mit Lehrstuhl fiir Produktion und Logistik
Erfolg anwenden konnten. Olshausenstrasse 40, D-24098 Kiel
9 Im Rahmen der Forschung eignet sich L I N G O zur Tel.: 0431/880-4581, Fax: 0431/880-1531
schnellen Validierung von Modellen und zur Bestim- e-mail: kolisch @bwl.uni-kiel.de