operations_research/OR_HTML_04/programme.html
dschlueter 6c67e126dd Phase 6.1: Chance Constraints - die Zusage "mit 95 % Sicherheit"
Neuer Abschnitt im Kapitel Unsicherheit plus Chance_Constraints.py (74.
Programm). Das Kapitel hatte Monte-Carlo, Zweistufigkeit und
Worst-Case-Robustheit; die Wahrscheinlichkeitszusage war die fehlende vierte
Antwort - und die, nach der das Management tatsaechlich fragt. Setzt Paket 4
aus Verbesserungen_02.md um.

Beide Wege an DERSELBEN Instanz (Kraftwerkspark, 500 MW gesicherte Zusage):
analytisch als Second-Order-Cone-Bedingung (CLARABEL) und szenariobasiert als
Big-M-MILP (SciPy/HiGHS) - beides in einem Prozess, ohne ortools- oder
highspy-Import.

Drei gemessene Befunde:

* Der Mittelwertplan haelt 50,08 %. Kein Fehler, sondern die Definition des
  Erwartungswerts.
* Sicherheit ist konvex bepreist: 56.289 EUR je Prozentpunkt auf dem Weg zu
  80 %, 253.848 EUR zwischen 95 und 99 % - das 4,5-fache. Das Programm
  rechnet die Tabelle selbst aus, statt sie zu behaupten.
* Die Zusage gilt nur fuer die unterstellte Verteilung: Der 95-%-Plan haelt
  gemessen 87,44 %, sobald die Testverteilung eine Kaeltewelle mit
  Dunkelflaute enthaelt, in der alles zugleich einbricht - auch das
  Gaskraftwerk. In einer reinen Normalwelt liefert derselbe Plan 94,97 %.

Zwei eigene Fehlgriffe, beide durch Messen aufgefallen und korrigiert: Die
erste Kostentarierung ergab eine entartete Loesung (alles ins Gaskraftwerk),
womit die Kovarianzmatrix wirkungslos war - und gerade sie begruendet die
Kegelform. Und der erste Kaelteeinbruch traf nur Wind und Sonne; der SOC-Plan
hatte die ohnehin herausgehalten und war zufaellig robust, das Argument trug
nicht.

Ehrlich berichtet statt geglaettet: Die Szenariomethode ueberanpasst. Ueber
zwoelf Laeufe (S = 200, 400, 800) lag die tatsaechliche Quote zwischen
93,14 % und 96,71 %, und die Spanne wurde von S = 400 auf 800 wieder
breiter. Beide Solver bestaetigen optimal bei identischen Kosten - echte
Ueberanpassung, kein Solverartefakt. Steht als Warnkasten im Abschnitt.

Die Laufzeitmessung ist aus der Ausgabe entfernt: Eine Wanduhrzeit ist nie
byteidentisch reproduzierbar (2,2 s / 2,3 s zwischen zwei Laeufen) und haette
Regel 4 dauerhaft gebrochen. Danach drei Laeufe zeichengleich, und die
abgedruckte Ausgabe stimmt mit dem Lauf des extrahierten Programms ueberein.

Mitgezogen: Kapitelkopf, Lernziele, Uebersichtstabelle (drei -> vier
Ansaetze), Selbsttest, Zusammenfassung, Vorwort-Programmverzeichnis, eine
neue Uebungsaufgabe und ihre Loesung in Anhang A.

pyproject.toml korrigiert: cvxpy lag in [finance], wird aber von 13
Programmen gebraucht, darunter dreien in diesem Kapitel - jetzt in der
Grundausstattung. Es zieht kein highspy nach, der Solverkonflikt bleibt auf
[large-scale] beschraenkt.

Stand: 293 Abschnitte, 712 Querverweise, 327 Indexmarken, 74 Programme (0
Fehler), 33 pytest-Tests, PDF 725 Seiten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 01:57:19 +02:00

