<div dir="ltr">Hi guys,<div><br></div><div>Let me first ask you exactly what you are hoping for to make sure that this is the right tool for you to be working with. Are you just trying to learn about column generation? Is there some specific capability of Blis you are hoping to exploit? How did you settle on Blis as your platform? Do you hope to end up with a full-blown branch-cut-and-price algorithm? Are you set on working in C++? There are many frameworks out there in which you could do this kind of work and I want to make sure you shouldn't be using another one. </div><div><br></div><div>Anyway, with all that said, I'm happy to try to help. I took a look at what you're doing and it's impressive you figured out how to get as far as you did! But it looks like what you have tried to do so far is to use Blis in a way we didn't really imagine. The way we intended it to be used was that the model data would be read from a file and the model then built in memory from the data in the file. The function for reading in the file and building the model is BlisModel::readInstance, which is called as part of the constructor of the broker. If you wanted to build the model in memory without reading a file, you could (I think) just replace the default readInstance() method with what you are now doing in BlisMain.cpp. We intended this to be done by creating a user model class derived from BlisModel that over-rides the methods in BlisModel as needed). </div><div><br></div><div>You can't really directly call the methods of BlisModel as you are trying to do (I guess you can, but this will not contribute in any way to solving your problem and may corrupt internal data structures). As a user, you are only meant to instantiate the broker (building the model as part of the constructor) and then call broker.search (as in the original BlisMain). The framework then executes a standard branch and bound. If you want to customize that branch-and-bound, then you need to over-ride component methods, such as cut generation, etc. This is all done by deriving the base classes of Blis and over-riding the appropriate methods. You can see how this is done by looking at the VRP example. </div><div><br></div><div>Does this make sense? I can try to explain further if you need more help.</div><div><br></div><div>Cheers,</div><div><br></div><div>Ted</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 18, 2020 at 10:48 AM Pierre-Antoine LEFRANC <<a href="mailto:p-antoine.lefranc@etu.isima.fr" target="_blank">p-antoine.lefranc@etu.isima.fr</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><div style="font-family:arial,helvetica,sans-serif;font-size:10pt;color:rgb(0,0,0)"><div>Hello,<br></div><div><br></div><div>Me and my partner are students in a french informatic school, and we are working on implementing the column generator algorithm in Blis module. In order to do so, we are trying to understand the branch-and-cut algorithm, already implemented.</div><div><br></div><div>And yet, despite of several hours of reading, we have difficulty to understand how objects work or are linked, and eveything that must be initialized and how.<br></div><div><br></div><div>As an exemple, we are trying to solve a little problem, created in hard in the BlisMain.cpp file, and using the function resolve() of a BlisModel. It doesn't work and we haven't seen yet from where it could come from. Maybe from the Solver. We tried to used the broker, but it seems we are using it the wrong way.<br></div><div><br></div><div>So we would like to know if anyone have a more precise exemple than the one in the BlisMain.cpp ? An exemple that could show us wich objects use, how to initialize them, and how to resolve a linear problem in a basic way.<br></div><div><br></div><div>We joined our exemple, written in the BlisMain.cpp.<br></div><div><br></div><div>Best regards<br></div><div>Letourmy Bastien<br></div><div>Lefranc Pierre-Antoine<br></div></div></div>_______________________________________________<br>
CHiPPS mailing list<br>
<a href="mailto:CHiPPS@list.coin-or.org" target="_blank">CHiPPS@list.coin-or.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_chipps&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=rnUB298ByR5BGgo6vv2b6g&m=2iJDAe0AaMCo3BwurhU6_np6BxGWu2GOo6V7D5zYDdE&s=u7vRCsOJv5qjF9JvekzBmI_OiKRvmSUTDHvnAGBlEn8&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_chipps&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=rnUB298ByR5BGgo6vv2b6g&m=2iJDAe0AaMCo3BwurhU6_np6BxGWu2GOo6V7D5zYDdE&s=u7vRCsOJv5qjF9JvekzBmI_OiKRvmSUTDHvnAGBlEn8&e=</a> <br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><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>