Vienība 7 / 9

Piegādes ķēdes un loģistikas optimizācija

Ieguvumi:

  • Spēja identificēt piegādes ķēdes tīkla projektēšanas, maršruta un noliktavas izkārtojuma problēmas
  • Spēja izmantot AI scenāriju ģenerēšanā, ierobežojumu uzskaitē un optimizācijas modeļa konstruēšanā
  • Spēja apstiprināt AI ieteiktos risinājumus ar izmaksu, jaudas un piegādes ierobežojumiem

Piegādes ķēde ir visa materiālu, informācijas un naudas plūsma no izejvielām līdz gala klientam. Katrs lēmums šajā tīklā (kur iegūt, kurā noliktavā uzkrāt krājumus, kurš maršruts nosūtīt) rada līdzsvaru starp izmaksām, ātrumu un izturību. Optimizācija šeit nav maģija, tā nozīmē precīzi definētu mērķa funkciju un ierobežojumus. Mākslīgais intelekts šajā jomā ir ļoti spēcīgs, strukturējot problēmu, ģenerējot scenārijus, uzskaitot ierobežojumus un izstrādājot optimizācijas modeli; Taču “labākā risinājuma” prasības vienmēr ir jāapstiprina, ņemot vērā ierobežojumus un faktiskās izmaksas. Šajā nodaļā mēs apspriedīsim tīkla dizainu, maršruta optimizāciju un noliktavas lēmumus ar AI atbalstu.

Piegādes ķēdes optimizācijas problēmu karte

Optimizācijas problēmu atpazīšana ir pirmais solis pareizā modeļa izveidē.

problēma

lēmumu mainīgais

Tipisks mērķis

tīkla projektēšana

Kuru objektu/noliktavu vajadzētu atvērt?

Kopējās fiksētās + mainīgās izmaksas min

Piešķiršana/piešķiršana

Kurš klients no kuras noliktavas?

Transporta izmaksas min

Transportlīdzekļa maršrutēšana (VRP)

Kurš transportlīdzeklis veic kādas pieturas, kādā secībā?

Kopējais attālums/laiks min

noliktavas plānojums

Kur produkti jānovieto?

Savākšanas attālums min

Transporta režīma izvēle

Zeme/jūra/gaiss

Izmaksu un ātruma līdzsvars

Katras problēmas kopīgā struktūra ir vienāda: lēmumu mainīgie, mērķa funkcija, ierobežojumi. AI visvērtīgākais ieguldījums ir tas, ka tas palīdz pārvērst biznesa problēmu šajos trīs komponentos.

Loma: Jūs esat rūpniecības inženieris, kas specializējas piegādes ķēdes optimizācijā. Uzdevums: Pārveidojiet šādu biznesa problēmu optimizācijas modelī. Norādiet: (1) lēmumu mainīgos, (2) mērķa funkciju, (3) ierobežojumus (kapacitāte, pieprasījuma apmierinātība, nenegatīvisms), (4) šīs problēmas veids. Problēma: "Mums ir 3 rūpnīcas un 5 izplatīšanas centri. Katras rūpnīcas jauda un katra centra pieprasījums ir noteikts. Transportēšanas vienības izmaksas no rūpnīcas uz centru ir atšķirīgas. Samaziniet kopējās transportēšanas izmaksas Mēs vēlamies to lejupielādēt."Noteikums: nosauciet modeļa veidu (piem., transportēšanas problēma), skaidri uzrakstiet pieņēmumus.

Tā ir klasiska transporta problēma. AI var to atpazīt un izveidot pareizo matemātisko skeletu; Jūs arī ievietojat reālās jaudas un pieprasījuma datus.

Maršruta optimizācija (VRP) un ierobežojumu nozīme

Transportlīdzekļa maršrutēšana ir praksē visbiežāk sastopamā un nepareizi konstatētā problēma. Pastāv liela atšķirība starp vienkāršu “īsāko ceļu” (TSP) un patieso VRP: transportlīdzekļa ietilpība, laika logi (stundas, kad klients var uzņemt), braukšanas laika ierobežojumi, vairāki transportlīdzekļi.

Uzmanību! Kad AI iesaka maršrutu, tas bieži “aizmirst” vai aptuveno ietilpības un laika loga ierobežojumus. Maršruts, kurā ir vairāk kravas, nekā transportlīdzeklis spēj pārvadāt, var šķist "īss", taču tas ir nepraktisks. Pārbaudiet katru maršrutu atsevišķi attiecībā uz kopējo slodzi ≤ ietilpību un ierašanās laiku ∈ laika logu.

Vāja uzvedne / spēcīga uzvedne

Vāja uzvedne:

Norādiet īsāko maršrutu šīm 8 pieturām.

Ja nav ietilpības, laika loga un transportlīdzekļu skaita, AI sniedz vienkāršu klasifikāciju; Reālajā darbībā tas neiztur.

Spēcīga uzvedne:

Iesakiet maršruta plānu šādiem 8 klientiem. Ir 2 transportlīdzekļi, katra ietilpība ir 100 vienības. Katra klienta pieprasījuma un laika logs ir pievienots. Izrakstīšanās no noliktavas08:00. Pieņemsim vidējo ātrumu 40 km/h. Rezultāts: apstāšanās secība katram transportlīdzeklim, kumulatīvā slodze (nepārsniedzot ietilpību), paredzamie ierašanās laiki (lai atbilstu laika logam), kopējais attālums. Ja ir ierobežojumu pārkāpums, skaidri norādiet to un iesakiet alternatīvu. Dati: {{ ... }}

Otrā uzvedne skaidri nosaka ierobežojumus un pieprasa AI veikt pārkāpumu pārbaudi. Tomēr ir svarīgi pārbaudīt rezultātu ar risinātāju vai manuāli; AI negarantē absolūtu optimālumu.

