operations_research/OR_HTML_04
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dschlueter 293370b7a1 Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet
Neuer Abschnitt im CP-SAT-Kapitel plus Parallele_Suche.py (76. Programm).
Setzt Paket 2 aus Verbesserungen_02.md um.

Was fehlte, war nicht die Regel, sondern die Messung: Das Buch setzt an acht
Stellen num_workers = 1 mit dem Kommentar "fuer eine reproduzierbare
Ausgabe", nachgeprueft hatte es nie jemand. Gerechnet wird auf demselben
Job-Shop wie das Intervallvariablen-Kapitel, nur gross genug, dass die Suche
arbeitet: 12 Auftraege, 10 Maschinen, 120 Arbeitsgaenge.

Zwei Befunde, beide staerker als die Behauptung:

* Die Beschleunigung ist ueberlinear. Acht Arbeiter waren im abgedruckten
  Lauf nicht achtmal, sondern 12,3-mal schneller als einer. Kein Messfehler:
  CP-SAT vervielfacht nicht dieselbe Suche, sondern laesst verschiedene
  Strategien nebeneinander laufen, die einander ihre Schranken mitteilen.
* Der Seed genuegt nicht - und zwar schon ab ZWEI Arbeitern. Ein Arbeiter:
  1 Plan aus 4 Laeufen. Zwei Arbeiter: 3 verschiedene Plaene aus 4 Laeufen,
  bei identischem random_seed und identischem Zielwert 183.

Die vollstaendige Antwort kam erst ueber die Uebungsaufgabe: Mit
num_workers = 1, aber fuenf verschiedenen Seeds ergeben sich ebenfalls fuenf
verschiedene Plaene. Keiner der beiden Parameter sichert die
Reproduzierbarkeit allein - erst die Kombination traegt.

Weiter fuer die Aufgabe gemessen: Der Gewinn kehrt sich um (auf 24 Kernen
Faktor 10,2 bei 8 Arbeitern, 12,3 bei 16, 9,0 bei 24) - "so viele Arbeiter
wie Kerne" ist damit widerlegt. Und bei 15 Auftraegen laeuft ein Arbeiter
ins 60-s-Limit (FEASIBLE, Makespan 200), waehrend acht OPTIMAL mit
demselben Makespan 200 nach 26,4 s melden: Der Unterschied liegt nicht in
der Loesung, sondern im Beweis, dass es keine bessere gibt.

Die abgedruckte Ausgabe traegt die Kennzeichnung "Laufzeiten und die Zahl
der verschiedenen Plaene sind hardwareabhaengig" - nach dem Muster, das das
Testing-Kapitel fuer Benchmark_Skalierung.py schon verwendet. Der Vergleich
des extrahierten Programms mit dem Abdruck weicht denn auch in genau einer
Zelle ab (4 statt 3 verschiedene Plaene bei 4 Arbeitern); Zielwert und
Struktur sind identisch. Hier ist die Nichtreproduzierbarkeit der
abgedruckten Zahl die Aussage selbst.

Mitgezogen: Kapitelkopf, Lernziele, Selbsttest, Zusammenfassung,
Vorwort-Programmverzeichnis, Uebungsaufgabe und Loesung in Anhang A, ein
Verweis aus dem bestehenden Callout zu mehrdeutigen Optima und einer aus
Warmstart_Effekt.py im MILP-Kapitel (dort nach Regel 12 der Kapitelname).

Stand: 295 Abschnitte, 730 Querverweise, 328 Indexmarken, 76 Programme,
140 Aufgaben mit 140 Loesungen, 33 pytest-Tests, PDF 744 Seiten, 69
netzfreie Programme fehlerfrei.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 11:19:53 +02:00
..
assets Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
bilder_04 Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
katex Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
Notebooks_04 Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
programme Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
anhang-fehlerdiagnose.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
anhang-glossar-literatur.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
anhang-loesungen.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
anhang-modellierungsmuster.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
anhang-spickzettel.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
bruecke.html Phase 6.2: Constraint Attribution und Managementbericht 2026-09-08 10:30:33 +02:00
cpsat.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
cvar.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
dekomposition.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
dynamische-programmierung.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
einfuehrung.html Phase 6.2: Constraint Attribution und Managementbericht 2026-09-08 10:30:33 +02:00
finanzdaten.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
fundament.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
gesamtdokument.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
graphen.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
handelsmaschine.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
index.html Phase 6.1: Chance Constraints - die Zusage "mit 95 % Sicherheit" 2026-09-08 01:57:19 +02:00
lp.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
markowitz.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
mehrziel.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
metaheuristiken.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
milp.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
modellierung.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
notation.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
oekosystem.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
Operations_Research_mit_Python_Version_04.pdf Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
praxisfallen.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
prognose.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
programme.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
projektwerkstatt.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
qp-nlp.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
stichwortverzeichnis.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
supplychain.html Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
testing.html Phase 6.2: Constraint Attribution und Managementbericht 2026-09-08 10:30:33 +02:00
unsicherheit.html Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
vorwort.html Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00