<div dir="ltr">Hi,<div><br></div><div>I don&#39;t know much about CglPreProcess, but what you ask is sort of a general question. Having a one to one mapping between the presolved and original  model is something users often want. The problem is such an extra requirement would exclude several presolve tricks and hurt performance. The presolve module doesn&#39;t only fix variables, it also does aggregation and other fancy stuff, so the original variable X may now be apart of an expression say Z = X+Y+3*V and possibly eliminated from the problem. So to get the original variable, you would need to know the exact elimination tree used in the presolve module. Could be many layers deep.. I think some commercial vendors offer the possibility to get the one to one variables, in case they were not aggregated by the presolve. To the best of my memory it&#39;s done by using variable names. But this is still no guarantee you can get it from all the variables, unless you switch off certain presolve features.</div><div><br></div><div>As a fix one could fetch the presolved problem initially, switch off presolve and run on this problem instead. Once the problem is solved, then you call postsolve.</div><div><br></div><div>Hope this general reply helped.</div><div><br></div><div>/Bo </div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 5, 2015 at 4:34 PM, fpeng <span dir="ltr">&lt;<a href="mailto:fpeng@imap.srv.cs.cmu.edu" target="_blank">fpeng@imap.srv.cs.cmu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Cbc community,<br>
<br>
Is there an easy way to extract information about variables that are eliminated from preprocessing? Say I do something like:<br>
<br>
CglPreProcess process;<br>
OsiSolverInterface * solver2 = process.preProcess(*solver_, false, 8);<br>
<br>
at this point the variables in solver2 may be different from what were in solver_ because CglPreProcess did some smart things to determine that certain variables are not needed. However, some of these eliminated variables may be set to 0 or 1 (e.g. for a binary variable), and if I have a custom cbcHeuristic that relies on the original set of variables in solve_, I want to know which variables are eliminated, and what they are set to. I can figure out what variables are eliminated with originalColumns(), but I don&#39;t see an easy way to do the latter?<br>
<br>
Thanks!<br>
Fei<br>
<br>
______________________________<u></u>_________________<br>
Cbc mailing list<br>
<a href="mailto:Cbc@list.coin-or.org" target="_blank">Cbc@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/cbc" target="_blank">http://list.coin-or.org/<u></u>mailman/listinfo/cbc</a><br>
</blockquote></div><br></div>