예제 #1
0
 def primal(self):
     if self.problem is not None:
         if self.problem._glpk_is_mip():
             primal_from_solver = glp_mip_row_val(self.problem.problem, self._index)
         else:
             primal_from_solver = glp_get_row_prim(self.problem.problem, self._index)
         # return self._round_primal_to_bounds(primal_from_solver)  # Test assertions fail
         return primal_from_solver
     else:
         return None
예제 #2
0
 def constraint_values(self):
     dual_values = collections.OrderedDict()
     is_mip = self._glpk_is_mip()
     for index, constraint in enumerate(self.constraints):
         if is_mip:
             value = glp_mip_row_val(self.problem, index + 1)
         else:
             value = glp_get_row_prim(self.problem, index + 1)
         dual_values[constraint.name] = value
     return dual_values
예제 #3
0
 def primal(self):
     if self.problem is not None:
         if self.problem._glpk_is_mip():
             primal_from_solver = glp_mip_row_val(self.problem.problem, self._index)
         else:
             primal_from_solver = glp_get_row_prim(self.problem.problem, self._index)
         # return self._round_primal_to_bounds(primal_from_solver)  # Test assertions fail
         return primal_from_solver
     else:
         return None
예제 #4
0
def get_rates(problem: SwigPyObject) -> Iterable[Tuple[str, float]]:
    for i in range(1, 1 + lp.glp_get_num_rows(problem)):
        yield (
            lp.glp_get_row_name(problem, i),
            lp.glp_mip_row_val(problem, i) / 100,
        )