id: regional_coverage_cp_local_search
benchmark: regional_coverage
solver: cp_local_search
solver_path: solvers/regional_coverage/cp_local_search
evidence_type: reproduced_solver
method_role: promoted_reproduction
runnable: true
setup_script: setup.sh
solve_script: solve.sh
solution_filename: solution.json
aggregate_metrics:
  - name: coverage_ratio
    source: verifier.metrics.coverage_ratio
  - name: weighted_coverage_ratio
    source: verifier.metrics.weighted_coverage_ratio
  - name: num_actions
    source: verifier.metrics.num_actions
  - name: min_battery_wh
    source: verifier.metrics.min_battery_wh
  - name: solver_timing_total_s
    source: solver_status.timing_seconds.total
config:
  candidate_stride_s: 60
  roll_samples_per_side: 9
  max_candidates_per_satellite: 50000
  include_zero_coverage_candidates: false
  candidate_debug_limit: 500
  candidate_workers: 8
  cp_enabled: true
  cp_backend: ortools_cp_sat
  cp_repair_mode: fixed_start_subset
  cp_max_calls: 128
  cp_max_candidates: 12
  cp_max_conflicts: 4096
  cp_time_limit_s: 0.35
  search_restart_count: 30
  search_run_seeds:
    - 0
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    - 10
    - 11
    - 12
    - 13
    - 14
    - 15
    - 16
    - 17
    - 18
    - 19
    - 20
    - 21
    - 22
    - 23
    - 24
    - 25
    - 26
    - 27
    - 28
    - 29
  greedy_random_choice_probability: 0.05
  local_search_enabled: true
  local_search_neighborhood_mode: legacy
  local_search_max_iterations: 10
  local_search_wall_time_limit_s: 12.0
  local_search_max_neighborhoods_per_iteration: 96
  local_search_max_neighborhood_candidates: 80
  local_search_randomize_neighborhood_order: true
  opportunity_grouping_enabled: false
cases:
  - id: test/case_0001
    case_dir: benchmarks/regional_coverage/dataset/cases/test/case_0001
  - id: test/case_0002
    case_dir: benchmarks/regional_coverage/dataset/cases/test/case_0002
  - id: test/case_0003
    case_dir: benchmarks/regional_coverage/dataset/cases/test/case_0003
  - id: test/case_0004
    case_dir: benchmarks/regional_coverage/dataset/cases/test/case_0004
  - id: test/case_0005
    case_dir: benchmarks/regional_coverage/dataset/cases/test/case_0005
verifier:
  command:
    - uv
    - run
    - python
    - benchmarks/regional_coverage/verifier.py
    - "{case_dir}"
    - "{solution_path}"
