<?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: in Mathematical Optimization, Discrete-Event Simulation, and OR</title>
    <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411648#M2049</link>
    <description>&lt;P&gt;Yes i saw it but it´s not same than gradient function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I reply my code with proc nlp in proc optmodel.&lt;/P&gt;</description>
    <pubDate>Sat, 11 Nov 2017 14:35:29 GMT</pubDate>
    <dc:creator>dali74</dc:creator>
    <dc:date>2017-11-11T14:35:29Z</dc:date>
    <item>
      <title>proc optmodel options</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411502#M2043</link>
      <description>&lt;P&gt;Hi for all!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I´m migrating proc nlp to proc optmodel code. I can show&amp;nbsp;&amp;nbsp;Gradient Objective Function with PROC NLP&amp;nbsp; but i didnt found it in proc OPTMODEL.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyone could help?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:10:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411502#M2043</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:10:35Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411601#M2047</link>
      <description>&lt;P&gt;Dual variables (or Lagrange multipliers) are available from the .DUAL suffix.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;See the &lt;A href="http://go.documentation.sas.com/?docsetId=ormpug&amp;amp;docsetTarget=ormpug_optmodel_details50.htm&amp;amp;docsetVersion=14.3&amp;amp;locale=en" target="_self"&gt;Dual Values&lt;/A&gt;&amp;nbsp;and &lt;A href="http://go.documentation.sas.com/?docsetId=ormpug&amp;amp;docsetTarget=ormpug_optmodel_details48.htm&amp;amp;docsetVersion=14.3&amp;amp;locale=en" target="_self"&gt;Suffixes&lt;/A&gt; sections of the documentation for details.&lt;/P&gt;</description>
      <pubDate>Wed, 08 Nov 2017 17:28:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411601#M2047</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-08T17:28:50Z</dc:date>
    </item>
    <item>
      <title>Re:</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411648#M2049</link>
      <description>&lt;P&gt;Yes i saw it but it´s not same than gradient function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I reply my code with proc nlp in proc optmodel.&lt;/P&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:35:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411648#M2049</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:35:29Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411731#M2052</link>
      <description>&lt;P&gt;Can you please share code and data for both versions (PROC NLP and PROC OPTMODEL)?&lt;/P&gt;</description>
      <pubDate>Wed, 08 Nov 2017 22:12:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411731#M2052</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-08T22:12:43Z</dc:date>
    </item>
    <item>
      <title>Re:</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411867#M2053</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes Rob, you can see it :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Proc NLP&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc nlp ;
array par1[2] 5.5 4.1   ; 
array par2[2] 3.1 2.1; 
array z[2] z1-z2;
min y;
decvar z1-z2;
do n=1 to 2;
y= y+( par1[n]*par2[n]*z[n]**3);
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And using proc optmodel now.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC OPTMODEL;
set I = 1..2;
number n=2;
number parm1 {I} =[5.545455 4.47841 ];
number parm2 {I} =[3.121211 2.04111];
var z{I};
MIN y = SUM{k IN I} (z[k] * (parm1[k] + (z[k] / parm2[k])));
SOLVE with nlp;
PRINT parm1 parm2 z.sol z.dual;
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:39:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411867#M2053</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:39:01Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411969#M2054</link>
      <description>&lt;P&gt;The optimization problem you specified in PROC OPTMODEL is different than the one that uses PROC NLP.&amp;nbsp; Also, the PROC NLP problem is unbounded, which you can see by&amp;nbsp;letting z[n] approach negative infinity.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2017 15:44:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411969#M2054</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-09T15:44:05Z</dc:date>
    </item>
    <item>
      <title>Re</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411994#M2055</link>
      <description>&lt;P&gt;sorry it was my fault. I´m trying with multiple models&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You will see with this code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc nlp ;
array par1[2] 5.545455 4.47841 ; 
array par2[2] 3.121211 2.04111; 
array z[2] z1-z2;
min y;
decvar z1-z2;
do n=1 to 2;
y= y+(z[n]*(par1[n]+z[n]/par2[n]));
end;
run;

PROC OPTMODEL;
set I = 1..2;
number n=2;
number parm1 {I} =[5.545455 4.47841 ];
number parm2 {I} =[3.121211 2.04111];
var z{I};
MIN y = SUM{k IN I} (z[k] * (parm1[k] + (z[k] / parm2[k])));
SOLVE with nlp;
PRINT parm1 parm2 z.sol z.dual;
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:39:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411994#M2055</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:39:26Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411999#M2056</link>
      <description>&lt;P&gt;I don't see any discrepancy between the results.&amp;nbsp; The optimal solutions and objective values agree, and the gradients are essentially 0.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS Output&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV class="c proctitle"&gt;PROC NLP: Nonlinear Minimization&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure NLP: Resulting Parameters" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt; &lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="c b header" colspan="4" scope="colgroup"&gt;Optimization Results&lt;/TH&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="c b header" colspan="4" scope="colgroup"&gt;Parameter Estimates&lt;/TH&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r b header" scope="col"&gt;N&lt;/TH&gt;
&lt;TH class="l b header" scope="col"&gt;Parameter&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Estimate&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Gradient&lt;BR /&gt;Objective&lt;BR /&gt;Function&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;1&lt;/TH&gt;
&lt;TH class="l rowheader" scope="row"&gt;z1&lt;/TH&gt;
&lt;TD class="r data"&gt;-8.654268&lt;/TD&gt;
&lt;TD class="r data"&gt;4.440892E-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;2&lt;/TH&gt;
&lt;TH class="l rowheader" scope="row"&gt;z2&lt;/TH&gt;
&lt;TD class="r data"&gt;-4.570464&lt;/TD&gt;
&lt;TD class="r data"&gt;-4.44089E-16&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="proctitle"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="c proctitle"&gt;Value of Objective Function = -34.2301309&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS Output&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV class="c proctitle"&gt;The OPTMODEL Procedure&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Optmodel: Solution Summary" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="c b header" colspan="2" scope="colgroup"&gt;Solution Summary&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Solver&lt;/TH&gt;
&lt;TD class="r data"&gt;NLP&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Algorithm&lt;/TH&gt;
&lt;TD class="r data"&gt;Interior Point&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Objective Function&lt;/TH&gt;
&lt;TD class="r data"&gt;y&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Solution Status&lt;/TH&gt;
&lt;TD class="r data"&gt;Optimal&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Objective Value&lt;/TH&gt;
&lt;TD class="r data"&gt;-34.2301309&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;&amp;nbsp;&lt;/TH&gt;
&lt;TD class="r data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Optimality Error&lt;/TH&gt;
&lt;TD class="r data"&gt;2.391962E-15&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Infeasibility&lt;/TH&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;&amp;nbsp;&lt;/TH&gt;
&lt;TD class="r data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Iterations&lt;/TH&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Presolve Time&lt;/TH&gt;
&lt;TD class="r data"&gt;0.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Solution Time&lt;/TH&gt;
&lt;TD class="r data"&gt;0.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;BR /&gt;&lt;A name="IDX11" target="_blank"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Optmodel: PrintTable" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt;&lt;/COLGROUP&gt; &lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l b header" scope="col"&gt;[1]&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;parm1&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;parm2&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;z.SOL&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;z.DUAL&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;1&lt;/TH&gt;
&lt;TD class="r data"&gt;5.5455&lt;/TD&gt;
&lt;TD class="r data"&gt;3.1212&lt;/TD&gt;
&lt;TD class="r data"&gt;-8.6543&lt;/TD&gt;
&lt;TD class="r data"&gt;1.1546E-14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;2&lt;/TH&gt;
&lt;TD class="r data"&gt;4.4784&lt;/TD&gt;
&lt;TD class="r data"&gt;2.0411&lt;/TD&gt;
&lt;TD class="r data"&gt;-4.5705&lt;/TD&gt;
&lt;TD class="r data"&gt;-2.3093E-14&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 09 Nov 2017 16:34:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/411999#M2056</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-09T16:34:14Z</dc:date>
    </item>
    <item>
      <title>Re:</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412130#M2057</link>
      <description>&lt;P&gt;and how can i obtain&amp;nbsp;&lt;SPAN&gt;Max Abs Gradient Element in proc optmodel?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:39:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412130#M2057</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:39:51Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412134#M2058</link>
      <description>&lt;P&gt;For your problem:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;print (max {k in I} abs(z[k].dual));
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;More generically:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;print (max {j in 1.._NVAR_} abs(_VAR_[j].dual));
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 09 Nov 2017 21:01:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412134#M2058</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-09T21:01:05Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412184#M2059</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think gradient of proc nlp and lagrangian of proc optmodel are similar but not the same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:40:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412184#M2059</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:40:18Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412418#M2062</link>
      <description>&lt;P&gt;Are you looking for a symbolic formula for each partial derivative?&amp;nbsp; Or do you just want to compute the gradient at a specific point?&lt;/P&gt;</description>
      <pubDate>Fri, 10 Nov 2017 16:37:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412418#M2062</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-10T16:37:24Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412449#M2064</link>
      <description>&lt;P&gt;i was looking for the second option (using the same start points that proc nlp) but if you can specify first option too it will be really help!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;</description>
      <pubDate>Fri, 10 Nov 2017 18:16:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412449#M2064</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-10T18:16:24Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412454#M2065</link>
      <description>&lt;P&gt;&lt;A href="https://blogs.sas.com/content/iml/2017/09/11/symbolic-derivatives-sas.html" target="_self"&gt;This blog post&lt;/A&gt; discusses symbolic derivatives with SAS.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And here's an undocumented way to compute the gradient at a given point (in this case, the initial solution from PROC NLP):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC OPTMODEL;
   set I = 1..2;
   number parm1 {I} =[5.545455 4.47841];
   number parm2 {I} =[3.121211 2.04111];
   var z{I};
   z[1] = 0.478582;
   z[2] = 0.451506; 
   MIN y = SUM{k IN I} (z[k] * (parm1[k] + (z[k] / parm2[k])));
   SOLVE with none;
   PRINT parm1 parm2 z.sol z.dual;
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SAS Output&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;TABLE class="systitleandfootercontainer" border="0" summary="Page Layout" width="100%" frame="void" rules="none" cellspacing="1" cellpadding="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="c systemtitle"&gt;The SAS System&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;BR /&gt;
&lt;DIV class="c proctitle"&gt;The OPTMODEL Procedure&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Optmodel: Solution Summary" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="c b header" colspan="2" scope="colgroup"&gt;Solution Summary&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Solver&lt;/TH&gt;
&lt;TD class="r data"&gt;None&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Objective Function&lt;/TH&gt;
&lt;TD class="r data"&gt;y&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Solution Status&lt;/TH&gt;
&lt;TD class="r data"&gt;Optimal&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Objective Value&lt;/TH&gt;
&lt;TD class="r data"&gt;4.8492418235&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;&amp;nbsp;&lt;/TH&gt;
&lt;TD class="r data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Iterations&lt;/TH&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Presolve Time&lt;/TH&gt;
&lt;TD class="r data"&gt;0.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;Solution Time&lt;/TH&gt;
&lt;TD class="r data"&gt;0.00&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Optmodel: PrintTable" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l b header" scope="col"&gt;[1]&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;parm1&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;parm2&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;z.SOL&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;z.DUAL&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;1&lt;/TH&gt;
&lt;TD class="r data"&gt;5.5455&lt;/TD&gt;
&lt;TD class="r data"&gt;3.1212&lt;/TD&gt;
&lt;TD class="r data"&gt;0.47858&lt;/TD&gt;
&lt;TD class="r data"&gt;5.8521&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="l rowheader" scope="row"&gt;2&lt;/TH&gt;
&lt;TD class="r data"&gt;4.4784&lt;/TD&gt;
&lt;TD class="r data"&gt;2.0411&lt;/TD&gt;
&lt;TD class="r data"&gt;0.45151&lt;/TD&gt;
&lt;TD class="r data"&gt;4.9208&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can see that the values match the PROC NLP initial solution, shown here:&lt;/P&gt;
&lt;P&gt;SAS Output&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;TABLE class="systitleandfootercontainer" border="0" summary="Page Layout" width="100%" frame="void" rules="none" cellspacing="1" cellpadding="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="c systemtitle"&gt;The SAS System&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="c proctitle"&gt;PROC NLP: Nonlinear Minimization&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure NLP: Starting Parameters" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt; &lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="c b header" colspan="4" scope="colgroup"&gt;Optimization Start&lt;/TH&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="c b header" colspan="4" scope="colgroup"&gt;Parameter Estimates&lt;/TH&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r b header" scope="col"&gt;N&lt;/TH&gt;
&lt;TH class="l b header" scope="col"&gt;Parameter&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Estimate&lt;/TH&gt;
&lt;TH class="r b header" scope="col"&gt;Gradient&lt;BR /&gt;Objective&lt;BR /&gt;Function&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;1&lt;/TH&gt;
&lt;TH class="l rowheader" scope="row"&gt;z1&lt;/TH&gt;
&lt;TD class="r data"&gt;0.478582&lt;/TD&gt;
&lt;TD class="r data"&gt;5.852119&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;2&lt;/TH&gt;
&lt;TH class="l rowheader" scope="row"&gt;z2&lt;/TH&gt;
&lt;TD class="r data"&gt;0.451506&lt;/TD&gt;
&lt;TD class="r data"&gt;4.920822&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="proctitle"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="c proctitle"&gt;Value of Objective Function = 4.8492430842&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Nov 2017 18:32:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412454#M2065</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-10T18:32:57Z</dc:date>
    </item>
    <item>
      <title>Re:</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412472#M2066</link>
      <description>&lt;P&gt;Hi Rob!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for your quick answer. I´m triying to reproduce your results but i dont get same solution:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1º Using proc NLP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; proc nlp ;
