Modellieren mit AMPL

Ähnliche Dokumente
maximize Profit: sum {j in P} c[j] * X[j]; subject to Zeit: sum {j in P} (1/a[j]) * X[j] <= beta; subject to Grenzen {j in P}: 0 <= X[j] <= u[j];

Optimierung für Nichtmathematiker

Kapitel 4. Mathematische Optimierungsmodelle. Einführung in AMPL (1) Uwe H. Suhl Lehrstuhl für Wirtschaftsinformatik Freie Universität Berlin

Rechnerpraktikum zur Nichtlinearen Optimierung

Einführung in Softwaretools zur Nichtlinearen Optimierung

Rechnerpraktikum zu Grundlagen der Nichtlinearen Optimierung

Eine kurze Beschreibung zu AMPL und CPLEX

Veranstaltung und Übung: Optimierungssysteme Modelle, Software, Praxisanwendungen. Uwe Suhl Veronika Waue SS 2008

Computer Science Department - High Performance and Web Computing Group. Optimierungsprobleme

6. Softwarewerkzeuge für die Lineare Programmierung

LPL - Linear Programming Language

Als Instanz für das p-median Problem wählen wir das Netzwerk von Abbildung 1-1 des Buches auf Seite 6.

LINGO: Eine kleine Einführung

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

AMPL Eine kurze Einführung

AMPL Eine kurze Einführung

LinOpt - Tool zur Visualisierung eines multikriteriellen Optimierungsproblems

Mathematische Grundlagen für Wirtschaftswissenschaftler Übungsaufgaben aus Kapitel 3 - Lineare Optimierung

Unimodularität. Kapitel 1. Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206

Optimierung für Wirtschaftsinformatiker: Lineare Programme

Einführung in Xpress-Mosel

1 Lineare Optimierung, Simplex-Verfahren

1. Hausaufgabenblatt (16.04./ )

Operations Research für Logistik

Maximiere Gesamtgewinn aus verschiedenen Produkten unter Restriktionen an Produktmenge (Lagermenge, Transportmenge)

Lineare Optimierung und ganzzahlige lineare Optimierung

N ---> INFEASIBILTY SOLVE TIME 00:00:00 ITER 1 MEMORY USED 0.0%

Kap. 4.3: Das Dualitätstheorem der linearen Optimierung

Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel:

3.2.5 Dualität der linearen Optimierung I

Kapitel 2. Mathematische Optimierungsmodelle. Lineare Optimierung. Uwe H. Suhl Lehrstuhl für Wirtschaftsinformatik Freie Universität Berlin

Optimierungsworkshop: Beispiele und Übungen

Abbildung 1: Graphische Lösung der ersten Übungsaufgabe

Optimierung I. Dr. Ulf Lorenz F2.413

Modelle und Methoden der Linearen Optimierung (Die Thesen zur Vorlesung 1)

Wirtschaftsmathematik

Optimization in Business Applications: 2. Modeling principles

Substitutionsverfahren

Modelle und Methoden der Linearen Optimierung (Die Thesen zur Vorlesung 1_Fallstudie)

GAMS (General Algebraic Modeling System)

Klausur zur Vorlesung Einführung in das Operations Research im Wintersemester 2007/2008

Optimierung I, SS 2008

Optimale Steuerung 1 Prozessoptimierung 1

Wirtschaftsmathematik für International Management (BA)

Lineare Optimierung. Volker Kaibel Fakultät für Mathematik Institut für Mathematische Optimierung Otto-von-Guericke Universität Magdeburg

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

Rechnerpraktikum zur Optimierung III

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

PuLP ein Python LP-Modellierer

Einführung in Softwaretools zur nichtlinearen Optimierung (WS 2016/17)

Kombinatorische Optimierung

Probeklausur Optimierung

10.2 Dualitätstheorie Operations Research. In der Standardform eines Maximierungsproblem: b e ) mit ( w) + a ej ) x j + x g = ( b g + g G

1. Transport- und Zuordnungsprobleme

Optimierung I Sommersemester 2017

Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung

Klausurrepetitorium ABWL

Mathematische Grundlagen für Wirtschaftswissenschaftler Lösungshinweise zu den Übungsaufgaben aus Kapitel 3 - Lineare Optimierung

1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme. Duales Problem. a i u i + i=1. j=1

Einführung. Kapitel 1. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

Fachbereich Wirtschaftswissenschaften Professur f. Quantitativen Methoden Prof. Dr. Dietrich Ohse

Klausur zur Vorlesung Operations Research im Wintersemester 2009/10

Technische Universität München. Grundlagen der konvexen Optimierung

Ganzzahlige OR-Methoden: Operations Research II a. Übungsblatt 1

Managemententscheidungsunterstützungssysteme

Produktionsplanung und Lineare Optimierung im Rahmen des Projekts Mathematik und Ökonomie 12./13. November 2003 in Düsseldorf.

Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA)

