Saltar a contenido

Ejecutar el proyecto

Requiere Java 25. Todos los comandos se lanzan desde la raíz del repositorio con el Maven Wrapper:

./mvnw verify               # compila y ejecuta los tests
./mvnw compile exec:java    # ejecuta todos los solvers sobre instances/legacy-20.json

Si Maven dice que la versión de Java no es válida

El build exige Java 25. Apunta JAVA_HOME a un JDK 25 antes de lanzar ./mvnw.

Línea de comandos

Los subcomandos se pasan con -Dexec.args="...", por ejemplo ./mvnw -q compile exec:java -Dexec.args="experiment experiments/smoke.yaml". help <subcomando> muestra todas sus opciones.

run y experiment ejecutan cada solver en su propia JVM, con un límite duro. Para depurar un algoritmo en la misma JVM, por ejemplo con puntos de interrupción, añade --in-process.

Subcomando Qué hace Ejemplo
run Ejecuta una vez cada solver registrado y muestra beneficio, GAP, evaluaciones y tiempo run --instance=instances/pisinger/subset-sum-n100-r1000-h50of100-s1.json --seed=7 --max-seconds=5
experiment Ejecuta un experimento definido en YAML y guarda sus resultados experiment experiments/smoke.yaml
summarize Regenera el resumen y la comparación estadística de una carpeta de resultados summarize results/smoke/20260916-180840
report Genera las páginas de resultados de esta web a partir de results/ report --results=results --output=docs/resultados
generate Genera una instancia de Pisinger y calcula su óptimo generate --class=strongly-correlated --items=200 --range=1000 --seed=3
suite Genera o comprueba (--check) las instancias de una suite suite --check instances/suite-v1/suite.yaml
optimum Calcula el óptimo exacto de instancias existentes y lo contrasta con el declarado optimum --write instances/legacy-20.json

Documentación en local

La web se construye con MkDocs Material. Las páginas de resultados no se guardan en git: las genera report.

python3 -m venv .venv && .venv/bin/pip install -r docs/requirements.txt
./mvnw -q compile exec:java -Dexec.args="report"
.venv/bin/mkdocs serve