1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<HEAD>
<TITLE>get_sensitivity_obj, get_ptr_sensitivity_obj, get_sensitivity_objex,
get_ptr_sensitivity_objex</TITLE>
<style TYPE="text/css"> BODY { font-family:verdana,arial,helvetica; margin:0; }
</style>
</HEAD>
<BODY>
<TABLE class="clsContainer" style="TABLE-LAYOUT: fixed" cellSpacing="0" cellPadding="15"
width="100%" border="0">
<TR>
<TD vAlign="top">
<h1>get_sensitivity_obj, get_ptr_sensitivity_obj, get_sensitivity_objex,
get_ptr_sensitivity_objex</h1>
<p>Returns the sensitivity of the objective function.</p>
<p><b>unsigned char get_sensitivity_obj(lprec </b>*<i>lp</i><b>, REAL </b>*<i>objfrom</i><b>, REAL </b>*<i>objtill</i><b>);</b></p>
<p><b>unsigned char get_sensitivity_objex(lprec </b>*<i>lp</i><b>, REAL </b>*<i>objfrom</i><b>, REAL </b>*<i>objtill</i><b>, REAL </b>*<i>objfromvalue</i><b>, REAL </b>*<i>objtillvalue</i><b>);</b></p>
<p><b>unsigned char get_ptr_sensitivity_obj(lprec </b>*<i>lp</i><b>, REAL </b>**<i>ptr_objfrom</i><b>, REAL </b>**<i>ptr_objtill</i><b>);</b></p>
<p><b>unsigned char get_ptr_sensitivity_objex(lprec </b>*<i>lp</i><b>, REAL </b>**<i>ptr_objfrom</i><b>, REAL </b>**<i>ptr_objtill</i><b>, REAL </b>**<i>ptr_objfromvalue</i><b>, REAL </b>**<i>ptr_objtillvalue</i><b>);</b></p>
<p class="label"><b>Return Value</b></p>
<p><b>get_sensitivity_obj, get_ptr_sensitivity_obj, get_sensitivity_objex,
get_ptr_sensitivity_objex</b> return TRUE (1) if the operation was
successful. A return value of FALSE (0) indicates an error.<br>
</p>
<p class="label"><b>Parameters</b></p>
<p class="dt"><i>lp</i></p>
<p class="indent">Pointer to previously created lp model. See return value of <A href="make_lp.htm">
make_lp</A>, <A HREF="copy_lp.htm">copy_lp</A>, <A href="read_lp.htm">read_lp, read_LP</A>, <A href="read_mps.htm">read_mps, read_freemps, read_MPS, read_freeMPS</A>, <A HREF="read_XLI.htm">read_XLI</A></p>
<p class="dt"><i>objfrom</i></p>
<p class="indent">An array that will contain the values of the lower limits on the
objective function.</p>
<p class="dt"><i>ptr_objfrom</i></p>
<p class="indent">The address of a pointer that will point to an array that will
contain the values of the lower limits of the objective function.</p>
<p class="dt"><i>objtill</i></p>
<p class="indent">An array that will contain the values of the upper limits of the
objective function.</p>
<p class="dt"><i>ptr_objtill</i></p>
<p class="indent">The address of a pointer that will point to an array that will
contain the values of the upper limits of the objective function.</p>
<p class="dt"><i>objfromvalue</i></p>
<p class="indent">An array that will contain the values of the variables at their
lower limit. Only applicable when the value of the variable is 0 (rejected).</p>
<p class="dt"><i>objtillvalue</i></p>
<p class="indent">Not used at this time.</p>
<p class="dt"><i>ptr_objfromvalue</i></p>
<p class="indent">The address of a pointer that will point to an array that will
contain the values of the variables at their lower limit. Only applicable when
the value of the variable is 0 (rejected).</p>
<p class="dt"><i>ptr_objtillvalue</i></p>
<p class="indent">Not used at this time.</p>
<p class="label"><b>Remarks</b></p>
<p>The <b>get_sensitivity_obj</b>, <b>get_ptr_sensitivity_obj</b>, <b>get_sensitivity_objex</b>,
<b>get_ptr_sensitivity_objex</b> functions return the sensitivity of the
objective function.<br>
These values are only valid after a successful <A href="solve.htm">solve</A> and
if there are integer variables in the model then only if <A href="set_presolve.htm">
set_presolve</A> is called before solve with parameter <i>PRESOLVE_SENSDUALS</i>.
Functions <b>get_sensitivity_obj</b>, <b>get_sensitivity_objex</b> need arrays
that are already dimensioned with <A href="get_Ncolumns.htm">get_Ncolumns</A> elements.
<b>get_ptr_sensitivity_obj</b>, <b>get_ptr_sensitivity_objex</b> returns a
pointer to an array already dimensioned by lp_solve. Element 0 will contain the
value of the first variable, element 1 of the second variable, ...<br>
The meaning of these limits are the following. As long as the value of the
coefficient of the objective function stays between the lower limit (<i>objfrom</i>)
and the upper limit (<i>objtill</i>), the solution stays the same. Only the
objective value itself changes with a value equal to the difference multiplied
by the amount of this variable. If there is no lower/upper limit, then these
values are (-)infinity.
</p>
<p>Note that <b>get_ptr_sensitivity_obj</b> and <b>get_ptr_sensitivity_objex</b> return a pointer to memory allocated and maintained
by lp_solve. Be careful what you do with it. Don't modify its contents or free the memory.
Unexpected behaviour would occur. Also note that this memory pointer is only guaranteed to
remain constant until a next lp_solve API call is done. You should call this function again
to make sure you have again the correct pointer. Otherwise, this pointer could point to invalid
memory. This should not be a problem since this call is very efficient.</p>
<p class="label"><b>Example</b></p>
<pre><code>#include <stdio.h>
#include <stdlib.h>
#include "lp_lib.h"
int main(void)
{
lprec *lp;
REAL objfrom[1+2], objtill[1+2], *ptr_objfrom, *ptr_objtill;
/* Create a new LP model */
lp = make_lp(0, 2);
if(lp == NULL) {
fprintf(stderr, "Unable to create new LP model\n");
return(1);
}
str_set_obj_fn(lp, "1 1");
str_add_constraint(lp, "2 4", GE, 10);
set_lowbo(lp, 1, 1);
solve(lp);
get_sensitivity_obj(lp, objfrom, objtill);
get_ptr_sensitivity_obj(lp, &ptr_objfrom, &ptr_objtill);
delete_lp(lp);
return(0);
}
</code></pre>
<p>
<A HREF="lp_solveAPIreference.htm">lp_solve API reference</A></p>
<p>
<b>See Also</b> <A HREF="make_lp.htm">make_lp</A>, <A HREF="copy_lp.htm">copy_lp</A>, <A HREF="copy_lp.htm">copy_lp</A>, <A href="read_lp.htm">read_lp,
read_LP</A>, <A HREF="read_mps.htm">
read_mps, read_freemps, read_MPS, read_freeMPS</A>, <A HREF="read_XLI.htm">read_XLI</A>, <a href="is_feasible.htm">is_feasible</a>, <A HREF="get_objective.htm">
get_objective</A>, <A HREF="get_working_objective.htm">get_working_objective</A>,
<a href="get_variables.htm">get_variables, get_ptr_variables</a>, <a href="get_primal_solution.htm">
get_primal_solution, get_ptr_primal_solution, get_var_primalresult</a>, <a href="get_sensitivity_rhs.htm">
get_sensitivity_rhs, get_ptr_sensitivity_rhs</a>,
</p>
</TD>
</TR>
</TABLE>
</BODY>
</html>
|