<?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 Re: Constraining Sites_Facilities using distance in Mathematical Optimization, Discrete-Event Simulation, and OR</title>
    <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665223#M3169</link>
    <description>&lt;P&gt;Infeasibility is essentially 0 here, so all constraints are satisfied within tolerance.&amp;nbsp; Iteration Limit Reached means that the solution might not be locally optimal.&amp;nbsp; Multisource Weber is a difficult problem, so you might consider solving it approximately by first solving a p-median problem (MILP) with the customers as the candidate locations and then solving a single-source Weber problem for each resulting cluster (p independent NLP problems).&lt;/P&gt;</description>
    <pubDate>Fri, 26 Jun 2020 02:31:17 GMT</pubDate>
    <dc:creator>RobPratt</dc:creator>
    <dc:date>2020-06-26T02:31:17Z</dc:date>
    <item>
      <title>Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665152#M3159</link>
      <description>&lt;P&gt;Hi Rob.&lt;/P&gt;&lt;P&gt;I am trying to use sparse modeling as suggested by you few months back.&amp;nbsp;&lt;A href="https://go.documentation.sas.com/?docsetId=ormpug&amp;amp;docsetTarget=ormpug_optmodel_examples07.htm&amp;amp;docsetVersion=15.1&amp;amp;locale=en"&gt;https://go.documentation.sas.com/?docsetId=ormpug&amp;amp;docsetTarget=ormpug_optmodel_examples07.htm&amp;amp;docsetVersion=15.1&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my code. I want to pick p number of facilites that satisfy my customer demand. The following code is an adapted version of the code that you had earlier but the only thing is that I added the CUSTOMERS_SITES to cull out those customers_facilities pairs that has less than 1000 miles as the distance. When I ran the model, I got error that said " A set expression may not depend on a variable". That was my first question. Second question is if my objective function and constraints are right.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc optmodel;&lt;BR /&gt;set DIMS=1..2;&lt;BR /&gt;set CUSTOMERS;&lt;BR /&gt;set FACILITIES = 1..&amp;amp;p;&lt;BR /&gt;num a {CUSTOMERS,DIMS};&lt;BR /&gt;num demand {CUSTOMERS};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;read data STDOPT.COGMODELINGDATA into CUSTOMERS=&lt;BR /&gt;[_N_] {d in DIMS} &amp;lt;a[_N_,d]=col('a'||d)&amp;gt; demand;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;num Xlb {d in DIMS} = min {i in CUSTOMERS} a[i,d];&lt;BR /&gt;num Xub {d in DIMS} = max {i in CUSTOMERS} a[i,d];&lt;BR /&gt;print Xlb; print Xub;&lt;BR /&gt;var X {FACILITIES, d in DIMS} &amp;gt;= Xlb[d] &amp;lt;= Xub[d];&lt;BR /&gt;var W {CUSTOMERS, FACILITIES} &amp;gt;= 0;&lt;BR /&gt;&lt;BR /&gt;impvar Distance {i in CUSTOMERS, j in FACILITIES} = GEODIST(a[i,1],a[i,2],X[j,1],X[j,2]);&lt;/P&gt;&lt;P&gt;set CUSTOMERS_SITES = {i in CUSTOMERS, j in FACILITIES: Distance[i,j] &amp;lt;= 1000};&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;min Z = sum {&amp;lt;i,j&amp;gt;i in CUSTOMER_SITES} W[i,j]*Distance[i,j];&lt;BR /&gt;con DemandCon {i in CUSTOMERS}: sum {j in FACILITIES} W[i,j] = demand[i];&lt;/P&gt;&lt;P&gt;expand;&lt;/P&gt;&lt;P&gt;solve with nlp ;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2020 20:31:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665152#M3159</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-06-25T20:31:57Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665160#M3161</link>
      <description>&lt;P&gt;The ERROR message is because your set CUSTOMERS_SITES depends on Distance, which is an implicit variable.&amp;nbsp; Sets must depend on constants and not variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It looks like you are mixing two related facility location problems.&amp;nbsp; For both of them, the input includes a set of customers, each of whose demand must be satisfied by a fixed number (p) of facilities.&amp;nbsp; The difference between the two problems is where the facilities can be built:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;If the facilities can be built anywhere, this is an NLP problem (the &lt;EM&gt;multisource Weber problem&lt;/EM&gt;).&lt;/LI&gt;
