logo-final-cisto copy 2
Search
Close this search box.

Zdenko Lanović

PROMIŠLJANJA INŽENJERA PROMETA

Kako se (ne) prekombinirati

PROMET: 1
MATEMATIKA: 2
RAČUNARSTVO: 0

Da li promet uvijek, bez obzira kako se promatra (entitetski, vremenski, prostorno), zaslužuje sve te “teške” pridjeve/atribute kao što su: komplicirano, složeno, kompleksno, višeslojno, … ?

Danas ne povezati bilo što u svezi prometa s atributima: složeno, komplicirano, kompleksno, slojevito, višeslojno, multidisciplinarno, inteligentno, pametno, logističko, stohastičko, …, obično znači ispasti neznalica, neiskusan, neinformiran, nestručan, itd.. Dovoljno je usporediti današnje znanstvenostručne članke iz područja upravljanja (cestovnog) prometa s onima prije par godina, a one od prije par godina s člancima s početka stoljeća. Da li se netko sjeća kako smo zvali neke stvari u prometu prije usvajanja amerikanizma inteligentni transportni sustavi? U bilo kojem modu prometa danas je sve “pametno” i “inteligentno” pa, posljedično, mora poprimiti sve uvodno opisane atribute.

Nedavno sam izazvan od pomalo krutog investitora (sve mu je preskupo i traje predugo), a nisam niti ja cvijeće – daleko od toga, posegnuo za ultimativnim argumentom – kombinatorikom. Problem je riješiti sustav s 20 (autonomnih) entiteta, a moj argument je bio: svaki entitet možemo promatrati u tri statusa (normalan rad u sustavu, autonomni rad zbog prekida komunikacije te kvar) pa onda imamo 3.486.784.401 (3,4 milijarde) mogućih stanja između 20 entiteta, a to se ne može baš jeftino niti brzo riješiti. Ako bi svako stanje trajalo jednu minutu trebalo bi 6.633 godine da se sve “izvrti”. Moja izjava je matematički točna jer se radi o varijacijama s ponavljanjem 20-tog razreda u 3-članom skupu, ali je činjenično pogrešna (lažna) jer se radi o autonomnim entitetima. Nije realno niti razumno razvijati rješenje neke tehnološke tvorevine koja bi imala tri milijarde mogućih stanja; barem ne na inženjerskoj razini uobičajenih (dnevnih) zadaća. U prometu promatramo veći broj stanja (ponekad i jako veliki broj), ali sve pokušavamo svesti na rješenje sa najviše 10 – 20 operacija (planova, modela, scenarija) za koje čovjek ima psihofizičke (mentalne) kapacitete poimanja stanja sustava: kontrole, nadzora i upravljanja. Imamo rješenja i s par stotina mogućih operacija, ali uvijek uz pomoć računala koje autonomno (automatski) upravlja ili nudi čovjeku na potvrdu najbolje rješenje uz moguće alternative; po nekom kriteriju nudi najbolje i 2 – 3 alternativna rješenja.

Tko bi povjerovao da 20 nečega s tri statusa može generirati 3,4 milijarde različitih stanja? Kada pričam o takvim stvarima ljudi me obično gledaju s podsmjehom. Uzmimo dva entiteta i svaki može imati tri statusa: 1, 2, 3. Imamo devet mogućih stanja: (1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2), (3,3). Recimo da je stanje 1 normalno, stanje 2 problem i stanje 3 kvar te da je prvi entitet glavna komponentna sustava, koji može izvršiti zadovoljavajuće zadaću i bez kompletne podrške drugog entiteta. Umjesto devet možemo definirati tri operativna stanja:

  • normalan rad: (1,1), (1,2),
  • problem: (1,3), (2,1), (2,2), (2,3)
  • incident: (3,1), (3,2), (3,3).

Ovakav rad se definira s par linija programskog koda. Tri entiteta imaju 27 stanja, četiri 81, a deset ih već ima 59.049. Svi ti sustavi mogu svoja stanja riješiti na identičan način: s nekoliko linija programskog koda – programski. Nije bitno koliko entiteta, stanja, senzora, koliko milijuna/milijardi podataka, važno je što napraviti s tim podatcima. Jedno moguće rješenje pseudo-koda za gornji primjer (entiteti e1 i e2, tri stanja) je sljedeće:

IF (e1=1 AND e2<>3) THEN status=normalno;

IF (e1=2) OR (e1=1 AND e3=3) THEN status=problem;