a) Warum sind Kosten bzw. Tarife für Transportdienstleistungen unterhalb einer Komplettladung in der Praxis üblicherweise mengendegressiv?

Math. II, Numerik, Uebung 2, Termin Eigenvektoren, 2-Eigenwerte, 3-Simplex, 4-Zwei-Phasen

1.2 Das Lösen von linearen Problemen mit Hilfe eines Computerprogramms.

Verfahren des Operations Research

Ganzzahlige OR-Methoden: Operations Research II a. Übungsblatt 12

Betriebliche Optimierung

Lineare Optimierung Ergänzungskurs

Betriebswirtschaftliche Optimierung

Prüfungsklausur Operations Research,

1.4 Aufgaben. 2002/2003

Dateneingabe und Transformation Übersicht

RUHR - UNIVERSITÄT BOCHUM KLAUSUR. Name. Vorname. Teilnehmer-Nr. Zur Beachtung. Bitte nicht ausfüllen

Dualitätssätze der linearen Optimierung

Einführung in die Wirtschaftsinformatik VO WS 2008 / 2009

Lineare Optimierung. Dr. Bommhardt. Das Vervielfältigen dieses Arbeitsmaterials zu nicht kommerziellen Zwecken ist gestattet.

Rechnerpraktikum zu Grundlagen der Nichtlinearen Optimierung

FK WMS: Wirtschaftsmathematik 2, Einheit 7/8

Erzielte Bonuspunkte aus der Vorklausur:

ist ein Polyeder. c) Sei F eine Seite von P. Wann ist f 1 (F ) eine Seite von f 1 (P )? Begründen Sie Ihre Antwort. x 1. x = max{ x i i N n }.

Verfahren des Operations Research

Fachakademie für Wirtschaft der FHM A2: Lineare Optimierung und das Simplexverfahren

III. Transportaufgaben 1. Problemstellung 2. Analyse 3. Bestimmung der Startecke 4. Eckenaustausch 5. Umladeprobleme 6. Zuordnungsprobleme

Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA)

Aussage: richtig falsch

Automatiche Teameinteilung für PSE

Algorithmen I - Tutorium 28 Nr. 12

14.4 Warum die Methode der Lagrange-Multiplikatoren funktioniert

1 Zahlenmengen und einige mathematische Symbole

Rechnerpraktikum zur Nichtlinearen Optimierung

Compilerbau 12. Übungsblatt, Sommersemester 2015 Abgabetermin:

Sattelpunkt-Interpretation

Transkript:

Modellieren mit AMPL Elisabeth Gassner Mathematische Modelle in den Wirtschaftswissenschaften Prof. R. E. Burkard 27. April 2007 E. Gassner (Mathematische Modelle) AMPL 27. April 2007 1 / 21

Überblick AMPL - Algebraic modeling language for mathematical programming Algebraische Schreibweise eine linearen Programms: min x s.t. n c j x j j=1 n a ij x j b i j=1 x j 0 i = 1,..., m j = 1,..., n Ziel: Übergabe eines Modells und der Daten an einen Solver und Ausgabe einer Optimallösung. E. Gassner (Mathematische Modelle) AMPL 27. April 2007 2 / 21

Überblick Eigenschaften von AMPL: AMPL ist eine Modelliersparche, die es ermöglicht, ein Optimierungsmodell in kompakter Form darzustellen. AMPL löst das Optimierungsproblem nicht selbst sondern übergibt es einem Solver (z.b. CPLEX, minos, etc.) Das Modell und die Daten sind getrennt (file.mod, file.dat) Das Modellfile enthält Deklaration der Datenparameter und Variablen, die Zielfunktion und die Nebenbedingungen. Das Datenfile enthält die aktuellen Werte der Parameter. E. Gassner (Mathematische Modelle) AMPL 27. April 2007 3 / 21

Überblick Verfügbarkeit: Freie Studentenversion von AMPL auf http://www.ampl.com/downloads/index.html Online-Version In der Windows-Version wird Solver mit zip-file mitgeliefert, für Unix/Linux muss CPLEX getrennt downgeloadet werden. E. Gassner (Mathematische Modelle) AMPL 27. April 2007 4 / 21

