Friday, October 16, 2009

Identity crisis for the O.R practitioner

If you work in an industry that is saturated by O.R, then this is not for you. Familiarity tends to breed contempt there, and like a bad Steven Segal movie, your work goes straight to conference, heh. It's fun working in an area that is barely touched by O.R, especially if you are a new OR PhD. Your graduate advisor sent you off on your way last week with words like 'remember, no cuts, no glory'. You cant wait to get started ..

"O.R." You realize the name doesn't help. All those rumours in grad school were true! You just go with a simple 'decision science'. Three months into your job, you launch a satyagraha to get your basic tools like Gurobi to work with. You begin your first project.

First off, the sales and pre-sales folks (science is anathema to them but they bring home the bread that allow desk-jockeys like us to tool with OR, so no quarrel) ask you 'so if you are going to solve this using CPLEX, why do we need you? If you can explain 'reformulation', 'NP-Hard' to them and save your new job, your next conference talk will be a piece of cake.

Fact: CPLEX or Gurobi cannot solve any real-life problem directly. Skilled O.R People do (duh!). MS word is just as useful for that purpose.

Next, your strategy folks ("where powerless science meets power point") ask you: why cant our competitor also use CPLEX to solve these problems. whats the big value in decision science?
Not surprisingly, its a bit more difficult to convince folks in the stratosphere that there's real magic in O.R. Heck, it doesn't matter anyway, since they are going to forget it in a couple of days and get back to their ethereal kingdom.

Fact: These tools have blazing fast, industrial strength implementations of fundamental algorithms. The secret sauce is in your business-specific meta-models and meta-algorithms that is independent of the vendor that implements the fundamental tools used inside them.

Facts aside, the word 'Meta' convinces them that you are on to something. Next, you deal with the IT guys. They play for the home team. Problem: OR guys cant code, even though every one of us is convinced otherwise. Your prototype C++ program looks so random, they cant believe that something deterministic comes out of it. The name 'Math Programming' doesnt help either. To save the company from you, they place their trust in their beautifully coded 30-class, 30-line randomized algorithm that everybody now believes will do just as well and go with that. What does the customer care about optimality? It's a battle for another day. Right now, you are getting ready to present your work at a conference ...

Disclaimer: This is a work of pure OR-fiction. Except for CPLEX, Gurobi, and O.R, everything else in this tab has no resemblance to reality.

Here on forward, the Tooler's Tab will waste time solely on OR and analytic topics. For more serious stuff like cricket, fictional detectives, and Indian music, follow the link to my blog on the right panel.

Saturday, October 3, 2009

What's your favorite Optimization Method?

To plagiarize the title of the latest mediocre movie from Bollywood is fair, I suppose. I have not linked to the movie in question on humanitarian grounds.

Ask any O.R person in academia this question (especially O.R Phds - the rest of the world want to improve the world, but these guys also know how to :-), and you will get a lot of impressive answers, ranging from "Ant colony optimization', 'Benders Decomposition'. ..., to Zangwill's convex simplex method. Let's look at 'E'. The ellipsoidal method is known to perform poorly in practice. However, another method in 'E' is a personal favorite.

Every O.R student hates enumeration and is in fact implicitly taught to hate Mr.E, every step of the way. But consider this. You create a new product with a built-in optimization app having a nice 'what-if' capability. It is still early days and business rules and requirements are changed as frequently as baby diapers. The potential customer tries to understand the behavior of the analytics within the app and works with small data sets to do that. Under these conditions, the only method that is guaranteed to work is enumeration! As you choke with indignation, i have more misery to inflict upon you. Welcome to the O.R heretic's approximation of the number scale.
Theorem: Early in the project, all numbers are less than that 101.
Proof: If you don't believe me, you can start with 1, 2.., and test it a hundred times.

As you begin to curse me into an infinite negative cost cycle, let me reassure you that after you have gained your customer's confidence and business rules crystallize, we can thankfully move beyond enumeration. Even then, there's no steady state, and your beautifully crafted MIP model that worked so well for 3 years can (and will) crumble after 3 years and one day. Not all constraints in real life show up as linear or convex. Some are nasty little buggers. So what works best? Well, for this tab, it is what ever method is smart and close to variable enumeration, i.e., variable generation, i.e., column generation. It's only a small lie to say that everything else in between is just band-aid :-)

I do not personally know Dr. Cindy Barnhart at MIT, but her work in this area sustains the career of many an O.R practitioner. A measure of the long-term success of an industry is if mediocre practitioners can find a decent job (e.g. Bollywood). If you love O.R, pray that i always have a decent job.