didppy.SetConst
 class didppy.SetConst
Set constant.
Methods
add
(element)Adds an element to a set.
Returns the complement set.
contains
(element)Returns a condition checking if an element is included.
difference
(other)Returns a set where all elements in an input set are removed.
discard
(element)Removes an element from a set.
eval
()Returns the set.
intersection
(other)Returns the intersection with another set.
is_empty
()Returns a condition checking if the set is empty.
isdisjoint
(other)Checks if two sets are disjoint.
issubset
(other)Checks if this set is a subset of another set.
issuperset
(other)Checks if this set is a superset of another set.
len
()Returns the cardinality of a set.
remove
(element)Removes an element from a set.
symmetric_difference
(other)Returns a set which only contains elements included in either of two sets but not in both.
union
(other)Returns the union of two sets.
 add(element)
Adds an element to a set.
This method does not change the instance itself.
 Parameters:
element (ElementExpr, ElementVar, ElementResourceVar, or int) – Element added to the set.
 Returns:
The set where the element is added.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.add(2).eval(state, model) {0, 1, 2}
 complement()
Returns the complement set.
 Returns:
The complement set.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.complement().eval(state, model) {2, 3}
 contains(element)
Returns a condition checking if an element is included.
 Parameters:
element (ElementExpr, ElementVar, ElementResourceVar, or int) – Element to check.
 Returns:
The condition checking if an element is included in the set.
 Return type:
 Raises:
OverflowError – If
element
isint
and negative.
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.contains(0).eval(state, model) True
 difference(other)
Returns a set where all elements in an input set are removed.
This method is the same as

operation. This method does not change the instance itself. Parameters:
 Returns:
The set where all elements in
other
are removed. Return type:
 Raises:
OverflowError – If
element
isint
and negative.
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[1, 2]) >>> const.difference(other).eval(state, model) {0}
 discard(element)
Removes an element from a set.
This method does not change the instance itself.
 Parameters:
element (ElementExpr, ElementVar, ElementResourceVar, or int) – Element removed from the set.
 Returns:
The set where the element is removed.
 Return type:
 Raises:
OverflowError – If
element
isint
and negative.
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.discard(1).eval(state, model) {0}
 eval()
Returns the set.
 Returns:
The set.
 Return type:
set
Examples
>>> import didppy as dp >>> model = dp.Model() >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.eval() {0, 1}
 intersection(other)
Returns the intersection with another set.
This method is the same as
&
operation. This method does not change the instance itself. Parameters:
other (SetExpr, SetVar, or SetConst) – Set to take the intersection with.
 Returns:
The intersection.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[1, 2]) >>> const.intersection(other).eval(state, model) {1}
 is_empty()
Returns a condition checking if the set is empty.
 Returns:
The condition checking if the set is empty.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.is_empty().eval(state, model) False
 isdisjoint(other)
Checks if two sets are disjoint.
 Parameters:
 Returns:
The condition that the two sets are disjoint.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[2, 3]) >>> const.isdisjoint(other).eval(state, model) True
 issubset(other)
Checks if this set is a subset of another set.
 Parameters:
 Returns:
The condition that the two sets are disjoint.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[0, 1, 2]) >>> const.issubset(other).eval(state, model) True
 issuperset(other)
Checks if this set is a superset of another set.
 Parameters:
 Returns:
The condition that the two sets are disjoint.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[0]) >>> cost.issuperset(other).eval(state, model) True
 len()
Returns the cardinality of a set.
 Returns:
The cardinality.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.len().eval(state, model) 2
 remove(element)
Removes an element from a set.
This method does not change the instance itself.
 Parameters:
element (ElementExpr, ElementVar, ElementResourceVar, or int) – Element removed from the set.
 Returns:
The set where the element is removed.
 Return type:
 Raises:
OverflowError – If
element
isint
and negative.
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> const.remove(1).eval(state, model) {0}
 symmetric_difference(other)
Returns a set which only contains elements included in either of two sets but not in both.
This method is the same as
^
operation. This method does not change the instance itself. Parameters:
other (SetExpr, SetVar, or SetConst) – Set to take the symmetric difference with.
 Returns:
The symmetric difference set.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[1, 2]) >>> const.symmetric_difference(other).eval(state, model) {0, 2}
 union(other)
Returns the union of two sets.
This method is the same as

operation. This method does not change the instance itself. Parameters:
other (SetExpr, SetVar, or SetConst) – Set to take the union with.
 Returns:
The union.
 Return type:
Examples
>>> import didppy as dp >>> model = dp.Model() >>> state = model.target_state >>> obj = model.add_object_type(number=4) >>> const = model.create_set_const(object_type=obj, value=[0, 1]) >>> other = model.create_set_const(object_type=obj, value=[1, 2]) >>> const.union(other).eval(state, model) {0, 1, 2}