| Filename | Latest commit message | Latest commit date |
|---|---|---|
Setzt den umsetzbaren Teil von Paket 3 aus Verbesserungen_03.md um
(Vorher-Nachher-Wasserfall, Business Impact). Neuer Generator
bilder_04/erzeuge_wirkung.py; das Supply-Chain-Kapitel bekommt damit sein
erstes Diagramm ueberhaupt.
Der Anlass: Die Tabelle nannte nur die Summen - 874.870 EUR gegen
351.356 EUR, 149 % mehr. Wofuer genau, stand nirgends.
Der Generator rechnet die Instanz erneut, wie es die Konvention verlangt.
Die Probe fiel gut aus: Der unabhaengige Nachbau reproduziert beide
abgedruckten Summen exakt, dazu 178,7 MWh Fehlmenge und 28/40 Szenarien mit
Abwurf. Kein Auseinanderlaufen - der erste Generator dieser Reihe, der
nichts findet.
Was die Zerlegung zeigt und die Tabelle nicht: Die Anfahrkosten sind in
beiden Plaenen gleich (58.000 EUR). Der Erwartungswert-Plan spart also nicht
dort, wo man es vermuten wuerde. Er spart 12.725 EUR Brennstoff und bezahlt
dafuer 536.239 EUR Lastabwurf - das 42-fache. "149 % mehr" ist eine Zahl,
ueber die man streiten kann; "wir sparen 12.725 EUR und riskieren
536.239 EUR" ist eine, ueber die man entscheidet.
Die Trennung von Brennstoff- und Abwurfkosten ist der einzige Zusatz
gegenueber bewerte() im Buchprogramm; dort wird sie nicht gebraucht.
Ein eigener Fehler unterwegs: Ein .replace(",", ".") fuer deutsche
Tausenderpunkte lag auf dem ganzen Titelsatz und machte aus "Brennstoff,
Preis" ein "Brennstoff. Preis". Jetzt gibt es euro(), das nur auf Zahlen
angewandt wird.
SVG byteidentisch ueber zwei Laeufe. Diagramme jetzt 33, davon 19 mit
Generator (16 Skripte). PDF unveraendert 746 Seiten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
||
| .. | ||
| 00_Vorwort_und_Lesehilfe.md | ||
| 01_Notation_und_Abkuerzungen.md | ||
| 10_Einfuehrung_OR.md | ||
| 11_Mathematisches_Fundament.md | ||
| 12_Python_Oekosystem.md | ||
| 13_Vom_Wunsch_zum_Modell.md | ||
| 20_Lineare_Programmierung.md | ||
| 21_MILP.md | ||
| 22_CP_SAT.md | ||
| 23_Graphen_Fluesse_Touren.md | ||
| 24_Metaheuristiken.md | ||
| 25_Spaltengenerierung.md | ||
| 30_QP_und_NLP.md | ||
| 31_Unsicherheit.md | ||
| 32_Dynamische_Programmierung.md | ||
| 33_Mehrziel_und_Pareto.md | ||
| 34_Predict_then_Optimize.md | ||
| 35_Strukturbruecke.md | ||
| 36_Supply_Chain_Energie.md | ||
| 40_Finanzdaten.md | ||
| 41_Markowitz.md | ||
| 42_CVaR.md | ||
| 43_Handelsmaschine.md | ||
| 50_Praxis.md | ||
| 51_Testing_und_Deployment.md | ||
| 59_Projektwerkstatt.md | ||
| 90_Anhang_Loesungen.md | ||
| 91_Anhang_Modellierungsmuster.md | ||
| 92_Anhang_Fehlerdiagnose.md | ||
| 93_Anhang_Spickzettel.md | ||
| 94_Anhang_Glossar_und_Literatur.md | ||
| build_version_04.py | ||
| extract_programme_04.py | ||
| README.md | ||
| README_Programme.md | ||
Optimierte Entscheidungsfindung mit Python
Wegweiser durch diese Ausgabe. Dieses Kompendium verfolgt einen klaren Anspruch: Kursteilnehmerinnen und Kursteilnehmer sollen den Text nicht nur lesen, sondern damit arbeiten, üben und eigene Anwendungen bauen können.
Was dieses Kompendium bietet
| Merkmal | Umfang | Warum |
|---|---|---|
| Formel-Lesehilfen | bei jeder nicht-trivialen Formel | Nicht jede/r liest Formelsprache flüssig |
| Handrechnungen | Simplex, Big-M, Dualität, Bellman, CVaR | Verstehen kommt vor Programmieren |
| Zeile-für-Zeile-Code-Erklärungen | alle Kernprogramme | Code lesen lernen, nicht nur ausführen |
| Erwartete Programmausgaben | alle Programme | Selbstkontrolle: „Läuft es bei mir richtig?“ |
| ~130 Übungsaufgaben mit Lösungen | jedes Kapitel | Aktives Üben statt passives Lesen |
| Selbsttests | jedes Kapitel | Schnelle Wissenskontrolle |
| Codebeispiele durchgängig lauffähig | u. a. Rucksack, Zuordnung, Job-Shop, Monte-Carlo, robuste Optimierung, Min-Cost-Flow | Theorie und Code gehören zusammen |
| Notations- und Abkürzungsverzeichnis | 01_Notation_und_Abkuerzungen.md |
Jede Abkürzung genau einmal sauber eingeführt |
| Projektwerkstatt | 59_Projektwerkstatt.md |
8 vollständige Projektaufträge für eigene Anwendungen |
| Modellierungsmuster-Katalog | 91_Anhang_Modellierungsmuster.md |
Nachschlagewerk: „Wie modelliere ich X?“ |
| Fehlerdiagnose-Handbuch | 92_Anhang_Fehlerdiagnose.md |
Was tun, wenn der Solver INFEASIBLE meldet? |
Aufbau der Dateien
Der Text ist auf mehrere Dateien verteilt, damit er handhabbar bleibt. Die Nummern-Präfixe legen die Lesereihenfolge fest.
Vorspann
| Datei | Inhalt |
|---|---|
00_Vorwort_und_Lesehilfe.md |
Vorwort, Lernpfade, Verzeichnis der Beispielprogramme, Setup, wie die Lernelemente funktionieren |
01_Notation_und_Abkuerzungen.md |
Alle Symbole und Abkürzungen, ausgeschrieben und erklärt |
Teil I — Grundlagen
| Datei | Kapitel |
|---|---|
10_Einfuehrung_OR.md |
1 — Einführung in Operations Research |
11_Mathematisches_Fundament.md |
2 — Vektoren, Matrizen, Konvexität |
12_Python_Oekosystem.md |
3 — Das Python-Ökosystem für OR |
Teil II — Deterministische Kernverfahren
| Datei | Kapitel |
|---|---|
20_Lineare_Programmierung.md |
4 — Lineare Programmierung, Simplex, Dualität |
21_MILP.md |
5 — Gemischt-ganzzahlige Optimierung |
22_CP_SAT.md |
6 — Constraint Programming mit CP-SAT |
23_Graphen_Fluesse_Touren.md |
7 — Graphen, Flüsse, Tourenplanung |
Teil III — Nichtlinearität, Unsicherheit, Dynamik
| Datei | Kapitel |
|---|---|
30_QP_und_NLP.md |
8 — Quadratische und nichtlineare Optimierung, KKT |
31_Unsicherheit.md |
9 — Monte-Carlo, stochastische und robuste Optimierung |
32_Dynamische_Programmierung.md |
10 — Dynamische Programmierung, Bellman |
Teil IV — Operations Research an den Finanzmärkten
| Datei | Kapitel |
|---|---|
40_Finanzdaten.md |
11 — Finanzdaten, Kovarianz, Shrinkage |
41_Markowitz.md |
12 — Markowitz-Portfoliotheorie |
42_CVaR.md |
13 — Tail-Risiko, CVaR, Transaktionskosten |
43_Handelsmaschine.md |
14 — Die vollständige Handelsmaschine |
Teil V — Praxis
| Datei | Kapitel |
|---|---|
50_Praxis.md |
15 — Praxisfallen und produktiver Einsatz |
59_Projektwerkstatt.md |
Projektwerkstatt: 8 eigene Anwendungen |
Anhang
| Datei | Inhalt |
|---|---|
90_Anhang_Loesungen.md |
Lösungen zu allen Übungsaufgaben und Selbsttests |
91_Anhang_Modellierungsmuster.md |
Musterkatalog: 24 wiederkehrende Modellierungstricks |
92_Anhang_Fehlerdiagnose.md |
Diagnose-Handbuch für Solver-Probleme |
94_Anhang_Glossar_und_Literatur.md |
Glossar, Literatur |
Eine Einzeldatei erzeugen
Wer lieber ein einziges Dokument möchte (z. B. zum Drucken oder für die PDF-Erzeugung), baut es aus den Einzeldateien:
cd OR_mit_Python/Version_04 # Wurzel der Version 04
python3 Operations_Research_mit_Python_Version_04/build_version_04.py
Das Skript erzeugt Operations_Research_mit_Python_Version_04.md im übergeordneten
Verzeichnis — in derselben Reihenfolge wie oben, mit Titelblock, automatisch gesetztem
Inhaltsverzeichnis-Platzhalter und entfernten unnötigen Zeilenumbrüchen innerhalb von
Absätzen. Optionen:
python3 .../build_version_03.py --pdf # zusätzlich PDF über pandoc + xelatex
python3 .../build_version_03.py --html # zusätzlich Single-Page-HTML
python3 .../build_version_03.py --check # nur Konsistenzprüfung, schreibt nichts
Empfohlene Reihenfolge für Kursteilnehmer
Vollständiger Lehrgang (empfohlen, ca. 100–140 Stunden): Vorwort → Notation → alle Kapitel der Reihe nach → Projektwerkstatt. Jedes Kapitel endet mit Übungsaufgaben — bearbeiten Sie diese, bevor Sie weiterlesen.
Schnellpfad Planung & Disposition (ca. 25 Stunden): Einführung, Fundament, Vom Wunsch zum Modell, LP, MILP, CP-SAT → Projekt P1 oder P2.
Schnellpfad Logistik (ca. 25 Stunden): Einführung, Fundament, LP, MILP, Graphen → Projekt P3.
Schnellpfad Quantitative Finance (ca. 30 Stunden): Einführung, Fundament, QP/NLP, Finanzdaten, Markowitz, CVaR, Handelsmaschine → Projekt P6 oder P7.
(Ohne Kapitelnummern — die verschieben sich beim Einfügen neuer Kapitel. Die maßgebliche, immer aktuelle Fassung der Lernpfade steht im Vorwort.)
Details zu den Lernpfaden stehen in 00_Vorwort_und_Lesehilfe.md.
Autor / Herausgeber: Dieter Schlüter · Stand: 8. September 2026