Glossar und Literatur trennen, Menue um Glossar und ZIP-Download ergaenzen

94_Anhang_Glossar_und_Literatur.md enthielt zwei verschiedene Nachschlagewerke
in einer Datei. Jetzt sind es zwei Anhaenge: E = Glossar (92 Eintraege),
F = Literaturverzeichnis (6 Kategorien). Aus 5 Anhaengen werden 6, aus 36
Kapiteldateien 37.

Die Teilung war billig: Die Datei trug bereits zwei eigenstaendige
Ueberschriften mit nichts als einem --- dazwischen, und im ganzen Buch gab es
genau einen {ref:anhang:glossar-literatur} - die Weiter-mit-Zeile im
Spickzettel. Geprueft: keine Inhaltszeile verloren, alle 92 Glossareintraege
auf der neuen Seite, Indexmarken unveraendert bei 328.

Das Seitenleisten-Menue bekommt zwei Eintraege:

  Beispielprogramme
  Notebooks
    Download Notebooks als ZIP     <- neu, eingerueckt
  Glossar                          <- neu
  Stichwortverzeichnis
  Gesamtdokument (eine Seite)
  Download als PDF

Der ZIP-Link benutzt dieselbe Konstante wie baue_notebooks_seite() beim
Schreiben des Archivs, damit Link und Datei nicht auseinanderlaufen. Das
Glossar erscheint absichtlich doppelt: hier als Abkuerzung neben dem
Stichwortverzeichnis, und unten in der Gruppe "Anhaenge", weil es ein Anhang
ist.

Die verwaiste anhang-glossar-literatur.html von Hand entfernt - der Build
raeumt alte Seiten nicht ab.

Nebenbefund, in PROGRESS.md festgehalten: OR_HTML_04/assets/site.css ist eine
von Hand gepflegte Quelle, die im als "generiert" beschriebenen Verzeichnis
liegt. Der Build schreibt sie nie. Dasselbe gilt fuer site.js, icons.svg,
highlight.css und plotly.min.js.

--check: 5 Teile, 23 Kapitel, 6 Anhaenge, 296 Abschnitte, 825 Querverweise,
328 Indexmarken, 37 Dateien, 28.544 Zeilen, 305 Hauptueberschriften, keine
Warnung. PDF unveraendert 759 Seiten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dschlueter 2026-09-08 15:48:57 +02:00
commit b6de2802fc
55 changed files with 365 additions and 209 deletions

View file

