.. AUTO-GENERATED from heuristics_matrix.csv -- do not edit directly.

+=============================+=================+=============================================================+=============================================================================+=========================================================================================================================================================+
| solver                      | default_profile | search_strategy                                             | best_for                                                                    | tuning_notes                                                                                                                                            |
+=============================+=================+=============================================================+=============================================================================+=========================================================================================================================================================+
| Simulated Annealing (SA)    | balanced        | Probabilistic move/swap neighbourhood with cooling schedule | Small-to-medium bundles needing quick feasible schedules                    | Use --sa-iters 2500+ for med42; --compare-preset diversify exposes swap-heavy exploration, while mobilisation preset biases toward distance-aware moves |
+-----------------------------+-----------------+-------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| SA (mobilisation preset)    | mobilisation    | Adds mobilisation_shake and higher landing penalties        | Scenarios with tight landing caps or long walk thresholds                   | Pair with --compare-preset mobilisation plus lower --sa-iters to highlight mobilisation shake vs. default                                               |
+-----------------------------+-----------------+-------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Iterated Local Search (ILS) | ils_default     | Deterministic restart loop wrapping greedy local search     | Fine-tuning SA solutions on bounded horizons (<=150 assignments)            | Expose --include-ils with ~400 iterations; set --ils-batch-neighbours 4 when CPU budget allows                                                          |
+-----------------------------+-----------------+-------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Tabu Search                 | tabu_default    | Short-term memory over swap/move neighbourhood              | High-mobility cases (synthetic tier) where aggressive diversification helps | --tabu-iters 2500 plus automatic tenure delivered best synthetic_small runs; capture telemetry for objective trace                                      |
+-----------------------------+-----------------+-------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