116 lines
35 KiB
HTML

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Beispielprogramme · Optimierte Entscheidungsfindung mit Python</title>
<script>
(function () {
try {
var t = localStorage.getItem("or-theme");
if (t) document.documentElement.setAttribute("data-theme", t);
} catch (e) {}
})();
</script>
<link rel="stylesheet" href="assets/highlight.css" />
<link rel="stylesheet" href="katex/katex.min.css" />
<script defer="" src="katex/katex.min.js"></script>
<script>document.addEventListener("DOMContentLoaded", function () {
var mathElements = document.getElementsByClassName("math");
var macros = [];
for (var i = 0; i < mathElements.length; i++) {
var texText = mathElements[i].firstChild;
if (mathElements[i].tagName == "SPAN") {
katex.render(texText.data, mathElements[i], {
displayMode: mathElements[i].classList.contains('display'),
throwOnError: false,
macros: macros,
fleqn: false
});
}}
// Der Browser springt zu einem #anker in der URL schon beim ersten Rendern
// an, BEVOR die KaTeX-Formeln oben im Text ihre finale Hoehe bekommen -
// durch den Reflow landet der Anker danach zu weit unten. Nach dem
// Formel-Rendering hier erneut zum Anker springen, das behebt es.
if (location.hash) {
var ziel = document.getElementById(decodeURIComponent(location.hash.slice(1)));
if (ziel) ziel.scrollIntoView({behavior: "instant", block: "start"});
}
});
</script>
<link rel="stylesheet" href="assets/site.css" />
</head>
<body>
<svg style="display:none" aria-hidden="true"><symbol id="icon-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/>
</symbol>
<symbol id="icon-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.2" y2="16.2"/>
</symbol>
<symbol id="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<circle cx="12" cy="12" r="4.5"/>
<line x1="12" y1="1.5" x2="12" y2="4"/><line x1="12" y1="20" x2="12" y2="22.5"/>
<line x1="1.5" y1="12" x2="4" y2="12"/><line x1="20" y1="12" x2="22.5" y2="12"/>
<line x1="4.5" y1="4.5" x2="6.2" y2="6.2"/><line x1="17.8" y1="17.8" x2="19.5" y2="19.5"/>
<line x1="19.5" y1="4.5" x2="17.8" y2="6.2"/><line x1="6.2" y1="17.8" x2="4.5" y2="19.5"/>
</symbol>
<symbol id="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M20 14.5A8.5 8.5 0 1 1 9.5 4a6.8 6.8 0 0 0 10.5 10.5z"/>
</symbol>
<symbol id="icon-chevron-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="15 4 7 12 15 20"/>
</symbol>
<symbol id="icon-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="9 4 17 12 9 20"/>
</symbol>
<symbol id="icon-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="4 13 9.5 18.5 20 6"/>
</symbol>
<symbol id="icon-external-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 13.5V19a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 19V7A1.5 1.5 0 0 1 5 5.5h5.5"/>
<polyline points="14.5 3.5 20.5 3.5 20.5 9.5"/><line x1="11" y1="13" x2="20" y2="4"/>
</symbol>
<symbol id="icon-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M4 5.5A2 2 0 0 1 6 4h6v16H6a2 2 0 0 0-2 1.5z"/>
<path d="M20 5.5A2 2 0 0 0 18 4h-6v16h6a2 2 0 0 1 2 1.5z"/>
</symbol>
<symbol id="icon-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
</symbol>
<symbol id="icon-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 3v12"/><polyline points="7 10 12 15 17 10"/><path d="M4 19.5h16"/>
</symbol></svg>
<header class="site-header">
<button type="button" class="icon-btn" id="sidebar-toggle" aria-label="Menü öffnen"><svg class="icon" aria-hidden="true"><use href="#icon-menu"></use></svg></button>
<a class="brand" href="index.html"><svg class="icon" aria-hidden="true"><use href="#icon-book"></use></svg> <span>Optimierte Entscheidungsfindung mit Python</span></a>
<div class="site-search">
<input id="suche-eingabe" type="search" placeholder="Suchen …" aria-label="Suche" autocomplete="off" />
<svg class="icon such-icon" aria-hidden="true"><use href="#icon-search"></use></svg>
<div id="suche-ergebnisse" class="suche-ergebnisse" hidden></div>
</div>
<button type="button" class="icon-btn" id="theme-toggle" aria-label="Darstellung umschalten">
<svg class="icon icon-sun" aria-hidden="true"><use href="#icon-sun"></use></svg><svg class="icon icon-moon" aria-hidden="true"><use href="#icon-moon"></use></svg>
</button>
</header>
<div class="site-body">
<div class="sidebar-overlay" id="sidebar-overlay" hidden></div>
<nav class="sidebar" id="sidebar" aria-label="Kapitelnavigation"><div class="sidebar-inhalt"><details class="sidebar-gruppe"><summary>Einstieg</summary><ul><li data-kapitel="vorwort.html"><a href="vorwort.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Vorwort & Lesehilfe</span></a></li><li data-kapitel="notation.html"><a href="notation.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Notation & Abkürzungen</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil I: Grundlagen des Operations Research</summary><ul><li data-kapitel="einfuehrung.html"><a href="einfuehrung.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 1: Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</span></a></li><li data-kapitel="fundament.html"><a href="fundament.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 2: Das mathematische Fundament — Vektoren, Matrizen, Konvexität</span></a></li><li data-kapitel="oekosystem.html"><a href="oekosystem.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 3: Das Python-Ökosystem für OR — Solver, Bindings und Modellierungsschichten</span></a></li><li data-kapitel="modellierung.html"><a href="modellierung.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 4: Vom Management-Wunsch zum Modell</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil II: Die Kernverfahren der deterministischen Optimierung</summary><ul><li data-kapitel="lp.html"><a href="lp.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 5: Lineare Programmierung — Simplex, Dualität und Schattenpreise</span></a></li><li data-kapitel="milp.html"><a href="milp.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 6: Gemischt-ganzzahlige Optimierung — Diskrete Entscheidungen und Branch-and-Bound</span></a></li><li data-kapitel="cpsat.html"><a href="cpsat.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 7: Constraint Programming mit CP-SAT — Logik, Scheduling und Zuweisung</span></a></li><li data-kapitel="graphen.html"><a href="graphen.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 8: Graphen, Flüsse und Touren — Min-Cost-Flow, Matching und VRP</span></a></li><li data-kapitel="metaheuristiken.html"><a href="metaheuristiken.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 9: Metaheuristiken — wenn der exakte Solver aussteigt</span></a></li><li data-kapitel="dekomposition.html"><a href="dekomposition.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 10: Spaltengenerierung — das Modell umbauen statt die Lösung raten</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil III: Nichtlinearität, Unsicherheit und mehrperiodige Dynamik</summary><ul><li data-kapitel="qp-nlp.html"><a href="qp-nlp.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 11: Quadratische und nichtlineare Optimierung — KKT, Lagrange, Konvexität</span></a></li><li data-kapitel="unsicherheit.html"><a href="unsicherheit.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 12: Optimierung unter Unsicherheit — Monte-Carlo, Stochastik, Robustheit</span></a></li><li data-kapitel="dynamische-programmierung.html"><a href="dynamische-programmierung.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 13: Dynamische Programmierung — Die Bellman-Gleichung und Order-Execution</span></a></li><li data-kapitel="mehrziel.html"><a href="mehrziel.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 14: Mehrere Ziele — Pareto-Fronten statt Gewichte</span></a></li><li data-kapitel="prognose.html"><a href="prognose.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 15: Predict-then-Optimize — die bessere Prognose, die schlechtere Entscheidung</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil IV: Anwendungen — Energiewirtschaft und Finanzmärkte</summary><ul><li data-kapitel="bruecke.html"><a href="bruecke.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 16: Die Strukturbrücke — dieselbe Mathematik, zwei Welten</span></a></li><li data-kapitel="supplychain.html"><a href="supplychain.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 17: Supply-Chain und Energieeinsatz unter Unsicherheit</span></a></li><li data-kapitel="finanzdaten.html"><a href="finanzdaten.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 18: Finanzdaten-Modellierung — Renditen, Kovarianz und Shrinkage</span></a></li><li data-kapitel="markowitz.html"><a href="markowitz.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 19: Die moderne Portfoliotheorie nach Markowitz</span></a></li><li data-kapitel="cvar.html"><a href="cvar.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 20: Tail-Risiko, CVaR und Transaktionskosten</span></a></li><li data-kapitel="handelsmaschine.html"><a href="handelsmaschine.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 21: Die vollständige quantitative Handelsmaschine</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Teil V: Praxis</summary><ul><li data-kapitel="praxisfallen.html"><a href="praxisfallen.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 22: Praxisfallen und der Weg zum produktiven Einsatz</span></a></li><li data-kapitel="testing.html"><a href="testing.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Kapitel 23: Testen, Messen, Ausliefern</span></a></li><li data-kapitel="projektwerkstatt.html"><a href="projektwerkstatt.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Projektwerkstatt</span></a></li></ul></details><details class="sidebar-gruppe"><summary>Anhänge</summary><ul><li data-kapitel="anhang-loesungen.html"><a href="anhang-loesungen.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Anhang A: Lösungen zu allen Übungsaufgaben</span></a></li><li data-kapitel="anhang-modellierungsmuster.html"><a href="anhang-modellierungsmuster.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Anhang B: Katalog der Modellierungsmuster</span></a></li><li data-kapitel="anhang-fehlerdiagnose.html"><a href="anhang-fehlerdiagnose.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Anhang C: Fehlerdiagnose-Handbuch</span></a></li><li data-kapitel="anhang-spickzettel.html"><a href="anhang-spickzettel.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Anhang D: Spickzettel der Solver</span></a></li><li data-kapitel="anhang-glossar-literatur.html"><a href="anhang-glossar-literatur.html"><span class="fortschritt-haken"><svg class="icon" aria-hidden="true"><use href="#icon-check"></use></svg></span><span>Anhang E: Glossar und Literatur</span></a></li></ul></details><ul class="sidebar-extra"><li><a href="programme.html"><svg class="icon" aria-hidden="true"><use href="#icon-book"></use></svg> Beispielprogramme</a></li><li><a href="stichwortverzeichnis.html"><svg class="icon" aria-hidden="true"><use href="#icon-search"></use></svg> Stichwortverzeichnis</a></li><li><a href="gesamtdokument.html"><svg class="icon" aria-hidden="true"><use href="#icon-external-link"></use></svg> Gesamtdokument (eine Seite)</a></li><li><a href="Operations_Research_mit_Python_Version_04.pdf" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Download als PDF</a></li></ul></div></nav>
<main class="content">
<nav class="prev-next"><span class="prev-next-leer"></span><span class="prev-next-leer"></span></nav>
<article>
<h1>Beispielprogramme</h1><p>Alle 74 im Buch abgedruckten Programme, gruppiert nach Kapitel, zum direkten Herunterladen.</p><section class="programmgruppe"><h2><a href="einfuehrung.html">Kapitel 1: Einführung in Operations Research — Vom Ursprung zur mathematischen Entscheidungsfindung</a></h2><ul class="programmliste"><li><code>Bot_Allokation.py</code> <a class="download-link" href="programme/Bot_Allokation.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Brute_Force_Vergleich.py</code> <a class="download-link" href="programme/Brute_Force_Vergleich.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Bausteine_Vorlage.py</code> <a class="download-link" href="programme/Bausteine_Vorlage.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Excel_Bruecke.py</code> <a class="download-link" href="programme/Excel_Bruecke.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="fundament.html">Kapitel 2: Das mathematische Fundament — Vektoren, Matrizen, Konvexität</a></h2><ul class="programmliste"><li><code>Matrixform.py</code> <a class="download-link" href="programme/Matrixform.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Visualisierung_Loesungsraum.py</code> <a class="download-link" href="programme/Visualisierung_Loesungsraum.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Konvexitaet_Demo.py</code> <a class="download-link" href="programme/Konvexitaet_Demo.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Skalierung_Kondition.py</code> <a class="download-link" href="programme/Skalierung_Kondition.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="oekosystem.html">Kapitel 3: Das Python-Ökosystem für OR — Solver, Bindings und Modellierungsschichten</a></h2><ul class="programmliste"><li><code>Ein_System_Vier_Ansaetze.py</code> <a class="download-link" href="programme/Ein_System_Vier_Ansaetze.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Solver_Wahl.py</code> <a class="download-link" href="programme/Solver_Wahl.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Modellierungsschichten.py</code> <a class="download-link" href="programme/Modellierungsschichten.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Vektorisierte_Modellgenerierung.py</code> <a class="download-link" href="programme/Vektorisierte_Modellgenerierung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="modellierung.html">Kapitel 4: Vom Management-Wunsch zum Modell</a></h2><ul class="programmliste"><li><code>Vom_Wunsch_zum_Modell.py</code> <a class="download-link" href="programme/Vom_Wunsch_zum_Modell.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="lp.html">Kapitel 5: Lineare Programmierung — Simplex, Dualität und Schattenpreise</a></h2><ul class="programmliste"><li><code>Simplex_Tableau_LP.py</code> <a class="download-link" href="programme/Simplex_Tableau_LP.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Sensitivitaetsanalyse.py</code> <a class="download-link" href="programme/Sensitivitaetsanalyse.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Dualitaet_Nachweis.py</code> <a class="download-link" href="programme/Dualitaet_Nachweis.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Toleranzen_und_Entartung.py</code> <a class="download-link" href="programme/Toleranzen_und_Entartung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="milp.html">Kapitel 6: Gemischt-ganzzahlige Optimierung — Diskrete Entscheidungen und Branch-and-Bound</a></h2><ul class="programmliste"><li><code>Runden_Gegenbeispiel.py</code> <a class="download-link" href="programme/Runden_Gegenbeispiel.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Rucksack.py</code> <a class="download-link" href="programme/Rucksack.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>MILP_Portfolio_Fixgebuehren.py</code> <a class="download-link" href="programme/MILP_Portfolio_Fixgebuehren.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Solverstatus_und_Gap.py</code> <a class="download-link" href="programme/Solverstatus_und_Gap.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Warmstart_Effekt.py</code> <a class="download-link" href="programme/Warmstart_Effekt.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Big_M_Falle.py</code> <a class="download-link" href="programme/Big_M_Falle.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="cpsat.html">Kapitel 7: Constraint Programming mit CP-SAT — Logik, Scheduling und Zuweisung</a></h2><ul class="programmliste"><li><code>Propagation_Demo.py</code> <a class="download-link" href="programme/Propagation_Demo.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>CP_SAT_Vertretungssystem.py</code> <a class="download-link" href="programme/CP_SAT_Vertretungssystem.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>JobShop_Intervalle.py</code> <a class="download-link" href="programme/JobShop_Intervalle.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>CP_SAT_Statusfaelle.py</code> <a class="download-link" href="programme/CP_SAT_Statusfaelle.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Strafgewichte.py</code> <a class="download-link" href="programme/Strafgewichte.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="graphen.html">Kapitel 8: Graphen, Flüsse und Touren — Min-Cost-Flow, Matching und VRP</a></h2><ul class="programmliste"><li><code>Min_Cost_Flow.py</code> <a class="download-link" href="programme/Min_Cost_Flow.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Zuordnung_Ungarisch.py</code> <a class="download-link" href="programme/Zuordnung_Ungarisch.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>VRP_Flotten_Routing.py</code> <a class="download-link" href="programme/VRP_Flotten_Routing.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>VRP_Kapazitaetsfalle.py</code> <a class="download-link" href="programme/VRP_Kapazitaetsfalle.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="metaheuristiken.html">Kapitel 9: Metaheuristiken — wenn der exakte Solver aussteigt</a></h2><ul class="programmliste"><li><code>Simulated_Annealing.py</code> <a class="download-link" href="programme/Simulated_Annealing.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Metaheuristik_vs_Exakt.py</code> <a class="download-link" href="programme/Metaheuristik_vs_Exakt.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Large_Neighborhood_Search.py</code> <a class="download-link" href="programme/Large_Neighborhood_Search.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="dekomposition.html">Kapitel 10: Spaltengenerierung — das Modell umbauen statt die Lösung raten</a></h2><ul class="programmliste"><li><code>Spaltengenerierung.py</code> <a class="download-link" href="programme/Spaltengenerierung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="qp-nlp.html">Kapitel 11: Quadratische und nichtlineare Optimierung — KKT, Lagrange, Konvexität</a></h2><ul class="programmliste"><li><code>QP_Grundlagen.py</code> <a class="download-link" href="programme/QP_Grundlagen.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>KKT_Nachweis.py</code> <a class="download-link" href="programme/KKT_Nachweis.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Entropie_Maximierte_Allokation.py</code> <a class="download-link" href="programme/Entropie_Maximierte_Allokation.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Lokale_Optima_Multistart.py</code> <a class="download-link" href="programme/Lokale_Optima_Multistart.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="unsicherheit.html">Kapitel 12: Optimierung unter Unsicherheit — Monte-Carlo, Stochastik, Robustheit</a></h2><ul class="programmliste"><li><code>Fluch_des_Durchschnitts.py</code> <a class="download-link" href="programme/Fluch_des_Durchschnitts.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Monte_Carlo.py</code> <a class="download-link" href="programme/Monte_Carlo.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Stochastische_Optimierung.py</code> <a class="download-link" href="programme/Stochastische_Optimierung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Robuste_Optimierung.py</code> <a class="download-link" href="programme/Robuste_Optimierung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Chance_Constraints.py</code> <a class="download-link" href="programme/Chance_Constraints.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="dynamische-programmierung.html">Kapitel 13: Dynamische Programmierung — Die Bellman-Gleichung und Order-Execution</a></h2><ul class="programmliste"><li><code>Bellman_Minimalbeispiel.py</code> <a class="download-link" href="programme/Bellman_Minimalbeispiel.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Mehrperiodige_Order_Execution.py</code> <a class="download-link" href="programme/Mehrperiodige_Order_Execution.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="mehrziel.html">Kapitel 14: Mehrere Ziele — Pareto-Fronten statt Gewichte</a></h2><ul class="programmliste"><li><code>Mehrziel_Pareto.py</code> <a class="download-link" href="programme/Mehrziel_Pareto.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="prognose.html">Kapitel 15: Predict-then-Optimize — die bessere Prognose, die schlechtere Entscheidung</a></h2><ul class="programmliste"><li><code>Predict_then_Optimize.py</code> <a class="download-link" href="programme/Predict_then_Optimize.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="bruecke.html">Kapitel 16: Die Strukturbrücke — dieselbe Mathematik, zwei Welten</a></h2><ul class="programmliste"><li><code>Strukturbruecke.py</code> <a class="download-link" href="programme/Strukturbruecke.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="supplychain.html">Kapitel 17: Supply-Chain und Energieeinsatz unter Unsicherheit</a></h2><ul class="programmliste"><li><code>Kraftwerkseinsatz.py</code> <a class="download-link" href="programme/Kraftwerkseinsatz.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="finanzdaten.html">Kapitel 18: Finanzdaten-Modellierung — Renditen, Kovarianz und Shrinkage</a></h2><ul class="programmliste"><li><code>Renditen_Vergleich.py</code> <a class="download-link" href="programme/Renditen_Vergleich.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Schaetzrauschen_Demo.py</code> <a class="download-link" href="programme/Schaetzrauschen_Demo.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Finanzdaten_Ledoit_Wolf.py</code> <a class="download-link" href="programme/Finanzdaten_Ledoit_Wolf.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Kovarianz_Falle.py</code> <a class="download-link" href="programme/Kovarianz_Falle.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="markowitz.html">Kapitel 19: Die moderne Portfoliotheorie nach Markowitz</a></h2><ul class="programmliste"><li><code>Diversifikation_Demo.py</code> <a class="download-link" href="programme/Diversifikation_Demo.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Markowitz_CVXPY.py</code> <a class="download-link" href="programme/Markowitz_CVXPY.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Renditeschaetzung_Falle.py</code> <a class="download-link" href="programme/Renditeschaetzung_Falle.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="cvar.html">Kapitel 20: Tail-Risiko, CVaR und Transaktionskosten</a></h2><ul class="programmliste"><li><code>VaR_CVaR_Demo.py</code> <a class="download-link" href="programme/VaR_CVaR_Demo.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>CVaR_Portfolio.py</code> <a class="download-link" href="programme/CVaR_Portfolio.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="handelsmaschine.html">Kapitel 21: Die vollständige quantitative Handelsmaschine</a></h2><ul class="programmliste"><li><code>QuantitativeTradingEngine.py</code> <a class="download-link" href="programme/QuantitativeTradingEngine.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Backtest_Fallen.py</code> <a class="download-link" href="programme/Backtest_Fallen.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Data_Snooping.py</code> <a class="download-link" href="programme/Data_Snooping.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="praxisfallen.html">Kapitel 22: Praxisfallen und der Weg zum produktiven Einsatz</a></h2><ul class="programmliste"><li><code>Infeasibility_Diagnose.py</code> <a class="download-link" href="programme/Infeasibility_Diagnose.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Erklaerbarkeit.py</code> <a class="download-link" href="programme/Erklaerbarkeit.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Betriebsueberwachung.py</code> <a class="download-link" href="programme/Betriebsueberwachung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>or_kern.py</code> <a class="download-link" href="programme/or_kern.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Solverwechsel_CPSAT_HiGHS.py</code> <a class="download-link" href="programme/Solverwechsel_CPSAT_HiGHS.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section><section class="programmgruppe"><h2><a href="testing.html">Kapitel 23: Testen, Messen, Ausliefern</a></h2><ul class="programmliste"><li><code>test_or_kern.py</code> <a class="download-link" href="programme/test_or_kern.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Mutationstest.py</code> <a class="download-link" href="programme/Mutationstest.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Benchmark_Skalierung.py</code> <a class="download-link" href="programme/Benchmark_Skalierung.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li><li><code>Optimierungsdienst.py</code> <a class="download-link" href="programme/Optimierungsdienst.py" download><svg class="icon" aria-hidden="true"><use href="#icon-download"></use></svg> Herunterladen</a></li></ul></section>
</article>
<nav class="prev-next"><span class="prev-next-leer"></span><span class="prev-next-leer"></span></nav>
</main>
</div>
<footer class="site-footer">
<p>© Dieter Schlüter · <a href="gesamtdokument.html">Gesamtdokument</a> ·
<a href="programme.html">Beispielprogramme</a></p>
</footer>
<script defer src="assets/search-index.js"></script>
<script defer src="assets/programme.js"></script>
<script defer src="assets/site.js"></script>
</body>
</html>