Veroeffentlichung: Lizenzen, README, Colab-Entscheidung, JupyterLab im Image

Sechs Dinge, alle fuer das jetzt oeffentliche Repository.

LIZENZEN. LICENSE traegt die MIT-Lizenz fuer den Programmcode (alle .py,
Notebooks, Dockerfile, pyproject.toml), LICENSE-TEXT.md die CC BY-SA 4.0 fuer
Buchtext, PDF, Website und Diagramme. Beide Dateien nennen ausdruecklich, was
sie abdecken und was nicht - ein Codeblock im Buchtext bleibt Programmcode und
steht unter MIT. Vorher hatte das Repository gar keine Lizenz, womit
standardmaessig "alle Rechte vorbehalten" galt und niemand die 76 Programme
haette weiterverwenden duerfen.

COLAB. COLAB_BASIS_URL steht jetzt auf "". Der Platzhalter zeigte auf GitHub,
das Repository liegt auf einer eigenen Forgejo-Instanz - und Colab oeffnet
Notebooks NUR aus GitHub, Google Drive oder einem Upload. Die URL-Form
colab.research.google.com/github/... ist fest auf GitHub verdrahtet; eine
selbstgehostete Adresse dort einzusetzen ergaebe keinen Link zum eigenen
Server, sondern einen toten GitHub-Link. Der Kommentar im Quelltext ging von
GitHub aus und war damit selbst irrefuehrend; er ist ersetzt.

Verloren geht nichts: Die 25 Notebooks liegen neben der Website und bekommen
einen echten Download-Link, jetzt mit dem Hinweis, was man damit tut -
"herunterladen und in Jupyter oeffnen, in Colab hochladen oder mit dem
Kurs-Image starten".

JUPYTERLAB IM KURS-IMAGE. Neue pyproject-Gruppe [notebook] mit jupyterlab,
die Notebooks werden ins Image kopiert, und ein kleiner Startbefehl macht
beide Betriebsarten ohne --entrypoint moeglich: ohne Argument JupyterLab, mit
Argument ein einzelnes Programm. Gebaut und geprueft - Rucksack.py laeuft,
JupyterLab antwortet mit HTTP 200 und zeigt alle 25 Notebooks. Image 1,31 ->
1,46 GB. Es laeuft ohne Token, deshalb im README die Portfreigabe an
127.0.0.1 gebunden.

README KOMPLETT NEU. Es war die Bau-Anleitung eines privaten Verzeichnisses
und ist jetzt die Visitenkarte eines oeffentlichen Repositorys: was das Buch
ist, wo man es liest, drei Wege die Beispiele auszufuehren (Container,
schlanke Installation, alles auf einmal), was hier liegt, wie man baut, die
Colab-Frage, die Lizenzen und wie man mitwirkt. Alle relativen Links
geprueft: 0 tot.

.gitattributes. Ohne die Datei entschied core.autocrlf des jeweiligen
Rechners, was beim Klonen passiert - ein Windows-Leser bekam CRLF-Rauschen in
jedem Diff. Jetzt: im Repository immer LF, im Arbeitsverzeichnis passend zum
System, Binaerdateien ausdruecklich ausgenommen. Der Bestand war bereits
sauber (git add --renormalize aendert null Dateien). Zusaetzlich sind die
erzeugten Verzeichnisse als linguist-generated markiert, sonst zaehlt die
Sprachstatistik das Repository als HTML-Projekt.

PROGRESS.md: Remote-Repository als erledigt markiert, der Colab-Befund
festgehalten. CLAUDE.md um Veroeffentlichung, Lizenzen und die neuen Dateien
ergaenzt.

Geprueft: --check ohne Fehler, 0 tote README-Links, 76 Programme unveraendert,
33 pytest-Tests, pyproject baut mit acht Gruppen, PDF 759 Seiten (eine
weniger - die Colab-Zeile entfaellt in 25 Kapiteln).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dschlueter 2026-09-08 14:54:04 +02:00
commit 4fa4e20b04
37 changed files with 467 additions and 258 deletions

View file

@ -126,8 +126,7 @@
<p><strong>Zeitbedarf:</strong> ca. 2,5 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Strukturbruecke.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/bruecke.ipynb">bruecke.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/bruecke.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/bruecke.ipynb">bruecke.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

3
OR_HTML_04/cpsat.html generated
View file

