Skip to content

autotuning

Autotuning functions for SCP (Successive Convex Programming) parameters.

update_scp_weights(state: SolverState, settings: Config, scp_k: int)

Update SCP weights and cost parameters based on iteration number.

Parameters:

Name Type Description Default
state SolverState

Solver state containing current weight values (mutated in place)

required
settings Config

Configuration object containing adaptation parameters

required
scp_k int

Current SCP iteration number

required
Source code in openscvx/algorithms/autotuning.py
def update_scp_weights(state: "SolverState", settings: Config, scp_k: int):
    """Update SCP weights and cost parameters based on iteration number.

    Args:
        state: Solver state containing current weight values (mutated in place)
        settings: Configuration object containing adaptation parameters
        scp_k: Current SCP iteration number
    """
    # Update trust region weight in state
    state.w_tr = min(state.w_tr * settings.scp.w_tr_adapt, settings.scp.w_tr_max)

    # Update cost relaxation parameter after cost_drop iterations
    if scp_k > settings.scp.cost_drop:
        state.lam_cost = state.lam_cost * settings.scp.cost_relax