Według badania McKinsley Global Institude, transport i magazynowanie są jednymi z obszarów gospodarki, najbardziej wymagających automatyzacji, plasując niechlubne trzecie miejsce, z 60% potencjałem rozwoju. Prognozowanie wymagań produkcyjnych, ulepszanie procedur transportowych, automatyzacja utrzymania i kontroli są świetnymi obszarami do użycia sztucznej inteligencji. Podczas gdy autonomiczne samochody będą dominować rynek transportowy, my chcielibyśmy się skupić na optymalizacji możliwej bez zmian na rynku, a przy użyciu inteligentnych decyzji opartych na danych.
Optymalizacja położenia magazynu
Wpis poświęcamy problemowi znalezienia lokalizacji dla nowego magazynu oraz optymalizacji kosztu dostaw towaru do klientów. Jest to złożony problem analizy danych, który składa się z wielu niezależnych zagadnień, które musimy optymalizować równolegle. Jakie więc problemy dotyczą tego zagadnienia? Po pierwsze chcemy minimalizować koszta budowy i prowadzenia magazynu. Składają się na to m. in. cena gruntu pod nowy budynek lub koszt kupna bądź wynajmu w danym regionie, współczynnik bezrobocia który wpływa na ilość dostępnych pracowników, a co za tym idzie łatwość ich znalezienia i wysokość stawek pracowniczych. Warto wziąć pod uwagę też wysokość podatków od prowadzenia przedsiębiorstwa w danym regionie, które potrafią poważnie różnić się dla przykładu Szwajcarii. Nie należy też zapominać o drugim ważnym zagadnieniu, czyli sumarycznym czasie i cenie dojazdu do klientów z magazynu. Chcemy na raz dostarczyć towar do różnych lokalizacji i jednocześnie ponieść jak najniższe koszta dostaw. O ile dla 3 klientów da się wszystko policzyć „na piechotę” to przy dużej ilości klientów do obsłużenia nieodzowne stają się metody obliczeniowe, gdyż niemożliwym staje się policzenie czasów i dystansów wprost. Po zebraniu wszystkich składowych stajemy przed problemem porównania paru zmiennych jak czas dojazdów, bezrobocie, koszt gruntu, które chcielibyśmy wszystkie z osobna zoptymalizować, jednak które nie dają się w prosty sposób porównać.
Uznaliśmy, że w naszym przypadku nieodzownym będzie skupienie się na dwóch składowych: sumie czasów dojazdów do klientów rozsianych po kraju co pozwoli to regularnie oszczędzać na kosztach transportu oraz poziomie bezrobocia w regionie, w którym powstanie magazyn. Wysoki wskaźnik bezrobocia możemy utożsamić z większą ilością dostępnych i tanich pracowników.
Przejdźmy więc do dzieła. Na samym początku wygenerowaliśmy 50 przypadkowych klientów na terenie Szwajcarii, do których miałyby docierać towary.
Położenie klientów na mapie.
Co możemy zrobić, aby ułatwić obliczenia?
Teren poddany analizie zawężamy do obszaru występowania klientów. Zakładamy również, że interesuje nas miejsce jedynie w granicach Szwajcarii. Wciąż jednak dostarczenie towaru do każdego z klientów z osobna jest karkołomnym przedsięwzięciem. Gdyby w czasie rozwoju firmy liczba klientów zwiększyła się do 5000, dostarczenie towaru do każdej lokalizacji z osobna pochłaniałoby znaczne zasoby finansowe firmy. Dlatego więc dokonaliśmy klasteryzacji firm, czyli połączyliśmy w grupy blisko położonych klientów. Pozwala to na przeprowadzenie analizy przypominającej rzeczywistą sytuację, gdzie kurier dostarcza w jednym kursie zaopatrzenie do kilku odbiorców bez wracania do magazynu. W porównaniu do sytuacji, kiedy do każdego klienta dojeżdżamy bezpośrednio z magazynu, pozwala to zaoszczędzić ok. 40% czasu. Zauważmy, że w naszym przypadku klienci są skupieni na niewielkim obszarze. Gdyby przyszło nam dostarczać towar do paru klientów w Genewie, Zurychu i Lugano, klasteryzacja wykazałaby znacznie większe oszczędności czasu dojazdu a co za tym idzie kosztów.
Grupowanie klientów w celu skrócenia czasu dostaw
Mając pogrupowane lokalizacje stajemy przed problemem wyboru potencjalnych punktów, dla których liczymy czasy dojazdów. Użyty do tego został analogiczny do Google Maps system routingu OSRM (project-osrm.org), pozwalający wyznaczyć najkrótszą trasę pomiędzy punktami, korzystając z dróg i autostrad.
Dla 50 klientów najlepszym rozwiązaniem jest wygenerowanie dokładnej siatki potencjalnych punktów magazynu w obszarze występowania klientów. Dla nich liczony jest sumaryczny czas dojazdu do środka każdej z wyznaczonych grup. Gdyby jednak przyszło optymalizować znacznie większą ilość lokalizacji dostaw niemożliwym byłoby wygenerowanie dokładniej siatki dojazdów. Użylibyśmy wtedy bardziej złożonych narzędzi Machine Learningu i algorytmów Metaheurystycznych w celu znalezienia paru obszarów o najniższych współczynnikach czasu dojazdu. Zakładamy dodatkowo, że magazyn powinien znajdować się przy drodze, dlatego każde potencjalne miejsce korygowane jest do najbliższego połączenia komunikacyjnego.
W naszym przypadku wyliczono najlepsze położenie magazynu w centrum Zurychu, posiadające 25% krótszy czas dojazdu w porównaniu do średniej. Jest to spowodowane przez dobre skomunikowanie Zurychu i świetną siatką autostrad wychodzących z miasta. Wciąż jest to jednak optymalizacja tylko jednego kryterium, nie biorąca pod uwagę takich współczynników jak podatki i współczynnik bezrobocia.
Najlepsze położenie pod względem czasu dojazdu - Zurich
Optymalizacja względem kosztów pracy
Drugim kryterium położenia magazynu jest stopa bezrobocia danego obszaru. Czym jest ono wyższe tym potencjalnie więcej ludzi może stać się pracownikami. W tym celu zebraliśmy dane o współczynniku bezrobocia w regionach Szwajcarii i dopasowaliśmy do siatki wygenerowanych punktów.
Rozkład bezrobocia wg kantonów w Szwajcarii w 2015 roku. Źródło: lenews.ch
Jako że bezrobocia nie da się jasno porównać z czasem dojazdu zostawiamy możliwość zdecydowania o ważności każdego ze wskaźników naszemu klientowi, w zależności czy bardziej chce zoptymalizować koszt i ilość pracowników czy koszt dojazdów. Jednym ze sposobów pozwalających w ogólności porównać współczynniki jest przybliżenie czasu dojazdu i bezrobocia do kosztu prowadzenia przedsiębiorstwa. Zakładając średni koszt paliwa furgonetki oraz ruchomą stawkę pracowników w zależności od bezrobocia, pozwoliło to na wygenerowanie współczynnika, który pokazuje procentową optymalizację ceny względem średniej.
10 transporty
Liczba pracowników magazynu
5 pracowników
Interaktywna mapa
Podsumowanie
Problem z którym przyszło nam się zmierzyć udało się rozłożyć na czynniki pierwsze i znaleźć najlepsze rozwiązanie, jednocześnie zostawiając wolną rękę użytkownikowi na dostosowanie do własnych preferencji. Powyższy przykład dobrze pokazuje z jak wieloma zależnościami i problemami należy się zmierzyć przy optymalizacji łańcucha dostaw już przy 50 klientach, jednak wciąż narzędzia Machine Learningowe pozwalają bez problemu poradzić sobie ze znacznie większą ich ilością. Temat nie jest wciąż zamknięty i problem można rozważać pod wieloma innymi aspektami w zależności od preferencji naszego klienta.