Jedinica 7 / 9

Lanac opskrbe i optimizacija logistike

Dobici:

  • Sposobnost identificiranja problema s dizajnom mreže opskrbnog lanca, trase i rasporeda skladišta
  • Sposobnost korištenja umjetne inteligencije u generiranju scenarija, popisu ograničenja i izgradnji optimizacijskog modela
  • Sposobnost provjere predloženih rješenja umjetne inteligencije s ograničenjima troškova, kapaciteta i isporuke

Opskrbni lanac je cijeli tok materijala, informacija i novca od sirovina do krajnjeg kupca. Svaka odluka u ovoj mreži (gdje nabaviti, koje skladište uskladištiti, kojom rutom poslati) uspostavlja ravnotežu između cijene, brzine i trajnosti. Optimizacija ovdje nije magija, ona znači dobro definiranu ciljnu funkciju i ograničenja. Umjetna inteligencija je vrlo moćna u ovom području u strukturiranju problema, generiranju scenarija, popisu ograničenja i izradi modela optimizacije; Ali tvrdnje o "najboljem rješenju" uvijek moraju biti potvrđene u odnosu na ograničenja i stvarne troškove. U ovoj jedinici raspravljat ćemo o dizajnu mreže, optimizaciji rute i odlukama o skladištu uz podršku umjetne inteligencije.

Karta problema optimizacije opskrbnog lanca

Prepoznavanje optimizacijskih problema prvi je korak u izgradnji pravog modela.

problem

varijabla odluke

Tipična namjena

projektiranje mreže

Koji objekt/skladište otvoriti?

Ukupni fiksni + varijabilni trošak min

Dodjeljivanje/dodjela

Koji kupac s kojeg skladišta?

Cijena prijevoza min

Usmjeravanje vozila (VRP)

Koje vozilo se zaustavlja, kojim redoslijedom?

Ukupna udaljenost/vrijeme min

raspored skladišta

Gdje treba smjestiti proizvode?

Razmak branja min

Izbor načina prijevoza

Zemlja/more/zrak

Ravnoteža cijene i brzine

Zajednički okvir svakog problema je isti: varijable odluke, funkcija cilja, ograničenja. Najvrjedniji doprinos umjetne inteligencije je to što vam pomaže prevesti poslovni problem u ove tri komponente.

Uloga: Vi ste industrijski inženjer specijaliziran za optimizaciju opskrbnog lanca. Zadatak: Prevedite sljedeći poslovni problem u optimizacijski model. Navedite: (1) varijable odluke, (2) ciljnu funkciju, (3) ograničenja (kapacitet, zadovoljenje potražnje, nenegativnost), (4) vrstu ovog problema. Problem: "Imamo 3 tvornice i 5 distribucijskih centara. Kapacitet svake tvornice i potražnja svakog centra su određeni. Jedinični troškovi transporta od tvornice do centra su različiti. Minimizirajte ukupne troškove transporta. Želimo ga preuzeti." Pravilo: Imenujte vrstu modela (npr. problem transporta), jasno napišite pretpostavke.

Ovo je klasičan transportni problem. AI to može prepoznati i izgraditi ispravan matematički kostur; Također postavljate podatke o stvarnom kapacitetu i potražnji.

Optimizacija rute (VRP) i važnost ograničenja

Rutiranje vozila je najčešće susrećen i netočno utvrđen problem u praksi. Postoji velika razlika između jednostavnog "najkraćeg puta" (TSP) i pravog VRP-a: kapacitet vozila, vremenski prozori (sati kada kupac može preuzeti), vremenska ograničenja vožnje, više vozila.

Oprez: kada umjetna inteligencija preporuči rutu, često "zaboravi" ili približna ograničenja kapaciteta i vremenskog okvira. Ruta natovarena s više tereta nego što vozilo može prevesti može se činiti "kratkom", ali je nepraktična. Provjerite svaku rutu pojedinačno za ukupno opterećenje ≤ kapacitet i vrijeme dolaska ∈ vremenski okvir.

Slab upit / Jak upit

Slab upit:

Navedite najkraći put za ovih 8 stanica.

Ako nema kapaciteta, vremenskog okvira i broja vozila, AI daje jednostavno rangiranje; Ne izdržava u stvarnom radu.

Snažan upit:

Predložite plan rute za sljedećih 8 kupaca. Postoje 2 vozila, kapacitet svakog je 100 jedinica. Svaki zahtjev kupca i vremenski okvir su priloženi. Odjava iz skladišta08:00. Pretpostavimo da je prosječna brzina 40 km/h. Izlaz: redoslijed zaustavljanja za svako vozilo, kumulativno opterećenje (ne smije premašiti kapacitet), procijenjeno vrijeme dolaska (kako bi odgovaralo vremenskom prozoru), ukupna udaljenost. Ako postoji kršenje ograničenja, jasno to navedite i predložite alternativu. Podaci: {{ ... }}

Drugi prompt izričito nameće ograničenja i zahtijeva provjeru kršenja od AI-ja. Međutim, bitno je provjeriti rezultat s rješavačem ili ručno; AI ne jamči apsolutnu optimalnost.