IF (e1=3) THEN status=incident;

Ove tri linije pseudo-koda vrijede za bilo koji broj entiteta (10, 20, 30, 1.000, …) sa tri stanja. Odredimo kritične entitete i označimo ih s “i”, a sekundarne s “j”. Ako su svi entiteti indeksa “i” u stanju 1, a ostali različiti od 3 onda smo u normalnom modu. Ako su svi sa indeksom “i” u stanju 2 ili ako postoji barem jedan sekundarni entitet koji je u stanju 3 uz normalan rad kritičnih entiteta, onda sustav ima problem. Ako je bilo koji kritični entitet u stanju 3 onda se nalazimo u stanju incidenta i treba odmah reagirati.

Imali 10 ili 2.000 entiteta, s malo analize (par linija koda, makroa, skripte, nekakvog API i dr.), ponešto indeksiranja i uspoređivanja sve se lako i brzo riješi. Nije baš da trebaju milijarde izračuna, ali nije ni rješivo u par dana; naravno, u odnosima autonomnih entiteta. Ako su entiteti zasebne cjeline, a opet međusobno povezane, onda nam ne gine prokletstvo kombinatorike. Svaki prometni entitet treba “prevrnuti” nekoliko puta (dobro proanalizirati) jer bez obzira kako gledali na njihovo grupiranje i/ili tipizaciju, svaki ima nešto jedinstveno , nešto zbog čega zaslužuje drugačiju granicu, drugačiju mjeru, drugačiji interval mjerenja/promatranja, …, od susjednog ili nekog “jako sličnog” njemu. Na kraju, zato je i definiran kao poseban entitet.

Sljedeće što nestručnjaci pobrkaju, ponekad (slučajno) i neke kolege/ice, je pouzdanost rada. Za opisani sustav s dva entiteta i tri stanja netko bi mogao izvući zaključak da je vjerojatnost normalnog rada 22 % (dva od mogućih devet stanja je normalan rad), a problematičnog i incidentnog visokih 44 % i 34 %. O pouzdanosti sam pisao u ovoj temi, a o kvaliteti rada prometnih sustava odmah nakon toga

Primjer koji najbolje ilustrira opisane dileme je cestovni koridor. Na autocesti A1 između Zagreba i Splita ima 27 čvorova (od Lučkog do Dugopolja, valjda sam dobro brojao), odnosno 26 dionica i recimo da svaka dionica može biti u dva osnovna statusa: 1 – prohodno, 0 – prekid prometa (nesreća, (ne)vrijeme, planirano zatvaranje – privremena regulacija, …), odnosno možemo imati 67.108.864 različitih stanja cijelog sustava. Dva smjera vožnje generiraju mogućih kombinacija 67 milijuna na kvadrat, a to je broj koji ima 16 znamenaka (4.503 milijardi). Da svakom stanju posvetimo jednu minutu trebalo bi nam 856.735 godina da sve sistematiziramo. Realno!? Pa koliko zaista ima stvarnih (mogućih, realnih) stanja? Imamo 26 mogućih stanja u svakom smjeru jer se svaka dionica može i mora promatrati autonomno, pri čemu se neke dionice (čvorovi) moraju povezati jer okolna sekundarna mreža nema alternativnu svezu susjednih čvorova. Niti broj od 50-tak potrebnih alternativnih prometnih scenarija nije mali, niti bezazlen, ima i tu (itekako) velikog posla. O tunelima nećemo, tu “ljepota” kombinatorike za neke (pod)sustave dolazi do punog izražaja.

Za neki gradski sustav predmnijeva se velika složenost. Nekad je točno, a najčešće ne. Primjerice, koridor sa pet sinkroniziranih semaforiziranih raskrižja, koji mogu biti u dva stanja: 1 – sinkronizirani i 2 – lokalni rad, imamo 32 moguća stanja. Prometnotehnološki imamo dva stanja, ili sustav radi sinkronizirano ili se radi o ispadu iz sinkronizacije. Ako je neko raskrižje ispalo iz koordinacije (gubitak komunikacije ili neki HW kvar), ostala raskrižja nastavljaju raditi u sinkroniziranom modu. Ako je kvar u sredini onda imamo dva autonomna sinkronizirana sustava, ako je pri jednom kraju ili na kraju onda veći dio radi sinkronizirano. Kvarovi ovakvog tipa se karakteriziraju kao incidenti za koje treba odmah djelovati, ali preostali dio sustava radi u pretpostavljenom sinkroniziranom modu. Zato možemo zaključiti da za sustav od pet semaforiziranih raskrižja realno imamo šest stanja: glavno stanje je rad svih raskrižja u sinkronizaciji, a preostalih pet stanja su način lokalnog rada svakog raskrižja u slučaju ispada iz sinkronizacije. U svakom slučaju, šest je puno manje od 32.

