Tag Archives: MODA

a multiobjective decision analysis model to find the best restaurant in Richmond

I taught multiobjective decision analysis (MODA) this semester. It is a lot of fun to teach. I always learn a lot when I teach it. One of the most enjoyable parts of the class (for me at least!) is to run a class project that we chip away at during class over the course of the semester. Our project is to find the best restaurant for us to celebrate at the end of the semester. “Best” here is relative to the people in the class and the .

The project is a great way to teach about the MODA process. The process not only includes the modeling, but also the craft of working with decision makers and iteratively improving the model. It’s useful for students to be exposed to the entire analysis process. I don’t do this in my other classes.

On the first day of class, we came up with our objectives hierarchy. I did this by passing out about five Post It notes to each student. They each wrote one criteria for selecting a restaurant on each Post It note. They stuck their Post It notes to the wall. Together, we regrouped and organized our criteria into an objectives hierarchy.  Some of the objectives because “weed out criteria,” such as making sure that the restaurant could accommodate all of us and comply with dietary restrictions.

Our initial criteria were:

  1. Distance
  2. Quality of food
  3. Variety of food
  4. Service: Fast service
  5. Service: Waiting time for a table
  6. Service: Friendly service
  7. Atmosphere: Noise level
  8. Atmosphere: Cleanliness
  9. Cost

