operations_research/Operations_Research_mit_Python_Version_04
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dschlueter 62952ba066 Fuenfte harte Nummer gefunden: eine Tabellenzelle - und die Pruefung dagegen
31_Unsicherheit.md trug in der Uebersicht "Die drei Ansaetze im Ueberblick"
noch die Zeile

    | Kapitel | 9.2 | 9.3 | 9.4 |

Die Abschnitte heissen in Version 04 aber 12.4 bis 12.6 - stehengebliebene
Version-03-Nummern, im PDF abgedruckt. Damit ist die Regel "keine
abgeleiteten Zahlen im Quelltext" zum fuenften Mal verletzt gefunden worden.

--check lief daran vorbei, weil der bestehende Ausdruck das Wort unmittelbar
vor der Zahl verlangt ((Kapitel|Abschnitt|...)\s+\d+). Hier steht "Kapitel"
als Zeilenkopf, durch " | " von der Zahl getrennt - \s+ matcht keinen
senkrechten Strich.

pruefe_dateien() bekommt daher eine zweite Pruefung: eine Tabellenzelle, die
nur aus einer Nummer der Form N.N besteht. Sie ueberspringt Codezaeune, weil
abgedruckte Programmausgaben ihre Spalten ebenfalls mit "|" setzen
(40_Finanzdaten.md Zeilen 381-385 waeren sonst fuenf Fehlalarme).

Gegengetestet: die wieder eingebaute Zeile wird mit allen drei Zellen
einzeln gemeldet, nach dem Rueckbau ist der Lauf sauber.

Die Zeile heisst jetzt "Nachzulesen in" und traegt drei {ref:sec:...};
Querverweise 703 -> 706. Referenzwerte in PROGRESS.md auf die gemessenen
Werte nachgezogen (27.015 Zeilen, 1512 KB) - sie lagen zwei Zeilen zurueck.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 01:23:33 +02:00
..
00_Vorwort_und_Lesehilfe.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
01_Notation_und_Abkuerzungen.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
10_Einfuehrung_OR.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
11_Mathematisches_Fundament.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
12_Python_Oekosystem.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +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 Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
21_MILP.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
22_CP_SAT.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
23_Graphen_Fluesse_Touren.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +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 Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
31_Unsicherheit.md Fuenfte harte Nummer gefunden: eine Tabellenzelle - und die Pruefung dagegen 2026-09-08 01:23:33 +02:00
32_Dynamische_Programmierung.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +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 Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
40_Finanzdaten.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
41_Markowitz.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
42_CVaR.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
43_Handelsmaschine.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
50_Praxis.md Version 04 als eigenes Repository 2026-09-08 01:20:09 +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 Version 04 als eigenes Repository 2026-09-08 01:20:09 +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 Fuenfte harte Nummer gefunden: eine Tabellenzelle - und die Pruefung dagegen 2026-09-08 01:23:33 +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