Exportaciones de análisis
dispatchatlas.analytica convierte repositorios de campañas completadas en
resúmenes estadísticos, figuras deterministas, paquetes de evidencia y conjuntos de
datos listos para el portal. El paquete consume manifiestos JSON estables y no
importa el tiempo de ejecución de la campaña.
Ejemplo ejecutable: examples/analyze_results.py resume un conjunto de resultados con estadística no paramétrica, tamaños de efecto, intervalos de confianza, tablas deterministas y figuras de doble formato.
📥 Entradas
El cargador de análisis espera un directorio de campaña que contenga:
checkpoint.jsoncon ids de ejecuciones completadas, fallidas y pendientes.plan.jsoncon el orden de ejecución y las etiquetas de divulgación.environment.jsoncon datos de entorno no secretos.results/*.jsonfilas de ejecuciones completadas.failures/*.jsonfilas de intentos fallidos cuando estén presentes.
Puntos de control, hashes de contenido, valores de objetivo o etiquetas de divulgación faltantes hacen fallar la ingestión antes de que el análisis empiece.
📊 Métodos estadísticos
Un registro de métodos con nombre declara cada método de análisis con sus supuestos de datos, su regla de muestra mínima, su modo de fallo y su nivel de evidencia más bajo. Cada método inferencial e indicador de calidad requiere al menos 30 ejecuciones independientes por celda estocástica solver-instancia; una muestra bajo-el-piso se enruta a la superficie de limitaciones en lugar de producir un resultado inválido.
Para cada objetivo, la capa de resumen reporta conteos de solver, conteos factibles, media, mediana, desviación estándar, intervalos de confianza por bootstrap corregido-por-sesgo y acelerado (BCa), la prueba de Wilcoxon de rangos con signo con los tamaños de efecto A12 de Vargha-Delaney y delta de Cliff para comparación por pares, la prueba ómnibus de Friedman con un post-hoc de diferencia-crítica de Nemenyi sobre el campo multi-solver, corrección de Holm o Hochberg sobre la familia por pares, y rangos promedio por problema de benchmark. Los frentes multi-objetivo además reportan los indicadores de calidad hipervolumen (primario), IGD+, epsilon-indicador aditivo y dispersión.
El objetivo por defecto es makespan con semántica de minimización. La prueba de
Wilcoxon usa la distribución nula exacta para muestras pequeñas sin empates y la
aproximación normal corregida-por-empates en caso contrario. Los intervalos de
confianza usan remuestreo bootstrap determinista con una semilla registrada;
describen la muestra de campaña observada y no son por sí solos afirmaciones de
campaña completa.
Junto a la prueba de signo bayesiana de forma cerrada, bayesian_signed_rank_test
extrae una posterior de proceso de Dirichlet sembrada sobre los promedios de Walsh
de las diferencias emparejadas, de modo que las métricas continuas obtienen la
comparación bayesiana consciente de la magnitud de Benavoli, Corani, Demšar y
Zaffalon (2017); la prueba de signo sigue siendo el valor por defecto de forma
cerrada. La familia de comparación múltiple añade el procedimiento estático
descendente de Shaffer, que explota las restricciones lógicas de una familia
completa de comparación todos-contra-todos y falla en cerrado sobre una parcial
(Shaffer 1986), y el ajuste descendente de Finner, una ganancia de potencia más
simple que acepta cualquier familia (Finner 1993); Holm sigue siendo el valor por
defecto configurado. La desviación porcentual relativa se suma a los métodos de
brecha-de-optimalidad: arpd_rows puntúa cada ejecución factible contra un valor de
referencia mejor-conocido suministrado por quien llama con procedencia explícita, y
ensure_equal_budgets verifica el protocolo de presupuesto-igual escalado-con-el-tamaño
que hay detrás — un presupuesto idéntico por problema entre solvers, con presupuestos
libres de crecer con el tamaño de instancia (Vallada, Ruiz y Framiñan 2015). Las
comparaciones de hipervolumen multi-objetivo archivan su punto de referencia
compartido: multiobjective_indicator_report deriva el punto bajo una regla con
nombre — el valor por defecto de fracción-de-margen o el escalado ishibuchi-h —
registra el ideal, el nadir, la regla, el parámetro y un vocabulario de procedencia
que falla en cerrado en un ReferencePointRecord, y ensure_shared_reference_points
se niega a comparar artefactos cuyos puntos archivados difieren (Ishibuchi, Imada,
Setoguchi y Nojima 2018; el desplazamiento publicado exacto permanece marcado como
APPROXIMATE a la espera del texto completo revisado por el operador). Una regla
estricta guarda cada tabla exportada: un valor-p nunca se envía sin un tamaño de
efecto y un intervalo a su lado. ensure_effect_sizes_beside_p_values verifica las
cabeceras dentro de los constructores de tablas y de nuevo en el momento de escritura
del paquete, fallando en cerrado ante cualquier columna de significancia desnuda
(Carrasco, García, Rueda, Das y Herrera 2020).
🖼️ Figuras y tablas
Los paquetes de evidencia incluyen tablas Markdown para resúmenes de solvers,
comparaciones por pares, rankings, cobertura de benchmarks y filas infactibles. Las
figuras SVG llevan metadatos accesibles title y desc para barras de ranking,
perfiles de rendimiento, tendencias de objetivo por orden de ejecución, el diagrama
de diferencia-crítica de Nemenyi, compromisos tiempo-calidad, trayectorias de
convergencia, el balance exploración-explotación, escalabilidad de tiempo de
ejecución por tamaño de instancia, estabilidad de semilla (coeficiente de
variación), robustez (riesgo de cola CVaR) y caracterización de benchmarks. Un
manifiesto de figuras registra el rol, la procedencia y la nota de accesibilidad de
cada figura. Las figuras que dependen de diagnósticos que una campaña no registró
(tiempo de ejecución, traza de convergencia, diversidad de población, escala de
instancia) o de múltiples semillas (estabilidad de semilla) renderizan un aviso de
limitaciones. Un supplement/limitations.md recopila todo método enrutado a
limitaciones.
Volver a ejecutar la misma exportación contra las mismas entradas produce las mismas cargas útiles JSON, de tabla y de figura.
El perfil de rendimiento de Dolan-Moré viaja con su compañero de Moré-Wild:
data_profile_svg y data_profile_tex grafican la fracción de celdas (solver,
problema) resueltas a una precisión objetivo dentro de un presupuesto de grupos de
evaluación — la adaptación a grupos-de-evaluación de la unidad de gradiente-simplex —
a partir de las mismas trazas de convergencia que consumen las figuras de
convergencia, y un conjunto de datos sin trazas se enruta a la figura de
limitaciones. Los perfiles de rendimiento que comparan más de dos solvers llevan una
advertencia de interpretación en ambas formas de salida: un perfil clasifica cada
solver solo contra el mejor por problema, de modo que el orden relativo de los
solvers no-mejores no queda implicado (Gould y Scott 2016).
⚖️ Comparación de plataformas
Las exportaciones de comparación de plataformas renderizan filas de capacidad de
frameworks rivales, una matriz de cobertura de riqueza-de-características, una
evaluación de puente de brecha-con-la-realidad y filas de inspección de artefactos.
Cada fila lleva una etiqueta de fuente-de-evidencia (documented, measured,
artifact-inspected, vendor-claim o unsupported), y cualquier fila no soportada
se enruta a una superficie de limitaciones-y-trabajo-futuro. La exportación lleva
una línea de guarda permanente: las tablas comparan capacidades, características y
artefactos de plataforma, y no son afirmaciones de rendimiento directas — la
evidencia de rendimiento vive en las exportaciones de análisis estadístico.
🥊 Carril de comparación cara a cara
El carril cara a cara compara un solver focal contra una cohorte base con nombre usando las mismas pruebas no paramétricas con nombre, orienta cada fila hacia el solver focal, y condiciona una afirmación de vence-a-la-cohorte a que el solver focal mantenga el mejor rango promedio y gane cada comparación por pares al nivel de significancia corregido con el tamaño de efecto a su favor. Constructores de tablas de complejidad-algorítmica y de amenazas-a-la-validez de constructo/internas/externas acompañan el carril para el consumo en informes.
🔒 Política de divulgación
Las exportaciones se filtran a través de políticas de divulgación ejecutables:
corepermite solo evidencia central/pública.speedpermite evidencia central, de velocidad y pública.qualitypermite evidencia central, de velocidad, de calidad y pública.platformpermite evidencia de plataforma mientras sigue bloqueando fuente redactada y términos de narrativa-obsoleta.
Las filas prohibidas se excluyen de la evidencia y de los conjuntos de datos del portal y se escriben en un manifiesto de exclusiones suplementario con el motivo.
🗂️ Disposición del paquete
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 lista cada archivo generado y hashea la carga útil canónica del
manifiesto, de modo que cada tabla, figura y suplemento permanece dentro de un
único manifiesto rastreado y direccionado-por-contenido.
⌨️ Comando
uv run dispatchatlas export `
--campaign-dir .\experiments\results\smoke-pilot `
--target-dir .\exports\smoke-pilot `
--authorized-output-root .\exports `
--tier core `
--objective makespan `
--portalEl comando escribe un paquete de evidencia más un conjunto de datos del portal
opcional. El paquete de evidencia incluye tablas, figuras y exclusiones
suplementarias. El JSON del portal incluye etiquetas buscables, etiquetas de
divulgación, valores de objetivo, ids de ejecución y metadatos de campaña enlazados
por hash. --target-dir debe resolverse dentro de --authorized-output-root; la
raíz autorizada por defecto es el directorio de trabajo actual.
Ejecuta uv run dispatchatlas export --help para descripciones de opciones y
ejemplos. Los errores de entrada en tiempo de ejecución imprimen un mensaje de
recuperación por defecto; pasa --debug antes del subcomando cuando se necesite un
traceback de Python para el desarrollo.
📝 Andamiajes de informe
La capa de análisis también convierte un paquete de evidencia filtrado por
divulgación en un andamiaje de informe determinista por nivel de evidencia. Un
ReportScaffoldSpec declara la afirmación de contribución, la justificación de
diseño y las puertas de afirmación; write_report_scaffold escribe el paquete de
evidencia más un plan de secciones comprehensivo, una afirmación de contribución, un
libro mayor de puertas-de-afirmación, y un informe de redacción bajo report/. Cada
sección se ancla a un artefacto de evidencia filtrado, y el andamiaje generado se
escanea de modo que un mecanismo de nivel posterior o un marcador interno restringido
hace fallar la escritura en cerrado.
Las puertas de afirmación fallan en cerrado: una afirmación a nivel de diseño se abre
incondicionalmente, mientras que una afirmación comparativa permanece cerrada hasta
que una comparación cara a cara venza a la cohorte con cada conteo emparejado en o
por encima del piso de potencia estadística. Una contribution_partition sobre los
niveles de evidencia prueba una contribución de solapamiento-cero por nivel, y
redaction_report acepta un registro suministrado por la persona llamante de modo
que un borrador no-público pueda comprobarse sin que ese registro entre nunca en la
fuente publicada.
uv run dispatchatlas report `
--campaign-dir .\experiments\results\smoke-pilot `
--target-dir .\scaffolds\smoke-pilot `
--authorized-output-root .\scaffolds `
--tier core