Autor: Martin Frešer, Data Scientist, Adacta Group
Ako posmatramo proizvodnju, rast poslovanja zavisi od sposobnosti kompanije da proizvodi veću količinu proizvoda. Ako se broj porudžbina poveća i proizvodni kapaciteti približe maksimalnim operativnim mogućnostima, menadžment kompanije po difoltu počinje da razmišlja o ulaganju u nove proizvodne kapacitete.
Dilema – Kupiti ili ne kupiti?
To nije uvek laka odluka zato što su troškovi ulaganja visoki, a proizvodni pogoni ograničeni. Danas kompanije dosta ulažu u nove mašine, sa kojima žele da povećaju proizvodni kapacitet objekta. Međutim, ako bismo bili u stanju da poslovne procese učinimo „pametnijim“, ne samo da bismo proizvode brže proizvodili, već bismo povećali radni kapacitet bez potrebe za nabavkom novih, skupljih mašina.
Planiranje rada je važan deo procesa rada u proizvodnom pogonu
Efikasno planiranje rada je od izuzetne važnosti za pravovremenu isporuku naloga, alokaciju materijala i radne snage, pa samim tim i optimizaciju profita. Međutim, ispostavilo se da je planiranje rada zahtevan proces, sa mnogo različitih opcija, kao i da se zahtevi u proizvodnim pogonima brzo menjaju. U ovom članku ćemo predstaviti sistem koji je uveo ključnu promenu kod jednog našeg klijenta – proizvodnu kompaniju, koji je uz pomoć optimizacije procesa planiranja imao za rezultat značajne efekte na krajnji rezultat i prihode. U pitanju je kompanija koja se bavi štampanjem različitih proizvoda, pa je mastilo jedan od glavnih materijala u procesu proizvodnje. Pre samog projekta napravili smo analizu njihovog procesa rada i ustanovili da se usko grlo definitivno vezuje za planiranje radnog procesa. Zato smo implementirali sistem koji prati proizvodnju na svim mašinama u realnom vremenu, pravi vizualni prikaz, obaveštava o trenutnom stanju svake mašine, ali i definiše optimalni redosled radnih zadataka.
U bazi podataka, svi radni nalozi su grupisani po skupovima koji imaju različite elemente. U zavisnosti od karakteristika uzastopnih radnih naloga, jedan nalog se izvršava brže od drugog. Za ovo možemo dati odličan primer – čišćenje komore za punjenje mastila. Ako u komoru ubacimo plavu boju i želimo da koristimo narandžastu boju u istoj komori u sledećoj iteraciji, potrošićemo više vremena na čišćenje komore nego ako bismo prvo štampali radni nalog sa zelenom bojom, jer je zelena boja mešavina plave i žute, dok je narandžasta spoj žute i crvene.
U jednostavnom primeru, možemo videti mogućnost promene boja u jednoj komori.
Stvari postaju zanimljive kada je potrebno isplanirati radne naloge za tri do osam boja, na tri mašine sa 6 komora za punjenje mastila, gde svaka mašina radi sa različitom brzinom i samo jedna poseduje tehnologiju za štampanje određenog tipa materijala. U tom trenutku definitivno biramo više od 200 različitih nijansi. Najvažnija stvar – za svaki radni zadatak moramo imati na umu da ima definisan rok za završetak radova i moramo osigurati da se to ne propusti.
Već smo spomenuli određene parametre na koje moramo da obratimo pažnju i sa kojima moramo da budemo u skladu. Kako postoji veliki broj kombinacija, trebalo bi nam zaista puno vremena (to bi praktično bilo nemoguće) da svaku ručno izračunamo. Složenost problema sa vremenskog aspekta za 3 mašine bismo mogli da predstavimo n!3^n. Kao jednu interesantnu činjenicu možemo navesti – ako bismo imali 42 naloga, postoji toliko različitih mogućih kombinacija da se mogu izmeriti brojem atoma na Zemlji; u slučaju 59 naloga, ovaj broj bi bio jednak broju atoma u Univerzumu. Problemi ovakvog nivoa se u nauci zovu NP- kompletni problemi (eng. NP full problems). To podrazumeva da je veoma teško istražiti sva moguća rešenja i pronaći ono najbolje, jer jednostavno postoji previše mogućnosti, čak i na računaru.
Budući da je proizvodnja živ proces, zahtevi se stalno menjaju!
Radni nalog je isplaniran, odštampan i proizvod je završen, pa se samim tim završava proces planiranja za ovaj radni nalog. Sa druge strane, imamo nove radne naloge koji neprestano stižu i koje moramo da uklopimo u trenutni plan rada. Zato nam je potreban sistem koji će „osvežiti“ plan rada u realnom vremenu sa novim radnim zadacima. U skladu sa tim, potreban nam je metod koji će nam pomoći da u svakom trenutku pronađemo novi izbor radnog naloga, ako se desi da se jedan radni nalog izbaci ili ubaci nov u plan rada. Darvin je rekao da opstanak vrste ne zavisi od njene snage ili njene inteligencije, već od njene sposobnosti da odgovori na promene. Mi vidimo jedno rešenje naloga, kao zasebnu stavku u nizu. Generisanjem više rešenja i njhovim međusobnim poređenjem u datoj populaciji, možemo odabrati najbolje rešenje datog problema. Međutim, zbog procesa konstantnih promena, najbolji uzorci populacije neće biti uvek najbolji u svakom trenutku i biće podložni promenama. Zbog toga se koristi Darvinova metoda koja se naziva genetski algoritam.
Genetski algoritam – objasnio!
Da bismo bolje razumeli kako algoritam radi, daćemo primer – zamislite da je potrebno da napravimo fudbalski tim od jedanaest igrača koji je najbolji na svetu. Pretpostavimo da imamo način da izmerimo kvalitet jednog tima kada igra svih 11 igrača. To je tzv. fitness funkcija i ona nam izračunava i dostavlja određeni rezultat. Funkcija se sastoji od različitih aspekata, kako bi se procenio kvalitet igre u napadu i odbrani, cena fudbalskih igrača, međusobna povezanost igrača. Na kraju, sumiranjem svih pobrojanih atributa dobijamo finalni rezultat i procenu fudbalskog tima.
Pošto postoji previše opcija i previše ljudi na svetu, mi imamo limitirane mogućnosti da procenimo različite timove i zato moramo da koristimo različite metode za menjanje igrača. U prvom krugu sastavljamo nekoliko timova i rangiramo ih u skladu sa našom fitness funkcijom. U sledećem koraku želimo da formiramo nove timove i da zadržimo neke od postojećih, kako bismo pronašli tim sa najboljim rezultatom. Naravno, neki od najbolje rangiranih timova su direktno uključeni u sledeći krug (ova metoda je poznata kao elitizam – eng. „elitism“). Zatim, uzimamo bilo koja dva tima i razmenjujemo međusobno neke od igrača, kako bismo dobili dva nova tima. Ovo nazivamo „cross-over“ metodom, jer na taj način se pruža mogućnost da se neki igrači osećaju bolje u drugom timu. Pomenuta metoda se ponavlja više puta. Desiće se situacija da jednostavno ne možemo da pronađemo bolji tim putem predstavljenog metoda i na taj način dostižemo tzv. local optimum. U tom slučaju koristimo metod mutacije koji nasumično pronalazi jednog igrača na svetu i menja ih sa postojećim igračima u timu. Ispostavilo se da zbog ove metode, genetski algoritam „izbegava“ lokalni optimum i pronalazi bolje rezultate. Nakon nekoliko iteracija, dobijamo vrlo dobar tim, ali nikada ne možemo znati da li je najbolji. Ali, na kraju kraju svih krajeva se dešava da postojeći igrači postaju stariji i da dolaze novi i mlađi igrači sa različitim i novim sposobnostima. Zato uvek moramo da radimo evaluaciju tima, menjamo članove i tražimo bolje mogućnost za tim.
Koristili smo slične metode da bismo pronašli najbolji radni nalog za pomenutu kompaniju – gore pomenutog našeg klijenta, ali smo zamenili igrače sa radnim zadacima. Zbog promenljive prirode problema, algoritam neprestano traži najbolje moguće rešenje i to čini putem opisanog metoda. Praksa je potvrdila da algoritam pronalazi dovoljno dobro rešenje u samo nekoliko iteracija, značajno smanjuje vreme koje je potrebno za izradu istog broja radnih zadataka, i to samo zbog bolje organizovanog redosleda obavljanja radnih zadataka.
Na svakoj liniji, vreme potrebno za proizvodnju je smanjeno do 2 sata, a što je dovelo do smanjenja broja radnih subota. Takođe, kompanija je uspela da smanji zakasnele isporuke.
Crvena linija prikazuje trenutno vreme, crveni kvadrat predstavlja radni zadatak za koji je potrebno više vremena da bi bio završen, tamno plava boja, koja prethodi crvenoj liniji, predstavlja zadatak koji je završen na vreme. Sistem prati status zadataka, pri čemu trenutni zadatak trepti plavom bojom (ako još uvek postoji vreme za završetak zadatka) ili crvenom (ako nema vremena). Za planirane zadatke (desno od crvene linije) displej pokazuje da li su prethodno zahtevane operacije završene.
Ovaj sistem osigurava da se poveća kapacitet proizvodnih mašina i na taj način omogućava kompaniji da prihvati još porudžbina bez kupovine novih radnih mašina.
Ovo je stvorilo nekoliko stotina hiljada evra dodatnog prihoda, što predstavlja značajni rast u poređenju na veličinu ovog proizvodnog pogona. Putem implementacije vrhunskih algoritama, uspeli smo da pokažemo da je moguće primeniti akademsko znanje u malim i srednjim pogonima i na realnim problemima. Ne samo da su takvi problemi rešivi, već pronalaženjem optimalnih rešenja možemo imati direktan uticaj na profit i rezultati mogu biti vidljivi u vrlo kratkom vremenskom roku.
Iskustvo je pokazalo da u mnogim kompanijama ima još puno prostora za napredak, kao i da nema dovoljno primera koji pokazuju da se ovi vidovi novih tehnologija i algoritama primenjuju, ili su se primenjivali, u svakodnevnim procesima i zadacima. Nažalost, neke stvari se još uvek rade ručno!
Ovim projektom smo realizovali i optimizovali nekoliko procesa u proizvodnom ciklusu i demonstrirali kako snaga nauke može da pomogne industriji.