@ -114,8 +114,7 @@
<code>Parallele_Suche.py</code><br />
<code>CP_SAT_Statusfaelle.py</code><br />
<code>Strafgewichte.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/cpsat.ipynb">cpsat.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/cpsat.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/cpsat.ipynb">cpsat.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

3
OR_HTML_04/cvar.html generated
View file

@ -110,8 +110,7 @@
<p><strong>Programme:</strong><br />
<code>VaR_CVaR_Demo.py</code><br />
<code>CVaR_Portfolio.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/cvar.ipynb">cvar.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/cvar.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/cvar.ipynb">cvar.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -109,8 +109,7 @@
<p><strong>Zeitbedarf:</strong> ca. 3 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Spaltengenerierung.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/dekomposition.ipynb">dekomposition.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/dekomposition.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/dekomposition.ipynb">dekomposition.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -110,8 +110,7 @@
<p><strong>Programme:</strong><br />
<code>Bellman_Minimalbeispiel.py</code><br />
<code>Mehrperiodige_Order_Execution.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/dynamische-programmierung.ipynb">dynamische-programmierung.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/dynamische-programmierung.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/dynamische-programmierung.ipynb">dynamische-programmierung.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -114,8 +114,7 @@
<code>Brute_Force_Vergleich.py</code><br />
<code>Bausteine_Vorlage.py</code><br />
<code>Excel_Bruecke.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/einfuehrung.ipynb">einfuehrung.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/einfuehrung.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/einfuehrung.ipynb">einfuehrung.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -113,8 +113,7 @@
<code>Finanzdaten_Ledoit_Wolf.py</code><br />
<code>Kovarianz_Falle.py</code></p>
<p><strong>⚠️ Überspringen Sie dieses Kapitel nicht.</strong> Wer direkt bei Markowitz (<a href="markowitz.html#kap-markowitz">Kapitel 19</a>) einsteigt, erhält absurde Portfoliogewichte und weiß nicht, warum.</p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/finanzdaten.ipynb">finanzdaten.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/finanzdaten.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/finanzdaten.ipynb">finanzdaten.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -112,8 +112,7 @@
<code>Visualisierung_Loesungsraum.py</code><br />
<code>Konvexitaet_Demo.py</code><br />
<code>Skalierung_Kondition.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/fundament.ipynb">fundament.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/fundament.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/fundament.ipynb">fundament.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -3114,8 +3114,7 @@ Alles bereit — Sie können mit dem ersten Kapitel beginnen.</code></pre>
<code>Brute_Force_Vergleich.py</code><br />
<code>Bausteine_Vorlage.py</code><br />
<code>Excel_Bruecke.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/einfuehrung.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/einfuehrung.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/einfuehrung.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:einfuehrung-schnellstart">1.1 In 5 Minuten gelöst</h2>
@ -4421,8 +4420,7 @@ Deckungsbeitrag: 18600 EUR</code></pre>
<code>Visualisierung_Loesungsraum.py</code><br />
<code>Konvexitaet_Demo.py</code><br />
<code>Skalierung_Kondition.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/fundament.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/fundament.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/fundament.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:fundament-schnellstart">2.1 In 5 Minuten gelöst</h2>
@ -5592,8 +5590,7 @@ und runden Sie Solver-Ergebnisse NIE ohne Toleranzpruefung.
<code>Solver_Wahl.py</code><br />
<code>Modellierungsschichten.py</code><br />
<code>Vektorisierte_Modellgenerierung.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/oekosystem.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/oekosystem.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/oekosystem.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:oekosystem-schnellstart">3.1 In 5 Minuten gelöst</h2>
@ -6933,8 +6930,7 @@ Groesse Variante Aufbau Loesen Aufba
<p><strong>Zeitbedarf:</strong> ca. 3 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Vom_Wunsch_zum_Modell.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/modellierung.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/modellierung.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/modellierung.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:modellierung-schnellstart">4.1 In 5 Minuten gelöst</h2>
@ -7889,8 +7885,7 @@ Lesart C (weich): loesbar - 66,000 EUR Deckungsbeitrag, 1 Stammauftrag abgelehnt
<code>Sensitivitaetsanalyse.py</code><br />
<code>Dualitaet_Nachweis.py</code><br />
<code>Toleranzen_und_Entartung.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/lp.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/lp.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/lp.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:lp-schnellstart">5.1 In 5 Minuten gelöst</h2>
@ -9354,8 +9349,7 @@ brauchbare Aussage. Ein erfundener Einzelwert ist es nicht.</code></pre>
<code>Solverstatus_und_Gap.py</code><br />
<code>Warmstart_Effekt.py</code><br />
<code>Big_M_Falle.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/milp.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/milp.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/milp.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:milp-schnellstart">6.1 In 5 Minuten gelöst</h2>
@ -11027,8 +11021,7 @@ funktioniert immer.
<code>Parallele_Suche.py</code><br />
<code>CP_SAT_Statusfaelle.py</code><br />
<code>Strafgewichte.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/cpsat.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/cpsat.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/cpsat.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:cpsat-schnellstart">7.1 In 5 Minuten gelöst</h2>
@ -12730,8 +12723,7 @@ Nebenbedingungen. Alles, was einen Preis hat, wird irgendwann gekauft.
<code>Zuordnung_Ungarisch.py</code><br />
<code>VRP_Flotten_Routing.py</code><br />
<code>VRP_Kapazitaetsfalle.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/graphen.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/graphen.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/graphen.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:graphen-schnellstart">8.1 In 5 Minuten gelöst</h2>
@ -13674,8 +13666,7 @@ plausibel aussieht.
<code>Simulated_Annealing.py</code><br />
<code>Metaheuristik_vs_Exakt.py</code><br />
<code>Large_Neighborhood_Search.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/metaheuristiken.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/metaheuristiken.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/metaheuristiken.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:metaheuristiken-schnellstart">9.1 In 5 Minuten gelöst</h2>
@ -15245,8 +15236,7 @@ Abstand zum Optimum.
<p><strong>Zeitbedarf:</strong> ca. 3 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Spaltengenerierung.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/dekomposition.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/dekomposition.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/dekomposition.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:dekomposition-schnellstart">10.1 In 5 Minuten gelöst</h2>
@ -16093,8 +16083,7 @@ Mutterrolle 5,600 mm, 13 bestellte Breiten, 219 Zuschnitte.
<code>KKT_Nachweis.py</code><br />
<code>Entropie_Maximierte_Allokation.py</code><br />
<code>Lokale_Optima_Multistart.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/qp-nlp.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/qp-nlp.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/qp-nlp.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:qp-nlp-schnellstart">11.1 In 5 Minuten gelöst</h2>
@ -17270,8 +17259,7 @@ The objective is not DCP. Its following subexpressions are not: QuadForm(...)</c
<code>Stochastische_Optimierung.py</code><br />
<code>Robuste_Optimierung.py</code><br />
<code>Chance_Constraints.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/unsicherheit.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/unsicherheit.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/unsicherheit.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:unsicherheit-schnellstart">12.1 In 5 Minuten gelöst</h2>
@ -18419,8 +18407,7 @@ Anteil ueber 11,34 Tage: 95.5 %</code></pre>
<p><strong>Programme:</strong><br />
<code>Bellman_Minimalbeispiel.py</code><br />
<code>Mehrperiodige_Order_Execution.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/dynamische-programmierung.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/dynamische-programmierung.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/dynamische-programmierung.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:dynamische-programmierung-schnellstart">13.1 In 5 Minuten gelöst</h2>
@ -19288,8 +19275,7 @@ Abweichung DP zur analytischen Loesung: 5.788 % (Diskretisierung: 1000 Stueck)
<p><strong>Zeitbedarf:</strong> ca. 4 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Mehrziel_Pareto.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/mehrziel.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/mehrziel.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/mehrziel.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:mehrziel-schnellstart">14.1 In 5 Minuten gelöst</h2>
@ -19977,8 +19963,7 @@ e(x) \le \varepsilon
<p><strong>Zeitbedarf:</strong> ca. 3,5 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Predict_then_Optimize.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/prognose.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/prognose.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/prognose.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:prognose-schnellstart">15.1 In 5 Minuten gelöst</h2>
@ -20724,8 +20709,7 @@ Kosten statt auf Fehler trainiert.
<p><strong>Zeitbedarf:</strong> ca. 2,5 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Strukturbruecke.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/bruecke.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/bruecke.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/bruecke.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:bruecke-schnellstart">16.1 In 5 Minuten gelöst</h2>
@ -21395,8 +21379,7 @@ u_s \ge \ell_s^\top w - \gamma, \quad u_s \ge 0
<p><strong>Zeitbedarf:</strong> ca. 4 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Kraftwerkseinsatz.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/supplychain.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/supplychain.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/supplychain.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:supplychain-schnellstart">17.1 In 5 Minuten gelöst</h2>
@ -22179,8 +22162,7 @@ zweistufig 111111222222222222222111 (39 Blockstunden)</code></pre>
<code>Finanzdaten_Ledoit_Wolf.py</code><br />
<code>Kovarianz_Falle.py</code></p>
<p><strong>⚠️ Überspringen Sie dieses Kapitel nicht.</strong> Wer direkt bei Markowitz (<a href="#kap-markowitz">Kapitel 19</a>) einsteigt, erhält absurde Portfoliogewichte und weiß nicht, warum.</p>
<p><strong>Notebook:</strong> <code>Notebooks_04/finanzdaten.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/finanzdaten.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/finanzdaten.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:finanzdaten-schnellstart">18.1 In 5 Minuten gelöst</h2>
@ -23032,8 +23014,7 @@ Ausfallraten und jede andere geschaetzte Groesse.
<code>Diversifikation_Demo.py</code><br />
<code>Markowitz_CVXPY.py</code><br />
<code>Renditeschaetzung_Falle.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/markowitz.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/markowitz.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/markowitz.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:markowitz-schnellstart">19.1 In 5 Minuten gelöst</h2>
@ -24010,8 +23991,7 @@ Drei praktische Konsequenzen:
<p><strong>Programme:</strong><br />
<code>VaR_CVaR_Demo.py</code><br />
<code>CVaR_Portfolio.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/cvar.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/cvar.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/cvar.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:cvar-schnellstart">20.1 In 5 Minuten gelöst</h2>
@ -24667,8 +24647,7 @@ CVaR: Portfolio 101.33 vs. Summe 159.24 -&gt; subadditiv (kohaerent)
<code>Backtest_Fallen.py</code><br />
<code>Data_Snooping.py</code></p>
<p><strong>⚠️ Keine Anlageberatung.</strong> Dieses Kapitel demonstriert Methodik an realen Daten, keine handelbare Strategie. <a href="#sec:handelsmaschine-vom-backtest-zum-betrieb">Abschnitt 21.7</a> erklärt ausführlich, warum ein guter Backtest noch lange keine funktionierende Strategie ist.</p>
<p><strong>Notebook:</strong> <code>Notebooks_04/handelsmaschine.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/handelsmaschine.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/handelsmaschine.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:handelsmaschine-schnellstart">21.1 In 5 Minuten gelöst</h2>
@ -25728,8 +25707,7 @@ von allen Fehlversuchen genau einen: den erfolgreichsten.
<code>Betriebsueberwachung.py</code><br />
<code>or_kern.py</code><br />
<code>Solverwechsel_CPSAT_HiGHS.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/praxisfallen.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/praxisfallen.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/praxisfallen.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:praxisfallen-schnellstart">22.1 In 5 Minuten gelöst</h2>
@ -28148,8 +28126,7 @@ sichtbar wird, und gibt Zeit zum Handeln.
<code>Mutationstest.py</code><br />
<code>Benchmark_Skalierung.py</code><br />
<code>Optimierungsdienst.py</code></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/testing.ipynb</code><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/testing.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <code>Notebooks_04/testing.ipynb</code></p>
</blockquote>
<hr />
<h2 id="sec:testing-schnellstart">23.1 In 5 Minuten gelöst</h2>

