Zum Inhalt springen
DispatchAtlas
Suchen

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.json mit ids abgeschlossener, fehlgeschlagener und ausstehender Läufe.
  • plan.json mit Laufreihenfolge und Offenlegungslabels.
  • environment.json mit nicht-geheimen Umgebungsfakten.
  • results/*.json Zeilen abgeschlossener Läufe.
  • failures/*.json Zeilen 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:

  • core erlaubt nur zentrale/öffentliche Belege.
  • speed erlaubt zentrale, Geschwindigkeits- und öffentliche Belege.
  • quality erlaubt zentrale, Geschwindigkeits-, Qualitäts- und öffentliche Belege.
  • platform erlaubt 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.md

bundle.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 `
  --portal

Der 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