kleine Änderungen

This commit is contained in:
dschlueter 2026-09-09 07:37:07 +02:00
commit dc088fa214
47 changed files with 183868 additions and 573 deletions

View file

@ -2539,6 +2539,59 @@ Neu: `bilder_04/stil_04.py` bündelt Palette, `rcParams` und `speichere()`. `net
entgegen der Planung **nicht** gebraucht — `pyproject.toml` bleibt unverändert.
PDF von 781 auf **788 Seiten**, 44 Diagramme, 27 Generatoren.
### ✅ Grafik-Upgrade, Stufe 2: die neun Überarbeitungen
Erledigt: Konvexität, Simplex-Pfad, Primal/Dual, Branch-and-Bound, Propagation, Gantt,
Pareto, VaR/CVaR, OR-Architektur.
**Der Befund, der die Arbeit geprägt hat: „Überarbeiten" hieß fast nie „ersetzen".** Acht der
neun vorhandenen Diagramme zeigten etwas anderes als das, was der Auftrag verlangte — die
Sehnenbedingung neben der Talkarte, den Suchbaum neben der Polyedergeometrie, die
Verlustverteilung neben der Subadditivität. Sie zu überschreiben hätte Inhalt vernichtet.
Also sind sechs neue Bilder danebengetreten, und nur an drei Stellen wurde ein vorhandener
Generator erweitert. Beim ersten Bild hatte ich `kap02_konvexitaet.svg` bereits überschrieben,
bevor der Auftragstext („**Ergänzung** zu Abb. 2.2") das widerlegte — zurückgenommen mit
`git checkout`.
**Der einzige echte Ersatz war zugleich ein Fund:** `kap15_or_plattform.svg` war
handgezeichnet und zeigte **fünf** Schichten, während die Tabelle unmittelbar daneben
**sechs** nennt — „Betrieb" (Monitoring, Audit-Trail, Alarme) fehlte, „Audit-Trail" kam nur
noch als Pfeilbeschriftung vor. `erzeuge_or_architektur.py` liest die Schichten jetzt **aus
dieser Tabelle** und bricht ab, wenn deren Aufbau sich ändert. Damit ist das Kriterium aus
6c geschärft: Schematisch heißt nur dann „kein Generator nötig", wenn das Bild keine
Aufzählung und keine Zahl aus dem Text wiederholt.
**Vier eigene Fehler, die die Selbsttests gefunden haben:**
* Die Prüfung der Pareto-Tangente stand **verkehrt herum** — bei einer *unteren* konvexen
Hülle liegen alle Punkte **über** der Stützgeraden, nicht darunter. Der Test schlug an,
bevor das Bild jemanden in die Irre führen konnte.
* `erzeuge_or_architektur.py` trug **fünf** beschriftete Übergänge für **vier** Pfeile; die
fünfte („Freigabe") wurde still nicht gezeichnet. Meine erste Zählprüfung war um eins
daneben und ließ es durch.
* Wieder `.replace(",", ".")` auf einen **mehrteiligen** f-String — aus `Delle: (13978, 5912)`
wurde `(13978. 5912)`. Derselbe Fehler wie mehrfach zuvor; die Zahl wird jetzt getrennt
formatiert.
* Im Gantt-Text hatte ich behauptet, die eine Zeiteinheit zwischen Schranke 10 und Makespan 11
stecke „in den beiden schraffierten Feldern". Sie steckt allein in der Dreherei — der
Engpassmaschine. Der Generator rechnet die Summe jetzt nach: 10 Arbeit + 1 Stillstand = 11.
**Nachweise:** Alle 53 Bilddateien sind über zwei Läufe byte-identisch. Die drei erweiterten
Generatoren haben ihre *anderen* Ausgaben nicht verändert — `kap_fundament_polyeder.svg` und
beide Plotly-Fassungen sind bitgleich geblieben. Zahlen gegen das Buch geprüft: die fünf
BFGS-Läufe der Konvexität ziffergenau, $Z^*=W^*=2375$ bei der Dualität, 16 → 12 → 9 bei der
Propagation, 21 → 20,67 bei Branch-and-Bound, und beim CVaR alle vier Zeilen einschließlich
der Unterscheidung 79,59 gegen 79,66 — was beweist, dass die Ziehungsreihenfolge des
Buchprogramms getroffen ist.
PDF von 788 auf **792 Seiten**, 48 Kapiteldiagramme (38 erzeugt, 10 schematisch),
33 Generatoren, davon 17 auf `stil_04.py`.
**Offen, weil es eine Entscheidung des Autors ist:** Die Bildunterschriften tragen im PDF
eine **doppelte Nummer** — „Abbildung 21: Abb. 7.2: …". Die erste vergibt LaTeX, die zweite
`nummeriere_marken()`. Das betrifft alle 48 Abbildungen und besteht seit Langem; behoben wäre
es dadurch, dass die LaTeX-Nummerierung der Gleitumgebung unterdrückt wird.
---
## 8. Commit-Historie des V04-Strangs