Product documentation — installation, licensing, and integration guides.
SolvJump Configurator
Examples
08 Adaptive search and evidence

Journey 08 — Adaptive search and evidence

Adaptive search (--strategy adaptive) when jump is untrusted: budgeted full SolvSRK integrations plus evidence artifacts you can audit with solvjump evidence.

Prerequisites: Journey 07 — ranked mission study completed (or equivalent session). Scenario: Variant: battery | 128-point drone envelope, 25% SRK budget

Key APIs

  • solvjump run study.yaml --strategy adaptive
  • solvjump evidence
  • MFBO / adaptive path
  • EvidenceStore

Concepts to internalize

  • adaptive strategy — no jump calibration; ~budget_frac of grid at full SolvSRK; finalists are SRK truth.
  • Evidence store — per-study calibration and gate receipts; solvjump evidence lists them (no evidence list subcommand).
  • When to choose adaptive — large grids, refused operators, or certification requires SRK ground truth on every finalist.
  • Variant tours — Brusselator or satellite narratives available in the guided script.

Important code

The guided tour script wraps this pattern. Copy the production shape into your pipeline:

solvjump run examples/battery_mission_study_adaptive.yaml --strategy adaptive
solvjump evidence

Act-by-act walkthrough

Act 1 — Why adaptive exists

Jump is fast only when holdout + rollout pass. Adaptive skips calibration: it integrates ~budget_frac of the grid at full SolvSRK. Finalists are SRK-native — no separate rank-verify pass. CLI: --strategy adaptive.

Act 2 — YAML knobs

sweep.strategy, budget_frac, top_k, acquisition, history_mode. CLI --strategy overrides YAML.

Act 3 — Run

Study: battery_mission_study_adaptive.yaml

Study definition

FieldValueNotes
model<product-root>\python\examples\battery_mission_model.py:make_rhs
dynamics_paramspayload_kg in [0, 0.8], temp_C in [-10, 40], headwind_mps in [0, 12], pack_cycles in [0, 400]
y0[1.0, 0.0, 0.0, 0.0, 0.35]
t_span[0.0, 2700.0]
modeauto
calibration_seeds20

Operator routing, calibration & sweep (3 steps)

FieldValueNotes
grid_points128
budget_frac0.25
top_k10
acquisitionauto
history_modeauto

Multi-fidelity BO search

FieldValueNotes
acquisitionlcb
integrated20/81 (25% budget)
rounds5
historymode=auto supplied=0 trust=None
best_scalar-0.5905953484532385Authoritative deliverable: finalists_ground_truth_top25.csv (SRK ground truth from adaptive search — use this for HPC handoff)
  • Adaptive finalists are SRK-intrinsic (each is a full-SolvSRK solve) - no separate rank verification needed

Act 4 — Evidence store

There is no solvjump evidence list subcommand. Bare solvjump evidence lists families. Pass a YAML to count one family. History warm-starts the next adaptive run.

  • Stored families (1):

  • 8a384ff3f2c515e2: 19 observation(s)

FieldValueNotes
this_family8a384ff3f2c515e2
observations19

Act 5 — What to tell the customer

Every row in finalists_ground_truth_topN.csv is a real full-SolvSRK integration.

Why run SolvJump here?

  • Get a ranked shortlist when jump calibration is unavailable or untrusted.

  • Every finalist is a real full-SolvSRK integration — no separate verify pass needed.

  • Search 81 scenarios by integrating a budgeted sample, not the full grid blindly.

  • Full SolvSRK on ~25% of the grid instead of every point — ranking stays integration-native.

Guided tour output

Verified console capture from 08_adaptive_and_evidence.py:

Variant: battery | 128-point drone envelope, 25% SRK budget

-- Act 1 - Why adaptive exists --
  -> Jump is fast only when holdout + rollout pass. Adaptive skips calibration: it integrates ~budget_frac of the grid at full SolvSRK. Finalists are SRK-native — no separate rank-verify pass. CLI: --strategy adaptive.

