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 costs while improving its efficiency and service such as on-time deliveries. As such, we are developing a decision support system prototype that seeks to tackle this planning problem. There is a huge body of scientific literature on vehicle routing, yet we ended up in a very different place than where most papers go. Among the many reasons, one is of particular importance:

They are pretty much uninterested in a solution that simply minimizes their direct transportation cost over a one-month planning horizon.

You read it correctly. The company is interested in keeping costs low, but they also consider that there are many things to take into account beyond the amount of money paid every day to transporters. Among them:

  • Distribute the workload between the various truck owners and transporters;
  • Avoid if possible the queuing of trucks in any mill at any given time;
  • Schedule the delivery of some products to arrive a bit early if possible.

This naturally translates into a certain number of soft constraints which complement the more direct components of costs. The cost structure also incorporates different costing mechanisms such as direct delivery and two types of return trips. Balancing this out is not easy, but it yields interesting discussions with the industrial partners and planners about the value of a solution.  (If this aspect of doing optimization interests you, I suggest reading Jean-François Puget’s take on the topic.)

I should be able to post some sanitized results in a couple of weeks.

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 feel some stress during this week. Here’s why.

First, designing an exam is not so easy. I found it a bit easier for more theoretical topics such as probability and statistics, but in general I struggle to do this. To me, a good exam needs the following:

  • Cover the most important topics discussed over the class;
  • Cover both material discussed in class as well as readings and take-home topics;
  • Be at the right difficulty level;
  • Be of appropriate length (in terms of time needed to completion);
  • Be different from exams from previous semesters.

Covering the topics and material types is by far the easiest constraint to satisfy. On the other hand, the difficulty level is thougher to estimate from a one-person sample (myself). I want to measure the level of knowledge of the most important topics as well as the students’ proficiency in the main skills taught during the class. There are lots of pitfalls in this part. First, it is quite easy to write a question for which a smart person with general background and culture but no specific knowledge of the topic could get 60 to 80% of the points. It is also easy to test a person’s memory rather than his(her) knowledge or abilities, for example by asking to provide a definition of a concept. It is also very difficult to measure a person’s understanding, because communications skill (or lack thereof) get in the way of the measurement. Finally, I try to avoid asking a direct copy of a question from the manual but with changed numbers.

When I teach a totally new topic, the time is difficult to estimate, but I each year I seem to get better at this. My goal is that most students with good preparation have enough time to think about their answer before writing it down. Often this seems achieved when the median completion time is at around 80% of the exam’s duration. Usually, around 80% of my students finish their exam on time.

Finally, thinking more in terms of skills and knowledge and less about lecture content has helped me improve my exam building. I wish for all of my students to learn and succeed, but no one should get a free pass if they didn’t learn what they had to.

The day I put my hand into the shredder

...or so to speak. Recently, I've been working (in collaboration with two people) on a production planning model for a network of sawmills. It is not yet customized for a particular company. We came to this particular model after a few meetings, and … [Continue reading]

Performance variability: consequences


If you work on difficult mixed-integer programming (MIP) models, you have experienced performance variability. This refers as the impact on performance of seemingly performance neutral changes induced in the model or the solver. Part 1 of this series … [Continue reading]

Performance variability: good readings

If you work on difficult mixed-integer programming (MIP) models, you have experienced performance variability. This refers as the impact on performance of seemingly performance neutral changes induced in the model or the solver. Part 1 of this series … [Continue reading]

Performance variability defined

These days, it seems that one of the most simple and effective ways to tackle difficult mixed-integer programming (MIP) models is to run the model on a state-of-the-art solver with different random seeds. It is very easy to implement and often … [Continue reading]

In-house testing of CPLEX distributed MIP

Distributed optimization is now part of standard CPLEX releases. In fact, it's been there since release 12.5. I decided to do some experiments and post on this after seeing Daniel Junglas' talk at the German OR Conference in September, but writing … [Continue reading]

In-house testing of the Gurobi 6 distributed MIP [dual]

Distributed optimization is now part of the Gurobi 6.0 release. In today's post, I talk about some tests I ran with the distributed MIP algorithm. The associated primal post discusses results presented by Gurobi at the INFORMS 2014 Annual conference. … [Continue reading]

Distributed MIP solving reaches Gurobi [primal]

Distributed optimization has now reached the point where it is incorporated into general-purpose mixed-integer programming (MIP) solvers such as CPLEX and Gurobi. In today's post, I will summarize the implications of some results presented at the … [Continue reading]

Inventory routing when it matters

Leandro CC Seminar

Yesterday we had the pleasure of welcoming Prof. Leandro C. Coelho for a research seminar at the Forac research consortium. He presented his work on the inventory routing problem (IRP) which is a combination between the vehicle routing problem (VRP) … [Continue reading]