Welcome!

I am a "carioca" who studied computer engineering and computer science at UNICAMP, in Brazil. After developing a passion for using computers and mathematics (optimization) to help people and businesses make better decisions, I received a Ph.D. from Carnegie Mellon University and subsequently joined the faculty at the University of Miami. Here is my short bio. A complete list of my publications, talks, teaching experience, and consulting activities can be found in my curriculum vitæ (.pdf, .html). For some fun and interesting applications of optimization to real life, watch my YouTube channel, follow me on Twitter, read my blog O.R. by the Beach, or play my games.


Curious About What I Do?

It's easier to explain through a few examples:

Major League Baseball Umpire Scheduling

When you look at the MLB season schedule, do you ever wonder who decides that team A will play team B on a certain date, at a certain time and location? That's a very tough problem and it's tackled by these guys. Now let's say that someone created the game schedule for you. The next step is to create a work schedule for the umpires. There are many union rules and league regulations that must be followed. For example, umpires should not work more than 21 consecutive days without a day off, they should not see the same team too often during the season, they want to see every one of the 30 teams at least once, and so on. We developed a heuristic approach to solve the MLB umpire scheduling problem that was used by the league in 2006, and also from 2008 to 2010. Starting in the 2011 season, new scheduling requirements resulted in modifications to this method. Scientific American created a 60-second podcast about our work. You can also listen to my explanation of the problem, which aired on WAMC's Academic Minute (Northeastern Public Radio): here's a link to their site, and here's the MP3 file. To learn more, read our paper.


Product Line Simplification

Have you ever felt overwhelmed by the amount of choices you have at the supermarket, or at a car dealership, or at the pharmacy? Why so many variants of toothpaste? Product variety is a double-edged sword: on one hand, customers tend to appreciate variety because it makes them feel like they can always find exactly what they need; on the other hand, variety is costly to companies because it translates into higher manufacturing costs (more complex factories), higher training costs, more chances for mistakes, higher marketing costs, and so on. There's been a recent trend toward reducing the size of product lines, but it has to be done carefully. We worked with John Deere and Caterpillar to help them strategically optimize their tractor lines, yielding gains in the order of tens of millions of dollars. The Spring 2008 issue of the BusinessMiami Magazine has an article on this topic entitled "The Costs of Customization." To learn more, read our John Deere paper and our Caterpillar paper.


Health Care Appointment Scheduling