Postoje situacije kada se problem (izazov, dilema) ne može svesti na manji broj stanja, kada svako stanje treba promatrati, analizirati, kontrolirati i upravljati jer je njegova pojavnost jedinstvena, moguća i realna (ostvariva). Dok se cestovni koridori, bez obzira na okruženje, promatraju zasebno, privozi raskrižja nemaju tu sreću. Kod klasičnog 4-krakog raskrižja sa svih 12 kretanja problem na nekom privozu odmah generira ukupno šest problema na raskrižju: otežana tri kretanja na samom privozu (lijevo ravno, desno) i tri skretanja iz ostalih privoza prema tom privozu. Zbog 25 % problema prostora nastaje problem u 50 % kretanja.

Kompleksnosti, složenosti i inih “problema” ne treba se bojati. Komplicirano, odnosno kombinatorno je obično i spasonosno, daje nam odgovore – otkriva nove podatke u moru drugih općih podataka. Pomalo zaboravljena formula uključivanja-isključivanja broji za nas i otkriva brojeve koji se često znaju “sakriti”. Poslužit ću se anketom koju sam nedavno koristio za jedan projekt; brojevi su različiti od izvornih kako ne bi narušio integritet istraživanja. Anketa obično ponudi nešto ovako:

  • javni prijevoz koristi 45 % anketiranih,
  • bicikl/romobil koristi 9%,
  • osobni automobil 58 %,
  • javni prijevoz i automobil koristi 14 % anketiranih,
  • javni prijevoz i bicikl 3 %,
  • 1 % anketiranih je odgovorilo da koristi kombinaciju bicikla i osobnog automobila,
  • nije bilo odgovora da se koriste sva tri moda: javni, bicikli i automobili.

Iz ovih podataka možemo dobiti kompletnu sliku korištenja modova prijevoza ako je uzorak relevantan, ili barem trenutno mišljenje (trend) skupa anketiranih osoba. Kako odavde identificirati udio onih koji koriste isključivo javni prijevoz (željeznica, tramvaj, autobus, taksi), javni prijevoz i bicikl, javni prijevoz i automobil te sva tri moda (javni, bicikl i automobil)? Jednostavno jer imamo sve brojeve: ukupan broj korisnika javnog prijevoza (45 %), javnog prijevoza i bicikla (3 %), javnog prijevoza i automobila (14 %) i nema onih koji koriste sva tri moda. Onih koji isključivo koriste javni prijevoz ima: 45-3-14-0 = 28 %. Na sličan način se identificiraju ostali korisnici. Ostaje pitanje koliko anketiranih koristi ova tri moda, da li svi, ili ima onih koji isključivo pješače. Imamo ulazne podatke:

Formula uključivanja isključivanja nam govori koliko ukupno elemenata imamo:

Šest (6) posto anketiranih isključivo pješači, ne koristi niti jedan od tri ponuđena moda. Sada znamo sve, isključive i zajedničke korisnike pojedinih modova prijevoza i one koji pješače. Lako je analizirati što nam se isplati, što treba poboljšati ili uvesti, što će najbrže i najučinkovitije (najjeftinije) polučiti rezultate: poboljšati javni prijevoz, povećati broj parkirnih mjesta za bicikle i/ili poboljšati/izgraditi biciklističku infrastrukturu, organizirati ukrcaj bicikala u javni prijevoz, poboljšati pješačku dostupnost do točaka javnog prijevoza, proširiti i/ili uvesti/poboljšati Park&Ride i/ili Park&Bike uslugu, restrikcija ili povećanje cestovnih površina/parkirnih kapaciteta, itd..

Svi smo polako (možda i prelagano) zaboravili srednju školu, a (vrlo) često umjesto “viših” matematika odgovori leže u jednostavnim (osnovnim) kombinatornim načelima.

Teza u naslovu ove teme leži u činjenici da promet zasigurno zaslužuje (opravdano) u mnogim slučajevima “teške” pridjeve i atribute, ali isto tako način (postupak, metodologija) rješavanja i samo rješavanje prometnog problema nije baš “razbijanje atoma”.