Monday, December 10, 2007

Simulation and Optimization

Operations research is an interesting field. It was developed in WWII to devise ways to protect convoys and bombers, but it has progressed to become a powerful business tool. It combines programming, math, and business expertise, and has a wider scope than any other type of project I've worked on.

For example, a friend of mine works on operations research models for the International Monetary Fund. They use the models to help make decisions and provide recommendations to countries on aspects like taxes and inflation. I was in Washington DC last month working with IBM on wrapping up an operations research project, and I spent an evening with him. The conversation turned to work, and we discussed the tools, techniques, and challenges of the field. Interestingly, the software and math are pretty similar to what I've been using recently. It was a great experience for me; My friend has made a remarkable career designing simulation and optimization models, and it was terrific to hear his perspective since I'm just learning the basics. One aspect that seems to be a constant challenge in the field is gathering and managing data.

Due to the nature of the models, data from many different sources must be gathered and organized for each scenario. One particularly complex optimizations model I've seen involves dozens of tables of financial, logistics, engineering, and scheduling data, and some of the tables contain hundreds of thousands of rows. Depending on the business logic in the model, the results can be sensitive to the data. Since like any other type of programming, the garbage in, garbage out principle applies, it's extremely important to get the right data and organize it properly.

In my experience, gathering data is managed by analysts and subject-matter experts, and someone with basic SQL skills handles the data in the database. On the few projects I've worked with in this field, more advanced SQL isn't really necessary, but it's imperative to stay organized. So far, I've been able to manage with SELECTS, UPDATEs, ADDs, and DELETEs for data manipulation, and at worst, a few UNIONs and multi-level sub-queries for reports. I've also found excel helpful; I've used it to verify data with analysts and to do simple data imports for the smaller tables.

Coming up to speed on the theories, math, and software used in the field was interesting. My brother-in law took Management Science courses in his Commerce undergrad, and he lent me a few decent textbooks. I've read several other books from other sources since, but so far the most helpful is Wayne Winston's Operations Research. It's a great book for someone like me tasked with writing business logic and manipulating data in Simulation and Optimization models. However, It's probably too basic for someone taking a bigger role in these projects.

Operations research seems to be coming up more and more in the news. It will be interesting to see how more businesses start to leverage OR in the future.

1 comment:

  1. cool stuff - this is where math and programming collide. I love it.