@ -23,7 +23,7 @@ Dieses Verzeichnis ist die Wurzel; alle Skripte leiten ihre Pfade daraus ab
(`BASIS = dirname(dirname(__file__))` bzw. `dirname(HIER)`).
```
Operations_Research_mit_Python_Version_04/ Quelle: 36 Kapiteldateien + Build-Skripte
Operations_Research_mit_Python_Version_04/ Quelle: 37 Kapiteldateien + Build-Skripte
bilder_04/ Quelle: Diagramme + erzeuge_*.py-Generatoren
Operations_Research_mit_Python_Version_04.md generiert: Gesamtdokument
Operations_Research_mit_Python_Version_04.pdf generiert: PDF (xelatex)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

162
OR_HTML_04/anhang-literatur.html generated Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -163,6 +163,8 @@ body {
.fortschritt-haken .icon { width: 100%; height: 100%; }
li[data-erledigt="1"] .fortschritt-haken { visibility: visible; }
.sidebar-extra { border-top: 2px solid var(--border); margin-top: .5rem; padding-top: .8rem !important; }
/* Unterpunkt in der festen Menueliste (Download-ZIP unter Notebooks): eingerueckt und etwas kleiner, ohne echte Listenverschachtelung. */
.sidebar-unterpunkt a { padding-left: 1.9rem !important; font-size: .92em; }
.sidebar-overlay { display: none; }
.content { flex: 1; min-width: 0; padding: 1.5rem 2rem 5rem; max-width: 900px; margin: 0 auto; }

File diff suppressed because one or more lines are too long

2
OR_HTML_04/cpsat.html generated

File diff suppressed because one or more lines are too long

2
OR_HTML_04/cvar.html generated

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1308,9 +1308,8 @@
</ul></li>
<li><a href="#die-gemeinsame-regel" id="toc-die-gemeinsame-regel">Die gemeinsame Regel</a></li>
</ul></li>
<li><a href="#anhang-glossar-literatur" id="toc-anhang-glossar-literatur">Anhang E: Glossar und Literatur</a></li>
<li><a href="#glossar" id="toc-glossar">Glossar</a></li>
<li><a href="#literaturverzeichnis" id="toc-literaturverzeichnis">Literaturverzeichnis</a>
<li><a href="#anhang-glossar" id="toc-anhang-glossar">Anhang E: Glossar</a></li>
<li><a href="#anhang-literatur" id="toc-anhang-literatur">Anhang F: Literaturverzeichnis</a>
<ul>
<li><a href="#mathematische-optimierung-grundlagen" id="toc-mathematische-optimierung-grundlagen">Mathematische Optimierung — Grundlagen</a></li>
<li><a href="#konvexe-nichtlineare-und-robuste-optimierung" id="toc-konvexe-nichtlineare-und-robuste-optimierung">Konvexe, nichtlineare und robuste Optimierung</a></li>
@ -32765,9 +32764,7 @@ Insgesamt 2874 Solveraufrufe fuer die gesamte Diagnose.
<h2 id="die-gemeinsame-regel">Die gemeinsame Regel</h2>
<p>Alle sechs Seiten haben denselben längsten Abschnitt: die <strong>Statusauswertung</strong>. Das ist kein Zufall. Ein Solveraufruf hat nie zwei Ausgänge, sondern mindestens fünf — optimal, zulässig ohne Beweis, unlösbar, unbeschränkt, abgebrochen. Code, der nur <code>if erfolgreich:</code> prüft, verwechselt früher oder später „keine Lösung gefunden“ mit „es gibt keine Lösung“, und diese Verwechslung merkt niemand, bis sie teuer wird.</p>
<hr />
<h1 id="anhang-glossar-literatur">Anhang E: Glossar und Literatur</h1>
<hr />
<h1 id="glossar">Glossar</h1>
<h1 id="anhang-glossar">Anhang E: Glossar</h1>
<p><strong>A</strong></p>
<ul>
<li><strong>Almgren-Chriss-Modell</strong> — Standardmodell der optimalen Orderausführung. Es löst den Zielkonflikt zwischen Marktauswirkung bei schnellem Handeln und Volatilitätsrisiko bei langsamem Handeln. → <a href="#sec:dynamische-programmierung-das-almgren-chriss-problem-optimale-orderausfuehrung">Abschnitt 13.4</a></li>
@ -32933,7 +32930,7 @@ Insgesamt 2874 Solveraufrufe fuer die gesamte Diagnose.
<li><strong>Zulässiger Bereich (Feasible Region)</strong> — Menge aller Punkte, die sämtliche Nebenbedingungen gleichzeitig erfüllen. → <a href="#sec:fundament-der-zulaessige-loesungsraum-und-das-polyeder">Abschnitt 2.4</a></li>
</ul>
<hr />
<h1 id="literaturverzeichnis">Literaturverzeichnis</h1>
<h1 id="anhang-literatur">Anhang F: Literaturverzeichnis</h1>
<h2 id="mathematische-optimierung-grundlagen">Mathematische Optimierung — Grundlagen</h2>
<ul>
<li><strong>Bertsimas, D. &amp; Tsitsiklis, J. N. (1997):</strong> <em>Introduction to Linear Optimization.</em> Athena Scientific, Belmont. <em>Standardwerk zur geometrischen und algebraischen Theorie des Simplex-Verfahrens, Dualität, Sensitivitätsanalyse und Netzwerkflüssen.</em></li>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
OR_HTML_04/index.html generated

File diff suppressed because one or more lines are too long

2
OR_HTML_04/lp.html generated

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
OR_HTML_04/milp.html generated

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -28317,11 +28317,7 @@ Alle sechs Seiten haben denselben längsten Abschnitt: die **Statusauswertung**.
---
# Anhang E: Glossar und Literatur {#anhang-glossar-literatur}
---
# Glossar
# Anhang E: Glossar {#anhang-glossar}
**A**
@ -28487,9 +28483,10 @@ Alle sechs Seiten haben denselben längsten Abschnitt: die **Statusauswertung**.
* **Zielfunktion**`\index{Zielfunktion}`{=latex} — Der zu minimierende oder maximierende Ausdruck, der die Entscheidungsvariablen zu einer einzigen Bewertungszahl verdichtet. → [Abschnitt 1.6](#sec:einfuehrung-die-vier-universellen-bausteine-jedes-or)
* **Zulässiger Bereich (Feasible Region)**`\index{Zulässiger Bereich}`{=latex} — Menge aller Punkte, die sämtliche Nebenbedingungen gleichzeitig erfüllen. → [Abschnitt 2.4](#sec:fundament-der-zulaessige-loesungsraum-und-das-polyeder)
---
# Literaturverzeichnis
# Anhang F: Literaturverzeichnis {#anhang-literatur}
## Mathematische Optimierung — Grundlagen

View file

@ -411,4 +411,4 @@ Verwechslung merkt niemand, bis sie teuer wird.
---
*Weiter mit:* [{ref:anhang:glossar-literatur} — Glossar und Literatur](94_Anhang_Glossar_und_Literatur.md)
*Weiter mit:* [{ref:anhang:glossar} — Glossar](94_Anhang_Glossar.md)

View file

@ -1,8 +1,4 @@
# Anhang: Glossar und Literatur {#anhang:glossar-literatur}
---
# Glossar
# Anhang: Glossar {#anhang:glossar}
**A**
@ -292,82 +288,4 @@
---
# Literaturverzeichnis
## Mathematische Optimierung — Grundlagen
* **Bertsimas, D. & Tsitsiklis, J. N. (1997):** *Introduction to Linear Optimization.*
Athena Scientific, Belmont.
*Standardwerk zur geometrischen und algebraischen Theorie des Simplex-Verfahrens,
Dualität, Sensitivitätsanalyse und Netzwerkflüssen.*
* **Dantzig, G. B. (1963):** *Linear Programming and Extensions.* Princeton University Press.
*Das historische Originalwerk des Erfinders des Simplex-Algorithmus.*
* **Wolsey, L. A. (2020):** *Integer Programming* (2. Aufl.). Wiley, Hoboken.
*Branch-and-Bound, Branch-and-Cut, Polyedertheorie, Formulierungsstärke.*
* **Hillier, F. S. & Lieberman, G. J. (2021):** *Introduction to Operations Research*
(11. Aufl.). McGraw-Hill.
*Breite Einführung inkl. Warteschlangen, DP und Entscheidungsmodellen.*
## Konvexe, nichtlineare und robuste Optimierung
* **Boyd, S. & Vandenberghe, L. (2004):** *Convex Optimization.* Cambridge University Press.
*Referenzwerk für konvexe Mengen, KKT, QP und SDP; theoretische Basis von CVXPY.
Frei verfügbar unter stanford.edu/~boyd/cvxbook/.*
* **Ben-Tal, A., El Ghaoui, L. & Nemirovski, A. (2009):** *Robust Optimization.*
Princeton University Press.
* **Bertsimas, D. & Sim, M. (2004):** *The Price of Robustness.* In: *Operations Research*
52(1), S. 3553. *Quelle des Budgeted-Uncertainty-Ansatzes.*
* **Bellman, R. (1957):** *Dynamic Programming.* Princeton University Press.
## Constraint Programming und Scheduling
* **Rossi, F., van Beek, P. & Walsh, T. (2006):** *Handbook of Constraint Programming.*
Elsevier.
* **Perron, L. & Furnon, V.:** *OR-Tools CP-SAT Solver Documentation.*
[developers.google.com/optimization/cp](https://developers.google.com/optimization/cp)
## Quantitative Finanzmathematik
* **Markowitz, H. (1952):** *Portfolio Selection.* In: *The Journal of Finance* 7(1),
S. 7791.
* **Rockafellar, R. T. & Uryasev, S. (2000):** *Optimization of Conditional Value-at-Risk.*
In: *Journal of Risk* 2(3), S. 2142.
* **Ledoit, O. & Wolf, M. (2003):** *Improved estimation of the covariance matrix of stock
returns with an application to portfolio selection.* In: *Journal of Empirical Finance*
10(5), S. 603621. *Quelle des Konstant-Korrelations-Ziels.*
* **Ledoit, O. & Wolf, M. (2004):** *A well-conditioned estimator for large-dimensional
covariance matrices.* In: *Journal of Multivariate Analysis* 88(2), S. 365411.
*Quelle des von `scikit-learn` verwendeten Ziels (skalierte Einheitsmatrix).*
* **Almgren, R. & Chriss, N. (2000):** *Optimal Execution of Portfolio Transactions.*
In: *Journal of Risk* 3(2), S. 539.
* **DeMiguel, V., Garlappi, L. & Uppal, R. (2009):** *Optimal Versus Naive Diversification.*
In: *Review of Financial Studies* 22(5), S. 19151953.
*Die Studie, die 1/N als ernstzunehmenden Vergleichsmaßstab etablierte.*
* **López de Prado, M. (2018):** *Advances in Financial Machine Learning.* Wiley.
*Backtest-Overfitting, Deflated Sharpe Ratio, Denoising.*
* **Cornuéjols, G., Peña, J. & Tütüncü, R. (2018):** *Optimization Methods in Finance*
(2. Aufl.). Cambridge University Press.
## Software und Dokumentation
* **Google OR-Tools** — [developers.google.com/optimization](https://developers.google.com/optimization)
· Quellcode: [github.com/google/or-tools](https://github.com/google/or-tools)
* **Diamond, S. & Boyd, S. (2016):** *CVXPY: A Python-embedded modeling language for convex
optimization.* In: *Journal of Machine Learning Research* 17(83), S. 15.
· [www.cvxpy.org](https://www.cvxpy.org)
* **Huangfu, Q. & Hall, J. A. J. (2018):** *Parallelizing the dual revised simplex method.*
In: *Mathematical Programming Computation* 10(1), S. 119142. · [highs.dev](https://highs.dev)
* **SciPy** — [docs.scipy.org/doc/scipy/reference/optimize.html](https://docs.scipy.org/doc/scipy/reference/optimize.html)
* **scikit-learn, Covariance Estimation** — [scikit-learn.org/stable/modules/covariance.html](https://scikit-learn.org/stable/modules/covariance.html)
## Verbände und Normen
* **INFORMS** — [www.informs.org](https://www.informs.org)
* **GOR (Gesellschaft für Operations Research e. V.)** — deutschsprachiger Fachverband.
* **Basel Committee on Banking Supervision:** *Minimum capital requirements for market risk*
(Basel III, FRTB) — Grundlage der Umstellung von VaR auf Expected Shortfall.
* **Europäische Union:** MiFID II / ESMA-Leitlinien zum algorithmischen Handel.
---
*Zurück zum* [Wegweiser](README.md)
*Weiter mit:* [{ref:anhang:literatur} — Literaturverzeichnis](95_Anhang_Literatur.md)

View file

@ -0,0 +1,79 @@
# Anhang: Literaturverzeichnis {#anhang:literatur}
## Mathematische Optimierung — Grundlagen
* **Bertsimas, D. & Tsitsiklis, J. N. (1997):** *Introduction to Linear Optimization.*
Athena Scientific, Belmont.
*Standardwerk zur geometrischen und algebraischen Theorie des Simplex-Verfahrens,
Dualität, Sensitivitätsanalyse und Netzwerkflüssen.*
* **Dantzig, G. B. (1963):** *Linear Programming and Extensions.* Princeton University Press.
*Das historische Originalwerk des Erfinders des Simplex-Algorithmus.*
* **Wolsey, L. A. (2020):** *Integer Programming* (2. Aufl.). Wiley, Hoboken.
*Branch-and-Bound, Branch-and-Cut, Polyedertheorie, Formulierungsstärke.*
* **Hillier, F. S. & Lieberman, G. J. (2021):** *Introduction to Operations Research*
(11. Aufl.). McGraw-Hill.
*Breite Einführung inkl. Warteschlangen, DP und Entscheidungsmodellen.*
## Konvexe, nichtlineare und robuste Optimierung
* **Boyd, S. & Vandenberghe, L. (2004):** *Convex Optimization.* Cambridge University Press.
*Referenzwerk für konvexe Mengen, KKT, QP und SDP; theoretische Basis von CVXPY.
Frei verfügbar unter stanford.edu/~boyd/cvxbook/.*
* **Ben-Tal, A., El Ghaoui, L. & Nemirovski, A. (2009):** *Robust Optimization.*
Princeton University Press.
* **Bertsimas, D. & Sim, M. (2004):** *The Price of Robustness.* In: *Operations Research*
52(1), S. 3553. *Quelle des Budgeted-Uncertainty-Ansatzes.*
* **Bellman, R. (1957):** *Dynamic Programming.* Princeton University Press.
## Constraint Programming und Scheduling
* **Rossi, F., van Beek, P. & Walsh, T. (2006):** *Handbook of Constraint Programming.*
Elsevier.
* **Perron, L. & Furnon, V.:** *OR-Tools CP-SAT Solver Documentation.*
[developers.google.com/optimization/cp](https://developers.google.com/optimization/cp)
## Quantitative Finanzmathematik
* **Markowitz, H. (1952):** *Portfolio Selection.* In: *The Journal of Finance* 7(1),
S. 7791.
* **Rockafellar, R. T. & Uryasev, S. (2000):** *Optimization of Conditional Value-at-Risk.*
In: *Journal of Risk* 2(3), S. 2142.
* **Ledoit, O. & Wolf, M. (2003):** *Improved estimation of the covariance matrix of stock
returns with an application to portfolio selection.* In: *Journal of Empirical Finance*
10(5), S. 603621. *Quelle des Konstant-Korrelations-Ziels.*
* **Ledoit, O. & Wolf, M. (2004):** *A well-conditioned estimator for large-dimensional
covariance matrices.* In: *Journal of Multivariate Analysis* 88(2), S. 365411.
*Quelle des von `scikit-learn` verwendeten Ziels (skalierte Einheitsmatrix).*
* **Almgren, R. & Chriss, N. (2000):** *Optimal Execution of Portfolio Transactions.*
In: *Journal of Risk* 3(2), S. 539.
* **DeMiguel, V., Garlappi, L. & Uppal, R. (2009):** *Optimal Versus Naive Diversification.*
In: *Review of Financial Studies* 22(5), S. 19151953.
*Die Studie, die 1/N als ernstzunehmenden Vergleichsmaßstab etablierte.*
* **López de Prado, M. (2018):** *Advances in Financial Machine Learning.* Wiley.
*Backtest-Overfitting, Deflated Sharpe Ratio, Denoising.*
* **Cornuéjols, G., Peña, J. & Tütüncü, R. (2018):** *Optimization Methods in Finance*
(2. Aufl.). Cambridge University Press.
## Software und Dokumentation
* **Google OR-Tools** — [developers.google.com/optimization](https://developers.google.com/optimization)
· Quellcode: [github.com/google/or-tools](https://github.com/google/or-tools)
* **Diamond, S. & Boyd, S. (2016):** *CVXPY: A Python-embedded modeling language for convex
optimization.* In: *Journal of Machine Learning Research* 17(83), S. 15.
· [www.cvxpy.org](https://www.cvxpy.org)
* **Huangfu, Q. & Hall, J. A. J. (2018):** *Parallelizing the dual revised simplex method.*
In: *Mathematical Programming Computation* 10(1), S. 119142. · [highs.dev](https://highs.dev)
* **SciPy** — [docs.scipy.org/doc/scipy/reference/optimize.html](https://docs.scipy.org/doc/scipy/reference/optimize.html)
* **scikit-learn, Covariance Estimation** — [scikit-learn.org/stable/modules/covariance.html](https://scikit-learn.org/stable/modules/covariance.html)
## Verbände und Normen
* **INFORMS** — [www.informs.org](https://www.informs.org)
* **GOR (Gesellschaft für Operations Research e. V.)** — deutschsprachiger Fachverband.
* **Basel Committee on Banking Supervision:** *Minimum capital requirements for market risk*
(Basel III, FRTB) — Grundlage der Umstellung von VaR auf Expected Shortfall.
* **Europäische Union:** MiFID II / ESMA-Leitlinien zum algorithmischen Handel.
---
*Zurück zum* [Wegweiser](README.md)

View file

@ -84,7 +84,8 @@ legen die Lesereihenfolge fest.
| [`90_Anhang_Loesungen.md`](90_Anhang_Loesungen.md) | Lösungen zu **allen** Übungsaufgaben und Selbsttests |
| [`91_Anhang_Modellierungsmuster.md`](91_Anhang_Modellierungsmuster.md) | Musterkatalog: 24 wiederkehrende Modellierungstricks |
| [`92_Anhang_Fehlerdiagnose.md`](92_Anhang_Fehlerdiagnose.md) | Diagnose-Handbuch für Solver-Probleme |
| [`94_Anhang_Glossar_und_Literatur.md`](94_Anhang_Glossar_und_Literatur.md) | Glossar, Literatur |
| [`94_Anhang_Glossar.md`](94_Anhang_Glossar.md) | Glossar der Fachbegriffe |
| [`95_Anhang_Literatur.md`](95_Anhang_Literatur.md) | Literaturverzeichnis |
---

View file

@ -134,7 +134,8 @@ DATEIEN = [
"91_Anhang_Modellierungsmuster.md",
"92_Anhang_Fehlerdiagnose.md",
"93_Anhang_Spickzettel.md",
"94_Anhang_Glossar_und_Literatur.md",
"94_Anhang_Glossar.md",
"95_Anhang_Literatur.md",
]
# Markdown-Dateien im Kapitelverzeichnis, die bewusst NICHT ins Buch gehoeren.
@ -1543,6 +1544,15 @@ def baue_sidebar_html(struktur: list[dict], aktuelle_seite: str, pdf_verfuegbar:
+ '<ul class="sidebar-extra">'
+ '<li><a href="programme.html">' + icon("book") + ' Beispielprogramme</a></li>'
+ '<li><a href="notebooks.html">' + icon("book") + ' Notebooks</a></li>'
# Der Dateiname kommt aus derselben Konstante, mit der
# baue_notebooks_seite() das Archiv schreibt - so koennen Link und Datei
# nicht auseinanderlaufen.
+ f'<li class="sidebar-unterpunkt"><a href="{NOTEBOOK_NAME}.zip" download>'
+ icon("download") + ' Download Notebooks als ZIP</a></li>'
# Abkuerzung zum Glossar. Es steht zusaetzlich in der Gruppe "Anhaenge",
# weil es ein Anhang ist - hier oben aber neben dem
# Stichwortverzeichnis, weil beide dasselbe leisten: nachschlagen.
+ '<li><a href="anhang-glossar.html">' + icon("book") + ' Glossar</a></li>'
+ '<li><a href="stichwortverzeichnis.html">' + icon("search")
+ ' Stichwortverzeichnis</a></li>'
+ '<li><a href="gesamtdokument.html">' + icon("external-link")

View file

@ -29,8 +29,8 @@ git status --short
# 2. Struktur, Querverweise, Codezäune
python3 Operations_Research_mit_Python_Version_04/build_version_04.py --check
# Soll: 5 Teile, 23 Kapitel, 5 Anhänge, 292 Abschnitte, 703 Querverweise,
# 325 Indexmarken, 31 Dateien, 27.013 Zeilen, 276 Hauptüberschriften
# Soll: 5 Teile, 23 Kapitel, 6 Anhänge, 296 Abschnitte, 825 Querverweise,
# 328 Indexmarken, 37 Dateien, 28.544 Zeilen, 305 Hauptüberschriften
# KEINE Zeile mit "WARNUNG", "FEHLENDE DATEIEN" oder "Nicht eingebundene".
# 3. Laufen alle Programme? (einige Minuten; die Finanzkapitel brauchen Internet)
@ -74,12 +74,12 @@ sie unerwartet ab, ist etwas kaputtgegangen.
| Kennzahl | Version 03 | Version 04 (heute) |
| --- | --- | --- |
| Kapiteldateien | 22 | **36** (31 + 5 Teil-Synthesen) |
| Kapiteldateien | 22 | **37** (31 + 5 Teil-Synthesen + geteilter Anhang E/F) |
| Kapitel | 15 | **23** |
| Anhänge | 4 | **5** |
| Zeilen im Gesamtdokument | 11 082 | **28 547** |
| Anhänge | 4 | **6** |
| Zeilen im Gesamtdokument | 11 082 | **28 544** |
| Größe des Gesamtdokuments | 606 KB | **1 620 KB** |
| Hauptüberschriften | 131 | **306** |
| Hauptüberschriften | 131 | **305** |
| registrierte Abschnitte | 122 | **296** |
| aufgelöste Querverweise | 314 | **825** (0 unaufgelöst) |
| Indexmarken | 295 | **328** |
@ -1331,7 +1331,7 @@ pytest-Tests grün, Version 03 unberührt.
**Alle Phasen sind abgeschlossen** — die sechs des Umbaus, dazu Phase 6 bis 8 aus
`Verbesserungen_02.md`/`_03.md`. `Version_04/` ist seit dem 08.09.2026 ein eigenes
Git-Repository. 23 Kapitel, 5 Anhänge, 5 Teil-Synthesen, **76** lauffähige Programme,
Git-Repository. 23 Kapitel, 6 Anhänge, 5 Teil-Synthesen, **76** lauffähige Programme,
141 Aufgaben mit 141 Lösungen, 33 Diagramme, PDF mit 759 Seiten, Website mit vier
interaktiven Figuren.
@ -1993,6 +1993,45 @@ Geprüft: 25 gelistete Notebooks, 0 tote Links auf der Seite, ZIP mit 25 Einträ
identischen Zeitstempeln, Seitenleisteneintrag auf allen 40 Seiten mit Seitenleiste
(`gesamtdokument.html` hat konstruktionsbedingt keine).
### ✅ Glossar und Literatur getrennt, Menü ergänzt
`94_Anhang_Glossar_und_Literatur.md` enthielt zwei verschiedene Nachschlagewerke in einer
Datei. Jetzt sind es zwei Anhänge: **E = Glossar** (92 Einträge), **F =
Literaturverzeichnis** (6 Kategorien) — aus 5 Anhängen wurden 6.
**Die Teilung war billiger als erwartet.** Die Datei trug bereits zwei eigenständige
Überschriften mit nichts als einem `---` dazwischen, und im ganzen Buch gab es **genau
einen** `{ref:anhang:glossar-literatur}` — die „Weiter mit"-Zeile im Spickzettel. Die 47
Treffer in `OR_HTML_04/` waren erzeugt und lösten sich beim Bau von selbst auf. Geprüft:
keine einzige Inhaltszeile ging verloren, alle 92 Glossareinträge stehen auf der neuen
Seite, die Zahl der Indexmarken blieb bei 328.
**Das Menü der Website** hat zwei Einträge mehr:
```
Beispielprogramme
Notebooks
↳ Download Notebooks als ZIP
Glossar
Stichwortverzeichnis
Gesamtdokument (eine Seite)
Download als PDF
```
Der ZIP-Link benutzt dieselbe Konstante wie `baue_notebooks_seite()` beim Schreiben des
Archivs — so können Link und Datei nicht auseinanderlaufen. Das Glossar erscheint
**absichtlich doppelt**: hier oben als Abkürzung neben dem Stichwortverzeichnis, weil beide
dasselbe leisten, und unten in der Gruppe „Anhänge", weil es ein Anhang ist.
**Nebenbefund: `OR_HTML_04/assets/site.css` ist eine Quelle, keine erzeugte Datei.** Der
Build schreibt sie nicht (Zeitstempel vom 06.09., während `programme.js` bei jedem Lauf
neu entsteht). Dasselbe gilt für `site.js`, `icons.svg`, `highlight.css` und
`plotly.min.js`. Sie liegen im als „generiert" beschriebenen Verzeichnis, sind aber von Hand
gepflegt bzw. mitgeliefert — wer `OR_HTML_04/` löscht und neu baut, verliert sie.
Die alte `anhang-glossar-literatur.html` musste von Hand entfernt werden; der Build räumt
verwaiste Seiten nicht ab.
---
## 8. Commit-Historie des V04-Strangs

View file

@ -3,7 +3,7 @@
*Von der mathematischen Modellierung zu praktischen intelligenten Lösungen für Betrieb,
Technik und Finanzmärkte*
Ein Lehrbuch über Operations Research mit Python: **23 Kapitel in 5 Teilen, 5 Anhänge,
Ein Lehrbuch über Operations Research mit Python: **23 Kapitel in 5 Teilen, 6 Anhänge,
141 Aufgaben mit vollständigen Lösungen, 76 lauffähige Beispielprogramme, 25 Jupyter-Notebooks,
33 Diagramme — 759 PDF-Seiten.** Von der linearen Programmierung über Constraint Programming
und Metaheuristiken bis zu Portfoliooptimierung, CVaR und dem Weg vom Prototyp in den Betrieb.
@ -113,7 +113,7 @@ pip install -r Operations_Research_mit_Python_Version_04_Programme/requirements.
| Pfad | Rolle |
| --- | --- |
| `Operations_Research_mit_Python_Version_04/` | **Quelle**: 36 Kapiteldateien (inkl. 5 Teil-Synthesen) + Build-Skripte |
| `Operations_Research_mit_Python_Version_04/` | **Quelle**: 37 Kapiteldateien (inkl. 5 Teil-Synthesen) + Build-Skripte |
| `bilder_04/` | **Quelle**: 33 Diagramme (SVG) + 16 `erzeuge_*.py`-Generatoren |
| `Kritik_und_Verbesserungsvorschlaege/` | **Quelle**: die Rezensionen und Vorschläge, die den Umbau ausgelöst haben |
| `pyproject.toml`, `Dockerfile`, `.dockerignore` | **Quelle**: Abhängigkeitsgruppen und Kurs-Image |