Version 04 als eigenes Repository

Erster Commit des Strangs "Optimierte Entscheidungsfindung mit Python"
(Version 04). Die Historie der 71 Commits bis zur Trennung bleibt im
uebergeordneten Repository OR_mit_Python liegen, das ab jetzt nur noch
Version_03 (eingefroren) verwaltet und Version_04/ ignoriert.

Bewusst kein "git subtree split": Der Pfad Version_04/ existiert erst seit
der Verzeichnistrennung, ein Split braechte daher nur 7 der 41 einschlaegigen
Commits - eine Teilhistorie, die vollstaendig aussieht und es nicht ist.

Stand: 5 Teile, 23 Kapitel, 5 Anhaenge, 292 Abschnitte, 703 Querverweise,
325 Indexmarken, 73 Beispielprogramme, 32 SVGs, 4 Plotly-Figuren,
25 Notebooks, PDF mit 715 Seiten.

Zusaetzlich in diesem Commit:

* pyproject.toml mit Abhaengigkeitsgruppen finance, large-scale, api,
  figures, dev, empfehlungen. Die abgedruckte requirements.txt bleibt
  unveraendert daneben bestehen. ortools steht in der Grundausstattung,
  highspy erst in [large-scale] - so kann der HiGHS-Symbolkonflikt bei der
  schlanken Installation gar nicht erst auftreten.

* Dabei zwei Funde: graphviz wird von erzeuge_architektur_diagramme.py
  importiert, fehlt aber in requirements.txt (jetzt in [figures]); pymoo
  steht in requirements.txt, wird aber von keinem Programm importiert,
  sondern nur im Kapitel Metaheuristiken empfohlen (jetzt in
  [empfehlungen]).

* NEUER_TITEL.md nach Kritik_und_Verbesserungsvorschlaege/ verschoben - es
  ist die Vorlage des Titelblatts, kein Bestandteil des Werks. Die beiden
  Fundstellen in PROGRESS.md und erzeuge_titelseite.py nachgezogen.

* PROGRESS.md nannte noch den Untertitel der ersten Fassung; auf den
  tatsaechlichen aus erzeuge_titelseite.py korrigiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dschlueter 2026-09-08 01:20:09 +02:00
commit b7af2f1d9a
468 changed files with 262141 additions and 0 deletions

