Olvasási idő: 5 perc
Logisztikai megoldások egyik kulcseleme mindig is az adott helyzethez történő adaptáció volt, de napjainkban ennek minden korábbinál nagyobb jelentősége van.
A koronavírus világméretű terjedése teljesen új logisztikai problémák elé állította a gazdaságot. A határzárak, a távolságtartás, szállítási lehetőség változása, és úgy általában a szállítmányok feladása és fogadása jelentősen átalakította a nagykereskedők és szállítmányozó vállalkozások életét.
Ez a bejegyzés egy a nemrég élesbe állított érkezési idő (ETA) előrejelző alkalmazásunkról szól, amely az egyik gyógyszer – nagykereskedelmi partnerünk számára készült.
A szállítási folyamatok egyik állandó kulcskérdése, a csomag/szállítmány érkezési idejének pontos ismerete. Magánemberként is bosszantó tud lenni,ha egy csomag érkezési időpontja nem ismert, vagy éppen túl széles idősáv tartozik hozzá, akkor a normál napi életvitel teljesen felborulhat. Jobb esetben csak egy online meetingből kell kiugrani, vagy egyéb programokat átütemezni, rosszabb esetben szabadságot kivenni, vagy épp a csomagátvételt újraszervezni. Az üzleti életben azonban a szállítási idő pontos ismerete ennél nagyságrendekkel súlyosabb kérdés. Az érkezési idők pontos meghatározásának nem csak hogy komoly anyagi vonzatai vannak, de a vállalkozás image-ét, hosszú távú versenyképességét is nagyban befolyásolja.
Hiflylabs ETA alkalmazás kulcs funkciói
Az általunk fejlesztett szállítási előrejelző alkalmazás egy real time, adaptív, gépi tanulásra épülő előrejelző rendszer. Az alkalmazás lényegében a forgalmi adatokat, sofőr és gépjármű adatokat, valamint korábbi szállítási időket figyelembe véve számítja ki nagy pontossággal az érkezési időket. A rendszerhez mobil és webes monitoring felület is tartozik, amellyel a szállítmányok nyomon követhetők.
Néhány hónapnyi működés után már elég információ áll rendelkezésre a rendszer pontosságának tapasztalati mérésére. A kiadott szállítási idő előrejelzések 57 %-a 10 percen belüli, 93 %-a pedig fél órán belüli pontossággal rendelkezik.
Szállítási idők fontossága a gyógyszer – kereskedelemben
Egy patikának két szempontból fontos tudnia, hogy mikorra érkezik meg a gyógyszerszállítmány. Egyrészt készlethiány esetén tájékoztatni kell a patikai vevőket, hogy mikor lesz újra kapható a termék, vagyis mikorra jöhetnek vissza érte. Egy gyógyszertári vásárló számára a napi személyes ügyek átszervezésén túl egészségügyi szempontból is fontos kérdés lehet az időzítés., Másrészt az érkező szállítmányt át is kell venni valakinek, azaz a gyógyszertárak ügymenetének szervezését is jelentősen befolyásolja az érkezési idők pontos ismerete Ha pontosabb az előrejelzés, mind a patikák, mind a patikai vásárlók magasabb elégedettségi fokra kerülhetnek.
A szállítmányozó vállalkozás elemi üzleti érdeke a pontos előrejelzés, hiszen ez szolgáltatásának egyik kulcs minősítési tényezője. A szállítási idő pontos ismerete ezen felül természetesen a szállító cégnek önmagában is fontos információ, hiszen ezzel a saját operatív működését is optimalizálhatja.
Fejlesztői kihívások és elemzői döntések
Bár általánosnak tűnik a fenti logisztikai probléma, a gyakorlatban sok egyedi megoldást érdemes alkalmazni, hogy kellően ügyfélre szabott és költséghatékony megoldás születhessen. A következőkben ezek közül ismertetünk néhányat.
I. “Túrasorrend”
Bár van egy bevett rendszere annak, hogy mely patikákat milyen sorrendben látogatja a nagykereskedő, a gyakorlatban természetesen elég változatos lehet a patikák feltöltési sorrendje, az ú.n. szállítói “túra sorrend”. A nagykereskedéshez beérkező rendelések távolról sem nevezhetők egyenletesnek. A gyógyszerforgalom normál esetben is elég turbulensen változik még országos szinten is, patikai szinten pedig még nagyobbak a kilengések, ráadásul a koronavírus járvány a szokásosnál is jobban átalakította a forgalmat. Egy adott patikára vonatkozó adott napi megrendelések tehát összességében sokat változhatnak egyik napról a másikra, a rendelés nagyságrendi változása pedig azt is befolyásolja hogy az adott patika egy nap alatt hányszor került feltöltésre. Mindezek mellett az, hogy egy sofőr a patikákat milyen sorrendben látogatja meg, gyakran változik. Ha változnak a látogatott patikák, ő is változtat a sorrenden, ha úgy látja alkalmasnak, továbbá egyéb forgalmi okok is közre játszhatnak a túrasorrendben. Emellett az is lehetséges, hogy ugyanazt az útvonalat két sofőr más-más sorrendben teszi meg.
A projekt során a túrasorrend azonosítása már önmagában is egy igen összetett előrejelzési feladatnak bizonyult. Először építettünk egy komplex előrejelző eljárást, ami adott patikák mellett visszaadja a legvalószínűbb sorrendet. Ez kellően pontos volt ahhoz, hogy tovább tudjunk dolgozni vele, de az is egyértelművé vált, hogy a hibás előrejelzések túlnyomó része a rosszul előrejelzett túrasorrendből fakad. Végül a projekt során az optimális megoldás érdekében ügyféloldalon túrasorrend definiálás és szabályozás is készült. Azaz a kereskedő partnerünk is átalakította a saját folyamatait az optimálisabb becslés érdekében. A belső szabályozás finomítása és az adaptív előrejelző rendszer így már magasabb hatásfokú előrejelzésekre lett képes.
II. Mikor, hol van/volt az autó?
Második számú kihívás, hogy magát az érkezési időt definiáljuk. A sofőrök a PDA-jukon (személyes digitális asszisztensen) keresztül jelzik, ha felpakoltak vagy leadtak egy csomagot. Eredetileg ezt vettük alapul, de a visszamérések során kiderült, hogy az így kapott érkezési idők gyakran megbízhatatlanok. A sofőrök sokszor nem a lepakolás során küldik a leadásról szóló értesítést, hanem azután, esetleg más lepakolásokkal együtt. Ezért áttértünk egy másik rendszerre, ahol a gépkocsik GPS adatai alapján határoztuk meg, hogy mettől meddig állt egy patikánál az adott gépjármű.
Az érkezési idők azonosítása mellett az indulási idők meghatározása sem volt egyértelmű. Az indulási idők meghatározásához csak a PDA-k jelzéseiből tudtunk kiindulni, viszont a korábbi GPS adatok alapján megbecsülhető, hogy a PDA-ról érkező jel után várhatóan mennyi idővel indul el az autó. A PDA használat kapcsán is intézett egy kérést az ügyfelünk a sofőrök felé, így ezek az adatok is egyre megbízhatóbbnak bizonyultak az idő előrehaladtával.
III. Hogyan készüljön a becslés?
Az egyik legalapvetőbb kérdés, hogy pontosan hogyan is jelezzük előre az érkezési időket. Az autó indulásának a pillanatáig nem tudjuk, hogy milyen patikákat fog meglátogatni a sofőr, így csak ekkor tudunk pontosabb becslést adni. Az alkalmazásban végül három különböző részidő típust jelzünk előre:
1) indulási idő: Az indulást jelző GSM adat és a valós indulás között eltelt idő
2) mozgási idő: Két patika között megtett út menetideje (nagyrészt a “Here” nevű városnavigációs alkalmazástól származó forgalmi adatok alapján)
3) várakozási idő: Az egyes patikánál eltöltött idő
A végső szállítási idő előrejelzéseinket ezeknek a részidőknek a kombinálásával adjuk meg iteratívan: kiszámoljuk, mikorra ér az autó az első patikához, onnan továbbszámoljuk a másodikhoz, és így tovább, egészen az utolsó patikáig. A megközelítés azért jó, mert reális képet ad a valós folyamatokról, viszont hátránya, hogy rossz túrasorrend esetén a hibák megnőnek, illetve hosszabb kiszállítási lánc esetén a későbbi túráknál a hibák kummulálódhatnak.
IV. Mikor készüljön a becslés?
Az előrejelzések általános közös jellemzője, hogy minél később adjuk a becslést annál pontosabb, de üzletileg annál kevésbé releváns, az információ kései rendelkezésre állása miatt. A megrendelővel történő egyeztetések során két különböző becslési időpont, azaz két különböző előrejelzési típus került azonosításra. Praktikussági okokból a “normál előrejelzés” az egyes szállító autók indulásakor kerül leképezésre, de üzletileg indokolt volt ennél korábbi előrejelzések készítése is. Bevezetésre került ún. “korai előrejelzés” is, ami egy hétre előre minden napra előrejelzi az érkezési időket minden patikához. Ehhez a modell a historikus érkezési időket veszi alapul, és fél, illetve egy órás intervallumokat ad meg becslésként. Ez pontatlanabb, mint az induláskori előrejelzés, de korai jelzésként üzletileg hasznos eredménnyel tud szolgálni.
A fejlesztés kulcs tapasztalatai
A projekt során több éves, sok fázisból álló együttműködés vált sikeres megoldássá, melyről összességében érdemes néhány fontosabb tanulságot kiemelni
- A fejlesztés Poc (Proof of concept) fázissal indult, mely során a fontosabb technikai komponensek kipróbálásra kerültek, és előjelző motor pontossága is körvonalazódott. A fázis alacsony beruházási költséggel járt és jól megalapozta a technikailag és üzletileg is sikeres végleges projektet.
- A projekt eredményeit érdemes minél korábban, több iterációs cikluson át, magasabb szinten is kiértékelni, ezzel biztosítva az ügyféloldali folyamatok és a projekt scope együttes fejlődését.
- A sikeres eredmény-termékhez a data engineering szakértők, a data scientist-jeink, és az alkalmazás fejlesztő kollégáink hosszú távú együttes munkájára volt szükség. Több különböző fejlesztői világ találkozott a projekten, és a fejlesztés során a területeknek át kellett látni a többi terület munkáját is. A transzparens működésnek köszönhetően, azonban a területek végül összhangban tudtak dolgozni és fejlődni a projekt során.
- Lehetséges költséghatékonyan, vállalható átfutási idővel, teljesen ügyfélre szabott logisztikai előjelző alkalmazást szállítani még igen összetett problémakör esetén is.
Szerző:
Szokolics Dániel – Data Scientist