Operations Research topics: SAS/OR,
SAS Optimization, and SAS Simulation Studio

Conditional Constraint Syntax - Please Help

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 11
Accepted Solution

Conditional Constraint Syntax - Please Help

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
Solution
‎01-30-2015 07:59 PM
SAS Employee
Posts: 416

Re: Conditional Constraint Syntax - Please Help

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

View solution in original post


All Replies
Solution
‎01-30-2015 07:59 PM
SAS Employee
Posts: 416

Re: Conditional Constraint Syntax - Please Help

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

Occasional Contributor
Posts: 11

Re: Conditional Constraint Syntax - Please Help

Hi Rob,

Thanks so much for the help. I truly appreciate it. The constraint is working beautifully.

Regards,

BG

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 269 views
  • 0 likes
  • 2 in conversation