View file

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 14.1.2 (20260126.1125)
-->
<!-- Title: d02 Pages: 1 -->
<svg width="447pt" height="271pt"
viewBox="7.00 7.00 439.00 264.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(11.2 260.04)">
<title>d02</title>
<!-- param -->
<g id="node1" class="node">
<title>param</title>
<path fill="#fffbeb" stroke="#d97706" stroke-width="2" d="M292.54,-248.84C292.54,-248.84 128.62,-248.84 128.62,-248.84 122.62,-248.84 116.62,-242.84 116.62,-236.84 116.62,-236.84 116.62,-206.56 116.62,-206.56 116.62,-200.56 122.62,-194.56 128.62,-194.56 128.62,-194.56 292.54,-194.56 292.54,-194.56 298.54,-194.56 304.54,-200.56 304.54,-206.56 304.54,-206.56 304.54,-236.84 304.54,-236.84 304.54,-242.84 298.54,-248.84 292.54,-248.84"/>
<text xml:space="preserve" text-anchor="start" x="167.08" y="-228.85" font-family="DejaVu Sans" font-weight="bold" font-size="13.00" fill="#d97706">PARAMETER</text>
<text xml:space="preserve" text-anchor="start" x="129.58" y="-204.7" font-family="DejaVu Sans" font-size="10.00" fill="#1a1a2e">Konstanten, Daten, Preise, Limits</text>
</g>
<!-- var -->
<g id="node2" class="node">
<title>var</title>
<path fill="#eef2ff" stroke="#4338ca" stroke-width="2" d="M314.29,-151.56C314.29,-151.56 106.88,-151.56 106.88,-151.56 100.88,-151.56 94.88,-145.56 94.88,-139.56 94.88,-139.56 94.88,-109.28 94.88,-109.28 94.88,-103.28 100.88,-97.28 106.88,-97.28 106.88,-97.28 314.29,-97.28 314.29,-97.28 320.29,-97.28 326.29,-103.28 326.29,-109.28 326.29,-109.28 326.29,-139.56 326.29,-139.56 326.29,-145.56 320.29,-151.56 314.29,-151.56"/>
<text xml:space="preserve" text-anchor="start" x="107.83" y="-131.57" font-family="DejaVu Sans" font-weight="bold" font-size="13.00" fill="#4338ca">ENTSCHEIDUNGSVARIABLEN</text>
<text xml:space="preserve" text-anchor="start" x="107.83" y="-107.42" font-family="DejaVu Sans" font-size="10.00" fill="#1a1a2e">x₁, x₂, …, xₙ : Was wird gesteuert?</text>
</g>
<!-- param&#45;&gt;var -->
<g id="edge1" class="edge">
<title>param&#45;&gt;var</title>
<path fill="none" stroke="#334155" stroke-width="2" d="M210.58,-193.65C210.58,-184.6 210.58,-174.32 210.58,-164.53"/>
<polygon fill="#334155" stroke="#334155" stroke-width="2" points="213.74,-164.56 210.59,-155.56 207.44,-164.56 213.74,-164.56"/>
</g>
<!-- ziel -->
<g id="node3" class="node">
<title>ziel</title>
<path fill="#ecfdf5" stroke="#059669" stroke-width="2" d="M181.17,-54.28C181.17,-54.28 12,-54.28 12,-54.28 6,-54.28 0,-48.28 0,-42.28 0,-42.28 0,-12 0,-12 0,-6 6,0 12,0 12,0 181.17,0 181.17,0 187.17,0 193.17,-6 193.17,-12 193.17,-12 193.17,-42.28 193.17,-42.28 193.17,-48.28 187.17,-54.28 181.17,-54.28"/>
<text xml:space="preserve" text-anchor="start" x="42.58" y="-34.29" font-family="DejaVu Sans" font-weight="bold" font-size="13.00" fill="#059669">ZIELFUNKTION</text>
<text xml:space="preserve" text-anchor="start" x="12.96" y="-10.14" font-family="DejaVu Sans" font-size="10.00" fill="#1a1a2e">Minimiere Kosten / Maximiere ROI</text>
</g>
<!-- var&#45;&gt;ziel -->
<g id="edge2" class="edge">
<title>var&#45;&gt;ziel</title>
<path fill="none" stroke="#334155" stroke-width="2" d="M178.22,-96.37C165.71,-85.91 151.23,-73.81 137.97,-62.73"/>
<polygon fill="#334155" stroke="#334155" stroke-width="2" points="140.28,-60.55 131.35,-57.2 136.24,-65.39 140.28,-60.55"/>
</g>
<!-- neben -->
<g id="node4" class="node">
<title>neben</title>
<path fill="#ecfeff" stroke="#0891b2" stroke-width="2" d="M412.17,-54.28C412.17,-54.28 237,-54.28 237,-54.28 231,-54.28 225,-48.28 225,-42.28 225,-42.28 225,-12 225,-12 225,-6 231,0 237,0 237,0 412.17,0 412.17,0 418.17,0 424.17,-6 424.17,-12 424.17,-12 424.17,-42.28 424.17,-42.28 424.17,-48.28 418.17,-54.28 412.17,-54.28"/>
<text xml:space="preserve" text-anchor="start" x="245.46" y="-34.29" font-family="DejaVu Sans" font-weight="bold" font-size="13.00" fill="#0891b2">NEBENBEDINGUNGEN</text>
<text xml:space="preserve" text-anchor="start" x="237.96" y="-10.14" font-family="DejaVu Sans" font-size="10.00" fill="#1a1a2e">Harte Schranken: Budget, Kapazität</text>
</g>
<!-- var&#45;&gt;neben -->
<g id="edge3" class="edge">
<title>var&#45;&gt;neben</title>
<path fill="none" stroke="#334155" stroke-width="2" d="M242.95,-96.37C255.46,-85.91 269.94,-73.81 283.2,-62.73"/>
<polygon fill="#334155" stroke="#334155" stroke-width="2" points="284.93,-65.39 289.82,-57.2 280.89,-60.55 284.93,-65.39"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB