<?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: Obtaining minimum maximum output of a macro (function) in Mathematical Optimization, Discrete-Event Simulation, and OR</title>
    <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351147#M1764</link>
    <description>&lt;P&gt;These are the packages I hae access to:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC SETINIT; run;&lt;/P&gt;&lt;P&gt;-Base SAS Software&lt;BR /&gt;---SAS/STAT&lt;BR /&gt;---SAS/GRAPH&lt;BR /&gt;---SAS/ETS&lt;BR /&gt;---SAS/OR&lt;BR /&gt;---SAS/Secure 168-bit&lt;BR /&gt;---SAS/Secure Windows&lt;BR /&gt;---SAS Enterprise Guide&lt;BR /&gt;---OR OPT&lt;BR /&gt;---OR PRS&lt;BR /&gt;---OR IVS&lt;BR /&gt;---OR LSO&lt;BR /&gt;---SAS/ACCESS Interface to PC Files&lt;BR /&gt;---SAS/ACCESS Interface to OLE DB&lt;BR /&gt;---SAS Workspace Server for Local Access&lt;BR /&gt;---High Performance Suite&lt;/P&gt;</description>
    <pubDate>Wed, 19 Apr 2017 05:33:14 GMT</pubDate>
    <dc:creator>Pinegulf</dc:creator>
    <dc:date>2017-04-19T05:33:14Z</dc:date>
    <item>
      <title>Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350838#M1754</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Stack overflow could not help me so and referred me here.&amp;nbsp;&lt;/P&gt;&lt;P&gt;ref:&amp;nbsp;&lt;A href="http://stackoverflow.com/questions/42804051/obtaining-minimum-maximum-output-of-a-macro-function" target="_blank"&gt;http://stackoverflow.com/questions/42804051/obtaining-minimum-maximum-output-of-a-macro-function&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to find to find extreme values produced by a macro as a function of input parameters:&lt;/P&gt;&lt;P&gt;For example purposes here is some data:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;data Input_data;
    input X Y;
    cards;
    10 15
    20 18
    30 27
    33 41
    ;
run; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The following is not the actual formula (as the minimum for this is easily found analytically.) and I want computational method. For examples sake I have semi-empirical rule, which takes three parameters in:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;%macro Function(const1, const2 const3);
    data output;
        set input;
        X_eff1=((X &amp;gt; &amp;amp;const1.)*(X - &amp;amp;const1.)**2);
        X_eff2=((X &amp;gt; &amp;amp;const2.)*(X - &amp;amp;const2.)**2);
        X_eff3=((X &amp;gt; &amp;amp;const3.)*(X - &amp;amp;const3.)**2);
        Residual= Y - (1.3*X_eff1 - 2.7*X_eff2+ 3.1*X_eff3);
    run;
%mend;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;I want the find const1, const2 const3 which produce the minimum value for variable 'Residual'. &amp;nbsp;&lt;/STRONG&gt;For sake of argument, lets say minimum of sum(abs(residual)).&lt;/P&gt;&lt;P&gt;&amp;nbsp;Can SAS do this? Few options that are to be considered:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;a) Find global minimum&lt;/P&gt;&lt;P&gt;b) Find local minimum within boundary conditions, for example: &lt;CODE&gt;const1[0,1]&lt;/CODE&gt; &lt;CODE&gt;const2[10,17]&lt;/CODE&gt;, &lt;CODE&gt;const3[20, 22]&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;I could generate huge table and brute force feed it to the function. However, this is not feasible if the number of input parameter rise.&lt;/P&gt;&lt;P&gt;I could scratch program something?&lt;/P&gt;&lt;P&gt;I could do this in numpy (fmin from cipy.optimize comes to mind)or R if it proves hard for SAS.&lt;/P&gt;&lt;P&gt;Any thoughts on how to solve it?&lt;/P&gt;</description>
      <pubDate>Tue, 18 Apr 2017 13:26:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350838#M1754</guid>
      <dc:creator>Pinegulf</dc:creator>
      <dc:date>2017-04-18T13:26:13Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350847#M1755</link>
      <description>&lt;P&gt;Sounds like a proc iml problem to me all those matrices. &amp;nbsp;I will however move this over to the stats section.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Apr 2017 13:40:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350847#M1755</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-04-18T13:40:25Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350853#M1756</link>
      <description>&lt;P&gt;You could program it yourself in this fashion:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;min_residual = 999;&lt;/P&gt;
&lt;P&gt;do const1 = 0 to 1 by 0.01;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; do const2 = 10 to 17 by 0.01;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do const3 = 20 to 22 by 0.01;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Calculations using no macro variables, only const1 const2 and const3;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if abs(residual) &amp;lt; min_residual then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; min_residual = abs(residual);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; min_const1 = const1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; min_const2 = const2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; min_const3 = const3;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can adjust the fineness of the grid, depending on how many constants you have, how many observations you have, and how much time&amp;nbsp; you have to wait for the program to complete.&amp;nbsp; Also, you may want to add another variable to track whether the minimum residual is positive or negative.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Apr 2017 13:49:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350853#M1756</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-04-18T13:49:18Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350857#M1757</link>
      <description>&lt;P&gt;The standard ways to solve an optimization problem (constrained or unconstrained) in SAS are:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Use one of the NLP routines in SAS/IML. For&amp;nbsp;an overview and many links, see the article &lt;A href="http://blogs.sas.com/content/iml/2016/05/11/tips-before-optimization.html" target="_self"&gt;"Ten tips before you run an optimization"&lt;/A&gt;&amp;nbsp;or &lt;A href="http://support.sas.com/documentation/cdl/en/imlug/66845/HTML/default/viewer.htm#imlug_nonlinearoptexpls_sect001.htm" target="_self"&gt;see the SAS/IML documentation for many examples.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. PROC OPTMODEL in SAS/OR software&amp;nbsp;provides a simpler syntax and a wide variety of solvers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do you have a license for either SAS/IML and/or SAS/OR software?&lt;/P&gt;</description>
      <pubDate>Tue, 18 Apr 2017 13:57:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350857#M1757</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2017-04-18T13:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350858#M1758</link>
      <description>&lt;P&gt;Moved this thread to mathematical optimization, which only helps if you have the module though.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do you know what's included in your SAS license?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Apr 2017 13:56:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350858#M1758</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-04-18T13:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350869#M1759</link>
      <description>I haven't fully understood what you are up to, but maybe take a look at proc model (&lt;A href="http://support.sas.com/documentation/cdl/en/etsug/63939/HTML/default/viewer.htm#etsug_model_sect011.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/etsug/63939/HTML/default/viewer.htm#etsug_model_sect011.htm&lt;/A&gt;) or proc optmodel.</description>
      <pubDate>Tue, 18 Apr 2017 14:19:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/350869#M1759</guid>
      <dc:creator>user24feb</dc:creator>
      <dc:date>2017-04-18T14:19:48Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351142#M1762</link>
      <description>&amp;gt;Do you have a license for either SAS/IML and/or SAS/OR software?&lt;BR /&gt;Sorry, no.</description>
      <pubDate>Wed, 19 Apr 2017 05:10:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351142#M1762</guid>
      <dc:creator>Pinegulf</dc:creator>
      <dc:date>2017-04-19T05:10:38Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351146#M1763</link>
      <description>The brute force approach works in the case of the example.&lt;BR /&gt;However, I'm working with rather large datasets (about 1gb) and the actual number of variables may be larger.</description>
      <pubDate>Wed, 19 Apr 2017 05:32:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351146#M1763</guid>
      <dc:creator>Pinegulf</dc:creator>
      <dc:date>2017-04-19T05:32:00Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351147#M1764</link>
      <description>&lt;P&gt;These are the packages I hae access to:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC SETINIT; run;&lt;/P&gt;&lt;P&gt;-Base SAS Software&lt;BR /&gt;---SAS/STAT&lt;BR /&gt;---SAS/GRAPH&lt;BR /&gt;---SAS/ETS&lt;BR /&gt;---SAS/OR&lt;BR /&gt;---SAS/Secure 168-bit&lt;BR /&gt;---SAS/Secure Windows&lt;BR /&gt;---SAS Enterprise Guide&lt;BR /&gt;---OR OPT&lt;BR /&gt;---OR PRS&lt;BR /&gt;---OR IVS&lt;BR /&gt;---OR LSO&lt;BR /&gt;---SAS/ACCESS Interface to PC Files&lt;BR /&gt;---SAS/ACCESS Interface to OLE DB&lt;BR /&gt;---SAS Workspace Server for Local Access&lt;BR /&gt;---High Performance Suite&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 05:33:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351147#M1764</guid>
      <dc:creator>Pinegulf</dc:creator>
      <dc:date>2017-04-19T05:33:14Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351149#M1765</link>
      <description>&lt;P&gt;Then look at PROC OPTMODEL as per Ricks suggestion above.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 05:40:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351149#M1765</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-04-19T05:40:57Z</dc:date>
    </item>
    <item>
      <title>Re: Obtaining minimum maximum output of a macro (function)</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351170#M1766</link>
      <description>&lt;PRE&gt;
http://blogs.sas.com/content/iml/2017/04/12/quadratic-optimization-sas.html

&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Apr 2017 07:10:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Obtaining-minimum-maximum-output-of-a-macro-function/m-p/351170#M1766</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-04-19T07:10:05Z</dc:date>
    </item>
  </channel>
</rss>

