Basin-Aware Hysteresis Guard / README.md

✓✓ Beats tuned baseline

Raw ⬇ ZIP

Basin-Aware Hysteresis Guard MVP

basin_guard_experiment.py verifies the proposed mechanism on the tilted double-well flow

[ \dot x=x-x^3+u. ]

The positive equilibrium is the desired branch. The script uses deterministic seeds and vectorized RK4 integration, and writes results.json.

Quantitative predictions tested

  1. Saddle-node boundary: solving F=0 and dF/dx=0 predicts u_c = 2/(3 sqrt(3)) = 0.38490018; a root-count sweep should locate the three-root boundary at the same value.
  2. Local stability is not global recovery: for every 0 <= u < u_c, the positive branch has J=1-3x^2<0 while negative stable and saddle branches coexist. The sweep reports the branch Jacobians and root multiplicity.
  3. Finite basin scaling: at u=0, the desired equilibrium is x0=1 and the separatrix is x=0. For Gaussian perturbations x0+epsilon*z, basin membership predicts B=Phi(1/epsilon). The empirical sweep tests this scaling over six perturbation amplitudes.

Result

The first three mechanism checks pass numerically. In the finite-horizon controller comparison, threshold-only release has failure rate 0.1433 and the guard has failure rate 0.2000, with guard release rate 0.0. This is not evidence of the promised practical win: multiplying this scalar vector field by damping changes time scale but not the asymptotic basin boundary. The result therefore supports the paper's distinction but does not establish that this particular intervention improves recovery.

Run:

/home/maxwelhelp/main/bin/python3 basin_guard_experiment.py