Optimāli vai vienkārši "labi"?

Šeit ir kritiska koncepcija: risinājums, ko AI (un lielākā daļa praktisko metožu) atrod, bieži ir labs risinājums (heiristisks), nevis optimāls. Patieso optimālo atrod matemātiskais risinātājs (piemēram, OR-Tools, Gurobi, PuLP), atrisinot pareizi izveidoto modeli. AI uzdevums ir izveidot modeli, nevis to atrisināt.

Uzrakstiet modeļa skeletu, lai atrisinātu šādu transportēšanas uzdevumu ar Python PuLP:- Lēmuma mainīgie x[i][j] (i rūpnīca, j centrs)- Mērķis: kopējo izmaksu minimizēšana- Ierobežojums: katras rūpnīcas piedāvājums, katra centra pieprasījums, x >= 0Paskaidrojiet kodu ar komentāriem, bet es ievadīšu skaitliskos datus. Arī: uzskaitiet, kādas pārbaudes man jāveic, kad risinājums tiek parādīts.

Padoms. Tā vietā, lai liktu AI “uzrakstīt kodu un izdomāt to”, sakiet tai “uzrakstiet kodu, un es to palaistu”. Tas padara optimizāciju par īstu risinātāju; Jūs neuzticaties mākslīgā intelekta izdomātiem (un nepārbaudītiem) skaitļiem, kas saka "šeit ir mans risinājums".

Lēmumi par noliktavu un atrašanās vietu

Preču izvietošana noliktavā tieši ietekmē komplektēšanas attālumu. Pamatprincips ir novietot bieži pārvietotas (liela apgrozījuma) preces tuvu savākšanas punktam (ABC izvietojums). AI var izveidot izkārtojuma priekšlikuma kontūru ar produkta kustības datiem; Tomēr fiziski ierobežojumi (plauktu izmērs, svars, bīstamo materiālu atdalīšana, aukstuma ķēde) ir jāuzrauga cilvēkiem.

Mini futrālis: maz papīra, nav iespējams uz lauka

Sadales uzņēmums veic 40 piegādes dienā ar 3 automašīnām. Rūpniecības inženieris Selins sniedz AI pieturas, pieprasījumus un transportlīdzekļu ietilpību un lūdz maršruta plānu. AI rada attēlu, kas izskatās jauki un ar nelielu kopējo attālumu. Taču, pārbaudot Selīna, viņa saprot, ka kumulatīvā slodze transportlīdzekļa maršrutā pārsniedz ietilpību par 15%; Ir arī divas pieturas, kur klients var uzņemt pēcpusdienā, bet ir paredzēts no rīta. Selins uzvednē uzraksta ierobežojumus skaidrāk un atveido tos, pēc tam pārbauda plānu, izmantojot OR-Tools. Rezultāts kļūst realizējams. Nodarbība: plāns, ko AI sauca par "īsāko", patiesībā nebija īsākais un pat bija nederīgs ierobežojumu pārkāpumu dēļ.

Biežākās kļūdas

  • Ierobežojumu nenorādīšana: Maršruta pieprasīšana bez ietilpības, laika loga un transportlīdzekļu skaita.
  • AI jaukšana ar risinātāju: AI sniegtā "optimālā" risinājuma pieņemšana kā reāla risinātāja izvade.
  • Nepārbauda ierobežojumu pārkāpumus: plāna īstenošana, nepārbaudot kumulatīvo slodzi un ierašanās laiku.
  • Koncentrēšanās uz vienu mērķi: optimizēt tikai izmaksas un aizmirst par izturību/risku (atkarība no viena piegādātāja).
  • Neizmantojot reālās izmaksas: modeļa izveide ar noklusējuma/sagatavotām vienības izmaksām un neatjaunināšana ar reāliem datiem.

Rezumējot

  • Katra piegādes ķēdes optimizācija sastāv no trim sastāvdaļām: lēmumu mainīgie, mērķa funkcija, ierobežojumi.
  • AI visvērtīgākais ieguldījums ir biznesa problēmas pārvēršana pareizā modeļa veidā (transportēšana, VRP, uzdevums).
  • Jaudas un laika loga ierobežojumi ir ļoti svarīgi VRP; AI bieži tos izlaiž, noteikti pārbaudiet tos.
  • AI veido, nevis atrisina; Faktiskā optimizācija jāveic risinātājam (PuLP, OR-Tools).
  • Papildus izmaksām mērķim jābūt arī izturībai un riskam; Atkarība no viena piegādātāja/viena maršruta ir slēptas izmaksas.

Lietojumprogrammas uzdevums

Izveidojiet piegādes/izplatīšanas problēmu (piemēram, 3 noliktavas, 5–8 klienti, prasības un transportlīdzekļa jauda). Pirmkārt, AI modelējiet problēmu kā lēmuma mainīgo, mērķi un ierobežojumu un nosauciet problēmas veidu. Pēc tam sniedziet VRP scenāriju un pieprasiet maršruta plānu; Izvadā pats pārbaudiet katra transportlīdzekļa kumulatīvo slodzi un ierašanās laikus. Kritiskā pārbaude: manuāli saskaitiet vismaz viena transportlīdzekļa kopējo slodzi un salīdziniet to ar ietilpību un meklējiet ierobežojumu pārkāpumu. Visbeidzot, ļaujiet mākslīgajam intelektam uzrakstīt atrisinātāja (PuLP) koda skeletu un izveidot darbplūsmu, kas neļauj AI ģenerēt viltotus skaitļus, izmantojot pieeju “Es izpildīšu risinājumu”.