From 49b8094f2a13aafbce96f034b5a5f8576328c211 Mon Sep 17 00:00:00 2001 From: MiftariB <miftaribard@gmail.com> Date: Tue, 8 Oct 2024 14:36:58 +0200 Subject: [PATCH] getting dual in clp --- src/gboml/solver_api/clp_solver.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gboml/solver_api/clp_solver.py b/src/gboml/solver_api/clp_solver.py index 859c944..7f244ec 100644 --- a/src/gboml/solver_api/clp_solver.py +++ b/src/gboml/solver_api/clp_solver.py @@ -138,9 +138,10 @@ def clp_solver(matrix_a_eq: coo_matrix, vector_b_eq: np.ndarray, status = "optimal" solution = solver.primalVariableSolution['variables'] if details: - dual = solver.dualVariableSolution['variables'] - constraints_additional_info_ineq["dual"] = dual[:matrix_a_ineq.shape[0]].tolist() - constraints_additional_info_eq["dual"] = dual[matrix_a_ineq.shape[0]:].tolist() + dual = solver.dualConstraintSolution + dual_keys = list(dual.keys()) + constraints_additional_info_ineq["dual"] = dual[dual_keys[0]].tolist() + constraints_additional_info_eq["dual"] = dual[dual_keys[1]].tolist() # if we added an additional variable artificially # we remove it -- GitLab