array par1[2] 5.545455 4.47841 ; 
array par2[2] 3.121211 2.04111; 
array z[2] z1-z2;
min y;
decvar z1-z2;
do n=1 to 2;
y= y+(z[n]*(par1[n]+(z[n]/par2[n])));
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then i use proc optmodel with -8.654268 and -4.570464&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC OPTMODEL;
   set I = 1..2;
   number parm1 {I} =[5.545455 4.47841];
   number parm2 {I} =[3.121211 2.04111];
   var z{I};
   z[1] = -8.654268	;
   z[2] = -4.570464;
   MIN y = SUM{k IN I} (z[k] * (parm1[k] + (z[k] / parm2[k])));
   SOLVE with none;
   PRINT parm1 parm2 z.sol z.dual;
QUIT;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;As you can see it not the same&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what do i do wrong?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Nov 2017 14:40:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412472#M2066</guid>
      <dc:creator>dali74</dc:creator>
      <dc:date>2017-11-11T14:40:42Z</dc:date>
    </item>
    <item>
      <title>Re: Is there one way to show Gradient Objective Function (proc nlp) in proc optmodel?</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412482#M2067</link>
      <description>&lt;P&gt;It is just a matter of precision.&amp;nbsp; If you use the OUT= option in PROC NLP and copy the values from there, you will get closer:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;z[1] = -8.654267573;&lt;BR /&gt; z[2] = -4.570463718;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The gradient is essentially zero at this point.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Nov 2017 19:17:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/proc-optmodel-options/m-p/412482#M2067</guid>
      <dc:creator>RobPratt</dc:creator>
      <dc:date>2017-11-10T19:17:17Z</dc:date>
    </item>
  </channel>
</rss>

