<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Infeasibility in Mathematical Optimization, Discrete-Event Simulation, and OR</title>
    <link>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631369#M3046</link>
    <description>&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;I am getting infeasibility. I am trying to figure it out but no luck yet.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var Is_LSP {LSP} binary;&lt;BR /&gt;var IsLSPDC {LSP,DC} binary;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* declare Constants*/&lt;BR /&gt;NUM BigM;&lt;/P&gt;&lt;P&gt;num LAX_Min;&lt;/P&gt;&lt;P&gt;num LAX_Max;&lt;/P&gt;&lt;P&gt;num SAV_Min; num SAV_Max;&lt;/P&gt;&lt;P&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "LAX")) INTO LAX_Min=FEU;&lt;BR /&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "LAX")) INTO LAX_Max=FEU;&lt;/P&gt;&lt;P&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "SAV")) INTO SAV_Min=FEU;&lt;BR /&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "SAV")) INTO SAV_Max=FEU;&lt;/P&gt;&lt;P&gt;LAX_Min=0.1*LAX_Min;LAX_Max=0.3*LAX_Max;&lt;BR /&gt;SAV_Min=0.1*SAV_Min;SAV_Max=0.3*SAV_Max;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here are my general constraints:&lt;/P&gt;&lt;P&gt;/* GENERAL CONSTRAINTS */&lt;BR /&gt;con Min_Qty_at_LSP_is_Respected {c in LSP}:&lt;BR /&gt;sum{p in Ports,t in Transit,d in DC} ContainersfromPortstoLSPtoDC [p,t,c,d]&amp;gt;=Min_Qty_LSP*Is_LSP[c];&lt;/P&gt;&lt;P&gt;con ModelOutput_Same_As_ModelInput {p in Ports, d in DC}:&lt;BR /&gt;sum {t in Transit,c in LSP} ContainersfromPortstoLSPtoDC[p,t,c, d] = Containers [p,d];&lt;/P&gt;&lt;P&gt;con CheckLSP {c in LSP}: ContainersatLSP[c] &amp;lt;= BigM*Is_LSP[c];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here are my specifc constraints:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*Constraint for retricting DC-LSP: given DC can by served by "x" number of LSPs*/&lt;BR /&gt;/*LAX - I am trying to Restrict LAX to exactly 5 carriers. This works fine&amp;nbsp;*/&lt;/P&gt;&lt;P&gt;num LAX_LSPs=5;&lt;BR /&gt;con LAX_LSP: sum{c in LSP} IsLSPDC[c,'LAX'] = LAX_LSPs;&lt;BR /&gt;con LAX_LSP_Link1{p in Ports, t in Transit,c in lsp, d in {'LAX'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,'LAX'] &amp;lt;= BigM * IsLSPDC[C,'LAX'];&lt;BR /&gt;con LAX_LSPLink2{c in LSP, d in DC}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*SAV- same like LAX but the number is 4. This works fine as well. */&lt;BR /&gt;num SAV_LSPs=4;&amp;nbsp;&lt;BR /&gt;con SAV_LSP: sum{c in LSP} IsLSPDC[c,'SAV'] = SAV_LSPs;&lt;BR /&gt;con SAV_LSP_Link1{p in Ports, t in Transit,c in lsp, d in {'SAV'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,'SAV'] &amp;lt;= BigM * IsLSPDC[C,'SAV'];&lt;BR /&gt;con SAV_LSPLink2{c in LSP, d in DC}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/* After having forced a x number of LSPs for a given carrier, we want to make sure&lt;BR /&gt;the lowest and the highest a carrier can get is a set number */&lt;/P&gt;&lt;P&gt;/*LAX*/&lt;BR /&gt;con LAX_MIN_LSP {c in LSP, d in {'LAX'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'LAX'] &amp;gt;=LAX_Min*IsLSPDC[c,'LAX'];&lt;/P&gt;&lt;P&gt;con LAX_MAX_LSP {c in LSP, d in {'LAX'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'LAX'] &amp;lt;=LAX_Max*IsLSPDC[c,'LAX'];&lt;/P&gt;&lt;P&gt;/*SAV*/&lt;BR /&gt;con SAV_MIN_LSP {c in LSP, d in {'SAV'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'SAV'] &amp;gt;=SAV_Min*IsLSPDC[c,'SAV'];&lt;/P&gt;&lt;P&gt;con SAV_MAX_LSP {c in LSP, d in {'SAV'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'SAV'] &amp;lt;=SAV_Max*IsLSPDC[c,'SAV'];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Till Now, it worked correctly. When i added these constraint below, I get infeasibility.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/*For any Destination that is not LAX and SAV, #of Carriers per DC is 1 - I tried numbers from 1-7 but all came infeasible. So something is not right with the way I have written my constraint that it causes infeasibility. The 14,000 number that you see is Total FEU minus LAX and SAV combined.*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;num DC_LSP_Directs=1;&lt;BR /&gt;con DC_LSP_Direct:&lt;BR /&gt;sum{c in LSP, d in DC: d not in {'SAV','LAX'}} IsLSPDC[c,d] = DC_LSP_Directs;&lt;BR /&gt;con DC_LSP_Direct_Link1{p in Ports, t in Transit, c in lsp, d in DC: d not in {'SAV','LAX'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;lt;= 14000 * IsLSPDC[c,d];&lt;BR /&gt;con DC_LSPL_Directink2{c in LSP, d in DC: d not in {'SAV','LAX'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 11 Mar 2020 20:26:43 GMT</pubDate>
    <dc:creator>Santha</dc:creator>
    <dc:date>2020-03-11T20:26:43Z</dc:date>
    <item>
      <title>Infeasibility</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631369#M3046</link>
      <description>&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;I am getting infeasibility. I am trying to figure it out but no luck yet.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var Is_LSP {LSP} binary;&lt;BR /&gt;var IsLSPDC {LSP,DC} binary;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* declare Constants*/&lt;BR /&gt;NUM BigM;&lt;/P&gt;&lt;P&gt;num LAX_Min;&lt;/P&gt;&lt;P&gt;num LAX_Max;&lt;/P&gt;&lt;P&gt;num SAV_Min; num SAV_Max;&lt;/P&gt;&lt;P&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "LAX")) INTO LAX_Min=FEU;&lt;BR /&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "LAX")) INTO LAX_Max=FEU;&lt;/P&gt;&lt;P&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "SAV")) INTO SAV_Min=FEU;&lt;BR /&gt;READ DATA STDOPT.PN3158_ALT6_SPECIFICS(where=(RateMatchDest = "SAV")) INTO SAV_Max=FEU;&lt;/P&gt;&lt;P&gt;LAX_Min=0.1*LAX_Min;LAX_Max=0.3*LAX_Max;&lt;BR /&gt;SAV_Min=0.1*SAV_Min;SAV_Max=0.3*SAV_Max;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here are my general constraints:&lt;/P&gt;&lt;P&gt;/* GENERAL CONSTRAINTS */&lt;BR /&gt;con Min_Qty_at_LSP_is_Respected {c in LSP}:&lt;BR /&gt;sum{p in Ports,t in Transit,d in DC} ContainersfromPortstoLSPtoDC [p,t,c,d]&amp;gt;=Min_Qty_LSP*Is_LSP[c];&lt;/P&gt;&lt;P&gt;con ModelOutput_Same_As_ModelInput {p in Ports, d in DC}:&lt;BR /&gt;sum {t in Transit,c in LSP} ContainersfromPortstoLSPtoDC[p,t,c, d] = Containers [p,d];&lt;/P&gt;&lt;P&gt;con CheckLSP {c in LSP}: ContainersatLSP[c] &amp;lt;= BigM*Is_LSP[c];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here are my specifc constraints:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*Constraint for retricting DC-LSP: given DC can by served by "x" number of LSPs*/&lt;BR /&gt;/*LAX - I am trying to Restrict LAX to exactly 5 carriers. This works fine&amp;nbsp;*/&lt;/P&gt;&lt;P&gt;num LAX_LSPs=5;&lt;BR /&gt;con LAX_LSP: sum{c in LSP} IsLSPDC[c,'LAX'] = LAX_LSPs;&lt;BR /&gt;con LAX_LSP_Link1{p in Ports, t in Transit,c in lsp, d in {'LAX'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,'LAX'] &amp;lt;= BigM * IsLSPDC[C,'LAX'];&lt;BR /&gt;con LAX_LSPLink2{c in LSP, d in DC}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*SAV- same like LAX but the number is 4. This works fine as well. */&lt;BR /&gt;num SAV_LSPs=4;&amp;nbsp;&lt;BR /&gt;con SAV_LSP: sum{c in LSP} IsLSPDC[c,'SAV'] = SAV_LSPs;&lt;BR /&gt;con SAV_LSP_Link1{p in Ports, t in Transit,c in lsp, d in {'SAV'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,'SAV'] &amp;lt;= BigM * IsLSPDC[C,'SAV'];&lt;BR /&gt;con SAV_LSPLink2{c in LSP, d in DC}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/* After having forced a x number of LSPs for a given carrier, we want to make sure&lt;BR /&gt;the lowest and the highest a carrier can get is a set number */&lt;/P&gt;&lt;P&gt;/*LAX*/&lt;BR /&gt;con LAX_MIN_LSP {c in LSP, d in {'LAX'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'LAX'] &amp;gt;=LAX_Min*IsLSPDC[c,'LAX'];&lt;/P&gt;&lt;P&gt;con LAX_MAX_LSP {c in LSP, d in {'LAX'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'LAX'] &amp;lt;=LAX_Max*IsLSPDC[c,'LAX'];&lt;/P&gt;&lt;P&gt;/*SAV*/&lt;BR /&gt;con SAV_MIN_LSP {c in LSP, d in {'SAV'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'SAV'] &amp;gt;=SAV_Min*IsLSPDC[c,'SAV'];&lt;/P&gt;&lt;P&gt;con SAV_MAX_LSP {c in LSP, d in {'SAV'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,'SAV'] &amp;lt;=SAV_Max*IsLSPDC[c,'SAV'];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Till Now, it worked correctly. When i added these constraint below, I get infeasibility.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/*For any Destination that is not LAX and SAV, #of Carriers per DC is 1 - I tried numbers from 1-7 but all came infeasible. So something is not right with the way I have written my constraint that it causes infeasibility. The 14,000 number that you see is Total FEU minus LAX and SAV combined.*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;num DC_LSP_Directs=1;&lt;BR /&gt;con DC_LSP_Direct:&lt;BR /&gt;sum{c in LSP, d in DC: d not in {'SAV','LAX'}} IsLSPDC[c,d] = DC_LSP_Directs;&lt;BR /&gt;con DC_LSP_Direct_Link1{p in Ports, t in Transit, c in lsp, d in DC: d not in {'SAV','LAX'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;lt;= 14000 * IsLSPDC[c,d];&lt;BR /&gt;con DC_LSPL_Directink2{c in LSP, d in DC: d not in {'SAV','LAX'}}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Mar 2020 20:26:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631369#M3046</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-03-11T20:26:43Z</dc:date>
    </item>
    <item>
      <title>Re: Infeasibility</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631373#M3047</link>
      <description>&lt;P&gt;You can use the &lt;A href="https://go.documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.5&amp;amp;docsetId=casmopt&amp;amp;docsetTarget=casmopt_milpsolver_details14.htm&amp;amp;locale=en" target="_self"&gt;IIS= option&lt;/A&gt; to help diagnose infeasibility.&amp;nbsp; For the MILP solver, this option is new in SAS Optimization 8.5 on SAS Viya 3.5.&amp;nbsp; For earlier releases, you can try the LP IIS functionality instead, as shown in &lt;A href="https://go.documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.5&amp;amp;docsetId=casmopt&amp;amp;docsetTarget=casmopt_lpsolver_examples04.htm&amp;amp;locale=en" target="_self"&gt;this documentation example&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Mar 2020 20:55:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631373#M3047</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2020-03-11T20:55:12Z</dc:date>
    </item>
    <item>
      <title>Re: Infeasibility</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631379#M3048</link>
      <description>&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;I tried the IIS. But the problem I have is that my expand does not work at all. It does not expand anything.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Mar 2020 21:09:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631379#M3048</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-03-11T21:09:46Z</dc:date>
    </item>
    <item>
      <title>Re: Infeasibility</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631384#M3049</link>
      <description>&lt;P&gt;I am guessing that this particular constraint "DC_LSP_Direct" is not correct syntax wise.&lt;/P&gt;&lt;P&gt;num DC_LSP_Directs=1;&lt;BR /&gt;con DC_LSP_Direct:&lt;BR /&gt;sum{c in LSP} IsLSPDC [c,d in DC: d not in {'SAV','LAX'}] = DC_LSP_Directs;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;con DC_LSP_Direct_Link1{p in Ports, t in Transit, c in lsp, d in DC: d not in {'SAV','LAX'}}:&lt;BR /&gt;ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;lt;= 14000 * IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;con DC_LSP_Directink2{c in LSP, d in DC}:&lt;BR /&gt;sum {p in Ports, t in Transit} ContainersfromPortstoLSPtoDC[p,t,c,d] &amp;gt;= IsLSPDC[c,d];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Mar 2020 21:26:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631384#M3049</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-03-11T21:26:30Z</dc:date>
    </item>
    <item>
      <title>Re: Infeasibility</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631385#M3050</link>
      <description>&lt;P&gt;I changed to&amp;nbsp;&lt;/P&gt;&lt;P&gt;con DC_LSP_Direct{d in DC: d not in {'SAV','LAX'}}:&lt;BR /&gt;sum{c in LSP} IsLSPDC [c,d] = DC_LSP_Directs;&lt;/P&gt;&lt;P&gt;and it seems to be working&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Mar 2020 21:31:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Infeasibility/m-p/631385#M3050</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-03-11T21:31:02Z</dc:date>
    </item>
  </channel>
</rss>

