Dual Ascent#
Dual-Ascent Lagrangian Wrapper#
Treats Consistency and Coherence as inequality constraints and performs dual ascent on their Lagrange multipliers. Useful when you want guarantees on constraint violations instead of fixed weights.
Primal update comes from a base optimizer (e.g., FD/SPSA/Adam).
- Interface:
initialize(params) -> state
step_params(model, params, context) -> (new_params, state)
- Context:
- context[“evaluate”](model, params, context) -> dict with keys:
{“task”: float, “cons”: float, “coh”: float, “total”: float, “info”: dict}
bounds: pass at construction time (cons_bound, coh_bound)