{int} sd = {50, 2, 30, 4};
dvar int+ S;
subject to {
S==50 || S==2 ||S==30 ||S==4; //this is what I want.
//sd.contains(S)!=0; //How can I define a domain of S like in this way?
}
------------------------------
Andy Ham
------------------------------
Original Message:
Sent: Thu February 25, 2021 01:02 PM
From: Christiane Bracchi
Subject: Defining a domain in a form of set
I don't understand.
The example I suggested uses a set.
{int} sd={50, 2, 30, 4};dvar int+ S in (min(i in sd) i)..(max(i in sd) i);subject to { S in sd;}
------------------------------
Christiane Bracchi
Original Message:
Sent: Thu February 25, 2021 12:46 PM
From: Andy Ham
Subject: Defining a domain in a form of set
Thanks for your help. After second-thought, your suggestion seems to work but it does not look like an efficient way. Better way, please?
Original Message:
Sent: Thu February 25, 2021 11:17 AM
From: Christiane Bracchi
Subject: Defining a domain in a form of set
Hello Andy,
You might try
dvar int+ S in (min(i in sd) i)..(max(i in sd) i);subject to { S in sd;}
I hope this helps,
------------------------------
Christiane Bracchi
Original Message:
Sent: Thu February 25, 2021 08:39 AM
From: Andy Ham
Subject: Defining a domain in a form of set
I could not figure out how to define a domain in a form of set. Please help. Thanks!
range pd = 1..5;
dvar int+ P in pd; //we can define a domain of variable with a range
{int} sd={50, 2, 30, 4};
dvar int+ S in {sd}; // how to define a domain in a form of set?
#DecisionOptimization