BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Santha
Pyrite | Level 9

This constraint forces that a DC is served by exactly "x" number of LSPs.

/*Constraint for retricting DC-LSP: given DC can by served by "x" number of LSPs*/
num DC_LSPs=5;
con DC_LSP: sum{c in LSP} IsLSPDC[c,'LAX'] = DC_LSPs;
con DC_LSP_Link1{p in Ports, t in Transit,c in lsp, d in {'LAX'}}:
ContainersfromPortstoLSPtoDC[p,t,c,'AL1'] <= BigM * IsLSPDC[C,'LAX'];
con DC_LSPLink2{c in LSP, d in DC}:
sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] >= IsLSPDC[c,d];

This works fine. Now I want to have another constraint where I want to follow the same logic but want to limit my choice of DC to anything that is not in ('LAX','SAV'). So am looking to write sthg like 

con DC_LSP_NoSAVLAX: sum{c in LSP} IsLSPDC[c,not in ('SAV,'LAX')] = DC_LSPs;

Can i do that? If yes what would be the correct syntax.

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
RobPratt
SAS Super FREQ

If you really want just one constraint, here are two ways:

con DC_LSP_NoSAVLAX:
   sum{c in LSP, d in DC: d not in {'SAV,'LAX'}} IsLSPDC[c,d] = DC_LSPs;
con DC_LSP_NoSAVLAX:
   sum{c in LSP, d in DC diff {'SAV,'LAX'}} IsLSPDC[c,d] = DC_LSPs;

If instead you want a family of constraints indexed by d, here are two ways:

con DC_LSP_NoSAVLAX {d in DC: d not in {'SAV,'LAX'}}:
   sum{c in LSP} IsLSPDC[c,d] = DC_LSPs;
con DC_LSP_NoSAVLAX {d in DC diff {'SAV,'LAX'}}:
   sum{c in LSP} IsLSPDC[c,d] = DC_LSPs;

View solution in original post

4 REPLIES 4
RobPratt
SAS Super FREQ

If you really want just one constraint, here are two ways:

con DC_LSP_NoSAVLAX:
   sum{c in LSP, d in DC: d not in {'SAV,'LAX'}} IsLSPDC[c,d] = DC_LSPs;
con DC_LSP_NoSAVLAX:
   sum{c in LSP, d in DC diff {'SAV,'LAX'}} IsLSPDC[c,d] = DC_LSPs;

If instead you want a family of constraints indexed by d, here are two ways:

con DC_LSP_NoSAVLAX {d in DC: d not in {'SAV,'LAX'}}:
   sum{c in LSP} IsLSPDC[c,d] = DC_LSPs;
con DC_LSP_NoSAVLAX {d in DC diff {'SAV,'LAX'}}:
   sum{c in LSP} IsLSPDC[c,d] = DC_LSPs;
Santha
Pyrite | Level 9

the constraint worked. 

I have the second constraint that I changed to this. But i get syntax errors. 

 

con DC_LSP_Direct_Link1{p in Ports, t in Transit,c in lsp, d not in {'SAV','LAX'}}:
ContainersfromPortstoLSPtoDC[p,t,c,d not in {'SAV','LAX'}] <= BigM * IsLSPDC[c,d not in {'SAV','LAX'}];

Santha
Pyrite | Level 9

I think i know why  . let me try the fix

Santha
Pyrite | Level 9

I tried this. still got error:

con DC_LSP_Direct_Link1{p in Ports, t in Transit,c in lsp, d in DC: d not in {'SAV','LAX'}}:
ContainersfromPortstoLSPtoDC[p,t,c,d in DC: d not in {'SAV','LAX'}] <= BigM * IsLSPDC[c,d in DC: d not in {'SAV','LAX'}];

 

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

Discussion stats
  • 4 replies
  • 1199 views
  • 1 like
  • 2 in conversation