Tabu Search How-to
The Tabu Search prototype provides an alternative to simulated annealing for diversification-heavy workloads.
Basic Usage
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-tenureLength of the tabu list.
0(default) picksmax(10, #machines).--stall-limitMaximum number of non-improving iterations before terminating early.
--batch-neighbours/--parallel-workersReuse 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.