Beispiel 1: Produktionsplanung Eine Stahlfabrik muss den Produktionsplan für eine Woche zusammenstellen. Die Fabrik kann Produkt A oder Produkt B herstellen. Die Produkte werden in folgenden Raten gefertigt: Der Verkaufspreis beträgt Tonnen pro Stunde: Produkt A 200 Produkt B 140 Profit pro Tonne: Produkt A 25 Produkt B 30 Aufgrund von Kapazitätsbeschränkungen müssen folgende Grenzen eingehalten werden: Maximal in Tonnen: Produkt A 6000 Produkt B 4000 Wieviel Tonnen von Produkt A und B sollen produziert werden, wenn 40 Arbeitsstunden zur Verfügung stehen und als Ziel der gesamte Verkaufserlös maximiert werden soll? E. Gassner (Mathematische Modelle) AMPL 27. April 2007 5 / 21

Beispiel 1: Produktionsplanung (Fs.) Entscheidungsvariablen: x A (Tonnen von Produkt A), x B (Tonnen von Produkt B) max s.t. 25x A + 30x B 1 200 x A + 1 140 x B 40 0 x A 6000 0 x B 4000 E. Gassner (Mathematische Modelle) AMPL 27. April 2007 6 / 21

Beispiel 1: Produktionsplanung (Fs.) Trennung von Modell und Daten! production.mod set PROD; param rate {PROD} >0; param profit {PROD}; param schranke {PROD}; param arbeitszeit; var menge {PROD}; #Produkte #Produktionsrate für jedes Produkt #Profit pro Tonne für jedes Produkt #obere Schranke für jedes Produkt #Arbeitsstunden pro Woche #Produktionsmenge für jedes Produkt maximize Gesamtprofit: sum {p in PROD} profit[p] * menge[p]; subject to Zeit: sum {p in PROD} (1/rate[p]) * menge[p] <= arbeitszeit; subject to Schranken {p in PROD}: menge[p] <= schranke[p]; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 7 / 21

Beispiel 1: Produktionsplanung (Fs.) production.dat set PROD := ProduktA ProduktB; param arbeitszeit := 40; param: rate profit schranke := ProduktA 200 25 6000 ProduktB 140 30 4000; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 8 / 21

Beispiel 1: Produktionsplanung (Fs.) production.run model production.mod; data production.dat; option solver cplex; #option solver cplexamp; solve; display menge; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 9 / 21

Starten von AMPL Starten von AMPL Windows: MS-DOS Fenster: Doppelklick auf ampl.exe MS-DOS Fenster öffnet sich mit ampl: Scrolling-Window Utility: Doppelklick auf sw.exe Fenster öffnet sich mit sw: sw: ampl ampl: Linux/Unix: Konsole ampl Lösen eines Optimierungsproblems mit AMPL include filename.run; Beenden von AMPL mit quit; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 10 / 21

Output von AMPL ILOG AMPL 9.100, licensed to university-graz. AMPL Version 20021038 (Linux 2.4.9-e.24smp) ILOG CPLEX 9.100, licensed to university-graz, options: e m b q CPLEX 9.1.0: optimal solution; objective 192000 0 dual simplex iterations (0 in phase I) menge [*] := ProduktA 6000 ProduktB 1400 ; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 11 / 21

Die Modelldatei (1) Definition von Mengen, Parametern und Variablen Mengen: set MENGENNAME; Parameter: param PARAMETERNAME >= lb, <= ub; Indizierter Parameter: param PARAMETERNAME {MENGE} >= lb, <= ub; #oder param PARAMETERNAME {MENGE1, MENGE2} >= lb, <= ub; Variablen: var VARIABLENNAME >= lb, <= ub; #oder var VARIABLENNAME {j in MENGE} >= lb, <= ub; #oder var VARIABLENNAME {i in MENGE1, j in MENGE2} # optional binary oder integer E. Gassner (Mathematische Modelle) AMPL 27. April 2007 12 / 21

Die Modelldatei (2) Definition der Zielfunktion: maximize/minimize ZIELNAME: Funktion; Nebenbedingungen: eine Bedingung: subject to NAME: Restriktion; mehrere Bedingungen: subject to NAME {j in Menge}: Restriktion; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 13 / 21

