On the pursuit of a PhD program: What would be your ‘School of Sagres’?

As a native Portuguese speaker and descendant, I was told in history classes about the so-called School of Sagres. This school is regarded as responsible for many technological advancements between the XV and XVI centuries that enabled, among other things, the first world circumnavigation (and nowadays puzzle people from other cultures for the fact that the language of such a small country like Portugal is spoken in almost all continents and borrowed words to diverse cultures like the Japanese and Indonesian). However, there was never a physical place with such label: some historians now believe that it was simply a gathering of the best European experts along taverns in the Iberian Peninsula. This is somewhat what I feel about the academic world, and five centuries later I wanted to find the best corridors along which I could move my coffee mug while pursuing a PhD degree. And the experience was an interesting one!

I wondered whether to pursue a PhD or not for quite a while. During such time I earned a MSc degree, kept publishing the results of my work, explored some topics that could be the subject of a doctoral thesis, and interacted as I could with the OR community. Despite doing all of this, I was yet undecided about pursuing a PhD mostly because I already had a good job in the industry doing what I like – something that I meant to have after obtaining a PhD. It was at such point that I went to ICAPS last year, and I had an intense week that reminded me of many good things from academia that were absent from my work routine. In the following week, I was already studying for the TOEFL, and the application process was only over a couple of months ago. As a result, I got some amazing formal offers, some polite rejections, and gave up on some other ongoing applications after receiving those offers.

The application process and the general tips to excel at it abound on the internet: apply only for places to which you would definitely go if offered admission; ask for recommendations from professors that know a lot about you instead of those who gave you the best grades; do not attach yourself to specific lines of research, specially to methodologies; let it clear why you would like to pursue a PhD; be concise; etc. However, I read little advice about how to effectively target schools. I have heard from very successful applicants that I should try every top school that I could, but the fact that I could barely see myself in many of them made me include in the list a few more than those in which I was already planning to apply. As a matter of fact, all of my formal offers came from applications in which I mentioned faculty members and extensively discussed common interests in the essays. Some of those schools were in my radar as the obvious choices for my interests but there was an outlier which was somewhat a surprise: I decided to apply to that school only after accessing their website for the second time and reading every word about their program. Despite that first impression, I ended up feeling that it could be a good match, they felt the same way upon reading my application, and that made the final choice even harder!

Choosing among those programs who replied positively was difficult for the same reason that I had such an enthusiasm for applying for each of them: I read about what they were doing, I feel that I understood what they were targeting, and I wanted to be part of each of those efforts. And then everyday new information came to me that tempted me to accept one of those offers, but it was the fact that CMU was my top choice before receiving any offer and that visiting the school did not change my impression of it which make me accept their offer. Declining the other offers was very hard and belated second thoughts are inevitable, but I feel that I would have deeper regret feelings if I had chosen differently. Besides, I have an entire career ahead to join those schools in other ways that not as a student.

In short, the most important advice – and the only one I would dare to offer to a prospective student already full of them – is to focus more on those schools that are closely related to your interests, but still make a comprehensive scan of the programs out there in the hope to be surprised. There are too many great schools and some of your friends will advise you to try a lot of them, but the fact that you are unable to make a strong claim for studying somewhere also means that your chances in this place are smaller and you are wasting time that could be used in other applications. When you find your personal ‘School of Sagres’, words go out much more easily.

Tasting more wine with dynamic programming

The INFORMS blog suggested that O.R. bloggers wrote about food. Figuring that a good meal is usually accompanied by a good wine, I’ve decided to focus on using an Operations Research technique to maximize the number of wines someone can taste at a time. I warn in advance to connoisseurs accessing this blog by chance that my knowledge about wine tasting is very short (once in a while, I resume my reading of Jancis Jobson’s book “How to Taste Wine”, but I’m closer to the first pages than to the last ones). Anyway, I hope that some of them find dynamic programming useful for their practice.

First of all, how wine should be tasted? According to a book that I just browsed during lunch time, the following rules must be followed:

  • white before red;
  • young before old;
  • light before heavy;
  • dry before sweet.

To simplify matters, I will assume that those rules are unbreakable (are they?), I will ignore that it is recommended to taste only similar wines each time, and get to the following question: under such circumstances and provided a collection of bottles, how can I maximize the number of tastings one can do at a time?

Let’s consider as an example the following wines, which this novice considered good and attempted to roughly classify in a binary way:

W1 Argentina Finca Martha 878 Malbec 2008 red, young, heavy, dry
W2 Brazil Miolo Gammay 2010 red, young, light, dry
W3 Brazil Terranova Late Harvest Moscatel 2005 white, young, heavy, sweet
W4 Brazil Terranova Shiraz 2010 white, young, light, dry
W5 Chile Casillero del Diablo Carmenère 2009 red, young, heavy, dry
W6 Portugal Dão Cabriz 2007 red, young, heavy, dry
W7 Portugal Ramos Pinto Late Bottled Red Port 2000 red, old, heavy, sweet
W8 Portugal Sandeman White Port 2005 white, young, heavy, sweet
W9 South Africa Obikwa Pinotage 2008 red, young, light, dry

Without loss of generality and for the sake of breaking ties to avoid equivalent solutions (e.g., tasting W2 before W9 or W9 before W2), we will consider that one must proceed incrementally another in the case of a tie (i.e., W2 before W9 but not W9 before W2).

Now suppose that we start with W3 because it is white and young. Soon we will realize that only two wines can remain in our list for being also heavy and sweet: W8 and W9. Hence, W3 might not be a good starting point. However, it is easy to figure that the optimal path from W3 on is to taste W8 and then W9 because the former is white and the later red. Similarly, the optimal path starting from W8 is to proceed to W9, and from W9 is to do nothing.

Beyond the wines, do you “smell” something interesting here? We have overlapping subproblems and those optimal solutions share optimal substructures with each other. That’s where Dynamic Programming (DP) fits in! Using DP, we consider optimal solutions to varied subproblems as building blocks to find optimal solutions to increasingly bigger problems. Thus, even if those subproblems arise many times, it suffices to solve each of them once.

In the current case, we could do that by finding the best option between the following subproblems: Pi = “How many wines can I taste if I start from Wi?”, for i = 1 to 9. In turn, answering to each of those questions consists of adding one to the best answer found among wines that can be tasted after that first one. For instance, we start with W1, W2, …, or W9 to find the answers P1, P2, …, and P9. Picking W1, we have that P1 = 1 + MAX(P5, P6, P7) because W1 can only be followed by P5, P6 or P7. Note that once we answered P1, we already know the answers to P5, P6 and P7, and therefore we do not need to recalculate them in the remainder of the solving process. The act of memorizing such solutions for later recover is called memoization.

Applying DP to the current case, we will find the following answer to the subproblems:

P1 P2 P3 P4 P5 P6 P7 P8 P9
4 6 3 7 3 2 1 2 5

Working backwards, we start from W4 (P4=7) to find which wine can that can be tasted after W4 and from which point on it is possible to taste 6 wines, and so on until the last one. The final answer to our problem is the sequence W4, W2, W9, W1, W5, W6, W7.

As a final remark, I would like to remember that quantity does not mean quality. Drink responsibly and remind that a tasting experience does not necessarily means getting drunk in the end: you can always spit and enjoy the rest of your day in a better shape.

Once said that, “saúde”, “cheers”, or – as my Polish friends from the Erasmus program would say – “na zdrowie”!


Update: Shiraz is a grape that produces red wine, not white. Anyway, it is still possible to taste 7 out of the 9 wines at once.