&lt;LI&gt;If the facilities must be built at locations that are chosen from among a finite set of candidate sites, this is a MILP problem (the &lt;EM&gt;p-median problem&lt;/EM&gt;).&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The sparse modeling approach applies only to the MILP problem.&amp;nbsp; Which problem do you want to solve?&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2020 20:57:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665160#M3161</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2020-06-25T20:57:53Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665164#M3162</link>
      <description>&lt;P&gt;Hi Rob&lt;/P&gt;&lt;P&gt;Thank you very much. I am trying to solve multi source Weber problem. Can i then, just add a constraint saying someghing like&lt;/P&gt;&lt;P&gt;con radius {i in CUSTOMERS, j in FACILITIES} Distance [i,j]&amp;lt;=1000;?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2020 21:12:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665164#M3162</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-06-25T21:12:10Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665178#M3163</link>
      <description>&lt;P&gt;Yes, that is legal if you include a colon:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;con radius {i in CUSTOMERS, j in FACILITIES}: Distance [i,j]&amp;lt;=1000;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But I suspect that these additional nonlinear constraints will make the problem much harder to solve.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2020 21:56:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665178#M3163</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2020-06-25T21:56:01Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665184#M3164</link>
      <description>&lt;P&gt;Rob. I tried that con radius even&amp;nbsp; before i was experimenting sparse modeling without knowing that sparse modeling was for MILP.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The con radius constraint&amp;nbsp;&amp;nbsp;con radius {i in CUSTOMERS, j in FACILITIES}: Distance [i,j] &amp;lt;=1000;&lt;/P&gt;&lt;P&gt;does not give any error. But it also does not seems to respect the constraint because in the answer I do see some customer-Facility site pairs that have more than 1000 mile as distance.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2020 22:25:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665184#M3164</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-06-25T22:25:31Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665198#M3165</link>
      <description>&lt;P&gt;What were the values of Solution Status and Infeasibility in the Solution Summary when you were seeing constraint violations?&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2020 23:56:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665198#M3165</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2020-06-25T23:56:33Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665213#M3166</link>
      <description>&lt;P&gt;Rob - Solution Status is "Failed" as you can see in the below Solution Summary&lt;/P&gt;&lt;P&gt;Solution Summary SolverNLP&lt;/P&gt;&lt;P&gt;Algorithm&amp;nbsp; &amp;nbsp; Interior Point&lt;/P&gt;&lt;P&gt;Objective Function Z&lt;/P&gt;&lt;P&gt;Solution Status Failed&lt;/P&gt;&lt;P&gt;Objective Value 3796957.4976&amp;nbsp;&lt;/P&gt;&lt;P&gt;Optimality Error 1394.3093905&lt;/P&gt;&lt;P&gt;Infeasibility702.52192689&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Iterations&amp;nbsp; 2245&lt;/P&gt;&lt;P&gt;Presolve Time 0.00&lt;/P&gt;&lt;P&gt;Solution Time 9.44&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2020 01:11:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665213#M3166</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-06-26T01:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665216#M3167</link>
      <description>&lt;P&gt;When i don't have that con radius, the solution status is "Iteration Limit Reached".&lt;/P&gt;&lt;P&gt;Solver NLP&lt;/P&gt;&lt;P&gt;Algorithm Interior Point&lt;/P&gt;&lt;P&gt;Objective Function Z&lt;/P&gt;&lt;P&gt;Solution Status Iteration Limit Reached&lt;/P&gt;&lt;P&gt;Objective Value 1675638.2436&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Optimality Error 0.1991496343&lt;/P&gt;&lt;P&gt;Infeasibility 2.5283975E-7&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Iterations 5000&lt;/P&gt;&lt;P&gt;Presolve Time 0.00&lt;/P&gt;&lt;P&gt;Solution Time 18.67&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2020 01:18:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665216#M3167</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-06-26T01:18:32Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665222#M3168</link>
      <description>&lt;P&gt;Yes, Infeasibility &amp;gt; 0 implies that some constraints are violated.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2020 02:26:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665222#M3168</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2020-06-26T02:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665223#M3169</link>
      <description>&lt;P&gt;Infeasibility is essentially 0 here, so all constraints are satisfied within tolerance.&amp;nbsp; Iteration Limit Reached means that the solution might not be locally optimal.&amp;nbsp; Multisource Weber is a difficult problem, so you might consider solving it approximately by first solving a p-median problem (MILP) with the customers as the candidate locations and then solving a single-source Weber problem for each resulting cluster (p independent NLP problems).&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2020 02:31:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665223#M3169</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2020-06-26T02:31:17Z</dc:date>
    </item>
    <item>
      <title>Re: Constraining Sites_Facilities using distance</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665441#M3171</link>
      <description>&lt;P&gt;Rob&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much for your feeback. Let me try to implement that and get back to you. Thanks&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2020 19:40:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Constraining-Sites-Facilities-using-distance/m-p/665441#M3171</guid>
      <dc:creator>Santha</dc:creator>
      <dc:date>2020-06-26T19:40:45Z</dc:date>
    </item>
  </channel>
</rss>

