Skip to content

Latest commit

 

History

History
40 lines (27 loc) · 1.42 KB

solver_api.rst

File metadata and controls

40 lines (27 loc) · 1.42 KB

Solver

The linear programming model used for optimizing rule sets can be described by the following formulation:

\begin{align*}
&\text{minimize} \quad &\lambda \sum_{j \in J} c_j w_j + \sum_{i \in I} v_i \\
&\text{subject to} \quad &\sum_{j \in J} \hat{a}_{ij} w_j + v_i \geq 1, &\quad i \in I, \\
&&v_i \geq 0, &\quad i \in I, \\
&&w_j \geq 0, &\quad j \in J,
\end{align*}

where

  • w_j represents the rule weights,
  • \lambda \geq 0 is a hyperparameter used to scale different units in the objective function, emphasizing the trade-off between accuracy and rule costs,
  • c_j represents the costs associated with each rule, potentially reflecting the complexity or length of the rule for promoting sparsity,
  • \hat{a}_{ij} is a measure of the classification accuracy of rule j for sample i, given that the sample is covered by the rule,
  • v_i is a auxiliary variable standing for v_i \geq L(\hat{y}_i(w), y_i), where a value of v_i = 0 indicates correct classification.

For detailed information, please refer to our manuscript.

.. autoclass:: ruleopt.solver.ORToolsSolver
   :members:  __init__
   :undoc-members:

.. autoclass:: ruleopt.solver.GurobiSolver
   :members:  __init__
   :undoc-members:

.. autoclass:: ruleopt.solver.CPLEXSolver
   :members:  __init__
   :undoc-members: