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)))
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
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
def update_vars(self: "VarList", n_vars: int): self.__vars = [mip.Var(self.__model, i) for i in range(n_vars)]