Since your problem is an integer program, it does not know how to calculate duals. When you ask for the dual what exactly do you want back? The optimal duals of an integer program is a research question that (as far as I understand) nobody knows how to answer.<br>

<br>Do you want the dual solution to the LP relaxation? If so, solve the LP first, then get the duals.<br><br>For OSI folks, you should probably change this to return an error and warning message - rather than to quietly return 0.0.<br>

<br>Thanks,<br>Matt<br><br><br><br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div>Hi all,</div>
<div> </div>
<div>I tried to use function getRowPrice() to get the solution of dual solution from an IP problem. But I received the result contain all zero value. I don&#39;t know the reason why. Can anyone give me an suggestion?</div>



<div> </div>
<div>
<p>my IP problem is:</p>
<p><i>NAME EXAMPLE<br>ROWS<br> N OBJ<br> L ROW1<br> L ROW2<br> L ROW3<br>COLUMNS<br> INT1 &#39;MARKER&#39; &#39;INTORG&#39;<br> COL1 OBJ 20<br> COL1 ROW1 1  ROW3 1 <br> COL2 OBJ 20<br> COL2 ROW1 1  ROW2 1 <br> COL3 OBJ 20<br>


 COL3 ROW2 1  ROW3 1 <br> COL4 OBJ 5<br> COL4 ROW3 1   <br> COL5 OBJ 5<br> COL5 ROW1 1  <br> COL6 OBJ 5<br> COL6 ROW2 1<br> INT1END &#39;MARKER&#39; &#39;INTEND&#39;<br>RHS<br> RHS ROW1 1<br> RHS ROW2 1<br> RHS ROW3 1<br>


ENDATA</i> </p>
<p>and my code is:</p>
<p>...</p>
<p><i>model.setObjSense(-1);<br>model.branchAndBound();<br>//..................get dual solution................</i></p><font size="2">
<p><i>OsiSolverInterface * solver;</i></p>
<p></p></font><font size="2" color="#0000ff"><i>if</i></font><font size="2"><i> (preProcess) {</i>
<p><i>process.postProcess(*model.solver());</i></p>
<p></p></font><font size="2" color="#008000"><i>// Solution now back in solver1</i></font><font size="2">
<p><i>solver = &amp; solver1;</i></p>
<p><i>} </i></p></font><font size="2" color="#0000ff"><i>else</i></font><font size="2"><i> {</i>
<p><i>solver = model.solver();</i></p>
<p><i>}</i></p></font>
<p><i>const double *dualSolution= solver-&gt;getRowPrice();<br>int numberRows=model.getNumRows();<br>int iRows;</i></p>
<p><i>for(iRows=0;iRows&lt;numberRows;iRows++){<br>    double value=dualSolution[iRows];<br>    std::cout&lt;&lt;value&lt;&lt;std::endl;<br>  }</i></p>
<p>the result I got is (0,0,0).</p>
<p>Thanks,</p>
<p>Danh Hua</p></div>
<br>_______________________________________________<br>
Osi mailing list<br>
<a href="mailto:Osi@list.coin-or.org">Osi@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/osi" target="_blank">http://list.coin-or.org/mailman/listinfo/osi</a><br>
<br></blockquote></div><br>