sabato 18 novembre 2017

Amazon’s SCOT

Amazon’s SCOT

The most amazing application of mathematical optimization in logistics

What is SCOT?

The state of the art in advanced mathematics at the service of the operations management. I like how some important companies implement this scientific development. — Julio Mora Olivares
SCOT is an acronym meaning Supply Chain Optimization Technologies. Probably it is the largest and the most complete application of operational research in the field of logistic.

In summer 2017, I discovered that Amazon was hiring operational researchers in Italy. This intrigued me enough to start some research on the Internet. I found a plentiful source of information on LinkedIn profiles, where people were sharing their working experience, their goals and successes.

I’ve collected all the pieces of information and, with my experience, I was able to reconstruct a whole picture of this project.

Human resources

First things first: people

The team working on SCOT project covers many countries. In my search, I’ve noted places from North America, India, and Europe. This is a quite common characteristic of projects developed in large companies as Amazon.

What really impressed me indeed is to see so many roles involved in the same project. They are:

  • Econometricians,
  • Statisticians,
  • Economists,
  • Operational Research Scientists,
  • Machine Learning Scientists,
  • Software Engineers,
  • Product Managers


So, from the management point of view, the project leader has to handle two independents source of complexity: many roles in many places.

Applications

Fantastic combination of Optimization, Computer Languages. and Inventory Management — Deepak Bammi
Have you ever bought something from Amazon? A book, of course. But also other goods as a Kindle reader or a cover for your smartphone.

I did all of this and every time, before the purchase order, I knew a precise forecast of the delivery date. Typically one day for many Prime products.

A so elevated level of service quality can be achieved with a full control of the supply chain. From my research seems that Amazon invested a lot on:

  • inventory planning and control;
  • last mile logistic network.

Inventory planning and control

The picture above was taken from an Amazon video on YouTube. Probably it gives only a vague idea of the inventory complexity managed behind the button “buy now with 1-click (r)”.

If you want some totals here they are:
Hundreds of millions of items, for hundreds of product lines worth billions of dollars of inventory world-wide.
In a single sentence, the team of inventory planning control of Amazon:
decide and optimize what, when, where, and how much should buy to meet Amazon’s business goals and to make their customers happy.

Last mile logistic network

Another important area where SCOT gives a major improvement is the last mile logistics.

If you think of the entire user experience, the parcel delivery is the only ring of the supply chain out of the control of Amazon. But everybody knows how Amazon is obsessed with customer experience and satisfaction.

This means not only the optimal location of the delivery point to get an appropriate geographic coverage. But also control a complete fleet of people and vehicles physically delivering goods.


Technologies and IT impacts

From the technology point of view, SCOT has many interesting things to say.

Optimization library

SCOT is an optimization library designed and built with the purpose to facilitate the integration, of optimization models, within the Amazon’s infrastructure without any knowledge of optimization.

General purpose optimization engines

SCOT uses well known and powerful optimization engine: CPLEX, XPRESS and GUROBI.

Programming languages

SCOT has some kind of relationship with the following programming languages:

  • ruby
  • VB
  • c#
  • java
  • python (my favorite)

I don’t know what is the main language used for SCOT. Also, I didn’t find any relationship with compiled languages such as C or C++.

SCOT in a video

If you want, you can enjoy this short video from Amazon explaining what is SCOT.

Disclaimer

All the information reported in this document are gained from the internet, especially from profiles published on LinkedIn. I don’t work for Amazon, so this report collects my suppositions, suggested by my own experience in optimization technologies.

giovedì 14 settembre 2017

La "supply chain optimization technology" in Amazon

La tecnologia di ottimizzazione della supply chain in Amazon ha un nome: SCOT.
Provo a sintetizzare i punti principali nella mappa che trovi a questo link.

 Naviga la mappa

domenica 16 aprile 2017

Che cos'è la riottimizzazione

Che cos'è la riottimizzazione
Quando si parla di processi di ottimizzazione, la riottimizzazione copre un ruolo particolare. Scopriamo insieme cosa vuol dire.

Introduzione
Partiamo dalle basi e diciamo che risolvere un problema di ottimizzazione è la migliore risposta ad un problema del tipo: “Qual è il modo migliore per fare una certa cosa?

Facciamo un esempio. Qual è il modo migliore per andare da Palermo a Bolzano, nel più breve tempo possibile, passando da 100 diverse località sparse per l’Italia? Forse in tanti hanno riconosciuto il problema del cammino di costo minimo: come visitare un grafo partendo da un nodo origine per arrivare ad un nodo destinazione minimizzando la somma dei costi, che vengono pagati ad ogni arco attraversato.

