Mreža za hvatanje istine
Motivacijska
tema za primjenu Bayesovih mreža u prometu na mnoge (korisne) načine.
Početak
i proljeće 2023. godine obilježila je kiša, a stanje u zagrebačkom prometu
tijekom kišnog dana je … zanimljivo, blago rečeno. Mnogi razumni ljudi iz
ostalih hrvatskih krajeva, s pravom nas zafrkavaju da se u Zagrebu na kišu i
snijeg gleda kao na elementarnu nepogodu, a ne kao na prirodnu pojavu. Temu
publiciram u danu na preko 30 stupnjeva, a pričam o kišnom zagrebačkom proljeću,
ni to baš nije pohvalno. Službene stranice Državnog hidrometeorološkog zavoda
pokazuju koliko ove godine Zagreb (mjerna postaja Maksimir) ima kiše iznad
višegodišnjeg prosjeka, dok je sijanje sunca u očekivanim granicama (s
izuzetkom veljače).
Što se u Zagrebu događa u prometu tijekom kišnog dana? Nitko
nije precizno izmjerio, a time niti može relevantno zaključiti. Ovdje ću
iznijeti uobičajene špekulacije i poneku opću činjenicu:
(1) dio pješaka/biciklista koristi svoj (ili obiteljski) automobil, (2) dio
pješaka/biciklista umjesto javnog prijevoza koristi taksi uslugu, (3) dio
korisnika javnog prijevoza zbog komfora izabire svoj/obiteljski automobil, (4) dio
korisnika javnog prijevoza zbog komfora izabire taksi uslugu, (5) malo
korisnika automobila ide na javni prijevoz zbog nelagode vožnje po kiši, (6)
malo korisnika automobila koristi taksi uslugu zbog nelagode vožnje po kiši, (7)
propusna moć u kišnim uvjetima je (bitno) manja, (8) prometne nesreće u kišnim
uvjetima imaju puno veći utjecaj na propusnu moć u odnosu na suhe uvjete.
Tehniku (znanje) vožnje i prilagodbu kišnim uvjetima, kao i tehničku
pripremljenost vozila (pneumatici, brisači, …) neću komentirati. Sve u svemu,
broj automobila ne mijenja se previše, a parametri propusne moći su manji za
što zagrebački prometni sustav još uvijek nema adekvatan odgovor. Kišne dane na
zagrebačkim cestama obično prate medijski izrazi "kaos" i "kolaps".
Kolegica građevinske struke, ponukana čestim proljetnim kišama i različitim rezultatima prometovanja pitala me za uzroke stanja zagrebačkog prometa kišnim danima. Imam li ikakav "recept" ako će sutra padati (slaba, obilna, duga, kratka, očekivani iznenadni pljusak i sl.) što bi moglo biti u prometu, kada krenuti na posao? Osim prethodno osam opisanih floskula (s ponekom (polu)istinom) nisam znao, a niti mogao išta pametnije odgovoriti. Previše je tu stvari po načelu "što – ako". Sam naziv vremenska prognoza upućuju na primjenu vjerojatnosti pa se, stoga, niti opis stanja prometa u kišnim uvjetima ne može egzaktno odrediti; treba isto primijeniti neki alat teorije vjerojatnosti. Puno je čimbenika, odnosno uvjeta pa govorimo o uvjetnoj vjerojatnosti. O uvjetnoj vjerojatnosti ponešto sam pisao u ovoj temi, a o praktičnoj primjeni Bayesove formule za izračun uvjetne vjerojatnosti u ovoj temi . Ovdje ću malo (ili puno) zakomplicirati stvari.
Kolika je vjerojatnost u kišno zagrebačko jutro upasti u "kaos" ili "kolaps"? Ako jako pojednostavim stvari, onda to ovisi o sljedećem:
- kišno jutro; imamo dvije istinite tvrdnje – dva sigurna događaja: jutro je i pada kiša pa vrijedi: P(Doba_dana = jutro) = 1,00 i P(Vrijeme ǀ Kiša) = 1,00,
- ako je dugo padala kiša onda i stanje ceste nije dobro, dosta je vode na cesti (aquaplaning), slabije se vidi signalizacija, semaforski sustav (moguće) nije adaptiran na kišne (sporije) uvjete prometovanja, možda i pokoja rupa, sporija vožnja, moguć kvar ili nesreća; recimo da je vjerojatnost slabog stanja ceste uz uvjet da pada kiša: P(Stanje_ceste = slabo ǀ Kiša) = 0,60;
- za sada smo sigurni da se nalazimo u zagrebačkom kišnom jutru (na razini sigurnog događaja) s većom vjerojatnost slabog stanja ceste,
- koliko sve ovo utječe da ćemo se naći u velikom prometu? Što znači veliki promet? Recimo da se radi o vršnom prometu. Možemo dati neku "procjenu iz rukava" vjerojatnosti da je promet "velik": P(Promet = veliki ǀ (Doba_dana = jutro & Stanje_ceste = slabo)) = 0,93;
pa po načelu uvjetne vjerojatnosti kroz umnožak individualnih vjerojatnosti računamo vjerojatnost da se u kišno zagrebačko jutro nađemo u velikom prometu što upućuje na "kaos u prometu"/"prometni kolaps" je 0,558 (= 1,00 * 1,00 * 0,60 * 0,93). Ako smo više uvjereniji da ćemo doživjeti loše stanje na cesti (vjerojatnost lošeg stanja veća od predviđenih 0,60), onda ćemo i s većom vjerojatnošću u kišno zagrebačko jutro dulje putovati automobilom na posao (odredište).
Zamislimo da imamo u Zagrebu, što nemamo (za sada), ono što ima većina ostalih europskih gradova, a to je prometni sustav sazdan na podatcima, znanju, iskustvu i tehnologiji. Onda bi mogli izgraditi određene (statističke) sveze između različitih grupa podataka i dobivati pragove vjerojatnosti (odluke) za aktualne ili nastupajuće (ne)redovite događaje. Budući da takvih podataka (tehnološki) pametni gradovi imaju pregršt onda bi njihovo sistematiziranje u tablice združenih vjerojatnosti bilo dosta komplicirano (manji problem) i vrlo nepregledno (puno veći problem). Tu dolaze u akciju Bayesove mreže.
Tko ozbiljno promišlja ili se planira baviti nekim naprednijih tehnikama upravljanja (npr. kroz alate strojnog učenja) bez ovakvih stvari neće moći naprijed. Nije teško za shvatiti, a vrlo je učinkovito. Postoji i programska podrška što i ja koristim u ovoj temi. Naravno, bez potrebnog (pred)znanja korištenje ikakve programske podrške je besmisleno (i opasno). Studenti na Fakultetu prometnih znanosti Sveučilišta u Zagrebu uče o uvjetnoj vjerojatnosti, a dobivaju dovoljno i ostalih znanja za usvajanje i korištenje Bayesovih mreža. Na kraju, tu je i Internet. Kao dobar uvod mnogi (uključujući i mene) preporučuju članak Eugene Charnik: Bayesian Networks without Tears. Članak je vrlo kratak (13 stranica) i lako dostupan na Internetu u pdf formatu.
Malo znanja i ponešto programske podrške može izroditi jedan ovakav (moguće i zanimljiv) model. Koristio sam programsku podršku pod nazivom Bayesian Doctor tvrtke SpiceLogic Inc.. Ovdje koristim besplatnu nekomercijalnu sedmodnevnu verziju asketskog sučelja i mogućnosti, taman koliko treba za ovu temu. Razmišljanje je išlo u sljedećem pravcu: napraviti neki prognostički model(čić) zasnovan na vremenskim uvjetima i dobu dana. Parametri i pragovi su sljedeći:
Vrijeme: kiša i sunce.
Doba_dana: jutro, dnevno (što uključuje i večer), poslijepodne.
Stanje_ceste: dobro i loše.
Promet: mali, srednji, veliki.
Zagušenje: malo, umjereno kritično.
Na stranici meteo.hr
je za zagrebački višegodišnji prosjek
(1949. – 2021.) prosječno 125 dana u godini kiša pa je vjerojatnost kiše 0,34,
a sunca 0,66. Naravno da je to pogrešno jer imamo i zimske dane sa snijegom,
ledom i niskim temperaturama, maglovite dane i druge prometno nepovoljne dane,
ali za ovu (više teoretsku) priču dovoljno dobro.
Za doba dana sam uzeo 16-satni period od 6:00 do 22:00 sata. Imamo tri jutarnja (ugrubo 6:00 – 9:00) i pet poslijepodnevnih vršnih sati (ugrubo 13:00 – 18:00), a preostalih osam sati spada pod dnevni period.
Stanje ceste smo već raspravljali i ostajem kod dva praga: dobro (dobri uvjeti prometovanja) i loše. Loše je: loš kolnik (rupe, slaba odvodnja, …), nedostatak signalizacije, loša organizacija i regulacija prometa, (ne)predviđene prepreke i dr..
Promet je definiran kroz tri razine. Kako sam opisao, sve je to "iz rukava", ali dovoljno dobro za ilustraciju: veliki se odnosi na vršne dnevne sate, srednji na ono što najčešće imamo po danu , a mali više i nije toliko prisutan tijekom dana. Neki će (opravdano) prigovoriti da na nekim dijelovima zagrebačke mreže i nema bitnije razlike u prometu između 6:00 (6:30) i 18:30 (19:00), sve je to promet u količini koja se ne mijenja bitnije tijekom tih 12 sati, i u pravu su. Ipak, prihvatimo ovako postavljene pragove za potrebe ove teme.
Zagušenje definira status promatrane mreže (koridora, raskrižja). Barem se ovdje možemo uhvatiti nekih brojeva i zagušenje definirati kao: malo sa stupnjevima zasićenja do 0,67 (nema povećanih repova čekanja i bitne interakcije između vozila), umjereno sa stupnjevima zasićenja do 0,85 (neki bi stavili i do 0,95; postoji interakcija između vozila, a povećani repovi čekanja su slučajni) i kritično (veće od 0,95, odnosno 1,00) gdje prometna situacija teži ka neodrživim uvjetima prometovanja ("kaos", "kolaps").
Sve se ovo može (možda) pojednostaviti kroz promatranje samo
jednog pokazatelja – vremena putovanja. Današnje prometne (gradske) mreže
zasnivaju se na promatranju, mjerenju, uspoređivanju vrednovanju vremena
putovanja. Englezi to nazivaju Journey Time Reliability (JTR), skloniji
američkom izričaju koriste Travel Time Reliability (TTR), a doslovan
hrvatski prijevod je pouzdanost vremena putovanja. Jednostavno objasniti i
opisati; svako kašnjenje do 5 minuta unutar 30 minuta putovanja je podnošljivo,
odnosno svako vrijeme putovanja do 117 % očekivanog (prosječnog) vremena
putovanja je prihvatljivo, bez obzira bilo ljeto ili zima. Ovdje se bavimo
vremenskim (ne)prilikama pa ćemo ostati na opisanim veličinama. Interakcija
između čvorova grafa (problemskih veličina) je sljedeća.
Mogao bih potrošiti tisuću riječi za (de)argumentaciju brojeva u sljedećim tablicama združenih distribucija vjerojatnosti, ali molim čitatelja/icu za njihovo prihvaćanje. Negdje sam bio evidentno (pre)kritičan; u sunčanom vremenu pretpostavio sam vjerojatnost od čak 30 % da je stanje ceste loše. Negdje, opet, možda previše (pre)blag. Naravno, tko se ne slaže s ovime i ima volje neka navali; sve je na raspolaganju i besplatno barem sedam dana ako se odlučite za ovdje korišteni alat.
Za pitanje koje smo već postavili, vjerojatnost u zagrebačko kišno jutro za se nađemo u kritičnom zagušenju je velika. Kada programskom alatu postavimo pitanje za izračun kritičnog zagušenja dobijemo vjerojatnost od čak 0,98 pri uvjetima: Vrijeme = kiša, Doba_dana = jutro, Stanje_ceste = dobro, Promet = veliki. I u dobrim uvjetima prometovanja ne gine nam stajanje "u koloni".
Što je prednost kod ovakvih programskih tvorevina? Bayesova mreža je usmjereni aciklički graf, a vidimo da je moguće "izračunati" i neke stvari "unatrag". Pokazujem dva primjera gdje se računaju statusi "Vrijeme" i "Promet" za određene statuse "Zagušenja". Zato su Bayesove mreže izvrstan alat, poglavito u nekoj programskoj podršci.
Da li se nalazimo u kišnim uvjetima ako je jutro, loši
uvjeti na cesti, promet je veliki i zagušenje je kritično? Odgovor je "fifti –
fifti"; vjerojatnost je 0,496.
Smijemo li govoriti o velikom prometu ako se nalazimo u sunčanom danu u dobrim uvjetima na cesti, ali i u kritičnom zagušenju. Potvrdan odgovor je izgledan, ali ne i siguran, jer je vjerojatnost velikog prometa 0,693. Postoji 30 % vjerojatnosti (visok postotak) da je količina prometa srednja ili mala.
Zašto koristiti računalnu pomoć? Svatko tko je jednom računao uvjetnu vjerojatnost zna o čemu govorim. Sve je lako i logično, osim …, izračunati potpunu (marginalnu) vjerojatnost u čijem skupu istražujemo našu promatranu vjerojatnost. Uzmimo prethodni primjer, izračunati vjerojatnost stanja kiše obzirom na doba dana i stanje ceste, pri čemu su, radi pojednostavljenja, uzeta samo binarna stanja prometa (velik, nije velik) i doba dana (jutro, nije jutro):
Mogućnost pogrešne asignacije broja određenoj vjerojatnosti nije baš mala, previše je ovdje članova, a da se ne z(a)bunimo. Zato je pomoć računala ultimativna.
Puno toga je moguće ispitati i zaključiti, a time donijeti i odluku u Bayesovim mrežama. Sve što možemo vrednovati, usporediti i staviti u neku smislenu relaciju. Moguće je ovdje prikazani model pogrešan? Moguće. Moj predmet istraživanja (ključna veličina) je bilo kišno vrijeme. Odlučio sam se za dva podelementa, a može ih biti koliko god inženjer(ka) drži da ih je potrebno, za koje god misli da utječu na problem/model i, naravno, ima dostupne (vjerodostojne) podatke.
Ako smo negdje na "skliskom ledu", a u prometu je uvijek
tako, onda rješenje postoji jedino kroz korištenje ovakvih (i sličnih) alata.
Prednost je trostruka: (1) vizualizacija; jasno se vide veličine i njihovi
odnosi; model se lako dograđuje i/ili mijenja, (2) vidljivi uzročno-posljedični
odnosi između veličina; nedostaje li koja sveza ili je nešto "krivo spojeno" i
(3) brzina i točnost izračuna. Sve u svemu, gdje god je potrebno: nešto ustanoviti
(dijagnosticirati), prosuditi, modelirati, promisliti odluku u neizvjesnim
uvjetima, detektirati (ne)karakteristične pojave, automatizirati izračune iz
područja vjerojatnosti i još (po)dosta toga, Bayesove mreže su vrlo koristan
(ponekad i neophodan) alat.