| Filename | Latest commit message | Latest commit date |
|---|---|---|
Der erste Alltagseinsatz zeigte drei Schoenheitsfehler, alle in der Ausgabe. Der Bericht stand verkehrt herum: Die rsync-Zeilen erschienen VOR "Ziel:" und "Vorpruefung bestanden". Python puffert seine Ausgabe blockweise, sobald sie nicht an ein Terminal geht, waehrend der Unterprozess unmittelbar schreibt. sys.stdout.reconfigure(line_buffering=True) stellt die Reihenfolge her. 150 Zeilen fuer eine uebertragene Datei: --itemize-changes lief auch im echten Durchgang mit, obwohl der Probelauf schon berichtet hatte, was passieren wird. 149 der 150 Zeilen besagten nur ".f..t......" - Inhalt gleich, nur Zeitstempel nachgezogen, die erwartbare Folge von --checksum. Die Auflistung bleibt jetzt dem Probelauf vorbehalten. Der Ersatz war zuerst schlimmer als das Problem: --info=progress2 zeigt am Terminal eine sich selbst ueberschreibende Zeile, in einer Pipe dagegen jeden Zwischenstand einzeln - gemessen 213 Zeilen fuer 213 Dateien. Die Anzeige haengt jetzt an sys.stdout.isatty(). Ausserdem: Die 404-Probe auf anhang-glossar-literatur.html ist entfernt. Die Datei ist geloescht - im Arbeitsbaum, in Git und auf dem Server -, und die Probe koennte einen Rueckschritt gar nicht mehr entdecken: Sie bliebe auch dann gruen, wenn jemand --delete aus dem rsync-Aufruf naehme. Was sie belegt hat, steht in PROGRESS.md. Von vierzehn Adressen bleiben dreizehn. 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 | ||
| 19_Synthese_Grundlagen.md | ||
| 20_Lineare_Programmierung.md | ||
| 21_MILP.md | ||
| 22_CP_SAT.md | ||
| 23_Graphen_Fluesse_Touren.md | ||
| 24_Metaheuristiken.md | ||
| 25_Spaltengenerierung.md | ||
| 29_Synthese_Kernverfahren.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 | ||
| 39_Synthese_Nichtlinear.md | ||
| 40_Finanzdaten.md | ||
| 41_Markowitz.md | ||
| 42_CVaR.md | ||
| 43_Handelsmaschine.md | ||
| 49_Synthese_Anwendungen.md | ||
| 50_Praxis.md | ||
| 51_Testing_und_Deployment.md | ||
| 52_Synthese_Praxis.md | ||
| 59_Projektwerkstatt.md | ||
| 90_Anhang_Loesungen.md | ||
| 91_Anhang_Modellierungsmuster.md | ||
| 92_Anhang_Fehlerdiagnose.md | ||
| 93_Anhang_Spickzettel.md | ||
| 94_Anhang_Glossar.md | ||
| 95_Anhang_Literatur.md | ||
| build_version_04.py | ||
| extract_programme_04.py | ||
| README.md | ||
| README_Programme.md | ||
| titeltexte_04.py | ||
| veroeffentliche_04.py | ||
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 & Lesehilfe |
01_Notation_und_Abkuerzungen.md |
Notation & Abkürzungen |
Teil I: Grundlagen des Operations Research
| Datei | Kapitel |
|---|---|
10_Einfuehrung_OR.md |
Kapitel 1 — Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung |
11_Mathematisches_Fundament.md |
Kapitel 2 — Das mathematische Fundament — Vektoren, Matrizen, Konvexität |
12_Python_Oekosystem.md |
Kapitel 3 — Das Python-Ökosystem für OR — Solver, Bindings und Modellierungsschichten |
13_Vom_Wunsch_zum_Modell.md |
Kapitel 4 — Vom Management-Wunsch zum Modell |
19_Synthese_Grundlagen.md |
Synthese Teil I |
Teil II: Die Kernverfahren der deterministischen Optimierung
| Datei | Kapitel |
|---|---|
20_Lineare_Programmierung.md |
Kapitel 5 — Lineare Programmierung — Simplex, Dualität und Schattenpreise |
21_MILP.md |
Kapitel 6 — Gemischt-ganzzahlige Optimierung — Diskrete Entscheidungen und Branch-and-Bound |
22_CP_SAT.md |
Kapitel 7 — Constraint Programming mit CP-SAT — Logik, Scheduling und Zuweisung |
23_Graphen_Fluesse_Touren.md |
Kapitel 8 — Graphen, Flüsse und Touren — Min-Cost-Flow, Matching und VRP |
24_Metaheuristiken.md |
Kapitel 9 — Metaheuristiken — wenn der exakte Solver aussteigt |
25_Spaltengenerierung.md |
Kapitel 10 — Spaltengenerierung — das Modell umbauen statt die Lösung raten |
29_Synthese_Kernverfahren.md |
Synthese Teil II |
Teil III: Nichtlinearität, Unsicherheit und mehrperiodige Dynamik
| Datei | Kapitel |
|---|---|
30_QP_und_NLP.md |
Kapitel 11 — Quadratische und nichtlineare Optimierung — KKT, Lagrange, Konvexität |
31_Unsicherheit.md |
Kapitel 12 — Optimierung unter Unsicherheit — Monte-Carlo, Stochastik, Robustheit |
32_Dynamische_Programmierung.md |
Kapitel 13 — Dynamische Programmierung — Die Bellman-Gleichung und Order-Execution |
33_Mehrziel_und_Pareto.md |
Kapitel 14 — Mehrere Ziele — Pareto-Fronten statt Gewichte |
34_Predict_then_Optimize.md |
Kapitel 15 — Predict-then-Optimize — die bessere Prognose, die schlechtere Entscheidung |
39_Synthese_Nichtlinear.md |
Synthese Teil III |
Teil IV: Anwendungen — Energiewirtschaft und Finanzmärkte
| Datei | Kapitel |
|---|---|
35_Strukturbruecke.md |
Kapitel 16 — Die Strukturbrücke — dieselbe Mathematik, zwei Welten |
36_Supply_Chain_Energie.md |
Kapitel 17 — Supply-Chain und Energieeinsatz unter Unsicherheit |
40_Finanzdaten.md |
Kapitel 18 — Finanzdaten-Modellierung — Renditen, Kovarianz und Shrinkage |
41_Markowitz.md |
Kapitel 19 — Die moderne Portfoliotheorie nach Markowitz |
42_CVaR.md |
Kapitel 20 — Tail-Risiko, CVaR und Transaktionskosten |
43_Handelsmaschine.md |
Kapitel 21 — Die vollständige quantitative Handelsmaschine |
49_Synthese_Anwendungen.md |
Synthese Teil IV |
Teil V: Praxis
| Datei | Kapitel |
|---|---|
50_Praxis.md |
Kapitel 22 — Praxisfallen und der Weg zum produktiven Einsatz |
51_Testing_und_Deployment.md |
Kapitel 23 — Testen, Messen, Ausliefern |
52_Synthese_Praxis.md |
Synthese Teil V |
59_Projektwerkstatt.md |
Projektwerkstatt |
Anhang
| Datei | Inhalt |
|---|---|
90_Anhang_Loesungen.md |
Anhang A — Lösungen zu allen Übungsaufgaben |
91_Anhang_Modellierungsmuster.md |
Anhang B — Katalog der Modellierungsmuster |
92_Anhang_Fehlerdiagnose.md |
Anhang C — Fehlerdiagnose-Handbuch |
93_Anhang_Spickzettel.md |
Anhang D — Spickzettel der Solver |
94_Anhang_Glossar.md |
Anhang E — Glossar |
95_Anhang_Literatur.md |
Anhang F — Literaturverzeichnis |
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 Version_04 # das Wurzelverzeichnis des Repositorys
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_04.py --pdf # zusätzlich PDF über pandoc + xelatex
python3 .../build_version_04.py --html # zusätzlich die Website OR_HTML_04/
python3 .../build_version_04.py --check # nur Konsistenzprüfung, schreibt nichts
--html erzeugt die mehrseitige Website mit Suche, Stichwortverzeichnis und
Notebook-Downloads; das Gesamtdokument auf einer Seite liegt darin als
gesamtdokument.html.
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