operations_research/Operations_Research_mit_Python_Version_04
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dschlueter a0691e1919 Phase 7.2: Wasserfalldiagramm - wofuer der Erwartungswert-Plan bezahlt
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>
2026-09-08 11:41:07 +02:00
..
00_Vorwort_und_Lesehilfe.md Phase 7.1: Vier Zielgruppen-One-Pager im Vorwort 2026-09-08 11:29:00 +02:00
01_Notation_und_Abkuerzungen.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
10_Einfuehrung_OR.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
11_Mathematisches_Fundament.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
12_Python_Oekosystem.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
13_Vom_Wunsch_zum_Modell.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
20_Lineare_Programmierung.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
21_MILP.md Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
22_CP_SAT.md Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
23_Graphen_Fluesse_Touren.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
24_Metaheuristiken.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
25_Spaltengenerierung.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
30_QP_und_NLP.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
31_Unsicherheit.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
32_Dynamische_Programmierung.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
33_Mehrziel_und_Pareto.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
34_Predict_then_Optimize.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
35_Strukturbruecke.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
36_Supply_Chain_Energie.md Phase 7.2: Wasserfalldiagramm - wofuer der Erwartungswert-Plan bezahlt 2026-09-08 11:41:07 +02:00
40_Finanzdaten.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
41_Markowitz.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
42_CVaR.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
43_Handelsmaschine.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
50_Praxis.md Phase 6.2: Constraint Attribution und Managementbericht 2026-09-08 10:30:33 +02:00
51_Testing_und_Deployment.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
59_Projektwerkstatt.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
90_Anhang_Loesungen.md Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
91_Anhang_Modellierungsmuster.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
92_Anhang_Fehlerdiagnose.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
93_Anhang_Spickzettel.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
94_Anhang_Glossar_und_Literatur.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
build_version_04.py Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
extract_programme_04.py Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
README.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
README_Programme.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00

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. 100140 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