View file

@ -112,8 +112,7 @@
<code>Zuordnung_Ungarisch.py</code><br />
<code>VRP_Flotten_Routing.py</code><br />
<code>VRP_Kapazitaetsfalle.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/graphen.ipynb">graphen.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/graphen.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/graphen.ipynb">graphen.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -112,8 +112,7 @@
<code>Backtest_Fallen.py</code><br />
<code>Data_Snooping.py</code></p>
<p><strong>⚠️ Keine Anlageberatung.</strong> Dieses Kapitel demonstriert Methodik an realen Daten, keine handelbare Strategie. <a href="#sec:handelsmaschine-vom-backtest-zum-betrieb">Abschnitt 21.7</a> erklärt ausführlich, warum ein guter Backtest noch lange keine funktionierende Strategie ist.</p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/handelsmaschine.ipynb">handelsmaschine.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/handelsmaschine.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/handelsmaschine.ipynb">handelsmaschine.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

3
OR_HTML_04/lp.html generated
View file

@ -124,8 +124,7 @@
<code>Sensitivitaetsanalyse.py</code><br />
<code>Dualitaet_Nachweis.py</code><br />
<code>Toleranzen_und_Entartung.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/lp.ipynb">lp.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/lp.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/lp.ipynb">lp.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -111,8 +111,7 @@
<code>Diversifikation_Demo.py</code><br />
<code>Markowitz_CVXPY.py</code><br />
<code>Renditeschaetzung_Falle.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/markowitz.ipynb">markowitz.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/markowitz.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/markowitz.ipynb">markowitz.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -109,8 +109,7 @@
<p><strong>Zeitbedarf:</strong> ca. 4 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Mehrziel_Pareto.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/mehrziel.ipynb">mehrziel.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/mehrziel.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/mehrziel.ipynb">mehrziel.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -111,8 +111,7 @@
<code>Simulated_Annealing.py</code><br />
<code>Metaheuristik_vs_Exakt.py</code><br />
<code>Large_Neighborhood_Search.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/metaheuristiken.ipynb">metaheuristiken.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/metaheuristiken.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/metaheuristiken.ipynb">metaheuristiken.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

