sasoptpy.VariableGroup

class VariableGroup(**kwargs)[source]

Bases: sasoptpy.core.group.Group

Creates a group of Variable objects

Parameters
argvlist, dict, int, pandas.Index

Loop index for variable group

namestring, optional

Name (prefix) of the variables

vartypestring, optional

Type of variables, BIN, INT, or CONT

lblist, dict, pandas.Series, optional

Lower bounds of variables

ublist, dict, pandas.Series, optional

Upper bounds of variables

initfloat, optional

Initial values of variables

Notes

  • When working with a single model, use the sasoptpy.Model.add_variables() method.

  • If a variable group object is created, it can be added to a model using the sasoptpy.Model.include() method.

  • An individual variable inside the group can be accessed using indices.

    >>> z = so.VariableGroup(2, ['a', 'b', 'c'], name='z', lb=0, ub=10)
    >>> print(repr(z[0, 'a']))
    sasoptpy.Variable(name='z_0_a', lb=0, ub=10, vartype='CONT')
    

Examples

>>> PERIODS = ['Period1', 'Period2', 'Period3']
>>> production = so.VariableGroup(PERIODS, vartype=so.INT,
                                  name='production', lb=10)
>>> print(production)
Variable Group (production) [
  [Period1: production['Period1']]
  [Period2: production['Period2']]
  [Period3: production['Period3']]
]
>>> x = so.VariableGroup(4, vartype=so.BIN, name='x')
>>> print(x)
Variable Group (x) [
  [0: x[0]]
  [1: x[1]]
  [2: x[2]]
  [3: x[3]]
]
>>> z = so.VariableGroup(2, ['a', 'b', 'c'], name='z')
>>> print(z)
Variable Group (z) [
  [(0, 'a'): z[0, 'a']]
  [(0, 'b'): z[0, 'b']]
  [(0, 'c'): z[0, 'c']]
  [(1, 'a'): z[1, 'a']]
  [(1, 'b'): z[1, 'b']]
  [(1, 'c'): z[1, 'c']]
]
>>> print(repr(z))
sasoptpy.VariableGroup([0, 1], ['a', 'b', 'c'], name='z')