A parte la difficoltà di descrivere in termini matematici il problema da risolvere e trascrivere tutto in un software funzionante, ci sono due aspetti specifici da tenere in considerazione:

  1. il tempo di esecuzione speso dal programma per trovare la migliore soluzione;
  2. la qualità della migliore soluzione trovata che indica in maniera numerica quanto questa sia preferibile rispetto ad un’altra soluzione.

In linea di massima, una soluzione di buona qualità si ottiene impiegando un adeguato tempo di esecuzione.

Quando usciamo da un esempio molto accademico, come quello appena descritto, spesso ci dobbiamo confrontare con il fatto che il nostro problema di ottimizzazione si trova incastrato in un flusso di lavoro. Per cui dal momento in cui conosciamo l’ultimo pezzo di informazione necessaria alla completa descrizione del problema di ottimizzazione, al momento in cui dobbiamo materialmente conoscerne la migliore soluzione, possano passare anche solo pochi minuti. E come abbiamo visto prima, limitare il tempo di risoluzione può voler dire minore qualità della soluzione ottenuta. Che in un contesto importante, può voler dire anche una perdita d’efficienza non trascurabile in termini operativi ed economici.

La riottimizzazione
L’approccio classico per trovare il miglior bilanciamento tra qualità della miglior soluzione e il tempo di esecuzione è quello di scrivere un algoritmo di risoluzione che sia il più efficiente possibile. Ma se il flusso di lavoro lo permette possiamo applicare anche altri approcci basati sulla riottimizzazione.

Da un punto di vista prettamente tecnico, la riottimizzazione consiste nell'applicazione di particolari accorgimenti per permettono di risolvere un problema “grande” N e mantenere l’algoritmo in “pressione”, cioè con tutte le informazioni note fino a quel momento ancora pronte per l’uso. In questo modo, quando arriva un pezzo di informazione in più, il problema grande N+1 può essere risolto in maniera efficace ed efficiente.

L’analogia del puzzle

A quanti piacciono i puzzle? Io non sono molto bravo, per cui per montare i primi 900 pezzi di una scatola da mille impiego 16 ore e molta pazienza. Quando devo decidere però dove montare il pezzo numero 901, vado più o meno per ispezione controllando i bordi della tessera, il suo colore e gli spazi vuoti presenti sul mosaico non ancora completo. Riesco a trovare il posto giusto in meno di un minuto. Se invece, quando devo montare il pezzo numero 901, decido di smontare il mosaico incompleto e di ricominciare d’accapo, purtroppo non posso che impiegare ancora le 16 ore già impiegate per i primi 900 pezzi.

Andando quindi per analogia, possiamo dire che la scelta di smontare il mosaico è equivalente ad una ottimizzazione completa del problema con 901 tessere. Mentre l’ispezione per determinare la collocazione del pezzo 901 è equivalente alla riottimizzazione.

Un esempio

Pianificazione di un viaggio
Riprendiamo l’esempio della pianificazione di un viaggio che parte da Palermo ed arriva a Bolzano, passando da cento città diverse, minimizzando il tempo totale di percorrenza.

Se questo fosse un problema reale, magari associato alla attività di un corriere o di un trasportatore professionale, la pianificazione delle operazioni di trasporto potrebbe avere delle caratteristiche particolari, quali:

  • la raccolta delle richieste di trasporto sono confinate in una finestra temporale;
  • la finestra temporale si apre qualche giorno prima e si chiude poco prima della partenza del mezzo;
  • all'interno della finestra temporale, i clienti trasmettono le proprie richieste andando a specificare, nel nostro caso, una nuova città che il mezzo dovrà toccare;
  • alla chiusura della finestra temporale, il mezzo di trasporto ho soli 15 minuti prima di dover partire.
Applicando una tecnica di ottimizzazione, si avrebbero a disposizione solo 15 minuti per ottenere la migliore soluzione, che guiderà la spedizione da Palermo a Bolzano.

In alternativa, a partire dall'apertura della finestra temporale delle prenotazioni, un processo di riottimizzazione continua può partire all'arrivo del primo ordine e terminare alla chiusura della finestra temporale.

Conclusione

Ora ti invito a ripensare al tuo processo da ottimizzare e verificare se puoi trarre vantaggio dalla riottimizzazione. Se hai qualche dubbio contattami su poderico@gmail.com

Ricevi gli aggiornamenti direttamente nella tua casella di posta elettronica

Post più popolari

Archivio blog