Esempio n. 1
0
    def _add_var(self, var):
        varname = self._symbol_map.getSymbol(var, self._labeler)
        vartype = self._xpress_vartype_from_var(var)
        if var.has_lb():
            lb = value(var.lb)
        else:
            lb = -self._xpress.infinity
        if var.has_ub():
            ub = value(var.ub)
        else:
            ub = self._xpress.infinity
        if var.is_fixed():
            lb = value(var.value)
            ub = value(var.value)

        xpress_var = self._xpress.var(name=varname,
                                      lb=lb,
                                      ub=ub,
                                      vartype=vartype)
        self._solver_model.addVariable(xpress_var)

        ## bounds on binary variables don't seem to be set correctly
        ## by the method above
        if vartype == self._xpress.binary:
            if lb == ub:
                self._solver_model.chgbounds([xpress_var], ['B'], [lb])
            else:
                self._solver_model.chgbounds([xpress_var, xpress_var],
                                             ['L', 'U'], [lb, ub])

        self._pyomo_var_to_solver_var_map[var] = xpress_var
        self._solver_var_to_pyomo_var_map[xpress_var] = var
        self._referenced_variables[var] = 0
Esempio n. 2
0
    def _add_var(self, var):
        varname = self._symbol_map.getSymbol(var, self._labeler)
        vtype = self._gurobi_vtype_from_var(var)
        if var.has_lb():
            lb = value(var.lb)
        else:
            lb = -self._gurobipy.GRB.INFINITY
        if var.has_ub():
            ub = value(var.ub)
        else:
            ub = self._gurobipy.GRB.INFINITY
        if var.is_fixed():
            lb = value(var.value)
            ub = value(var.value)

        gurobipy_var = self._solver_model.addVar(lb=lb,
                                                 ub=ub,
                                                 vtype=vtype,
                                                 name=varname)

        self._pyomo_var_to_solver_var_map[var] = gurobipy_var
        self._solver_var_to_pyomo_var_map[gurobipy_var] = var
        self._referenced_variables[var] = 0

        self._needs_updated = True
Esempio n. 3
0
    def set_var_boundtype(self, var, ub, lb):

        if var.is_fixed():
            return self._mosek.boundkey.fx
        elif ub != '0' and lb != '0':
            return self._mosek.boundkey.ra
        elif ub == '0' and lb == '0':
            return self._mosek.boundkey.fr
        elif ub != '0' and lb == '0':
            return self._mosek.boundkey.up
        return self._mosek.boundkey.lo
Esempio n. 4
0
 def _xpress_lb_ub_from_var(self, var):
     if var.is_fixed():
         val = var.value
         return val, val
     if var.has_lb():
         lb = value(var.lb)
     else:
         lb = -xpress.infinity
     if var.has_ub():
         ub = value(var.ub)
     else:
         ub = xpress.infinity
     return lb, ub
Esempio n. 5
0
 def _gurobi_lb_ub_from_var(self, var):
     if var.is_fixed():
         val = var.value
         return val, val
     if var.has_lb():
         lb = value(var.lb)
     else:
         lb = -self._gurobipy.GRB.INFINITY
     if var.has_ub():
         ub = value(var.ub)
     else:
         ub = self._gurobipy.GRB.INFINITY
     return lb, ub
Esempio n. 6
0
    def _add_var(self, var):
        varname = self._symbol_map.getSymbol(var, self._labeler)
        vtype = self._gurobi_vtype_from_var(var)
        if var.has_lb():
            lb = value(var.lb)
        else:
            lb = -self._gurobipy.GRB.INFINITY
        if var.has_ub():
            ub = value(var.ub)
        else:
            ub = self._gurobipy.GRB.INFINITY

        gurobipy_var = self._solver_model.addVar(lb=lb, ub=ub, vtype=vtype, name=varname)

        self._pyomo_var_to_solver_var_map[var] = gurobipy_var
        self._solver_var_to_pyomo_var_map[gurobipy_var] = var
        self._referenced_variables[var] = 0

        if var.is_fixed():
            gurobipy_var.setAttr('lb', var.value)
            gurobipy_var.setAttr('ub', var.value)