Go with a smile!

Sunday, November 21, 2010

Operations research and its discontents 1

There I was, in the interview room, with 3 people looking at me. The leader of the 3, the only guy, was already near the pinnacle of his career. Another one would see hers rocket in the next 10 years (she’ll probably be a cabinet minister one day) and another one would be sideline after 10 years.

He looked at me, and noted that I had displayed a talent for maths, and asked “how would you like to do operations research?” I asked, what is that? He said it’s maths. You could do maths for a living. I thought that that was a great idea.

It’s a funny thing, but the first time I thought that maybe this bond thing wasn’t such a great idea was when I started doing OR at that time. My first exposure to OR was in a class that was taught by a professor whose work on computer algorithms was widely respected. He taught an introductory class. I asked him, after the lesson on branch and bound, “there’s no more elegant way to do this?” And he asked me, “what did you have in mind? Come up with something more interesting, and we’ll see.”

Inelegant maths
Well that somewhat destroyed one of the reasons mathematics was supposed to be so attractive. And looking back, that was probably really the first time I had encountered engineering, real engineering instead of mathematics. At the grand old age of 21, which is really really late. (Not really very very late: there was this guy, Dr Old Fogey, who did nothing but mathematics until he graduated. Then only came towards operations research when he started his PhD. And his PhD was mostly maths anyway. Then he went to teach at a university for some years. I think he was about 40 when he became an operations research practioner, when he finally came face to face with real engineering problems. Needless to say, I consider this an extremely unhealthy path of mental development.)

Granted, branch and bound is still an algorithm, and it’s still closer to maths than engineering. But there was a bit of consternation.

Doing maths until your “A” levels, it still looks quite pretty. Sines, cosines, how you cross them, flip them upside down, cross out both sides. Then there’s solving quadratic equations, like you’re doing algebra. There’s geometry, where you use neat tricks to figure out what angle is equal to what other angle. There’s matrix transformation, where you figure out what a square matrix does, based on what it does to each member of the canonical basis.

The only time you had to do something ugly was the taylor expansion, or Mclaurin’s expansion. Even those were neat because there were patterns. The only really ugly thing was Newton’s method of finding a root. And every time I did that, I felt like I had to wash my hands afterwards.

Maths in university was even more neat. Almost all the major theorems had something profound and beautiful at the same time. The fundamental theorem of algebra. The Jordan curve theorem. Galois theory. Law of large numbers. Law of rare events. Index theory. Stone-Weierstrauss.

Now, there it was, the ugliness of branch and bound, where the only elegance was that you were guaranteed to conduct a brute force search by looking through no more branches of a tree than was absolutely necessary. Quite a paradigm change for me.

I began to suspect that there was something to engineering that I didn’t really understand, but I didn’t fully understand, even then, how far up my ass I had placed my head.

Other than that introductory class to operations research, I hadn’t done much OR during my first year. I didn’t want to do OR. I felt, you didn’t just go to a really good school and go away just knowing 1 subject in-depth. The curriculum I designed for myself was supposed to look like a minimum spanning tree.

Cold and beautiful mathematics
But eventually I did OR. Unfortunately I wasn’t in the right state of mind to do mathematics. There was a time when I started actively hating that subject. It was partially to do with how I had seen more of it than at any other time in my life, even JC. Partially to do with how divorced from reality I realized those equations were. Partially to do with how I was discovering many ideas from many other subjects that were much more exciting than those you found in mathematics. (Ideas from economics, psychology, history). Those were much more lovable and human things to study. Mathematics is hard – not only in the sense that it is mentally challenging, but also hard as in hard and cold.

Sometimes the more beautiful theories are hard and cold beauty, like that of a snowflake, or an elegant skyscraper. I had thought that mathematics was everything. There was a certain arrogance that you had in the university, where physics and maths were departments which had relatively high prestige. (Wouldn’t be the case in Singapore, but it was over there.) That is not to say that the engineering department was shoddy – it was one of the best engineering schools, even though it was not MIT. There was this arrogance that, if you couldn’t say something with equations, you hadn’t really understood anything about it. That engineers were merely engineers because they weren’t good enough in maths.