When scheduling health care appointments such as a doctor's visit or MRI scan, there are typically three main types of costs that matter: the waiting cost of the patient (you don't want them to wait too much), the cost of the doctor's or equipment's time (you don't want them to be idle), and overtime costs. These costs can increase or decrease depending on how many customers are scheduled on a single day, and how close to each other the appointments are. Is it better to schedule patients in 15- or 30-minute intervals? If no shows are frequent, should you overbook? If so, by how much? What about the uncertainty in the time it takes to see a patient? A colleague and I took into account all of the issues above and proposed an algorithm to generate a schedule that minimizes the aforementioned costs, which can be prioritized to fit specific needs. To learn more, read our paper.


Buying and Shipping from Multiple Suppliers

A fast-food chain needs to buy a large quantity of many different items for each of its several restaurant locations, such as: burger patties, cheese, napkins, cups, vegetables, coffee, etc. There are several possible suppliers for each item who differ from each other in terms of cost, capacity, and distance from the delivery addresses. This means transportation costs also need to be taken into account, as well as whether or not to combine multiple items (or large quantities) together to earn discounts due to economies of scale. I have been working with a national chain of fast-food restaurants to help them fine tune this optimization model: what to buy, from whom, in what quantity, and using what mode of transportation so as to supply the restaurants with what they need at minimum total cost.


Fire, Disease, & Information Containment/Spread

Imagine you are interested in containing the spread of something undesirable, such as fire, disease, or sensitive/false information. These things usually have a starting point and spread further and further to places or people who are close/adjacent (i.e. connected) to those already affected. A connected structure like this is shown above. It is known as a network, and is typically depicted by a so-called graph: a picture consisting of nodes (the circles) joined by edges (the lines). For example, the nodes can represent people and edges between them indicate they know or have contact with each other; or nodes represent parts of a forest and edges indicate there are paths from one to the other along which fire could spread. The goal is to strategically defend certain nodes to contain whatever is spreading in order to minimize how many nodes are ultimately affected. In the case of fire, defending a node could be dropping a fire retardant from an airplane. In the case of disease, defending could be vaccinating certain groups of people or animals. The animation above illustrates a fire spreading out from one initial red node. In the first round, we can defend any two nodes of our choice, after which the fire spreads further to unprotected nodes that are connected to the burned node. In the next round, we pick another two nodes to defend, the fire spreads again, and so on, until it is contained. After the last round of defense, any remaining untouched nodes are safe from the threat. In the example above, we saved 60% of the network.

The flip side of this coin is that you may actually be interested in spreading information through a network. For example, hiring influencers to help with a marketing campaign. In this case, your objective is to spend the least amount of money possible while ensuring enough people become aware of your message. To learn more, read our paper.


Concert Tour Route Optimization

How does a band of musicians choose the order in which to visit the different cities in their upcoming tour? There are many factors that come into play. In addition to the available dates at the venues that host concerts in each city, the producer in charge of putting the tour together needs to consider other issues, such as: giving the band a day off between several shows in a row; which days of the week/weekend are better in terms of attendance; the time it takes the equipment to travel from place to place; overall miles traveled, days on the road, etc. When you put all of these factors together, this becomes a challenging problem to solve by hand. This is an example of a multi-objective optimization problem because the quality of a solution depends on how well it satisfies all of the above requirements. One of my undergraduate students worked on this problem for his honors summer research project.


What Do a Computer, a Container Port, and a Pizza Oven Have in Common?

In abstract terms, all of these three things can be regarded as a resource that is able to perform multiple tasks in parallel: a computer can run multiple programs at a time (multitasking), a container port can load/unload multiple cargo ships at a given berth simultaneously, and a pizza oven can bake many pizzas together. As the number of tasks increases (more users logged into the computer, a busy day at the port or at the pizzaria), and as the planning horizon increases, the order in which you choose to perform the tasks starts to matter a lot. Moreover, finding the order that will allow you to finish everything as early as possible becomes very difficult.


Information Display on Maps

Let's say you want to display the 250 largest cities on a map of the United States. Each city is represented by an opaque disk that's centered at that city's location and whose radius is proportional to the city's population. Such maps are known as proportional symbol maps and they're used by cartographers to analyze location-specific data, such as temperature at weather stations, oil well production, earthquake magnitudes, and population statistics. The question is: given the disks overlap with each other and there are many possible choices regarding which disk to draw on top of which other disk, what's the best way to draw the 250 disks on the map above? Or on any map in general? We created an optimization model to solve this problem and find the absolute best drawing, which is depicted above. The map below shows locations and magnitudes of earthquakes in Japan. To learn more, read our paper.


Scheduling Bus Drivers

The demand for public transportation influences the location of bus stops, the routes, and the frequency of bus trips each day of the week. Once specific trips have been selected, each of them having a departure location, a departure time, and a destination, it's time to assign bus drivers to them. The workday of a bus driver is structured to satisfy some restrictions. For example, there must be rest breaks, lunch breaks, and a minimum number of hours between the last trip of one day and the first trip of the next day, among other things. We worked on a bus driver scheduling problem for a city in Brazil and managed to generate an assignment of drivers to trips that respected all regulations and drastically reduced the amount of driver overtime. To learn more, read our paper.


Hybrid Methods

Sometimes, standard techniques for solving complex decision problems are not able to satisfactorily handle the situation at hand when used in isolation. Hence, part of my research focuses on developing the theory and facilitating the implementation of hybrid optimization algorithms that integrate multiple solution techniques (a decision-making chimera, if you will). The Spring 2006 issue of the Tepper Magazine has an article on this topic entitled "Two disciplines join to optimize solutions to enterprise-wide problems." To learn more, read our paper.


To Summarize...

I am interested in solving optimization problems that arise from a variety of practical applications, such as the ones explained above, as well as call center scheduling, political districting, routing, transportation, and operations management in general. In order to address such problems, I use Prescriptive Analytics or, more specifically, tools from the fields of Operations Research (OR) and Constraint Programming (CP). These tools are essentially mathematical models that contain a simplified, but still useful, representation of the actual problem in a way that can be solved by a computer.