SCIP Workshop 2014

17th October 2014


The SCIP Workshop was organised as a platform for people to learn about SCIP and discuss the current research using the software. Just to provide a little background, SCIP is an open-source optimisation software package that is developed and maintained at ZIB. The team that I work in at ZIB is directly responsible for this software and perform much of the research that goes into extending it. Many people use SCIP and just as many people want to know how to use it. The three days of the workshop were designed to discuss anything and everything about SCIP.

My contribution

To me, it seemed like the idea of the SCIP Workshop just popped into Gerald head one day. I am sure that he had been thinking about it for a while and maybe performed some preplanning prior to mentioning it at one of the SCIP team's regular meetings, but it just seemed very spontaneous. But this initial announcement provided the required impetus to spring everyone into action and get on-board with the organisation.

It was just a few months after the first time the SCIP Workshop was suggested that work actually got delegated. We had a meeting and individual tasks were set. I decided to put my hand up to do the scheduling. It seemed like a fun job and something that would be interesting -- working out how to construct and produce the schedule. One of the more humorous things that came out of me organising the schedule was the realisation by the team that I start work much earlier than them. All of a sudden there was concern about the starting time of the workshop. I was kind and set the starting time at 9am.

How to build a workshop schedule?

I am sure that there is either a nice LaTeX class for this or some software that can be used, because for big conferences doing this job would be very painful. In my case I decided to do everything by hand and put the schedule together by using tables in a LaTeX document. It worked fairly well and the mark-up given by LaTeX is always nice. It was just a little tricky when one of our speakers changed and I didn't update the alphabetical order. That small error was identified well before any irreversible work had been done. It all worked out fine.

Organising the times was probably the most tricky thing. The requirements were that it couldn't start too early and should not run too late. Additionally, you don't want to be sitting and listening to talks for too long, so the sessions should be a reasonable length. Unfortunately, to fit everyone into two days, I was unable to satisfy that last requirement. However, everything else fitted together fairly well.

The introduction day

This would have been very useful for me when I started my PhD. I can only recommend the next workshop that is being organised at ZIB, Combinatorial Optimization at Work. Just knowing how to easily install SCIP, how the interactive shell works, or how to implement a plugin would have been invaluable to me. I was more than happy to provide some suggestions to the organisers of this day, since I am one of the few people in the SCIP team that first experienced SCIP prior to starting at ZIB.

The key parts of the introduction day were to get the participants familiar with SCIP. The knowledge levels of the participants ranged from never using SCIP before to having some model implementation experience. This range of knowledge made it difficult to determine what would be most useful to everyone. As with any teaching, you just have to try your best and hope that you keep most people interested. I think that this was achieved with the organised schedule.

Gerald Gamrath started the day with an introduction to SCIP. Gerald did very well to give a presentation lasting 1.5 hours. I don't know whether I would be able to maintain the energy required to keep people interested. Gerald's talk covered the main aspects of SCIP without getting into the real technical details -- that would happen later in the day.

A SCIP and GCG installation session held by Matthias Miltenberger and Jonas Witt was up next. These two talks were combined with a hands-on session where the participants "attempted" to perform the steps explained by Matthias and Jonas. Their presentation was very easy to follow and most people ended up with a working SCIP installation. Given that this was the objective of the session, I think that Matthias and Jonas (including all of the helpers) were very successful.

After lunch a presentation on working with parameters was given by Gregor Hendel. In SCIP there are over 1600 parameters, most of which will not be touched by a general user. However, from these 1600+ parameters, it is difficult to know where to start to help improve the solution process of an individual problem instance. The presentation by Gregor provided a nice introduction into the ways that a user could possibly approach the seemingly daunting task of parameter tuning.

The final session of the day involved a programming exercise. For this exercise, the participants were asked to implement a very cut-down form of the simple-rounding heuristic. I had a little bit of an involvement in this part, specifically I put together the exercise from others given at previous workshops. My feeling was that a rounding heuristic was going to be fairly quick to implement and see some results. Unfortunately this exercise was not as simple as I expected and not many people managed to finish the exercise by the end of the session. However, the exercise was designed to explain to the participants how they would implement their own plugins for SCIP and this goal was achieved.

In all I felt like the introduction day was very successful. I hope that the day met the expectations of the participants.

The SCIP workshop

Now, it was time for me to be a little bit more active. In addition to designing the schedule, it was my job to ensure that the projector was working in the lecture hall. Given that we had the introduction day previously, I didn't think that there would be a problem. Anyway, I headed down to the lecture hall early on Wednesday and made sure everything was set up.

Good news, the projector worked and we could load our first speaker's (Thorsten Koch) talk. Bad news, for some reason after a period of inactivity the projector turns itself off and it is not easily possible to get it started again. So being diligent and setting up the projector early was one of the worst things that I could have done. So Thorsten had to start speaking without any slides until we were able to set up a laptop for him. This problem with the projector plagued the two days of the workshop.

The session chairs for the workshop were members of the SCIP team. This seemed like the most obvious choice and it made it very easy for me to organise. Ambros Gleixner chaired the first session, and he set the bar very high. On the spot he provided a short bio for each of the speakers without any trouble. My first thought was: "Damn, there is more work in this chairing job than I originally thought". He did a very nice job and opened the session well. I have to say that he did the best job out of all chairs at this workshop.

There were many interesting talks that were given at the workshop. The opening by Thorsten was great, providing a very good overview of the direction the development of SCIP will take in the future. Pierre Le Bodic presented some interesting research regarding the failings of MIP solvers to perform useful branching decisions. I was interested to see Ingmar Vierhaus give a presentation about his research. I have never really understood what he was working on -- now it is a lot clearer. Finally, Andrea Lodi gave a very interesting talk on indicator constraints and the difficulty CPLEX has in dealing with them.

It was my turn to talk in the morning of the second day. The talk that I gave has been well rehearsed in other seminars and conferences that I have attended. The most interesting aspect from my presentation was the implementation of column-and-row generation in SCIP. This has not been widely addressed and I enjoyed explaining the implementation and application of my technique.

The wrap-up

This was a very successful three days of introduction and workshop. Many people were able to learn very useful things about SCIP and see how it is being used in current research. The variety of applications that SCIP is applied to is amazing. Further, it is great to see the research that is being performed to identify new featureS that can extend this optimisation software. I am looking forward to being involved and attending Combinatorial Optimization at Work next year.