-- Act 2 - YAML knobs --
  -> sweep.strategy, budget_frac, top_k, acquisition, history_mode. CLI --strategy overrides YAML.

-- Act 3 - Run --
  -> Study: battery_mission_study_adaptive.yaml
  _section: Study definition
  model: <product-root>\python\examples\battery_mission_model.py:make_rhs
  dynamics_params: payload_kg in [0, 0.8], temp_C in [-10, 40], headwind_mps in [0, 12], pack_cycles in [0, 400]
  y0: [1.0, 0.0, 0.0, 0.0, 0.35]
  t_span: [0.0, 2700.0]
  mode: auto
  calibration_seeds: 20
  _section: Operator routing, calibration & sweep (3 steps)
  grid_points: 128
  budget_frac: 0.25
  top_k: 10
  acquisition: auto
  history_mode: auto
  _section: Multi-fidelity BO search
  acquisition: lcb
  integrated: 20/81 (25% budget)
  rounds: 5
  history: mode=auto supplied=0 trust=None
  best_scalar: -0.5905953484532385
  -> Authoritative deliverable: finalists_ground_truth_top25.csv (SRK ground truth from adaptive search — use this for HPC handoff)
  log: Adaptive finalists are SRK-intrinsic (each is a full-SolvSRK solve) - no separate rank verification needed

-- Act 4 - Evidence store --
  -> There is no `solvjump evidence list` subcommand. Bare `solvjump evidence` lists families. Pass a YAML to count one family. History warm-starts the next adaptive run.
  log: Stored families (1):
  log: 8a384ff3f2c515e2: 19 observation(s)
  this_family: 8a384ff3f2c515e2
  observations: 19

-- Act 5 - What to tell the customer --
  -> Every row in finalists_ground_truth_topN.csv is a real full-SolvSRK integration.
  _section: Why run SolvJump here?
  log: Get a ranked shortlist when jump calibration is unavailable or untrusted.
  log: Every finalist is a real full-SolvSRK integration — no separate verify pass needed.
  log: Search 81 scenarios by integrating a budgeted sample, not the full grid blindly.
  log: Full SolvSRK on ~25% of the grid instead of every point — ranking stays integration-native.

-- Run complete --
  session_id: <session_id>
  results_folder: <session-dir>
  points_completed: 19 ok, 0 skipped (of 19)
  search_method: smart search (sampled full SolvSRK points)
  this_run: 11080.4 ms
  vs_full_SolvSRK_on_every_study_point: ~44876 ms for all 81 points in this study (extrapolated from 20 sampled points — not a larger search)
  receipt_sweep: <session-dir>\sweep_receipt.json
  receipt_finalists: <session-dir>\finalists_ground_truth_top25.csv
  mission_criteria: SOC >= 20%, V >= 18 V, thermal limits after 45 min delivery profile
  pass_count: 19/19 Monte Carlo samples
  fail_count: 0
  -- What happened --
  -- Act 4 - Evidence store --
  this_family: 8a384ff3f2c515e2
  observations: 19
  -- Act 5 - What to tell the customer --
  -- Why run SolvJump here? --
  -- Run complete --
  session_id: <session_id>
  results_folder: <session-dir>
  points_completed: 19 ok, 0 skipped (of 19)
  search_method: smart search (sampled full SolvSRK points)
  this_run: 11080.4 ms
  vs_full_SolvSRK_on_every_study_point: ~44876 ms for all 81 points in this study (extrapolated from 20 sampled points — not a larger search)
  receipt_sweep: <session-dir>\sweep_receipt.json
  receipt_finalists: <session-dir>\finalists_ground_truth_top25.csv

Run it

cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/08_adaptive_and_evidence.py
 
# Production one-liner — same API call you ship:
solvjump run examples/battery_mission_study_adaptive.yaml --strategy adaptive

What comes next

Journey 09 threads SolvTune objectives into the run CLI.

Navigation

← Journey 07 — Ranked mission envelope · Journey 09 — SolvTune objective →