- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I have a constraint that needs a conditional statement and not sure what are the syntax to handle in proc optmodel.
for all "i" in PickUpNode table, if "i" = Cary, NC then
sum{<s,d> in RouteTable: s=i} 1 * MS[s,d] = 1;
else
sum{<s,d> in RouteTable: s=i} 1 * MS[s,d] <= 1;
Thank You,
BG
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Assuming MS >= 0, here are three ways, in increasing order of compactness:
con Mycon {i in PickUpNode}:
(if i = 'Cary, NC' then 1 else 0)
<= sum{<s,d> in RouteTable: s=i} MS[s,d]
<= 1;
con Mycon {i in PickUpNode}:
(if i = 'Cary, NC' then 1 else 0)
<= sum{<(i),d> in RouteTable} MS[i,d]
<= 1;
con Mycon {i in PickUpNode}:
(i = 'Cary, NC')
<= sum{<(i),d> in RouteTable} MS[i,d]
<= 1;
You might find these examples useful:
SAS/OR(R) 13.2 User's Guide: Mathematical Programming Examples
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Assuming MS >= 0, here are three ways, in increasing order of compactness:
con Mycon {i in PickUpNode}:
(if i = 'Cary, NC' then 1 else 0)
<= sum{<s,d> in RouteTable: s=i} MS[s,d]
<= 1;
con Mycon {i in PickUpNode}:
(if i = 'Cary, NC' then 1 else 0)
<= sum{<(i),d> in RouteTable} MS[i,d]
<= 1;
con Mycon {i in PickUpNode}:
(i = 'Cary, NC')
<= sum{<(i),d> in RouteTable} MS[i,d]
<= 1;
You might find these examples useful:
SAS/OR(R) 13.2 User's Guide: Mathematical Programming Examples
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi Rob,
Thanks so much for the help. I truly appreciate it. The constraint is working beautifully.
Regards,
BG