def dual(self): if self.problem: if self.problem.is_integer: raise ValueError("Dual values are not well-defined for integer problems") return glp_get_col_dual(self.problem.problem, self._index) else: return None
def reduced_costs(self): if self.is_integer: raise ValueError( "Dual values are not well-defined for integer problems") reduced_costs = collections.OrderedDict( (var.name, glp_get_col_dual(self.problem, index + 1)) for index, var in enumerate(self.variables)) return reduced_costs
def reduced_costs(self): reduced_costs = collections.OrderedDict() for index, variable in enumerate(self.variables): if variable.type == "continuous": value = glp_get_col_dual(self.problem, index + 1) elif variable.type in ["binary", "integer"]: value = glp_mip_col_val(self.problem, index + 1) else: raise AssertionError("Unknown variable type") reduced_costs[variable.name] = value return reduced_costs
def getReducedCosts(self, fluxNames): if not self._eqConstBuilt: raise Exception( "Equality constraints not yet built. Finish construction of the problem before accessing dual values." ) self._solve() return np.array([ glp.glp_get_col_dual(self._lp, 1 + self._flows[fluxName]) if fluxName in self._flows else None for fluxName in fluxNames ])
def dual(self): if self.problem: return glp_get_col_dual(self.problem.problem, self._index) else: return None
def dual(self): if self.problem: return glp_get_col_dual(self.problem.problem, self.index) else: return None
def columnDualValue(self, j): """Return the dual value (i.e. reduced cost) of the structural variable for the j-th column. """ return glp.glp_get_col_dual(self._lp, j)