Exemple #1
0
    def __getitem__(self: "VVarList", key):
        if isinstance(key, str):
            return self.__model.var_by_name(key)
        if isinstance(key, slice):
            return VVarList(self.__model, key.start, key.end)
        if isinstance(key, int):
            if key < 0:
                key = self.__end - key
            if key >= self.__end:
                raise IndexError

            return mip.Var(self.__model, key + self.__start)

        raise TypeError("Unknown type {}".format(type(key)))
Exemple #2
0
 def add(
     self: "VVarList",
     name: str = "",
     lb: numbers.Real = 0.0,
     ub: numbers.Real = mip.INF,
     obj: numbers.Real = 0.0,
     var_type: str = mip.CONTINUOUS,
     column: "mip.Column" = None,
 ) -> "mip.Var":
     solver = self.__model.solver
     if not name:
         name = "var({})".format(len(self))
     if var_type == mip.BINARY:
         lb = 0.0
         ub = 1.0
     new_var = mip.Var(self.__model, solver.num_cols())
     solver.add_var(obj, lb, ub, var_type, column, name)
     return new_var
Exemple #3
0
 def add(
     self,
     name: str = "",
     lb: numbers.Real = 0.0,
     ub: numbers.Real = mip.INF,
     obj: numbers.Real = 0.0,
     var_type: str = mip.CONTINUOUS,
     column: "mip.Column" = None,
 ) -> "mip.Var":
     if not name:
         name = "var({})".format(len(self.__vars))
     if var_type == mip.BINARY:
         lb = 0.0
         ub = 1.0
     new_var = mip.Var(self.__model, len(self.__vars))
     self.__model.solver.add_var(obj, lb, ub, var_type, column, name)
     self.__vars.append(new_var)
     return new_var
Exemple #4
0
 def update_vars(self: "VarList", n_vars: int):
     self.__vars = [mip.Var(self.__model, i) for i in range(n_vars)]