<br>
<br><tt><font size=2>fmargot@andrew.cmu.edu wrote on 10/03/2006 03:32:57
PM:<br>
<br>
&gt; <br>
&gt; <br>
&gt; On Mon, 2 Oct 2006, John J Forrest wrote:<br>
&gt; <br>
&gt; &gt; Whom else!<br>
&gt; &gt;<br>
&gt; &gt; If a cut generator (or heuristic etc) is modified from its default<br>
&gt; &gt; constructor and then this is called &nbsp;a series of lines of
code is output<br>
&gt; &gt; which changes the default generator to the current state.<br>
&gt; &gt;<br>
&gt; <br>
&gt; Except that there is some kind of key associated with the lines of
code:<br>
&gt; I see lines starting with<br>
&gt; <br>
&gt; 0<br>
&gt; 3<br>
&gt; 4</font></tt>
<br>
<br><tt><font size=2>The way it works is that just before going into CbcModel
branch and cut the stand-alone solver sees that -cpp was set (or cpp if
interactive). &nbsp;It goes through all generators, heuristics CbcModel
and associated solver asking them to write lines to file. &nbsp;Then it
calls a bit of code called generateCode (in CoinSolve.cpp). &nbsp;This
goes through file several times - first doing ones with 0, then 1 etc.
&nbsp;Some levels may be skipped so if cpp was just 1 then it does not
put out commands where the generator has a default value (i.e. it only
puts out level 3 and not level 4). &nbsp;If you want the default changes
(so you can modify them ) then you up the cpp value.<br>
&gt; <br>
&gt; What is the meaning of these keys? Is it possible to have a line<br>
&gt; starting with other numbers? What about 1 and 2?</font></tt>
<br>
<br><tt><font size=2>0,3,5 and 8 always go out (cpp==0)</font></tt>
<br><tt><font size=2>1 and 6 go out if cpp==1</font></tt>
<br><tt><font size=2>2 4 and 7 go out if cpp&gt;1</font></tt>
<br>
<br><tt><font size=2>You can see what they were meant to be if you search
for std::string header in CoinSolve.cpp as those are the comments which
go out in created code.</font></tt>
<br>
<br><tt><font size=2><br>
&gt; <br>
&gt; &gt; I wrote it when feeling in need of light entertainment, however
it has a<br>
&gt; &gt; serious purpose. &nbsp;If you use the stand-alone cbc (or any
other solver)<br>
&gt; &gt; then your commands may change the behavior of the cut generators.
&nbsp;When<br>
&gt; &gt; you like the result you add -cpp 1 (other numbers create more
output) and<br>
&gt; &gt; lo and behold &nbsp;a driver is created which mimics those actions.<br>
&gt; &gt;<br>
&gt; <br>
&gt; I add &quot;-cpp 1&quot; to what? Command line of cbc?<br>
&gt; <br>
&gt; Francois<br>
</font></tt>