3
OR_HTML_04/milp.html generated
View file

@ -114,8 +114,7 @@
<code>Solverstatus_und_Gap.py</code><br />
<code>Warmstart_Effekt.py</code><br />
<code>Big_M_Falle.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/milp.ipynb">milp.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/milp.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/milp.ipynb">milp.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -109,8 +109,7 @@
<p><strong>Zeitbedarf:</strong> ca. 3 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Vom_Wunsch_zum_Modell.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/modellierung.ipynb">modellierung.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/modellierung.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/modellierung.ipynb">modellierung.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -112,8 +112,7 @@
<code>Solver_Wahl.py</code><br />
<code>Modellierungsschichten.py</code><br />
<code>Vektorisierte_Modellgenerierung.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/oekosystem.ipynb">oekosystem.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/oekosystem.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/oekosystem.ipynb">oekosystem.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -116,8 +116,7 @@
<code>Betriebsueberwachung.py</code><br />
<code>or_kern.py</code><br />
<code>Solverwechsel_CPSAT_HiGHS.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/praxisfallen.ipynb">praxisfallen.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/praxisfallen.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/praxisfallen.ipynb">praxisfallen.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -109,8 +109,7 @@
<p><strong>Zeitbedarf:</strong> ca. 3,5 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Predict_then_Optimize.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/prognose.ipynb">prognose.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/prognose.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/prognose.ipynb">prognose.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -125,8 +125,7 @@
<code>KKT_Nachweis.py</code><br />
<code>Entropie_Maximierte_Allokation.py</code><br />
<code>Lokale_Optima_Multistart.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/qp-nlp.ipynb">qp-nlp.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/qp-nlp.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/qp-nlp.ipynb">qp-nlp.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -109,8 +109,7 @@
<p><strong>Zeitbedarf:</strong> ca. 4 Stunden.</p>
<p><strong>Programme:</strong><br />
<code>Kraftwerkseinsatz.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/supplychain.ipynb">supplychain.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/supplychain.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/supplychain.ipynb">supplychain.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -112,8 +112,7 @@
<code>Mutationstest.py</code><br />
<code>Benchmark_Skalierung.py</code><br />
<code>Optimierungsdienst.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/testing.ipynb">testing.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/testing.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/testing.ipynb">testing.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />

View file

@ -113,8 +113,7 @@
<code>Stochastische_Optimierung.py</code><br />
<code>Robuste_Optimierung.py</code><br />
<code>Chance_Constraints.py</code></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/unsicherheit.ipynb">unsicherheit.ipynb</a><br />
<a href="https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main/Notebooks_04/unsicherheit.ipynb">In Google Colab öffnen</a></p>
<p><strong>Notebook:</strong> <a href="Notebooks_04/unsicherheit.ipynb">unsicherheit.ipynb</a> — herunterladen und in Jupyter öffnen, in Colab hochladen oder mit dem Kurs-Image starten</p>
</blockquote>
</div>
<hr />