Our final criteria were as follows (from most to least important):

  1. Quality of food
  2. Cost (tie with #3)
  3. Distance
  4. Fast service (tie with #5)
  5. Noise level
  6. Cleanliness

We removed variety of food, waiting time, and friendly service because classroom discussions indicated that they weren’t important compared to the other criteria. Variety, for example, was less important if we were eating delicious food at an ethnic restaurant that had less “variety” (variety in quotes here, because it depends on you you measure it).

In the next few weeks, we worked on identifying how we would actually measure our criteria. Then, we came up with a list of our favorite restaurants. During this process, we removed objectives that no longer made sense.

We collaboratively scored each of the restaurants in each of the six categories by using a google docs spreadsheet.

  1. Quality of food = average score (1-5 scale)
  2. Cost (tie with #3) = cost of an entree, drink, tax, and tip
  3. Distance = distance from the class (in minutes walk/drive)
  4. Fast service (tie with #5) = three point scale based on fast service, OK service, or very slow service
  5. Noise level = four point scale based on yelp.com ratings
  6. Cleanliness: based on the last inspection. Score = # minor violations + 4*# major violations.

A real challenge was to come up with:

  • the single dimensional value functions that translated each restaurant score for an objective into a value between 0 and 1.
  • the weights that balanced our preferences across objectives using swing weight thinking. FYI, we used an additive model.

I won’t elaborate on these parts of the process further. Ask me about these if you are interested.

When we finished our model, the “best” decision was to forego a restaurant and do a potluck instead. No one was happy with this. We examined why this happened. This was great: ending up with a bad solution was a great opportunity for learning. We concluded that we didn’t account for the hidden costs associated with a potluck. Namely, it would entail either making a trip to the grocery store or cooking, approximately a 30 minute penalty. We decided that this was equivalent to driving to a distant restaurant, a 26 minute drive in our model.  It was also hard to evaluate cleanliness since the state do not inspect classrooms like they do restaurants. But since cleanliness didn’t account for much of our decision, we decided not to make adjustments there.

The final model is in a google docs spreadsheet.

We performed a sensitivity analysis on all of the weights. Regardless of what they were, most of the restaurants were dominated, meaning that they would not be optimal no matter what the weights were. The sensitivity was not in google docs, since we downloaded the document and performed sensitivity on our own. I show the sensitivity wrt to the weight for quality below. The base weight for quality is 0.3617. When the weight is zero and quality is not important, Chipotle would have been our most preferred restaurant. The Local would be preferred only across a tiny range.

We celebrated in Ipanema, a semi-vegetarian restaurant in Richmond. I think our model came up with a great restaurant. We all enjoyed a nice meal together. Interestingly, Mamma Zu scored almost identically to Ipanema (see the figure below).

I cannot claim credit for this fun class project. I shamelessly stole this idea from Dr. Don Buckshaw, who uses it in MODA short courses.  We use the Craig Kirkwood’s Strategic Decision Making as the textbook for the course. I also recommend Ralph Keeney’s Value Focused Thinking and John Hammond’s Smart Choices.

How do you choose a restaurant?

Sensitivity with respect to the weight for quality (0.3617 in the base case).

buying a new washing machine, a quick multiobjective analysis

I have just about lost count of the things that have broke in my house since mid May. The biggest appliance failure was the washing machine. It’s hard to go without a washing machine with three youngsters in the house.

The bearings could have been replaced for about $500, but a ~12 year old washing machine has a limited lifespan. My husband and I decided to purchase a new washing machine. Luckily, we were shopping for the washing machine over the Memorial Day weekend, when just about every appliance store put their washing machines on sale.  I started by grilling the washing machine repair person about what machines he would recommend. This was extremely useful in narrowing down our choices. After spending a couple hours reviewing reviews and prices, we narrowed our choices down to four:

  1. repair our existing machine
  2. a low end washing machine
  3. a mid-level washing machine
  4. a high end washing machine

My husband and I listed our criteria:

  1. Washing machine capacity (three kids = lots of laundry)
  2. Price
  3. Features (both for doing laundry and making my life easier)

The capacity varied from 3.5 cubic feet to 4.3 cubic feet.

The price captures the purchase price and the chance of a $500 repair in the next five years.  The price of the existing machine captures the immediate $500 and the probability of having to replace the machine in the next five years (where it would be replaced b ya mid-level machine). Repairing the existing machine came out to be the most expensive option over the next five years. The costs varied from $451 -$1222. We didn’t consider operating cost, because the water and detergent costs were dwarfed by the purchase and repair costs.

The features is a constructed scale, which captures on a scale from 0 to 4 how useful I find the features. The low end washing machine didn’t offer anything about the bare minimum, whereas the high end washing machine just about does the laundry itself.  The mid-level and my existing washing machines offered nice features that I would take advantage of, and I scored them at 3 and 2, respectively.

After looking at the machines, I fell in love with the high end washer, despite its hefty price tag. My husband preferred the mid level washer. The high end washer has a larger capacity and features to keep laundry fresh when a wet load of laundry sits in the washer overnight. I eventually sided with my husband, since buying a high end washer would make him less inclined to buy me a fancy range/oven for my birthday. A fancy oven would help me bake the best possible Christmas cookies, so I don’t think I can live without it for much longer.

When researching the new washer, I did a quick multi-objective decision analysis on the washing machine decision with the three criteria mentioned earlier. I estimated our swing weights to be 0.25 for capacity, 0.60 for price, and 0.15 for features.

The values for the four options are:

  1. repair our existing machine   = 0.27
  2. a low end washing machine    = 0.60
  3. a mid-level washing machine = 0.61
  4. a high end washing machine   = 0.58

The highest value was for the washing machine my husband preferred, the washing machine that we ended up purchasing. Does that mean we made the right decision? Not so fast.  Three options have similar values.  The three machines have different capacities, and capacity is a proxy for my time (less capacity = more time doing laundry). A quick sensitivity analysis on the weight for capacity (illustrated below) suggests that if we weigh capacity slightly more heavily, we should have chosen the the high end washer, and if we weigh capacity slightly less heavily, we should have chosen the low end washer. This quick MODA analysis has only convinced me that any decision could have been OK, except keeping our washing machine.

MODA analysis of washing machine purchase

MODA analysis of washing machine purchase


a few more thoughts on operations research and coffee: multiobjective decision analysis

I recently wrote about how I used OR to decide how to get my coffee fix in the morning. Some of you suggested that I perform MODA to consider the tradeoffs between cost, taste, and convenience. I agree!

My previous post contains the cost, taste, and convenience scores for the six coffee options:

  1. Home coffee (made at home, brought to work in a mug)
  2. Department coffee (purchased from the coffee made in the department coffee maker)
  3. Coffee shop (bought from a local coffee shop on the way to work)
  4. Dunkin Donuts (my guilty pleasure, a little out of my way)
  5. Office coffee (made in my spare coffee maker in my office)
  6. Keurig coffee (made in my office)


  • The preferential independence assumption was reasonable here.
  • I used an additive value function, since it was reasonable in this situation.
  • I used an exponential shape to assess the single dimensional value functions.  I was linear in taste.  I had a concave shape factor for cost (1.83) and a convex shape factor for convenience (-6.8).  I really hate waiting.
  • My swing weights are 0.5 for cost, 0.25 for convenience, and 0.25 for taste. My rationale here is that cost adds up over the year, and as a result, it is twice as important as convenience and taste.  Convenience and taste seem about equally important to me.

Based on this, the MODA values for the six options lead to this ordering of my coffee options scaled between zero and one are:

  1. Home coffee (0.77)
  2. Office coffee (0.71)
  3. Department coffee (0.67)
  4. Keurig coffee (0.67)
  5. Coffee shop (0.32)
  6. Dunkin Donuts (0.25)

It looks like I naturally gravitated to my “optimal” decisions of making coffee at home or in my office.  A sensitivity on the weight for cost leads to the following graph.  It shows that buying coffee at a coffee shop or at Dunkin Donuts would be suboptimal across all weights (so would buying the department coffee).  If I care a little less about cost, buying a Keurig coffee maker for my office would become the best option.

Coffee MODA analysis

Coffee MODA analysis. We want to maximize the value, so the line that is highest is my “optimal” choice.

If I change the weights so that taste counts the most (with a weight of 0.5) and cost and convenience have weights of 0.25, then the MODA values for the six options lead to this ordering of my coffee options scaled between zero and one are:

  1. Home coffee (0.73)
  2. Keurig coffee (0.69)
  3. Dunkin Donuts (0.5)
  4. Office coffee (0.49)
  5. Coffee shop (0.49)
  6. Department coffee (0.46)

The sensitivity of the results based on the weight for taste are captured in the following figure.  In both cases, it looks like continuing to make coffee at home is my best bet.

If you’re interested in working this example, check out my spreadsheet for this on my new “Files” page under the teaching materials heading. I’ll try to post some of my teaching materials, code, and data on this blog as I go.