<aclass="brand"href="index.html"><svgclass="icon"aria-hidden="true"><usehref="#icon-book"></use></svg><span>Optimierte Entscheidungsfindung mit Python</span></a>
<navclass="sidebar"id="sidebar"aria-label="Kapitelnavigation"><divclass="sidebar-inhalt"><detailsclass="sidebar-gruppe"><summary>Einstieg</summary><ul><lidata-kapitel="vorwort.html"><ahref="vorwort.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Vorwort & Lesehilfe</span></a></li><lidata-kapitel="notation.html"><ahref="notation.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Notation & Abkürzungen</span></a></li></ul></details><detailsclass="sidebar-gruppe"><summary>Teil I: Grundlagen des Operations Research</summary><ul><lidata-kapitel="einfuehrung.html"><ahref="einfuehrung.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 1: Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</span></a></li><lidata-kapitel="fundament.html"><ahref="fundament.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 2: Das mathematische Fundament — Vektoren, Matrizen, Konvexität</span></a></li><lidata-kapitel="oekosystem.html"><ahref="oekosystem.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 3: Das Python-Ökosystem für OR — Solver, Bindings und Modellierungsschichten</span></a></li><lidata-kapitel="modellierung.html"><ahref="modellierung.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 4: Vom Management-Wunsch zum Modell</span></a></li><lidata-kapitel="synthese-grundlagen.html"><ahref="synthese-grundlagen.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Synthese Teil I</span></a></li></ul></details><detailsclass="sidebar-gruppe"><summary>Teil II: Die Kernverfahren der deterministischen Optimierung</summary><ul><lidata-kapitel="lp.html"><ahref="lp.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 5: Lineare Programmierung — Simplex, Dualität und Schattenpreise</span></a></li><lidata-kapitel="milp.html"><ahref="milp.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 6: Gemischt-ganzzahlige Optimierung — Diskrete Entscheidungen und Branch-and-Bound</span></a></li><lidata-kapitel="cpsat.html"><ahref="cpsat.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 7: Constraint Programming mit CP-SAT — Logik, Scheduling und Zuweisung</span></a></li><lidata-kapitel="graphen.html"><ahref="graphen.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 8: Graphen, Flüsse und Touren — Min-Cost-Flow, Matching und VRP</span></a></li><lidata-kapitel="metaheuristiken.html"><ahref="metaheuristiken.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 9: Metaheuristiken — wenn der exakte Solver aussteigt</span></a></li><lidata-kapitel="dekomposition.html"><ahref="dekomposition.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Kapitel 10: Spaltengenerierung — das Modell umbauen statt die Lösung raten</span></a></li><lidata-kapitel="synthese-kernverfahren.html"><ahref="synthese-kernverfahren.html"><spanclass="fortschritt-haken"><svgclass="icon"aria-hidden="true"><usehref="#icon-check"></use></svg></span><span>Synthese Teil II</span></a></li></ul></details><detailsclass="sidebar-gruppe"><summary>Teil III: Nichtlinearität, Unsicherheit und mehrperiodige D
<pclass="hero-kompendium"><em>Ein praxisorientiertes Kompendium für Entscheider mit Constraint Programming, Vektor- und Matrixmethoden sowie HiGHS, SciPy, Google OR-Tools und CVXPY.</em></p>
<pclass="hero-anwendungen">Personaleinsatz-, Schicht- und Vertretungspläne, Fahrtrouten, Logistik und Maschinen- und Netzwerkauslastung über Energieverteilung und Ressourcenplanung bis zur Portfoliooptimierung und besseren Entscheidungen an den Finanzmärkten – mit Python modellieren, optimieren und belegbar fundierte Entscheidungen treffen.</p>
<divclass="kartenraster"><aclass="karte karte-einstieg"href="vorwort.html"><h3>Vorwort & Lesehilfe</h3><p>Zielgruppe, Voraussetzungen und wie dieses Buch aufgebaut ist — der richtige Startpunkt vor Kapitel 1.</p></a><aclass="karte karte-einstieg"href="vorwort.html#setup-installation"><h3>Setup & Installation</h3><p>Virtuelle Umgebung anlegen, Pakete installieren, Installationstest ausführen — damit alle Beispielprogramme sofort laufen.</p></a><aclass="karte karte-einstieg"href="notation.html"><h3>Notation & Abkürzungen</h3><p>Symbole, Abkürzungen und Konventionen des Buches zum Nachschlagen.</p></a></div>
<divclass="kartenraster"><divclass="karte karte-pfad"><h3>Pfad A — Vollständiger Lehrgang (100–140 Stunden)</h3><p><ahref="einfuehrung.html#kap-einfuehrung">Kapitel 1</a> bis <ahref="testing.html#kap-testing">Kapitel 23</a> in Reihenfolge, danach ein Projekt aus der Projektwerkstatt. Empfohlen, wenn Sie OR systematisch lernen wollen. Rechnen Sie mit 4–6 Stunden je Kapitel inklusive Übungen.</p></div><divclass="karte karte-pfad"><h3>Pfad B — Planung, Disposition, Personaleinsatz (ca. 25 Stunden)</h3><p><ahref="einfuehrung.html#kap-einfuehrung">Kapitel 1</a> (Bausteine) → <ahref="fundament.html#kap-fundament">Kapitel 2</a> (bis <ahref="fundament.html#sec:fundament-konvexitaet-die-grenze-zwischen-leicht-und">Abschnitt 2.5</a>) → <ahref="modellierung.html#kap-modellierung">Kapitel 4</a> (vom Wunsch zum Modell) → <ahref="lp.html#kap-lp">Kapitel 5</a> (LP, Schattenpreise) → <ahref="milp.html#kap-milp">Kapitel 6</a> (Ja/Nein-Entscheidungen) → <ahref="cpsat.html#kap-cpsat">Kapitel 7</a> (CP-SAT, Scheduling) → Projekt P1 (Vertretungsplaner) oder P2 (Schichtplanung). Das ist der kürzeste Weg zu einem einsetzbaren Dienstplan-Optimierer.</p></div><divclass="karte karte-pfad"><h3>Pfad C — Logistik und Tourenplanung (ca. 25 Stunden)</h3><p><ahref="einfuehrung.html#kap-einfuehrung">Kapitel 1</a> → <ahref="fundament.html#kap-fundament">Kapitel 2</a> (bis <ahref="fundament.html#sec:fundament-der-zulaessige-loesungsraum-und-das-polyeder">Abschnitt 2.4</a>) → <ahref="lp.html#kap-lp">Kapitel 5</a> → <ahref="milp.html#kap-milp">Kapitel 6</a> → <ahref="graphen.html#kap-graphen">Kapitel 8</a> (Graphen, VRP) → Projekt P3 (Liefertouren) oder P4 (Lagernetzwerk).</p></div><divclass="karte karte-pfad"><h3>Pfad D — Quantitative Finance (ca. 30 Stunden)</h3><p><ahref="einfuehrung.html#kap-einfuehrung">Kapitel 1</a> → <ahref="fundament.html#kap-fundament">Kapitel 2</a> → <ahref="qp-nlp.html#kap-qp-nlp">Kapitel 11</a> (QP, KKT) → <ahref="finanzdaten.html#kap-finanzdaten">Kapitel 18</a> (Daten, Shrinkage) → <ahref="markowitz.html#kap-markowitz">Kapitel 19</a> (Markowitz) → <ahref="cvar.html#kap-cvar">Kapitel 20</a> (CVaR) → <ahref="handelsmaschine.html#kap-handelsmaschine">Kapitel 21</a> (Backtest) → Projekt P6 (Portfolio-Rebalancer) oder P7 (Risikoreport). Wichtig: Überspringen Sie <ahref="finanzdaten.html#kap-finanzdaten">Kapitel 18</a> nicht. Wer direkt bei Markowitz einsteigt, optimiert Schätzrauschen und wundert sich über absurde Gewichte.</p></div><divclass="karte karte-pfad"><h3>Pfad E — Ich habe morgen ein konkretes Problem (2–4 Stunden)</h3><p>Lesen Sie <ahref="einfuehrung.html#sec:einfuehrung-historischer-kontext-und-evolution">Abschnitt 1.5</a> (die vier Bausteine) und <ahref="modellierung.html#sec:modellierung-glossar">Abschnitt 4.6</a> (welcher Satz welcher Baustein ist), dann <ahref="anhang-modellierungsmuster.html#anhang-modellierungsmuster">Anhang B</a> ([Modellierungsmuster](anhang-modellierungsmuster.html)) und suchen Sie dort das Muster, das zu Ihrem Problem passt. Von jedem Muster führt ein Verweis in das zuständige Kapitel. Wie die gewählte Bibliothek es schreibt, steht in <ahref="anhang-spickzettel.html#anhang-spickzettel">Anhang D</a> ([Spickzettel](anhang-spickzettel.html)); wenn etwas nicht läuft, in <ahref="anhang-fehlerdiagnose.html#anhang-fehlerdiagnose">Anhang C</a> ([Fehlerdiagnose](anhang-fehlerdiagnose.html)).</p></div></div>
<sectionclass="kapitelgruppe"><h2>Teil I: Grundlagen des Operations Research</h2><divclass="kartenraster"><aclass="karte karte-kapitel"href="einfuehrung.html"><spanclass="karte-nummer">Kapitel 1</span><h3>Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</h3><p>Was Operations Research ist, warum Ausprobieren ab einer gewissen Problemgröße hoffnungslos wird, und aus welchen vier Bausteinen jedes Opti…</p><spanclass="karte-zeit">⏱ ca. 3,5 Stunden inklusive Übungen.</span></a><aclass="karte karte-kapitel"href="fundament.html"><spanclass="karte-nummer">Kapitel 2</span><h3>Das mathematische Fundament — Vektoren, Matrizen, Konvexität</h3><p>Um die Sprache, in der Optimierungsmodelle aufgeschrieben werden, und um die eine Eigenschaft, die darüber entscheidet, ob ein Problem verlä…</p><spanclass="karte-zeit">⏱ ca. 5 Stunden.</span></a><aclass="karte karte-kapitel"href="oekosystem.html"><spanclass="karte-nummer">Kapitel 3</span><h3>Das Python-Ökosystem für OR — Solver, Bindings und Modellierungsschichten</h3><p>Warum es für Optimierung in Python mehrere konkurrierende Bibliotheken gibt, was sie unterscheidet, und wie Sie in unter einer Minute die ri…</p><spanclass="karte-zeit">⏱ ca. 4 Stunden.</span></a><aclass="karte karte-kapitel"href="modellierung.html"><spanclass="karte-nummer">Kapitel 4</span><h3>Vom Management-Wunsch zum Modell</h3><p>Um den Schritt, der vor jedem Solver kommt und über den kaum ein Lehrbuch spricht: aus einem Satz in einer Besprechung ein Modell zu machen.…</p><spanclass="karte-zeit">⏱ ca. 3 Stunden.</span></a></div></section><sectionclass="kapitelgruppe"><h2>Teil II: Die Kernverfahren der deterministischen Optimierung</h2><divclass="kartenraster"><aclass="karte karte-kapitel"href="lp.html"><spanclass="karte-nummer">Kapitel 5</span><h3>Lineare Programmierung — Simplex, Dualität und Schattenpreise</h3><p>Um das Kernverfahren des Operations Research. Wir bauen den Simplex-Algorithmus selbst — nicht um ihn zu verwenden, sondern um zu verstehen,…</p><spanclass="karte-zeit">⏱ ca. 7 Stunden — das umfangreichste Kapitel von Teil II.</span></a><aclass="karte karte-kapitel"href="milp.html"><spanclass="karte-nummer">Kapitel 6</span><h3>Gemischt-ganzzahlige Optimierung — Diskrete Entscheidungen und Branch-and-Bound</h3><p>Um Entscheidungen, die nicht teilbar sind: ganze Maschinen, Ja/Nein, „höchstens fünf davon“. Wir zeigen mit einem konkreten Gegenbeispiel, w…</p><spanclass="karte-zeit">⏱ ca. 6,5 Stunden.</span></a><aclass="karte karte-kapitel"href="cpsat.html"><spanclass="karte-nummer">Kapitel 7</span><h3>Constraint Programming mit CP-SAT — Logik, Scheduling und Zuweisung</h3><p>Um ein völlig anderes Denkmodell: Statt algebraischer Ungleichungen arbeitet Constraint Programming mit Wertebereichen und logischen Regeln.…</p><spanclass="karte-zeit">⏱ ca. 6,5 Stunden.</span></a><aclass="karte karte-kapitel"href="graphen.html"><spanclass="karte-nummer">Kapitel 8</span><h3>Graphen, Flüsse und Touren — Min-Cost-Flow, Matching und VRP</h3><p>Um Probleme, deren natürliche Sprache der Graph ist: Was fließt wohin? Wer wird wem zugeordnet? Welche Route fährt welches Fahrzeug?…</p><spanclass="karte-zeit">⏱ ca. 6 Stunden.</span></a><aclass="karte karte-kapitel"href="metaheuristiken.html"><spanclass="karte-nummer">Kapitel 9</span><h3>Metaheuristiken — wenn der exakte Solver aussteigt</h3><p>Um den Fall, für den die bisherigen Kapitel keine Antwort haben: Das Problem ist zu groß, der Solver kommt im Zeitlimit nicht zu einem brauc…</p><spanclass="karte-zeit">⏱ ca. 5 Stunden.</span></a><aclass="karte karte-kapitel"href="dekomposition.html"><spanclass="karte-nummer">Kapitel 10</span><h3>Spaltengenerierung — das Modell umbauen statt die Lösung raten</h3><p>Um die andere Antwort auf die Frage aus Kapitel 9: Was tun, wenn der Solver an der Größe scheitert? Statt die Lösung zu approximieren, formu…</p><spanclass="karte-zeit">⏱ ca. 3 Stunden.</span></a></div></section>