<?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: Help with MPS format in Mathematical Optimization, Discrete-Event Simulation, and OR</title>
    <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273931#M1369</link>
    <description>&lt;P&gt;Are you using PROC OPTMODEL? &amp;nbsp;Can you please show the code and log for&amp;nbsp;the error?&lt;/P&gt;</description>
    <pubDate>Mon, 30 May 2016 15:38:05 GMT</pubDate>
    <dc:creator>RobPratt</dc:creator>
    <dc:date>2016-05-30T15:38:05Z</dc:date>
    <item>
      <title>Help with MPS format</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273174#M1360</link>
      <description>&lt;P&gt;I have a working optimization model that I want to run on a really big data set (&amp;gt; 10million observations) and am receiving an out of memory error. I was hoping to export out the model in MPS format so that I can try running the model in other software. But, I can't find a way to create a .mps file from SAS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you help me out.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sashi&lt;/P&gt;</description>
      <pubDate>Thu, 26 May 2016 01:41:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273174#M1360</guid>
      <dc:creator>SashiK</dc:creator>
      <dc:date>2016-05-26T01:41:40Z</dc:date>
    </item>
    <item>
      <title>Re: Help with MPS format</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273931#M1369</link>
      <description>&lt;P&gt;Are you using PROC OPTMODEL? &amp;nbsp;Can you please show the code and log for&amp;nbsp;the error?&lt;/P&gt;</description>
      <pubDate>Mon, 30 May 2016 15:38:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273931#M1369</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2016-05-30T15:38:05Z</dc:date>
    </item>
    <item>
      <title>Re: Help with MPS format</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273933#M1371</link>
      <description>&lt;P&gt;Yes, I'm using PROC OPTMODEL. Below code is for a sample of 400K customers. The full dataset has 30MM customers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code and I have attached the log file:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc optmodel;&lt;BR /&gt;/* declare sets and data indexed by sets */&lt;BR /&gt;&lt;BR /&gt;set &amp;lt;string&amp;gt; Email;&lt;BR /&gt;set &amp;lt;string&amp;gt; Brand;&lt;BR /&gt;set &amp;lt;number&amp;gt; Custs;&lt;BR /&gt;num Circulation{Email};&lt;BR /&gt;num Priority{Email};&lt;BR /&gt;num Percentage{Brand};&lt;BR /&gt;num ExpectedSpend{Custs,Email,Brand};&lt;BR /&gt;&lt;BR /&gt;/* declare the variable */&lt;BR /&gt;&lt;BR /&gt;var Pick{Custs,Email} binary init 0;&lt;BR /&gt;&lt;BR /&gt;/* maximize objective function (Total Spend) */&lt;BR /&gt;&lt;BR /&gt;maximize TotalSpend = sum{i in Custs, j in Email, k in Brand} ExpectedSpend[i,j,k] * Pick[i,j] * Priority[j];&lt;BR /&gt;&lt;BR /&gt;/* subject to constraints */&lt;BR /&gt;&lt;BR /&gt;con CircLimit {j in Email} : sum {i in Custs} Pick[i,j] &amp;lt;= Circulation[j];&lt;BR /&gt;con indvMailconstraint {i in Custs}: sum {j in Email} Pick[i,j] = 1;&lt;BR /&gt;con brandSalesLimit {k in Brand}: sum {i in Custs, j in Email} ExpectedSpend[i,j,k] * Pick[i,j] * Priority[j] &amp;gt;= Percentage[k] * TotalSpend / 100;&lt;BR /&gt;&lt;BR /&gt;/* abstract algebraic model that captures the structure of the */&lt;BR /&gt;/* optimization problem has been defined without referring */&lt;BR /&gt;/* to a single data constant */&lt;BR /&gt;&lt;BR /&gt;/* populate model by reading in the specific data instance */&lt;BR /&gt;&lt;BR /&gt;read data Email into Email=[Email] Circulation Priority;&lt;BR /&gt;read data Brand into Brand=[Brand] Percentage;&lt;BR /&gt;read data Customer into Custs=[Customer];&lt;BR /&gt;read data ExpSpend into [Customer Email Brand] ExpectedSpend[Customer, Email, Brand]=ExpSpend;&lt;BR /&gt;&lt;BR /&gt;/* solve LP using primal simplex solver */&lt;BR /&gt;solve with lp / solver = primal_spx;&lt;BR /&gt;&lt;BR /&gt;/* display solution */&lt;BR /&gt;print TotalSpend;&lt;BR /&gt;create data results.solution from [customer email]={Custs, Email} Assignment=Pick;&lt;BR /&gt;quit;&lt;/P&gt;</description>
      <pubDate>Mon, 30 May 2016 15:55:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273933#M1371</guid>
      <dc:creator>SashiK</dc:creator>
      <dc:date>2016-05-30T15:55:22Z</dc:date>
    </item>
    <item>
      <title>Re: Help with MPS format</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273936#M1372</link>
      <description>&lt;P&gt;I see that you are using SAS/OR 12.1, which is four years old. &amp;nbsp;We have had several releases since then, with performance improvements in each release. &amp;nbsp;The latest release is SAS/OR 14.1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You declare binary variables but then use the LP solver instead of the MILP solver. &amp;nbsp;Was this intended? &amp;nbsp;Also, is there a particular reason that you specify the primal simplex algorithm rather than the default dual simplex algorithm? &amp;nbsp;In fact, the interior point algorithm might be best for this large-scale instance.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you please&amp;nbsp;set&amp;nbsp;the SAS FULLSTIMER option, rerun PROC OPTMODEL, and show the new log?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;option fullstimer;&lt;/P&gt;</description>
      <pubDate>Mon, 30 May 2016 16:25:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/273936#M1372</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2016-05-30T16:25:05Z</dc:date>
    </item>
    <item>
      <title>Re: Help with MPS format</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/274175#M1378</link>
      <description>&lt;P&gt;Thanks Rob... we forced it to use primal simplex for no particular reason. We were reusing older code and didn't think it made a difference. Now that you called it out, I've taken it out and just replaced it with a solve statement with the default solver. See attached log with the fullstimer option enabled.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What options do I give if I need to make it use the interior point algorithm as you suggested? I tried the following statement but it said that the IPNLP solver does not allow integer variables.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Solve with IPNLP / Solver =&amp;nbsp;IPKRYLOV;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Are you able to tell me what resources does my system need in order to solve a problem that is this big? Since this is on a sample(400K), what about the full dataset of 30MM?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can SAS generate a MPS file for my model that I can load to other solvers on the clod to take advantage of more system resources (Amazon AWS for example).. does SAS have an equivalent?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let me know if you have any other suggestions that I can try out.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks so much for your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sashi&lt;/P&gt;</description>
      <pubDate>Tue, 31 May 2016 18:49:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/274175#M1378</guid>
      <dc:creator>SashiK</dc:creator>
      <dc:date>2016-05-31T18:49:05Z</dc:date>
    </item>
    <item>
      <title>Re: Help with MPS format</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/274181#M1379</link>
      <description>&lt;P&gt;LP algorithm choice is documented here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/ormpug/66107/HTML/default/viewer.htm#ormpug_lpsolver_syntax02.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/ormpug/66107/HTML/default/viewer.htm#ormpug_lpsolver_syntax02.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For example, to relax the integer variables and use the interior point algorithm:&lt;/P&gt;
&lt;P&gt;solve with LP relaxint / algorithm=interiorpoint;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You might also try the default LP&amp;nbsp;algorithm (dual simplex):&lt;/P&gt;
&lt;P&gt;solve with LP relaxint;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or network&amp;nbsp;simplex:&lt;/P&gt;
&lt;P&gt;solve with LP relaxint / algorithm=network;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For information about memory requirements, see:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_concepts_sect005.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_concepts_sect005.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can save an MPS data set as described here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_optmodel_syntax11.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_optmodel_syntax11.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS/OR does support parallel processing on a single machine or on a grid:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_lpsolver_details10.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_lpsolver_details10.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_milpsolver_details09.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_milpsolver_details09.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You should also consider trying the decomposition algorithm:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_decomp_toc.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_decomp_toc.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that some of this functionality has been added since SAS/OR 12.1, so please upgrade to take advantage of the added features and numerous performance improvements.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 31 May 2016 19:17:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Help-with-MPS-format/m-p/274181#M1379</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2016-05-31T19:17:54Z</dc:date>
    </item>
  </channel>
</rss>

