Parameters

The main interface for running the solver is run_solver() function. It takes the following arguments:

  • input_args: Input arguments for the solver.

  • solver_args: Solver arguments for the solver.

  • compute_args: Compute arguments for the solver.

  • objective_args: Objective arguments for the solver.

  • mlflow_config: MLflow configuration for the solver.

Input Arguments

The input arguments are displayed in the following table.

Input Arguments

Is Required

Default Value

Description

A

true

N/A

Tensor A.

b

true

N/A

Tensor b.

C

true

N/A

Tensor C.

projection_maps

true

N/A

Projection maps.

Solver Parameters

The solver settings are displayed in the following table.

Solevr Arguments

Is Required

Default Value

Description

gamma

false

1E-3

Ridge regularization parameter.

max_iter

false

10000

Maximum number of iterations.

initial_step_size

false

1e-5

Initial step size for the solver.

max_step_size

false

0.1

Upper bound for the solver’s step size.

save_primal

false

false

Flag to save primal variable values at the solution.

initial_dual_path

false

None

Filepath to initialize dual variables for algorithm restarts (optional).

gamma_decay_type

false

None

Type of gamma decay. We currently support “none” and “step”.

gamma_decay_params

false

None

Parameters for gamma decay. For “step” type gamme decay, “decay_steps” and “decay_rate” are the tunable parameters.

decay_steps

false

None

Number of steps before decaying gamma. This is only applicable when “step” type gamma decay is used.

decay_rate

false

None

Rate of gamma decay. This is only applicable when “step” type gamma decay is used.

Compute Parameters

The compute settings are displayed in the following table.

Compute Arguments

Is Required

Default Value

Description

host_device

true

N/A

Host device to compute the gradients. Choose from ‘cuda:0’ or ‘cpu’ with cuda:0 used when cuda is available.

compute_device_num

false

1

Number of compute devices to use for gradient computation.

The most efficient parameters are dependent on the problem scale and structure and there is no one-size-fits-all configuration. The default parameters usually can achieve acceptable performance, but users can definitely try tuning them if needed.

Objective Arguments

The objective arguments are displayed in the following table.

Objective Arguments

Is Required

Default Value

Description

objective_type

true

N/A

Type of objective function.

objective_params

false

None

Parameters for the objective function.

MLflow Configuration

The MLflow configuration is displayed in the following table.

MLflow Configuration

Is Required

Default Value

Description

enabled

true

N/A

Whether to enable MLflow logging.

tracking_uri

false

None

MLflow tracking URI.

experiment_name

false

None

MLflow experiment name.

run_name

false

None

MLflow run name.

The function run_solver() returns a SolverResult object.

SolverResult

The solver result is displayed in the following table.

Solver Result

Default Value

Description

dual_val

N/A

Dual variable value.

dual_objective

N/A

Dual objective value.

objective_result

N/A

The result of one gradient call.

dual_objective_log

N/A

Log of dual objective values.

step_size_log

N/A

Log of step sizes.

dual_objective_result is an object of the class ObjectiveResult and it contains the following attributes:

  • dual_gradient: Gradient of the dual objective function.

  • dual_objective: Dual objective value.

  • reg_penalty: Regularization penalty.

  • primal_objective: Primal objective value.

  • primal_var: Primal variable value.

  • dual_val_times_grad: Dual variable times gradient.

  • max_pos_slack: Maximum positive slack.

  • sum_pos_slack: Sum of positive slack.