Die Datendatei Mengen: set MENGENNAME := M1 M2 M3 M4; set MENGENNAME := 1.. 10 by 2; #oder Parameter: param PARAMETERNAME := 40; Einfach indizierter Parameter: param PARAMETERNAME:= M1 p1 M2 p2; #einfach indiziert param: PARAMETERNAME1 PARAMETERNAME2 := M1 p1 p2 M2 p3 p4; #mehrere Parameter E. Gassner (Mathematische Modelle) AMPL 27. April 2007 14 / 21

Die Datendatei (2) Mehrfach indizierte Parameter: param PARAMETERNAME:= [M1,*] N1 a N2 b [M2,*] N1 c N2 d; #doppelt indiziert param PARAMETERNAME: N1 N2:= M1 a b M2 c d; #einfache Schreibweise param PARAMETERNAME:= [A1,*,*] C1 C2 C3 B1 a b c B2 d e f [A2,*,*] C1 C2 C3 B1 g h i B2 j k l; #Parameter mit 3 Indizes E. Gassner (Mathematische Modelle) AMPL 27. April 2007 15 / 21

Die Run-Datei reset; model DATEINAME.mod; data DATEINAME.dat; option solver cplex; #option solver cplexamp; solve; display VARIABLE1, VARIABLE2; #Output am Bildschirm display VARIABLE3 > OUTPUT.txt; #Output in Datei OUTPUT.txt E. Gassner (Mathematische Modelle) AMPL 27. April 2007 16 / 21

Einige Grundsätze und Fehlerquellen Wählen Sie aussagekräftige Namen. Variablen und Nebenbedingungen dürfen nicht den gleichen Namen tragen. Dokumentieren Sie das Modell. Alles nach dem Symbol # wird ignoriert. Jede Zeile muss mit Strichpunkt enden. Jede Variable muss mit var definiert sein. E. Gassner (Mathematische Modelle) AMPL 27. April 2007 17 / 21

Beispiel 2: Zuordnungsproblem Ein Unternehmen besitzt 3 Lager und 4 Fabriken. Die Ressourcen für die Produktion in den Fabriken müssen von den Lagern zugeliefert werden. Die Lager verfügen über folgende Kapazitäten Lager 1: 250, Lager 2: 800, Lager 3: 760 und die Fabriken haben folgenden Bedarf Fabrik 1: 300, Fabrik 2: 320, Fabrik 3: 800, Fabrik 4: 390 Die Transportkosten pro gelieferter Einheit sind linear von der Distanz abhängig: Fabrik 1 Fabrik 2 Fabrik 3 Fabrik 4 Lager 1 1 2 3 2 Lager 2 3 2 4 1 Lager 3 2 6 2 5 Bestimmen Sie einen zulässigen Transportplan, der die Gesamtkosten minimiert. E. Gassner (Mathematische Modelle) AMPL 27. April 2007 18 / 21

Beispiel 2: Zuordnungsproblem zuordnung.mod param anzahlfabriken; #Anzahl der Fabriken param anzahllager; #Anzahl der Lager set fabriken:=1..anzahlfabriken; #Menge aller Fabriken set lager:=1..anzahllager; #Menge der Lager param cost{i in lager, j in fabriken}; #Kosten von Lager i zu Fabrik j param kapazitaet {i in lager}; #Kapazitaet von Lager i param bedarf {j in fabriken}; #Bedarf von Fabrik j var transport {i in lager, j in fabriken} >=0; #Transportierte Menge von Lager i zu Fabrik j E. Gassner (Mathematische Modelle) AMPL 27. April 2007 19 / 21

Beispiel 2: Zuordnungsproblem zuordnung.mod (Fs.) minimize Kosten: sum{i in lager, j in fabriken} cost[i,j] * transport[i,j]; subject to Lagerkapazitaet {i in lager}: sum{j in fabriken} transport[i,j] <= kapazitaet[i]; #Gesamttransport ab Lager i subject to Fabriksbedarf {j in fabriken}: sum{i in lager} transport[i,j] >= bedarf[j]; #Gesamttransport zu Fabrik j E. Gassner (Mathematische Modelle) AMPL 27. April 2007 20 / 21

Beispiel 2: Zuordnungsproblem zuordnung.dat param anzahlfabriken := 4; param anzahllager :=3; param kapazitaet:= 1 250 2 800 3 760; param bedarf:= 1 300 2 320 3 800 4 390; param cost: 1 2 3 4 := 1 1 2 3 2 2 3 2 4 1 3 2 6 2 5; E. Gassner (Mathematische Modelle) AMPL 27. April 2007 21 / 21