Analyse-Exporte
dispatchatlas.analytica verwandelt abgeschlossene Kampagnen-Repositorys in
statistische Zusammenfassungen, deterministische Abbildungen, Belegpakete und
portal-fertige Datensätze. Das Paket konsumiert stabile JSON-Manifeste und importiert
das Kampagnen-Runtime nicht.
Ausführbares Beispiel: examples/analyze_results.py fasst eine Ergebnismenge mit nicht-parametrischer Statistik, Effektgrößen, Konfidenzintervallen, deterministischen Tabellen und Doppelformat-Abbildungen zusammen.
📥 Eingaben
Der Analyse-Loader erwartet ein Kampagnenverzeichnis, das enthält:
checkpoint.jsonmit ids abgeschlossener, fehlgeschlagener und ausstehender Läufe.plan.jsonmit Laufreihenfolge und Offenlegungslabels.environment.jsonmit nicht-geheimen Umgebungsfakten.results/*.jsonZeilen abgeschlossener Läufe.failures/*.jsonZeilen fehlgeschlagener Versuche, sofern vorhanden.
Fehlende Prüfpunkte, Inhalts-Hashes, Zielwerte oder Offenlegungslabels lassen die Ingestion scheitern, bevor die Analyse beginnt.
📊 Statistische Methoden
Eine benannte Methoden-Registry deklariert jede Analysemethode mit ihren Datenannahmen, ihrer Mindeststichproben-Regel, ihrem Fehlermodus und ihrer niedrigsten Belegstufe. Jede inferentielle Methode und jeder Qualitätsindikator erfordert mindestens 30 unabhängige Läufe pro stochastischer Solver-Instanz-Zelle; eine Stichprobe unter dem Boden wird zur Limitationsoberfläche geroutet, statt ein ungültiges Ergebnis zu produzieren.
Für jedes Ziel berichtet die Zusammenfassungsschicht Solver-Zähler, machbare Zähler, Mittelwert, Median, Standardabweichung, bias-korrigierte und beschleunigte (BCa) Bootstrap-Konfidenzintervalle, den Wilcoxon-Vorzeichen-Rang-Test mit den Effektgrößen A12 von Vargha-Delaney und Cliffs Delta für den paarweisen Vergleich, den Friedman-Omnibustest mit einem Nemenyi-Critical-Difference-Post-hoc über das Multi-Solver-Feld, Holm- oder Hochberg-Korrektur über die paarweise Familie und Durchschnittsränge je Benchmark-Problem. Mehrziel-Fronten berichten zusätzlich die Qualitätsindikatoren Hypervolumen (primär), IGD+, additiver Epsilon-Indikator und Streuung.
Das Standardziel ist makespan mit Minimierungssemantik. Der Wilcoxon-Test verwendet
die exakte Nullverteilung für kleine bindungsfreie Stichproben und sonst die
bindungskorrigierte Normalapproximation. Konfidenzintervalle verwenden
deterministisches Bootstrap-Resampling mit einem aufgezeichneten Seed; sie
beschreiben die beobachtete Kampagnenstichprobe und sind für sich allein keine
Vollkampagnen-Aussagen.
Neben dem geschlossen-form Bayes'schen Vorzeichentest zieht
bayesian_signed_rank_test eine seed-gesteuerte Dirichlet-Prozess-Posteriori
über die Walsh-Mittel der gepaarten Differenzen, sodass kontinuierliche
Metriken den magnitudenbewussten Bayes'schen Vergleich von Benavoli, Corani,
Demšar und Zaffalon (2017) erhalten; der Vorzeichentest bleibt der
geschlossen-form Standard. Die Mehrfachvergleichsfamilie ergänzt Shaffers
statische Step-down-Prozedur, die die logischen Einschränkungen einer
vollständigen Allpaar-Vergleichsfamilie ausnutzt und bei einer partiellen
Familie schließend fehlschlägt (Shaffer 1986), sowie Finners
Step-down-Anpassung, ein einfacherer Leistungsgewinn, der jede Familie
akzeptiert (Finner 1993); Holm bleibt der konfigurierte Standard. Die relative
prozentuale Abweichung tritt den Optimalitätslücken-Methoden bei: arpd_rows
bewertet jeden machbaren Lauf gegen einen vom Aufrufer gelieferten
Best-known-Referenzwert mit expliziter Provenienz, und ensure_equal_budgets
verifiziert das größenskalierte Gleichbudget-Protokoll dahinter — ein
identisches Budget je Problem über alle Solver, wobei Budgets frei mit der
Instanzgröße wachsen dürfen (Vallada, Ruiz und Framiñan 2015).
Mehrziel-Hypervolumen-Vergleiche archivieren ihren geteilten Referenzpunkt:
multiobjective_indicator_report leitet den Punkt nach einer benannten Regel
ab — dem Margin-Fraction-Standard oder der ishibuchi-h-Skalierung —, zeichnet
das Ideal, den Nadir, die Regel, den Parameter und ein schließend fehlschlagendes
Provenienz-Vokabular in einem ReferencePointRecord auf, und
ensure_shared_reference_points verweigert den Vergleich von Artefakten, deren
archivierte Punkte sich unterscheiden (Ishibuchi, Imada, Setoguchi und Nojima
2018; der exakte publizierte Offset bleibt als APPROXIMATE markiert, bis der
Volltext vom Operator geprüft ist). Eine harte Regel schützt jede exportierte
Tabelle: ein p-Wert wird nie ohne eine Effektgröße und ein Intervall daneben
ausgeliefert. ensure_effect_sizes_beside_p_values prüft die Kopfzeilen
innerhalb der Tabellenbauer und erneut zum Zeitpunkt des Paketschreibens und
schlägt bei jeder nackten Signifikanzspalte schließend fehl (Carrasco, García,
Rueda, Das und Herrera 2020).
🖼️ Abbildungen und Tabellen
Belegpakete enthalten Markdown-Tabellen für Solver-Zusammenfassungen, paarweise
Vergleiche, Rangfolgen, Benchmark-Abdeckung und infeasible Zeilen. SVG-Abbildungen
tragen barrierefreie title- und desc-Metadaten für Rangbalken, Performance-Profile,
Ziel-Trends nach Laufreihenfolge, das Nemenyi-Critical-Difference-Diagramm,
Laufzeit-Qualitäts-Kompromisse, Konvergenztrajektorien, die
Exploration-Exploitation-Balance, Laufzeit-Skalierbarkeit nach Instanzgröße,
Seed-Stabilität (Variationskoeffizient), Robustheit (CVaR-Schwanzrisiko) und
Benchmark-Charakterisierung. Ein Abbildungsmanifest hält Rolle, Provenienz und
Barrierefreiheitshinweis jeder Abbildung fest. Abbildungen, die von Diagnosen
abhängen, die eine Kampagne nicht aufgezeichnet hat (Laufzeit, Konvergenzspur,
Populationsdiversität, Instanzgröße), oder von mehreren Seeds (Seed-Stabilität),
rendern einen Limitationshinweis. Ein supplement/limitations.md sammelt jede zur
Limitation geroutete Methode.
Den gleichen Export gegen die gleichen Eingaben erneut auszuführen erzeugt die gleichen JSON-, Tabellen- und Abbildungs-Nutzlasten.
Das Dolan-Moré-Performance-Profil reist mit seinem Moré-Wild-Begleiter:
data_profile_svg und data_profile_tex zeichnen den Anteil der (Solver,
Problem)-Zellen, die innerhalb eines Budgets an Auswertungsgruppen — der
Auswertungsgruppen-Adaption der Simplex-Gradienten-Einheit — auf eine
Zielgenauigkeit gelöst wurden, aus denselben Konvergenzspuren, die die
Konvergenzabbildungen konsumieren, und ein Datensatz ohne Spuren wird zur
Limitationsabbildung geroutet. Performance-Profile, die mehr als zwei Solver
vergleichen, tragen in beiden Ausgabeformen einen Interpretationsvorbehalt: ein
Profil rangiert jeden Solver nur gegen das problemweise Beste, sodass die
relative Reihenfolge der nicht-besten Solver nicht impliziert ist (Gould und
Scott 2016).
⚖️ Plattformvergleich
Die Plattformvergleichs-Exporte rendern Fähigkeitszeilen rivalisierender Frameworks,
eine Funktionsreichtums-Abdeckungsmatrix, eine Verteilungsabstands-Brückenbewertung und
Artefakt-Inspektionszeilen. Jede Zeile trägt ein Belegquelle-Label (documented,
measured, artifact-inspected, vendor-claim oder unsupported), und jede nicht
unterstützte Zeile wird zu einer Limitations-und-Zukunftsarbeit-Oberfläche geroutet.
Der Export trägt eine stehende Schutzzeile: die Tabellen vergleichen
Plattformfähigkeiten, -funktionen und -artefakte und sind keine direkten
Leistungsaussagen — Leistungsbelege leben in den statistischen Analyse-Exporten.
🥊 Kopf-an-Kopf-Vergleichsspur
Die Kopf-an-Kopf-Spur vergleicht einen fokalen Solver gegen eine benannte Baseline-Kohorte mit denselben benannten nicht-parametrischen Tests, orientiert jede Zeile zum fokalen Solver und gattet eine Schlägt-die-Kohorte-Aussage daran, dass der fokale Solver den besten Durchschnittsrang hält und jeden paarweisen Vergleich auf dem korrigierten Signifikanzniveau mit der Effektgröße zu seinen Gunsten gewinnt. Tabellenbauer für algorithmische Komplexität und Konstrukt-/interne/externe Bedrohungen-der-Validität begleiten die Spur für die Berichtsnutzung.
🔒 Offenlegungsrichtlinie
Exporte werden durch ausführbare Offenlegungsrichtlinien gefiltert:
coreerlaubt nur zentrale/öffentliche Belege.speederlaubt zentrale, Geschwindigkeits- und öffentliche Belege.qualityerlaubt zentrale, Geschwindigkeits-, Qualitäts- und öffentliche Belege.platformerlaubt Plattformbelege, während weiterhin geschwärzte Quelle und Veraltete-Narrative-Begriffe blockiert werden.
Verbotene Zeilen werden aus Belegen und Portal-Datensätzen ausgeschlossen und mit der Begründung in ein ergänzendes Ausschlussmanifest geschrieben.
🗂️ Paketlayout
evidence-bundle/
bundle.json
tables/
solver-summary.md
pairwise-comparisons.md
rankings.md
benchmarks.md
infeasible-rows.md
figures/
performance-profile.svg
solver-rankings.svg
run-order-trend.svg
critical-difference.svg
runtime-quality.svg
convergence.svg
characterization.svg
exploration-exploitation.svg
scalability.svg
stability.svg
robustness.svg
figure-manifest.json
supplement/
exclusions.json
limitations.mdbundle.json listet jede generierte Datei und hasht die kanonische
Manifest-Nutzlast, sodass jede Tabelle, Abbildung und Ergänzung innerhalb eines
einzigen verfolgten, inhaltsadressierten Manifests bleibt.
⌨️ Befehl
uv run dispatchatlas export `
--campaign-dir .\experiments\results\smoke-pilot `
--target-dir .\exports\smoke-pilot `
--authorized-output-root .\exports `
--tier core `
--objective makespan `
--portalDer Befehl schreibt ein Belegpaket plus einen optionalen Portal-Datensatz. Das
Belegpaket enthält Tabellen, Abbildungen und ergänzende Ausschlüsse. Das Portal-JSON
enthält durchsuchbare Tags, Offenlegungslabels, Zielwerte, Lauf-ids und
hash-verknüpfte Kampagnen-Metadaten. --target-dir muss sich innerhalb von
--authorized-output-root auflösen; die Standard-Autorisierungswurzel ist das
aktuelle Arbeitsverzeichnis.
Führe uv run dispatchatlas export --help für Optionsbeschreibungen und Beispiele
aus. Laufzeit-Eingabefehler drucken standardmäßig eine Wiederherstellungsnachricht;
übergib --debug vor dem Unterbefehl, wenn ein Python-Traceback für die Entwicklung
benötigt wird.
📝 Berichtsgerüste
Die Analyseschicht verwandelt zudem ein nach Offenlegung gefiltertes Belegpaket in ein
deterministisches Berichtsgerüst, indexiert nach Belegstufe. Ein ReportScaffoldSpec
deklariert die Beitragsaussage, die Designbegründung und die Aussage-Tore;
write_report_scaffold schreibt das Belegpaket plus einen umfassenden Abschnittsplan,
eine Beitragsaussage, ein Aussage-Tor-Hauptbuch und einen Schwärzungsbericht unter
report/. Jeder Abschnitt verankert sich an einem gefilterten Belegartefakt, und das
generierte Gerüst wird gescannt, sodass ein Mechanismus späterer Stufe oder ein
eingeschränkter interner Marker den Schreibvorgang schließend scheitern lässt.
Aussage-Tore schlagen schließend fehl: eine Designebene-Aussage öffnet bedingungslos,
während eine vergleichende Aussage geschlossen bleibt, bis ein Kopf-an-Kopf-Vergleich
die Kohorte mit jedem gepaarten Zähler auf oder über dem statistischen Leistungsboden
schlägt. Eine contribution_partition über die Belegstufen beweist einen Beitrag mit
Null-Überlappung je Stufe, und redaction_report akzeptiert ein vom Aufrufer
geliefertes Register, sodass ein nicht-öffentlicher Entwurf geprüft werden kann, ohne
dass dieses Register je in die ausgelieferte Quelle gelangt.
uv run dispatchatlas report `
--campaign-dir .\experiments\results\smoke-pilot `
--target-dir .\scaffolds\smoke-pilot `
--authorized-output-root .\scaffolds `
--tier core