Üksus 7 / 9

Tarneahela ja logistika optimeerimine

Kasu:

  • Oskus tuvastada tarneahela võrgukujunduse, marsruudi ja lao paigutuse probleeme
  • Võimalus kasutada tehisintellekti stsenaariumide genereerimisel, piirangute loendis ja optimeerimismudeli koostamisel
  • Võimalus valideerida tehisintellekti soovitatud lahendusi kulude, võimsuse ja tarnepiirangutega

Tarneahel on kogu materjalide, teabe ja raha voog alates toorainest kuni lõpptarbijani. Iga otsus selles võrgus (kust hankida, milline ladu varuda, milline marsruut tarnida) loob tasakaalu kulude, kiiruse ja vastupidavuse vahel. Optimeerimine ei ole siin maagia, see tähendab täpselt määratletud eesmärgifunktsiooni ja piiranguid. Tehisintellekt on selles valdkonnas probleemi struktureerimisel, stsenaariumide genereerimisel, piirangute loetlemisel ja optimeerimismudeli koostamisel väga võimas; Kuid "parima lahenduse" väiteid tuleb alati kontrollida piirangute ja tegelike kulude suhtes. Selles üksuses käsitleme võrgukujundust, marsruudi optimeerimist ja laootsuseid tehisintellekti toega.

Tarneahela optimeerimise probleemide kaart

Optimeerimisprobleemide äratundmine on esimene samm õige mudeli loomisel.

probleem

otsuse muutuja

Tüüpiline eesmärk

võrgu disain

Milline rajatis/ladu tuleks avada?

Kokku püsi-+muutuvkulu min

Määramine/eraldamine

Milline klient millisest laost?

Transpordikulu min

Sõiduki marsruutimine (VRP)

Milline sõiduk teeb milliseid peatusi, millises järjekorras?

Kogu vahemaa/aeg min

lao paigutus

Kuhu tuleks tooted paigutada?

Korjekaugus min

Transpordirežiimi valik

Maa/meri/õhk

Kulu-kiiruse tasakaal

Iga probleemi ühine raamistik on sama: otsustusmuutujad, eesmärgifunktsioon, piirangud. Tehisintellekti kõige väärtuslikum panus on see, et see aitab teil äriprobleemi nendeks kolmeks komponendiks tõlkida.

Roll: olete tarneahela optimeerimisele spetsialiseerunud tööstusinsener. Ülesanne: Tõlgi järgmine äriprobleem optimeerimismudeliks. Täpsustage: (1) otsustusmuutujad, (2) eesmärgifunktsioon, (3) piirangud (võimsus, nõudluse rahulolu, mittenegatiivsus), (4) selle probleemi tüüp. Probleem: "Meil on 3 tehast ja 5 jaotuskeskust. Iga tehase võimsus ja iga keskuse nõudlus on kindlad. Transpordi ühikukulud tehasest keskusesse on erinevad. Minimeerige transpordi kogukulu Soovime selle alla laadida."Reegel: nimetage mudeli tüüp (nt transpordiprobleem), kirjutage eeldused selgelt.

See on klassikaline transpordiprobleem. AI suudab selle ära tunda ja ehitada õige matemaatilise skeleti; Samuti paigutate tegelikud võimsuse ja nõudluse andmed.

Marsruudi optimeerimine (VRP) ja piirangute tähtsus

Sõidukite marsruutimine on praktikas kõige sagedamini esinev ja valesti kindlaks tehtud probleem. Lihtsa "lühima tee" (TSP) ja tõelise VRP vahel on suur erinevus: sõiduki mahutavus, ajaaknad (tunnid, mil klient saab järele tulla), sõiduaja piirangud, mitu sõidukit.

Ettevaatust. Kui tehisintellekt soovitab marsruuti, unustab see sageli läbilaskevõime ja ajaakna piirangud või ligikaudselt. Marsruut, kus on rohkem lasti, kui sõiduk suudab kanda, võib tunduda "lühike", kuid ebapraktiline. Kontrollige igal marsruudil eraldi kogukoormus ≤ mahutavus ja saabumisaeg ∈ ajaaken.

Nõrk viip / Tugev viip

Nõrk viip:

Esitage nende 8 peatuse jaoks lühim marsruut.

Kui mahutavust, ajaakent ja sõidukite arvu pole, annab tehisintellekt lihtsa järjestuse; Reaalses töös see vastu ei pea.

Võimas viip:

Soovitage marsruudiplaani järgmistele 8 kliendile. Seal on 2 sõidukit, kummagi mahutavus on 100 ühikut. Lisatud on iga kliendi nõudlus ja ajaaken. Laost väljaregistreerimine 08:00. Oletame keskmiseks kiiruseks 40 km/h. Väljund: iga sõiduki peatuste järjekord, kumulatiivne koormus (mitte ületada kandevõimet), eeldatav saabumisaeg (vastavalt ajaaknale), kogu vahemaa. Kui piiranguid on rikutud, väljendage see selgelt ja pakkuge välja alternatiiv. Andmed: {{ ... }}

Teine viip seab selgesõnaliselt piirangud ja nõuab AI-lt rikkumiste kontrolli. Siiski on oluline tulemust kontrollida lahendajaga või käsitsi; AI ei garanteeri absoluutset optimaalsust.

