📈 #14 OR in Action: 5 Ways to Build Solutions to Your Problem and the IPO of 🥕Instacart
New concepts and salaries in Instacart
In front of my house, there is a building under construction.
They are building it anew.
I have been documenting the process with photos for months. I may seem like a retiree, I know, but I find the pace they maintain fascinating, and above all, the efficiency of the workers.
The day they hand over the apartments, they will surely throw a party. Just like when a company goes public.
All of this sums up well what I want to tell you today in Feasible:
How to build solutions to your optimization problem
The IPO of Instacart
Let's go for it!
🏗️ 5 Ways to Build a Solution for Your Optimization Problem
The other day, I talked to you about how I would manually solve the VRP problem, and the first step was to build a solution. You don't need to remember it because I'll leave it here:
The important part was the beginning of the second section:
Start with an initial solution. For example, I would assign each customer to a random vehicle.
Okay, how do we build that initial solution? There are several methods, and today I'll show you the 5 that are possibly the most commonly used:
Greedy Strategy: It starts from a seed and iteratively builds the solution, adding or removing a new element in each iteration. It's exactly the example I mentioned in the post above 👆🏻. The idea is not to select an element randomly but the one that contributes the most to improving the value of the Objective Function. Advantage: it usually yields good results in small problems. Disadvantage: it lacks long-term vision - in fact, they are also called myopic algorithms - and choosing the best element at each step may not be the best for the overall solution.
Decomposition Strategy: It divides the problem into smaller subproblems until the problem is trivial, solves each of these subproblems, and then combines the solutions to obtain a solution to the original problem. It's like how the Divide and Conquer algorithm works. Advantage: it's fast, and solving a small problem is straightforward. Disadvantage: the sum of good solutions to smaller problems does not guarantee a good solution to your real problem.
Reduction Strategy: It identifies common characteristics of known good solutions and assumes that the optimal solution will also have them. Advantage: it makes sense to find common characteristics of good solutions and significantly reduces the search space. Disadvantage: you have to search for and find good solutions to your problem beforehand.
Model Manipulation: It simplifies the original model, solves this simplified problem, and extrapolates its solution to the original problem. Advantage: simplifying the problem reduces computation time. Disadvantage: if it is simplified too much, the obtained solution probably has nothing to do with the original problem... but if it is not simplified enough, you are solving almost the same problem.
Randomized Strategy: Having a feasible solution and defining a neighborhood, randomly select solutions within that neighborhood. Advantage: randomly selecting parts of the solution makes the algorithm run very quickly. Disadvantage: you have to find a solution to your problem already, and making random moves does not guarantee anything.
Which one would I choose? Well, I would go with the greedy strategy: it's a simple idea, easy to implement, and will give you a good-quality solution in very little time.
And a possible next step is to randomize certain decisions and repeat the process many times to obtain a more or less large set of solutions to start exploring the solution space more intensively...
🥕 Instacart's IPO
The other day - actually, almost two months ago, time flies- Instacart went public.
So, here's the thing.
Instacart's success is remarkable. It reached a valuation of $39 billion. That's right, $39,000,000,000. I don't know about you, but those figures make my head spin.
At the time of the IPO, it was valued at $10 billion, and in its first trading session, it closed with a 12% increase.
Believe it or not, part of that success comes precisely from having people specialized in solving optimization problems, i.e., Operations Research engineers. In fact, I invite you to go to their LinkedIn employees section and search for "optimization" or "operations research." You'll see that they are more than just a couple. Remember when I recently talked about how solving the Vehicle Routing Problem (VRP) gives a competitive advantage to certain companies, right? That's the one I linked a bit above.
Essentially, that's what Instacart does. It's clear that they know what they're talking about when it comes to optimization. On their blog, they explain interesting things like strategies for optimizing product delivery (oh, coincidence, just like what they do day-to-day).
Lastly, but no less important, are the job postings they occasionally share on LinkedIn related to optimization. For example: 🔎 What are they looking for?
That, in itself, is a strong introduction: they tell you that they use algorithms from both Operations Research and Machine Learning to provide better service to their customers.
🧑🏻💻 What technical skills do you need to have to qualify for the position?
Things that catch my attention here:
They want you to solve real-world problems 😍
They would like you to be knowledgeable in both mathematical optimization and heuristics. I'll explain why in upcoming posts.
They want you to be skilled in both Operations Research and Artificial Intelligence. It's a powerful combination with a lot of future potential.
🤑 And the salary?
Not less than $145,000 and up to $221,000 annually, depending on the state you live in.
Impressive.
Why do I keep these job offers? I'm very curious, and I like to stay informed about what's happening in the world.
Mind you, today I introduced you to two very interesting concepts: the neighborhood and the move.
The neighborhood of a solution is the subset of the solution space that contains solutions close to the original, hence being neighbors. These neighboring solutions are reached through a movement that you define.
But I'll explain this better in another post because there's a lot to cover here... 😉
Until then, have a great week.
Talk soon,
Borja.