Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
 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
Пример #6
0
    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
        ])
Пример #7
0
 def dual(self):
     if self.problem:
         return glp_get_col_dual(self.problem.problem, self._index)
     else:
         return None
Пример #8
0
 def dual(self):
     if self.problem:
         return glp_get_col_dual(self.problem.problem, self.index)
     else:
         return None
Пример #9
0
    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)