Optimaalne või lihtsalt "hea"?

Siin on kriitiline kontseptsioon: lahendus, mille AI (ja enamik praktilisi meetodeid) leiab, on sageli hea lahendus (heuristiline), mitte optimaalne. Tõelise optimaalse leiab matemaatiline lahendaja (nagu OR-Tools, Gurobi, PuLP), kes lahendab õigesti koostatud mudeli. AI roll on mudelit ehitada, mitte seda lahendada.

Kirjutage mudeliskelett järgmise transpordiülesande lahendamiseks Python PuLP-ga:- Otsustusmuutujad x[i][j] (i tehas, j keskus)- Eesmärk: kogukulude minimeerimine- Piirang: iga tehase pakkumine, iga keskuse nõudlus, x >= 0Selgitage kood kommentaaridega, kuid sisestan numbrilised andmed. Samuti: loetlege, milliseid kontrolle pean tegema, kui lahendus välja tuleb.

Näpunäide. Selle asemel, et käskida tehisintellektil "kirjutada kood ja välja mõelda", öelge talle "kirjutage kood ja ma käivitan selle". See muudab optimeerimise tõeliseks lahendajaks; Te ei usalda AI väljamõeldud (ja kontrollimata) numbreid, mis ütlevad "siin on minu lahendus".

Otsused lao ja asukoha kohta

Toote paigutus lattu mõjutab otseselt komplekteerimiskaugust. Põhiprintsiip on paigutada sageli teisaldatavad (suure käibega) kaubad komplekteerimispunkti lähedale (ABC paigutus). Tehisintellekt võib koostada paigutusettepaneku kontuuri koos toote liikumise andmetega; Füüsilisi piiranguid (riiuli suurus, kaal, ohtlike materjalide eraldamine, külmkett) peavad aga jälgima inimesed.

Minikohver: paberit napib, põllul võimatu

Turustusettevõte teeb 40 tarnet päevas 3 sõidukiga. Tööstusinsener Selin annab tehisintellektile peatused, päringud ja sõidukite mahud ning küsib marsruudiplaani. AI loob võtte, mis näeb kena välja ja mille kogukaugus on väike. Aga kui Selin kontrollib, saab ta aru, et kumulatiivne koormus sõiduki marsruudil ületab kandevõimet 15% võrra; Samuti on kaks peatust, kust klient saab järele tulla pärastlõunal, kuid mis on ette nähtud hommikul. Selin kirjutab piirangud viipale selgemalt kirja ja reprodutseerib need, seejärel kontrollib plaani OR-Toolsiga. Tulemus muutub teostatavaks. Õppetund: plaan, mida AI nimetas "lühimaks", ei olnud tegelikult kõige lühem ja oli piirangute rikkumiste tõttu isegi kehtetu.

Levinud vead

  • Piirangute määramata jätmine: marsruudi taotlemine ilma mahutavuse, ajaakna ja sõidukite arvuta.
  • AI eksimine lahendajaga: AI poolt antud "optimaalse" lahenduse aktsepteerimine tegeliku lahendaja väljundina.
  • Piirangute rikkumiste kontrollimata jätmine: plaani rakendamine ilma kumulatiivset koormust ja saabumisaegu kontrollimata.
  • Keskendumine ühele eesmärgile: ainult kulude optimeerimine ja vastupidavuse/riskide unustamine (sõltuvus ühest tarnijast).
  • Tegelike kulude mittekasutamine: mudeli loomine vaikimisi/valmistatud ühikukuludega ja selle värskendamata jätmine tegelike andmetega.

Kokkuvõttes

  • Iga tarneahela optimeerimine taandub kolmele komponendile: otsustusmuutujad, eesmärgifunktsioon, piirangud.
  • Tehisintellekti kõige väärtuslikum panus on äriprobleemi teisendamine õigesse mudelitüüpi (transport, VRP, määramine).
  • VRP puhul on võimsuse ja ajaakna piirangud üliolulised; AI jätab need sageli vahele, kontrollige neid kindlasti.
  • AI ehitab, mitte ei lahenda; Tegeliku optimeerimise peaks tegema lahendaja (PuLP, OR-Tools).
  • Lisaks kuludele peaksid eesmärgiks olema ka vastupidavus ja risk; Ühe tarnija/ühe marsruudi sõltuvus on varjatud kulu.

Rakenduse ülesanne

Koostage tarne/turustusprobleem (nt 3 ladu, 5-8 klienti, nõudmised ja sõiduki maht). Esiteks laske AI-mudelil probleem otsustusmuutujana, eesmärgina ja piiranguna ning nimetage probleemi tüüp. Seejärel esitage VRP stsenaarium ja küsige marsruudiplaani; Kontrollige väljundis ise iga sõiduki kumulatiivset koormust ja saabumisaegu. Kriitiline kontrollimine: liitke käsitsi vähemalt ühe sõiduki kogukoormus ja võrrelge seda kandevõimega ning otsige piirangute rikkumist. Lõpuks laske tehisintellektil kirjutada lahendaja (PuLP) koodiskelett ja kujundada töövoog, mis takistab tehisintellektil võltsnumbreid genereerimast, kasutades lähenemisviisi "Ma käivitan lahenduse".