Tabu Search How-to =================== The Tabu Search prototype provides an alternative to simulated annealing for diversification-heavy workloads. Basic Usage ----------- .. code-block:: bash fhops solve-tabu examples/tiny7/scenario.yaml \ --out tmp/tiny7_tabu.csv \ --iters 2000 --tabu-tenure 20 --stall-limit 300 \ --batch-neighbours 4 --parallel-workers 4 \ --telemetry-log tmp/tabu_runs.jsonl Key options: ``--tabu-tenure`` Length of the tabu list. ``0`` (default) picks ``max(10, #machines)``. ``--stall-limit`` Maximum number of non-improving iterations before terminating early. ``--batch-neighbours`` / ``--parallel-workers`` Reuse the batched neighbour evaluation infrastructure from SA. Defaults keep sequential scoring. Telemetry --------- Telemetry records mirror SA entries but add ``tabu_tenure`` and ``stall_limit`` fields. Multi-start telemetry currently applies only to SA; Tabu emits a single record per run. Benchmarks ---------- Refer to ``tmp/tabu_bench/summary.csv`` (generated via ``fhops bench suite --include-tabu``) and ``tmp/sa_batch_profile_long.csv`` for the latest profiling data. In current runs (tiny7/med42/large84, 500 iterations) Tabu lags behind SA, so the solver remains opt-in until further tuning.