Optimalno ili samo "dobro"?

Ovdje postoji kritičan koncept: rješenje koje AI (i većina praktičnih metoda) pronađe često je dobro rješenje (heuristika), a ne optimalno. Pravi optimalni se pronalazi matematičkim rješavačem (kao što je OR-Tools, Gurobi, PuLP) koji rješava ispravno konstruirani model. Uloga umjetne inteligencije je izgraditi model, a ne riješiti ga.

Napišite kostur modela za rješavanje sljedećeg transportnog problema s Python PuLP:- Varijable odluke x[i][j] (i tvornica, j centar)- Cilj: minimizacija ukupnih troškova- Ograničenje: ponuda svake tvornice, potražnja svakog centra, x >= 0Objasnite kod s komentarima, ali ja ću unijeti numeričke podatke. Također: navedite koje provjere trebam učiniti kada rješenje izađe.

Savjet: Umjesto da kažete umjetnoj inteligenciji da "napiše kôd i shvati ga", recite mu "napišite kôd i ja ću ga pokrenuti." To optimizaciju čini pravim rješavačem; Ne vjerujete brojevima koje je izradila umjetna inteligencija (i neprovjerenim) koji govore "evo mog rješenja".

Odluke o skladištu i lokaciji

Postavljanje proizvoda u skladištu izravno utječe na udaljenost komisioniranja. Osnovno načelo je postaviti artikle koji se često premještaju (visoki promet) blizu mjesta preuzimanja (postavljanje ABC). AI može izraditi nacrt prijedloga izgleda s podacima o kretanju proizvoda; Međutim, fizička ograničenja (veličina police, težina, odvajanje opasnog materijala, hladni lanac) moraju nadzirati ljudi.

Mini slučaj: kratak na papiru, nemoguće na terenu

Distribucijska tvrtka vrši 40 isporuka dnevno s 3 vozila. Industrijski inženjer Selin daje zaustavljanja, zahtjeve i kapacitete vozila AI-u i traži plan rute. AI proizvodi snimak koji izgleda lijepo i ima malu ukupnu udaljenost. Ali kada Selin provjeri, shvati da kumulativno opterećenje na putu vozila premašuje kapacitet za 15%; Postoje i dva stajališta gdje kupac može pokupiti u poslijepodnevnim satima, ali je na rasporedu ujutro. Selin jasnije piše ograničenja na upit i reproducira ih, a zatim provjerava plan pomoću OR-Tools. Rezultat postaje izvediv. Lekcija: Plan koji je AI nazvao "najkraćim" zapravo nije bio najkraći i čak je bio nevažeći zbog kršenja ograničenja.

Uobičajene greške

  • Bez specificiranja ograničenja: Traženje rute bez kapaciteta, vremenskog okvira i broja vozila.
  • Zamjena AI-a za rješavača: prihvaćanje "optimalnog" rješenja koje daje AI kao stvarni izlaz rješavatelja.
  • Bez provjere kršenja ograničenja: Provedba plana bez provjere kumulativnog opterećenja i vremena dolaska.
  • Fokusiranje na jedan cilj: Optimiziranje samo troškova i zaboravljanje na trajnost/rizik (ovisnost o jednom dobavljaču).
  • Ne korištenje stvarnih troškova: Izrada modela sa zadanim/izmišljenim jediničnim troškovima i njegovo neažuriranje stvarnim podacima.

Ukratko

  • Svaka optimizacija opskrbnog lanca svodi se na tri komponente: varijable odluke, funkciju cilja, ograničenja.
  • Najvrjedniji doprinos umjetne inteligencije je prevođenje poslovnog problema u pravu vrstu modela (prijevoz, VRP, dodjela).
  • Ograničenja kapaciteta i vremenskog prozora ključna su u VRP-u; AI ih često preskače, svakako ih provjerite.
  • AI gradi, a ne rješava; Rješivač (PuLP, OR-Tools) trebao bi izvršiti stvarnu optimizaciju.
  • Osim cijene, cilj bi također trebao biti trajnost i rizik; Ovisnost o jednom dobavljaču/jednoj ruti je skriveni trošak.

Zadatak aplikacije

Konstruirajte problem opskrbe/distribucije (npr. 3 skladišta, 5-8 kupaca, potražnja i kapacitet vozila). Prvo neka AI modelira problem kao varijablu odluke, cilj i ograničenje i imenuje vrstu problema. Zatim dajte VRP scenarij i zatražite plan rute; Provjerite kumulativno opterećenje i vremena dolaska svakog vozila sami u izlazu. Kritična provjera: ručno zbrojite ukupno opterećenje barem jednog vozila i usporedite ga s kapacitetom i potražite kršenje ograničenja. Konačno, neka umjetna inteligencija napiše kostur koda rješavača (PuLP) i osmisli tijek rada koji sprječava umjetnu inteligenciju da generira lažne brojeve, uz pristup "ja ću pokrenuti rješenje".