The recommendation game [dual]

People who teach or supervise students have a tremendous influence on what solvers get adopted by the community. Once they finish their studies, many students will continue to use the tools they have learned in school; it is simply more efficient. In this post, I explain the reasons behind the choice of tools I use in class. The associated primal post is about the change in availability of tools over the last few years.

  • In my decision support systems design class (undergrad, industrial engineering), I recommend that the students use Excel, VBA and CBC (CoinOR’s mixed-integer programming solver).
  • Supply chain design class (masters level, industrial engineering & analytics), I recommend the students use CPLEX with a modeling language of their choice.

What is likely to be useful to students?

Most of our undergraduate students at my university come from nearby cities and will probably work in small or medium sized businesses. CPLEX with AMPL is a good mix of tools, but the sad truth is that many small manufacturing businesses will be very reluctant to spend that much on software licences for a new employee. The DSS class is focused on a “do it yourself” approach, so we use tools that are either free (CBC) or are present in almost every business (Excel). Besides, industrial engineering students learn AMPL & CPLEX in another set of two classes, so they still get in contact with these tools.

On the other hand, most masters in analytics are liklely to have more dedicated analyst/planning jobs in larger companies, where integration with other tools is important and where larger budgets are available for buying analytics software. Besides, many of them will end up working on more difficult models or in research, where it is important to use the fastest tools available.

Using the right tools

Besides the talk about context and usefulness, I think it’s important to teach using the right tools. If your class is about hard optimization problems, then use a state-of-the-art solver, not GLPK. If you require to get data from a database or text file and send that to a solver for direct resolution, most people don’t need to use the C API, unless they are very proficient in C, a rather uncommon skill in undergrads. Use either a modeling language, or the solver’s appropriate API.

One or more?

When teaching optimization, many professors will require the use of one solver or programming language. This is makes grading and supporting easier and is especially relevant if you have a teaching assistant (TA). In more advanced or project-based classes, you might want to give more freedom to students to select the most appropriate tool for their project. Since there is a lot of homework and exercices to turn in my supply chain class, I require the use of specific tools.

Teach with tools you know

The tools I recommend using are software I have worked with in the past and that I know well enough to be able to support the students if they have a problem. Otherwise, the students who work with languages or software I know would be advantaged over those who work with technologies I don’t know. I also make it very clear to students in project-based classes that if they use other technologies, I might not be able to support them.

The recommendation game [primal]

People who teach or supervise students have a tremendous influence on what solvers get adopted by the operations research / industrial engineering community. Once they finish their studies, many students will continue to use the tools they have learned in school, for many reasons. First, it is simply the most efficient strategy to adopt. Also, many former students might not like to adopt a self-learning discipline, and finally the environment in which they will work might not favour learning new tools, either because there is simply too many urgent things to do or because their superiors don’t approve the use of working hours to self-train in new technologies.

In our rapidly changing technological environment, it is my strong belief that developing self-learning capabilities is a sound approach to maintain and enhance one’s employability. However, forcing students to learn how to use tools on their own does not seem to be a good strategy. It creates some frustration in the least technology-savvy students, creating a belief that using OR tools is difficult and unpleasant. This is exactly the opposite of what we wish to accomplish.  Over the last two years, I found that creating a class environment that favours rather than forces self-learning and using multiple tools is much more effective. I also put much more effort so students have a good understanding of the technique, then learn using some tools to implement the technique.

The world has changed

What pleases me very much is that the situation is totally different than when I was an undergrad. At the time, we had to pay educational licences for every tool we wanted to learn: SPSS, Arena,  Lindo or even CPLEX. Moreover, these solvers often came with severe limitations on problem size or functionalities such as data input/output from a database. Moreover, in order to reduce the cost to students, professors would coordinate in order to use the same solver – in my case it was Lindo – and also to make sure their exercices would fit in the limitations imposed by academic licenses. As I paid a couple hundred dollars for learning a specific statistical software, my first thought was not on buying another 6-month academic licence to self-learn SAS. To be fair, I’m not sure I was aware of the benefits of learning multiple technologies at that time; I was simply curious to learn about news tools and techniques.

Nowadays, while you might not find an ArcGIS licence around the corner, free academic licences have made teaching multiple technologies much easier. There is also a large number of open-source tools which students can use. The pressure from free tools have also pushed the (inflation-adjusted) cost of many licences down, for those who still charge. I believe the students greatly benefit from this environment. A research center can pay 5000$ to buy the software it needs to do research; most undergrads can’t. At the end of the bachelor’s degree, an industrial engineer from my university will have been exposed to at least the following OR software: CPLEX, AMPL, Lindo, Matlab, CBC, Baron, a couple algorithms for network optimization and at least two programming languages, more probably three or four.

Software vendors make presentations and offer tutorials, webinar, comprehensive and detailed examples for free so that more students can learn how to use their tools. While I understand that this change has lots to do with business models and strategy, I think this change is great, both for students and for the field of analytics and operations research in particular.

In the associated dual post, I will cover which criteria I use to determine the tools I cover in my classes.

SPOILER: I don’t use a multicriteria method to determine which multicriteria method to teach 🙂

Facility location : not so difficult (with the proper tools)

CFLP results from Avella & Boccia (2009)

In a previous post, I generated a few capacitated facility location instances (CFLP) and I ran these through MIP solvers. The instances were solved pretty quickly overall. In a comment, professor Matteo Fischetti suggested I compare my results with … [Continue reading]

Facility location : mistake, issue and results

About two weeks ago, I generated a few capacitated facility location instances (CFLP) for some students to play with. When I ran these through the CPLEX and Gurobi solvers, all of them were solving very quickly. Gurobi in fact seemed to find the … [Continue reading]

Facility location : presolved to optimality!

  ** IMPORTANT NOTICE ** This post has temporarily been suspended as some readers noticed potential problem with the model files. I will issue a corrected post shortly. I am sorry for any inconvenience. Marc-André … [Continue reading]

It’s time talk more about barrier in class

In today's post, I argue that optimization classes and textbooks should put a greater emphasis on interior point methods. During my many years of study, I have been exposed to quite a bit of simplex theory. I also had to perform many primal and … [Continue reading]

Just a LP, really?

In recent talks in scientific conferences, I saw some people dissmiss pure linear programming (LP) models as being easy and primitive. I often got said "oh, that's just a LP". Linear programming is put in the box of solved problems, like some network … [Continue reading]

OR in the field: two challenges

This post presents some thoughts about doing applied operations research together with companies. It's a lot of work, to be sure, but it's also a lot of fun. Some of my colleagues tease me about not being often at my office. While it's true that I … [Continue reading]

When optimal is not enough

Currently I work with Professor Mikael Rönnqvist from Université Laval on an inventory and transportation management problem from a forest products company.  As a large scale commodity products company, much of its focus is on reducing logistics … [Continue reading]

Exam design problem

For students, the final exam week is probably the most stressful time of a semester. They often have multiple exams over consecutive days and need to split their last-minute study and preparation time over these topics. I must confess that I also … [Continue reading]