operations_research/Operations_Research_mit_Python_Version_04
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dschlueter 509ce021da NEUER_TITEL.md zu den Quellen, Kritik-Verzeichnis ganz heraus
Der erste Anlauf schloss Kritik_und_Verbesserungsvorschlaege/ mit einer
Gegenausnahme aus, weil NEUER_TITEL.md darin lag und der Bau ohne diese Datei
abbricht:

    Kritik_und_Verbesserungsvorschlaege/*
    !Kritik_und_Verbesserungsvorschlaege/NEUER_TITEL.md

Das funktionierte, war aber die schlechtere Loesung: Eine Bauquelle blieb in
einem Verzeichnis liegen, das aus dem Repository verschwinden soll. Jetzt
steht sie als Operations_Research_mit_Python_Version_04/NEUER_TITEL.md bei den
uebrigen Quellen, und .gitignore braucht nur noch eine Zeile.

Eine Stelle im Build musste mit: pruefe_dateien() meldet jede .md im
Quellverzeichnis, die weder in DATEIEN steht noch mit README beginnt, als
"nicht eingebundene Datei". Die bis dahin leere Menge KEINE_KAPITELDATEIEN
fuehrt jetzt NEUER_TITEL.md - eine Quelle, aber keine Kapiteldatei.

Der Nachweis, dass der Umzug nichts veraendert hat, brauchte einen Umweg: Die
Pruefsumme von titelseite.svg aenderte sich - aber nur, weil das Fussband das
Tagesdatum traegt und inzwischen der 9. September war. Mit dem Datum des
Vortags erzeugt, ist die Datei byte-identisch zum committeten Stand
(1b076697...). Dass der Text unveraendert ist, zeigt schon der
Strukturvergleich: 721 Glyphenverweise und 81 Pfaddefinitionen in beiden
Fassungen.

Gegengeprueft mit einem simulierten Klon (git checkout-index in ein leeres
Verzeichnis): Das Kritik-Verzeichnis fehlt dort vollstaendig, NEUER_TITEL.md
liegt im Quellverzeichnis, und --check liefert dieselben Zahlen wie lokal.

Was das NICHT leistet: Die fuenf Dateien verschwinden aus kuenftigen Klons,
nicht aus der Historie. Wer einen alten Commit auscheckt, bekommt sie
weiterhin.

Veroeffentlicht: 5 Dateien uebertragen, PDF unveraendert 781 Seiten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 00:31:16 +02:00
..
00_Vorwort_und_Lesehilfe.md Titelblatt: Anwendungsliste beginnt ohne "Von" 2026-09-08 19:49:03 +02:00
01_Notation_und_Abkuerzungen.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
10_Einfuehrung_OR.md Aufgeraeumt: 33 PNG-Zweitfassungen, Bau-Ueberbleibsel, Ausgabepfade 2026-09-08 14:22:26 +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 Phase 8.2: Solver-Isolation ohne subprocess-Codestrings 2026-09-08 12:39:34 +02:00
13_Vom_Wunsch_zum_Modell.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
19_Synthese_Grundlagen.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
20_Lineare_Programmierung.md Achter Fund (Uebung-Verweise) und Phase 8.3: Dockerfile 2026-09-08 13:18:05 +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 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
23_Graphen_Fluesse_Touren.md Folium-Karten: die Blockade war eine falsche Alternative 2026-09-08 20:38:16 +02:00
24_Metaheuristiken.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
25_Spaltengenerierung.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
29_Synthese_Kernverfahren.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
30_QP_und_NLP.md Achter Fund (Uebung-Verweise) und Phase 8.3: Dockerfile 2026-09-08 13:18:05 +02:00
31_Unsicherheit.md Achter Fund (Uebung-Verweise) und Phase 8.3: Dockerfile 2026-09-08 13:18:05 +02:00
32_Dynamische_Programmierung.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
33_Mehrziel_und_Pareto.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
34_Predict_then_Optimize.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
35_Strukturbruecke.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
36_Supply_Chain_Energie.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
39_Synthese_Nichtlinear.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
40_Finanzdaten.md Achter Fund (Uebung-Verweise) und Phase 8.3: Dockerfile 2026-09-08 13:18:05 +02:00
41_Markowitz.md Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
42_CVaR.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
43_Handelsmaschine.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
49_Synthese_Anwendungen.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
50_Praxis.md Achter Fund (Uebung-Verweise) und Phase 8.3: Dockerfile 2026-09-08 13:18:05 +02:00
51_Testing_und_Deployment.md Phase 8.2: Solver-Isolation ohne subprocess-Codestrings 2026-09-08 12:39:34 +02:00
52_Synthese_Praxis.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
59_Projektwerkstatt.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
90_Anhang_Loesungen.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
91_Anhang_Modellierungsmuster.md Phase 8.1: Synthese-Seiten je Teil - und die gebrochene Lesekette 2026-09-08 12:10:02 +02:00
92_Anhang_Fehlerdiagnose.md Phase 8.2: Solver-Isolation ohne subprocess-Codestrings 2026-09-08 12:39:34 +02:00
93_Anhang_Spickzettel.md Glossar und Literatur trennen, Menue um Glossar und ZIP-Download ergaenzen 2026-09-08 15:48:57 +02:00
94_Anhang_Glossar.md Glossar von 92 auf 234 Eintraege 2026-09-08 21:17:20 +02:00
95_Anhang_Literatur.md Literaturverzeichnis: alle Eintraege gegen Crossref geprueft 2026-09-08 21:58:16 +02:00
build_version_04.py NEUER_TITEL.md zu den Quellen, Kritik-Verzeichnis ganz heraus 2026-09-09 00:31:16 +02:00
erzeuge_glossar_04.py Build-Kommando fuer das Glossar: erzeuge_glossar_04.py 2026-09-08 21:28:53 +02:00
extract_programme_04.py Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
glossar_eintraege_04.py Build-Kommando fuer das Glossar: erzeuge_glossar_04.py 2026-09-08 21:28:53 +02:00
NEUER_TITEL.md NEUER_TITEL.md zu den Quellen, Kritik-Verzeichnis ganz heraus 2026-09-09 00:31:16 +02:00
README.md NEUER_TITEL.md zu den Quellen, Kritik-Verzeichnis ganz heraus 2026-09-09 00:31:16 +02:00
README_Programme.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
titeltexte_04.py NEUER_TITEL.md zu den Quellen, Kritik-Verzeichnis ganz heraus 2026-09-09 00:31:16 +02:00
veroeffentliche_04.py veroeffentliche_04.py: leserliche Ausgabe, 404-Probe entfernt 2026-09-08 20:04:53 +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 & 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. 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: 9. September 2026