symdiff

OPL keyword for the difference between union and intersection

Purpose

OPL keyword to construct set expressions.

context
Model files (.mod)

Syntax

BinaryExpression: Expression "==" Expression
                | Expression "!=" Expression
                | Expression "<=" Expression
                | Expression "<" Expression
                | Expression ">=" Expression
                | Expression ">" Expression
                | Expression "+" Expression
                | Expression "-" Expression
                | Expression "*" Expression
                | Expression "/" Expression
                | Expression "%" Expression
                | Expression "in" Expression
                | Expression "not in" Expression
                | Expression "inter" Expression
                | Expression "union" Expression
                | Expression "diff" Expression
                | Expression "symdiff" Expression
                | Expression "^" Expression
                | Expression "&&" Expression
                | Expression "||" Expression

Description

Set data can be initialized by set expressions. These expressions are constructed from previously defined sets and the set operations union, inter, diff, and symdiff.

The keyword symdiff runs the difference between the union and the intersection of two sets.


s1 symdiff s2 = (s1 union s2) diff (s1 inter s2)

Example


{int} s1 = {1,2,3}; 
{int} s2 = {1,4,5}; 
{int} i = s1 inter s2; 
{int} u = s1 union s2; 
{int} d = s1 diff s2; 
{int} sd = s1 symdiff s2; 

initializes i to {1}, u to {1,2,3,4,5}, d to {2,3}, and sd to {2,3,4,5}.