operations_research/OR_HTML_04/Notebooks_04
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dschlueter 862e92bc7b Phase 8.2: Solver-Isolation ohne subprocess-Codestrings
Setzt den Isolationsteil von Paket 1 aus Verbesserungen_02.md um. Der Plan
nannte zwei Programme; beim Suchen kam ein drittes dazu, das dasselbe Muster
verwendete.

Ein_System_Vier_Ansaetze.py und Benchmark_Skalierung.py hielten ihre vier
Solvervarianten als Zeichenketten in einem Dictionary und gaben sie an
"python -c" weiter - bei Benchmark_Skalierung.py sogar mit
.format()-Platzhaltern fuer die Instanzgroesse. Aus jeder Variante ist jetzt
eine gewoehnliche Funktion mit lokalem Import geworden.
Solverwechsel_CPSAT_HiGHS.py rief sich selbst ueber sys.argv erneut auf;
auch das entfaellt.

Ausgefuehrt wird ueber einen ProcessPoolExecutor mit zwei Einstellungen, die
beide noetig sind: mp_context "spawn" (frischer Interpreter statt geerbtem
Speicher - unter Linux ist fork der Standard) und max_tasks_per_child=1 (ein
neuer Prozess je Aufgabe; ohne das verwendet der Pool seinen Arbeiter
wieder, und beim zweiten Solver ist der Konflikt zurueck). Nachgemessen:
vier Aufgaben, vier verschiedene PIDs.

Der zweite Punkt hat einen eigenen Warnkasten bekommen, weil der Fehler
leicht zu machen und schwer zu finden ist: Der Absturz kaeme nicht beim
ersten Solver, sondern beim zweiten - und saehe aus wie ein Problem des
zweiten.

Regel 4, dreifach geprueft. Ein_System_Vier_Ansaetze.py: identisch bis auf
die Zeitspalte, einschliesslich der Spannweite 2,41e-08, auf die sich der
Merksatz des Kapitels beruft. Benchmark_Skalierung.py: alle zwoelf
Zielwerte und alle drei Spannweiten bitgleich; Zeiten und Speicher haben
sich verschoben, beide sind im Abdruck seit jeher als hardwareabhaengig
gekennzeichnet. Solverwechsel_CPSAT_HiGHS.py: Ausgabe ohne Zeiten
unveraendert.

Bewusst subprocess bleibt Mutationstest.py: Dort wird pytest auf einer
mutierten Kopie in einem temporaeren Verzeichnis gestartet - ein externes
Werkzeug auf veraenderten Dateien, nicht die Isolation eines Imports.

Neu im Kapitel Oekosystem: ein Abschnitt "Wie die Isolation aussieht, wenn
sie tragen soll" - warum ein Codestring die schlechteste Umsetzung von
"eigener Prozess" ist. Anhang C nennt jetzt ebenfalls ProcessPoolExecutor.

Ein eigener Fehler, gefunden und abgesichert: Ich hatte dem neuen ### ein
{#sec:...}-Label gegeben. ABSCHNITT_RE erkennt nur "## " - das Label waere
nie registriert worden und jeder Verweis darauf ins Leere gelaufen, ohne
Warnung. Label entfernt, --check meldet den Fall jetzt. Gegengetestet.

Stand: 818 Querverweise, 76 Programme, 33 pytest-Tests, PDF 760 Seiten, 69
netzfreie Programme fehlerfrei.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 12:39:34 +02:00
..
anhang-fehlerdiagnose.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
bruecke.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
cpsat.ipynb Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
cvar.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
dekomposition.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
dynamische-programmierung.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
einfuehrung.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
finanzdaten.ipynb Sechster und siebter Fund: die letzten handgeschriebenen Nummern 2026-09-08 09:52:41 +02:00
fundament.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
graphen.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
handelsmaschine.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
lp.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
markowitz.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
mehrziel.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
metaheuristiken.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
milp.ipynb Phase 6.3: Parallelitaet und Determinismus - gemessen statt behauptet 2026-09-08 11:19:53 +02:00
modellierung.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
oekosystem.ipynb Phase 8.2: Solver-Isolation ohne subprocess-Codestrings 2026-09-08 12:39:34 +02:00
praxisfallen.ipynb Phase 8.2: Solver-Isolation ohne subprocess-Codestrings 2026-09-08 12:39:34 +02:00
prognose.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
qp-nlp.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
supplychain.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00
testing.ipynb Phase 8.2: Solver-Isolation ohne subprocess-Codestrings 2026-09-08 12:39:34 +02:00
unsicherheit.ipynb Phase 6.1: Chance Constraints - die Zusage "mit 95 % Sicherheit" 2026-09-08 01:57:19 +02:00
vorwort.ipynb Version 04 als eigenes Repository 2026-09-08 01:20:09 +02:00