Remove Elements from a Set
This article explains the possible behaviors of the empty
statement.
To remove all the elements from a set, you can use the empty
statement in AIMMS.
The behavior of the empty statement depends on the set that you provide as an argument:
- The set is not a subset of
AllIdentifiers
- The empty statement will remove all elements from the given set.
- The set is not a subset of
- The set is a subset of
AllIdentifiers
- The empty statement will empty all the identifiers that are in the given subset.
- The set is a subset of
Let’s assume the following two identifiers:
SET:
identifier : NormalSet
SET:
identifier : ActiveVariables
subset of : AllVariables
As you can see, it holds that ActiveVariables
\(\subseteq\) AllVariables
\(\subseteq\) AllIdentifiers
because the predefined set AllVariables
is defined in AIMMS to be a subset of AllVariablesConstraints
, which in turn is a subset of AllIdentifiers
. You can verify this by opening the attribute window of these predefined sets.
This means that the empty
statement behaves differently for NormalSet
and ActiveVariables
, as explained below:
!This will remove all elements from the set NormalSet
empty NormalSet ;
!This will clear the values of all variables in the subset ActiveVariables
!After the empty statement, the set itself will still contain elements!
empty ActiveVariables ;
!This will actually remove all elements from the set ActiveVariables
ActiveVariables := {} ;