<div dir="ltr">Hi David,<div><br></div><div>The way most mathematical programming solvers work is that the modeling language is completely independent of the solver (this is to allow all modeling languages to work with all solvers instead of having proprietary pairings). The modeling language converts the original model into a flat file and it is in this process that one could exploit semantic/domain knowledge. Once the instance is passed to Cbc, that information has been stripped and Cbc can only use information contained in the flat file. I guess the answer to your question would depend on how the instance file gets created. It is in that process that additional knowledge could be exploited, but that is outside of Cbc. There isn't a whole lot you can do to help Cbc internally except by actually modifying the code to recognize mathematical structures that arise in a particular domain or to customize Cbc for a particular problem class by implementing specialized subroutines that Cbc can use within its algorithm. This would require knowledge of the algorithms Cbc uses, as well as some coding. Hope this answers your question! </div><div><br></div><div>Ted  </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 8, 2020 at 7:18 PM David Coote <<a href="mailto:dccoote@outlook.com">dccoote@outlook.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi Ted,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I guess it would help the CBC preprocesor if the optimisation model developers used semantic/domain knowledge to set fixed values as fixed as against relying on the preprocessor to detect fixed values in variables. 
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Is there a list somewhere of what CBC users can do to assist the preprocessor?</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Thanks</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
David</div>
<br>
</div>
</div>

_______________________________________________<br>
Cbc mailing list<br>
<a href="mailto:Cbc@list.coin-or.org" target="_blank">Cbc@list.coin-or.org</a><br>
<a href="https://list.coin-or.org/mailman/listinfo/cbc" rel="noreferrer" target="_blank">https://list.coin-or.org/mailman/listinfo/cbc</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Dr. Ted Ralphs<br>Professor, Industrial and Systems Engineering<br>Lehigh University<br>(610) 628-1280<br>ted 'at' lehigh 'dot' edu<br><a href="http://coral.ie.lehigh.edu/~ted" target="_blank">coral.ie.lehigh.edu/~ted</a><br></div></div></div></div></div></div></div></div>