But even then I was starting to rebel against that attitude. Mathematics started to become unsatisfying because … well beautiful maths is like poetry. It is elegant, it is profoundly meaningful, and there are plenty of coincidences of meaning. But it is not a universal language. You would never write a technical report in poetry. Moreover I’m a prose person, not a poetry person. I’m for analysis, not algebra. I’m for non-fiction, not fiction. The uglier maths was just – well, ugly.

Inadequacy of means
Statistics was even worse. There was this assumption that everything was normally distributed. I could feel it in my bones that a lot of this just wasn’t true. Waiting times in a queue are almost never normally distributed. The wealth of people is not normally distributed. The intensity of natural disasters is not normally distributed. I just didn’t know what the student’s t-distribution was good for. Every time I used it for the wrong reason, I felt like I was shoving a square peg down a round hole.

I suppose it was possible to find better distributions, but then you had to find a different test for a different distribution. Very mathematically intensive.

There were other aspects of operations research that were fairly unsatisfying. One of them was the exponential arrival pattern. I suppose that the memory-less property was fairly wacky. Suppose you were waiting for a bus that came on average every 5 minutes. And suppose you had already been waiting for 5 minutes. Well, you could expect to wait for another 5 minutes.

Actually that was wacky enough. Another wacky inter-arrival distribution are things like earthquakes, where if an earthquake had just happened, it was more likely to happen again in a short period of time. Conversely if it hadn’t happened for a long time, it’s just never going to happen.

What I didn’t like about studying queuing theory was this. Either you did it with mathematics equations, in which case you had to do an absurd amount of mathematics for a relatively simple system. (I suppose this is true of a lot of physical systems: typically your physics questions in “A” levels involve fewer than 5 objects, and you have to write pages and pages of equations. And remember that nobody seriously attempted the 3 body problems until you had computers you could program to simulate what happened.)

Eventually, we have to resort to something that is brutally inelegant: simulations. And the worst part? Simulations give you generally accurate predictions about outcomes, until the complexity of the situation is too much for even computers to handle. (see earth sciences). The most unsavoury aspect is when you assume that the final product is a bell curve. I just thoroughly detest the bell curve: especially when modeling something as normally distributed is wrong, which happens surprisingly often.

What I didn’t like about doing optimisation was this: you assumed that the information was static, and you assumed that it was reliably correct. Both are very bad assumptions to make under operating conditions. It’s like somebody with a 155mm cannon having a fight with somebody with a M16. Under ideal conditions, the 155mm cannon guy will blow the crap out of the M16 guy, who will meet the nastiest death possible for a human being. 9 times out of 10, the M16 guy will win, because he can shoot the 155mm guy in the head before he loads the first shell, and even if he runs out of bullets, he can probably bayonet the gunner anyway.

To be sure, there are textbook examples of how optimisation can perform very well. For example, the allocation of resources. Rostering. Possibly some scheduling, but scheduling is a very iffy thing, because there is so much uncertainty involved. You need more and more sophisticated ways to do optimisation under uncertainty.

Fundamentally, one disappointment about operations research is this. At first, you are persuaded that you have “scientific” tools at your disposal, and that you will bring enlightenment to the poor people who have been doing things as in dark ages. Then you go to a school and they teach you textbook cases, and you’re thinking, “gee, this looks pretty simple and straightforward”. But later on, you start noticing that your models are not only an imperfect representation of reality in the sense that the answer will be an approximation to the best answer. It is often imperfect enough that your computer generated answer runs the risk of looking fairly ridiculous.

This is not computer science, where, once you type the program in the book into the computer, and assuming that your system requirements are satisfied, and assuming you don’t have bugs, it will work perfectly every time.

(to be continued)

Labels: ,


Post a Comment