Zbyněk Jiráček (ROPID): Aplikaci PID Lítačka čekají změny. Zlepší vyhledávání spojů, přinese nové informace

13. 2. 2025
Doba čtení: 36 minut

Sdílet

Autor: David Slížek, Internet Info
Rozšířený vyhledávač v aplikaci PID Lítačka nenabídne uživateli „předem prohrané“ spojení. V budoucnu má také obsahovat nové informace o dopravě.

Vyhledávač spojení v pražské MHD čeká v blízké budoucnosti změna. Souvisí jednak s tím, že aplikaci PID Lítačka přebírá nová dodavatelská firma, ale i s tím, jak do ní ROPID postupně nasazuje nový vyhledávač spojení, kterému přezdívá „vyhledávač nové generace“.

„Nový engine používá novou datovou platformu, takže může nabízet spoustu služeb, které jsme na té staré už nedokázali,“ vysvětluje v rozhovoru pro Lupu vedoucí odboru technického rozvoje a projektů ROPID Zbyněk Jiráček

„V létě se třeba dozvím, jestli je spoj klimatizovaný. Můžu se dívat na polohu spoje na mapě. U metra vidím detailnější informace o tom, jak se pohybuju, můžu si vybrat, jestli chci po eskalátoru, po schodech, nebo výtahem,“ dodává s tím, že aplikace brzy nabídne také doporučení nejlepšího vagonu metra k výstupu či přestupu v cílové stanici.

Jak vyhledávač vytváří projekci aktuálního zpoždění vozů MHD? Bude je umět jednou předpodvídat? Co nového čeká odjezdové panely a jak se bude měnit PID Lítačka? A jak probíhá sčítání pasažérů tramvají či autobusů? Rozhovor si můžete poslechnout ve formě podcastu na svých oblíbených podcastových službách nebo přímo zde:

Nabízíme vám také přepis části podcastového rozhovoru do textu. Podporovatelé Lupa.cz mají k dispozici kompletní transkript. 

Ještě před několika lety nebyla digitalizace v rámci Dopravního podniku a ROPIDu velkým tématem. Vedly se například spory o to, jestli data o tom, kde se momentálně autobusy, tramvaje a metra nacházejí a jaké mají zpoždění, je vůbec možné zveřejňovat. Kdy jste do tohoto prostředí přišel a začal jste rovnou bojovat za to, aby tyto údaje byly přístupné a byly digitální? 

Do ROPIDu jsem přišel před necelými 10 lety, ale tehdy jsem byl jenom na běžné marketingové pozici a měl jsem na starosti weby a aplikace. Aplikace Lítačka tehdy ještě neexistovala. K tomu tématu jsem se dostal úplně původně od svého studia na Matfyzu, kde jsem se zabýval algoritmy na vyhledávání tras a na predikce zpoždění a tak podobně. Tím jsem se dostal do kontaktu s ROPIDem a na základě toho začala moje spolupráce. Dostal jsem tohle téma na starosti a vzal jsem i jako svůj dlouhodobý úkol, řekněme, zvýšit otevřenost dat o veřejné dopravě. Akorát to celé trvalo hodně dlouho, začali jsme daty o jízdních řádech, která tehdy sice existovala, ale byla uzavřená v aplikaci IDOS a v dalších aplikacích, které vyvíjel stejný dodavatel. Nejdřív jsme tedy zajistili, aby existovala data o jízdních řádech, a poskytli jsme je Googlu, Seznamu a dalším. Zabralo to, řekněme, dva tři roky. Pak jsme se začali zaměřovat na data o polohách spojů v reálném čase. Částečně jsme je už měli u soukromých dopravců nebo vlaků, jejich dispečerské systémy je dlouho předtím uměly, ale chyběla nám data o autobusech a tramvajích Dopravního podniku.

Outstream Placeholder

Pokud vím, tak data o jízdních řádech už na začátku v určité digitální podobě existovala, ale byla to různá PDFka, která nebyla strojově čitelná. Na celostátní úrovni si pamatuji velké boje s firmou CHAPS, která měla sběr dat na starosti a odmítala je zpřístupnit. Odehrávalo se něco podobného i na pražské úrovni? 

Je vlastně hezké na to takhle vzpomínat, protože už je to docela dlouho (smích). Ale když jsem v roce 2011 psal bakalářku a potřeboval jsem data o jízdních řádech, řešil jsem to tím, že jsem si udělal bota, který projel 80 tisíc stránek s jízdním řádem, aby si je sestavil. Ta data opravdu neexistovala. První digitální data z celostátních systémů vzešla až časem nějakým, řekněme, nařízením, ale jejich kvalita dodneška není příliš vysoká. Jízdní řády tam sice jsou, ale nejsou zas tak kvalitní a my jsme se snažili, abychom za PID poskytovali data na mnohem vyšší úrovni. Třeba takový Seznam, který má službu na vyhledávání v jízdních řádech, velice rychle převzal data od nás, protože jsou mnohem konkrétnější a kvalitnější než ta, která získá od CHAPSu a ze státního úložiště.

To znamená, že data pořád nejsou v dobrém formátu? Nebo jak si mám představit to, že nejsou dost kvalitní? 

Formát je dobrý, ale hodně informací v datech nenaleznu. Základní věc, která v nich není, jsou třeba identifikátory zastávek, které by pomohly je párovat třeba s nějakými dalšími daty. Myslím, že tam nejsou ani souřadnice zastávek a spousta dalších věcí. Prostě to je takové nutné minimum, aby se z dat dal jízdní řád postavit, ale spousta zajímavých údajů, které by cestující také ocenil, tam není. Nejsou tam, a to už je horší, také některé krátkodobější výluky. Když je třeba výluka na dva dny, tak se do celostátního systému nepropisuje, protože to zákon nevyžaduje. Ale my se snažíme, aby v datech, která poskytujeme a která zobrazujeme uživatelům, všechny tyhle výluky byly. Protože ve chvíli, kdy něco jede jinak, než má, tu informaci nejvíc potřebuju vědět. A je, řekněme, trapné, když mám digitální systém, který neví o tom, že něco jede jinak, a musím si to přečíst na papíru na zastávce.

A jak ta chybějící data řešíte? Mluvil jste třeba o souřadnicích zastávek. Nedají se vytáhnout například z Open Street Maps a zkombinovat s daty, která máte? 

Myslím si, že dá, ale my tuto úlohu příliš neřešíme, protože ta data o zastávkách máme svoje a používáme je. Je to spíš otázka na konzumenty státních dat. Vím, že v Seznamu si s tím nějak poradili, nějak si to propojili a dokážou na svých mapách jízdní řády zobrazovat, ale v datech jako takových to nebylo.

Co ta data o poloze? Už je dnes tedy máte? Řeší se přes GPS moduly v jednotlivých vozech a podobně? 

Sice už je to nějaký čas, ale ten příběh pořád nekončí, měl postupně vývoj. Data soukromých dopravců jsme měli už dříve, ta byla v zásadě v pohodě. Pak jsme nejdřív získali data o polohách autobusů Dopravního podniku, které jsou vybavené GPS, a o rok později se k tomu přidaly i tramvaje. U těch je to technologicky trošku složitější, protože většina tramvají dodneška GPS nedisponuje a jejich poloha se odhaduje pomocí vyhlašování zastávek a průjezdů infračervených majáků. Ty ale nejsou úplně na každé zastávce, má je třeba každá druhá nebo třetí, a z toho se určuje poloha tramvaje. Úplně nakonec jsme o další rok nebo možná o dva později přidali i polohy metra. Ty jsou už trochu navíc, protože metro reálnou polohu tolik nepotřebuje, stejně jezdí každou chvíli, a navíc v 99 procentech na čas. Metro má zase úplně jinou technologii sledování, tam samozřejmě GPS nedává smysl, protože jezdí v tunelu, takže se to děje nějakou transformací, řekněme, kódů kolejových obvodů na nějakou polohu na mapě.

Teď se nacházíme v technologickém stavu, kdy data z metra máme prakticky nejlepší, jaká můžou být, maximálně se dají vylepšit nějaké mimořádnosti a podobně. Rádi bychom ale zlepšili data z povrchu, kde se tramvaje teprve postupně dovybavují GPS a zároveň tam je určitá nová technologie, kterou používá Dopravní podnik – mapování na kolejovou síť. Tramvaj pak ví skoro na centimetry přesně, kde je. Ale za mě největší mezera je přenosová síť. Dopravní podnik totiž používá městskou rádiovou síť, která je určená nejenom pro Dopravní podnik, ale i pro další složky, jako je Městská policie, Technická správa komunikací a další. A ta síť má omezenou propustnost, to znamená, že se přes ni dokáže dostat jen limitovaný počet aktualizací polohy, zjednodušeně řekněme, že známe polohu u každého vozidla třeba jednou za minutu až dvě. To je rozhodně výrazně lepší než nic a je to hodně dobré, ale máme případy a zkušenosti, že se určitě hodí mít aktualizaci častěji, protože se z dat pak dá poznat mnohem víc věcí: třeba že se vozidlo nehýbe a tak podobně. Určitě bychom rádi, kdyby se přenosovou síť podařilo zlepšit. Dopravní podnik na tom pracuje, ale ještě to není dokončené.

A co vlaky? Jsou také součástí ROPIDu, máte také jejich polohu? 

Vlaky máme už docela dlouho. Jedním zdrojem je Správa železnic, to jsou víceméně data ze zabezpečovacího zařízení, ale v tomto případě zabezpečovací zařízení může být i výpravčí na stanici, který odmáčkne, že vlak odjel. Takže to je potvrzená poslední stanice nebo bod, který vlak projel. A do toho dopravci musí povinně vybavovat vlaky GPS, takže máme i reálnou polohu a tato data se potom kombinují.

Vypadá to, že dat je konečně k dispozici dost, byť tedy, jak jste říkal, někde se ještě dá zapracovat na tom, aby byla lepší. Takže tohle všechno se kombinuje do PID Lítačky, do vyhledávání spojů a díky tomu pak může aplikace nabízet i přesné předpovědi, kdy tramvaj přijede na zastávku, jaké má zpoždění a podobně. 

Přesně tak, na základě polohy se odvozuje aktuální zpoždění, které můžeme zobrazovat uživatelům. Hodí se to zejména v případě nějaké mimořádné události, kdy se interval mezi vozidly prodlouží.

Jak přesná předpověď zpoždění v aplikaci je? Samozřejmě to asi závisí na kvalitě vstupních dat, ale měříte si nějakým způsobem, jak moc se v rámci PID Lítačky trefujete?

V tuhle chvíli pořád neděláme něco, čemu by se dalo říct předpověď zpoždění. V aplikaci máme jen projekci aktuálního zpoždění. PID Lítačka má dva vyhledávací enginy a každý pracuje trošku jinak, ale oba zatím dělají to, že projektují aktuální zpoždění na trasu. Aktuální zpoždění umíme vypočítat poměrně přesně, ale odvodit z toho, jaké bude zpoždění na zastávce, kde uživatel čeká, to je jiná úloha, kterou se teď zabýváme. Není přitom úplně snadná. Ukazuje se, že role náhody je opravdu velká. Pokud má tramvaj přijet za 12 minut, tak když jí něco vleze do cesty, může přijet třeba za 20 minut, anebo naopak může zrychlit a přijet za 10 minut. Čím jsem dál do budoucnosti, tím je predikce méně přesná. Proto zpoždění prezentujeme jako aktuální zpoždění, které uživatel může sledovat. A proto k tomu přidáváme další služby, jako je sledování polohy na mapě, protože třeba pro někoho může být představitelnější, že se může na mapě podívat, kde se vozidlo aktuálně nachází. Tady se projevuje rezerva v datech: když je poloha aktualizovaná jenom jednou za minutu až dvě, nemusí být poloha na mapě úplně přesná. Dopočítat zpoždění v bodě je poměrně jednoduchá úloha, ale vývoj zpoždění v čase je složitější. U tramvají je ještě jedna limitace: tím, že se tramvaj sleduje pomocí vyhlašování zastávek a projíždění majáků, je velký problém, když se někde zastaví, protože pokud není vybavená GPS, což stále velká část není, tak není schopná o sobě říct, kde se nachází.

Mezi zastávkami jakoby zmizí.

Přesně tak, jakoby zmizí mezi zastávkami, ale nedá se deterministicky určit, co to znamená. Jestli se porouchalo vysílání, nebo se někde ztrácejí data a ta tramvaj dál jede, anebo stojí na místě, a tím pádem by mělo naskakovat zpoždění. Tady by se nám velice hodilo, kdybychom data dostávali častěji, přesnost by se v těchto případech určitě zvýšila.

Na první pohled si člověk řekne „jasně, vědí, že tramvaj má v téhle zastávce zpoždění tři minuty, tak to prostě přičtu ke všem budoucím časům na dalších zastávkách a pak mám jasno“, ale evidentně to takhle jednoduché není. Budete to nějakým způsobem řešit? Máte třeba v úmyslu nasadit nějaký AI algoritmus, který se bude snažit zpoždění odhadnout třeba na základě informací o dopravní situaci na trase? 

Podobné nápady máme, ale ukazuje se, že problém je mnohem složitější, než na první pohled vypadá. Dat je velká spousta a je potřeba je dobře interpretovat. Myšlenka, že budeme k dopočtu zpoždění používat aktuální dopravní situaci, taky vzala za své, protože aktuální dopravní situace se dneska strašně rychle mění. Ve spolupráci s kolegy z Operátora ICT, kteří pro nás vyvíjí datovou platformu Golemio, jsme dělali nějaké pokusy, simulovali jsme si třeba místa, kde víme, že chronicky dochází ke zpožděním, jako je třeba Uhříněves, a zkoušeli jsme tam různé predikce. Ukazuje se, že to částečně funguje, když prostě detekujeme, že je v místě kolona, a začneme podle toho přičítat zpoždění, tak to začne fungovat, ale situace se vyvíjí tak rychle, že když mám měření staré třeba osm minut, může se za těch osm minut situace výrazně změnit a pak predikce přestává být přesná. Myslím si, že tomu dost dopomáhají služby typu Waze, které dělají to samé a posílají řidiče alternativními cestami. Tím způsobují, že se dopravní situace velice rychle mění.

Ano, ve Waze je na mapě vidět, že když je někde kolona, začínají auta rychle uhýbat z dálnice na jiné cesty a podobně. 

A tím se problém rychle vyrovnává, nebo se přesune jinam. U predikce zpoždění je ještě jeden aspekt: musí se k ní přistupovat velice opatrně. Když uživateli slíbím, že mu přijede autobus v 17:00 a on se zpozdí a přijede v 17:03, tak to není příjemné, ale když se seknu opačným směrem a řeknu, že mu to přijede v 17:03, a ono to přijede v 17:00, tak je následek mnohem horší, protože se může velice snadno stát, že tomu člověku spoj ujede. Potenciál přínosu je velice malý a jediná situace, kde má smysl predikci použít, jsou případy, kde jsme si dostatečně jistí, že zpoždění opravdu bude. Takových případů je ve skutečnosti hrozně málo. Proto jsme přešli k víc „pokusovému“ modelu, kdy třeba na naší mapě mapa.pid.cz, kde si můžete aktuálně online zobrazit všechny polohy spojů, vykreslujeme úseky, kde zpoždění je. Než bychom se snažili podávat kompletní informaci s nějakou predikcí, tak prostě sdělíme „tady se vozidlo nachází, tady je úsek, kde teď detekujeme zpoždění 15 minut“ a pak je na uživateli, aby třeba i ze své historické zkušenosti, pokud třeba to místo zná, usoudil, jestli to radši obejde pěšky, nebo to riskne a tím úsekem projede. Jdeme spíš postupně, nejdřív podáváme informace, kterým opravdu věříme. Umělá inteligence je skvělá, umí spoustu věcí, ale příliš moc nevysvětlí, jak dospěla k výsledku, takže ona by něco vypočetla, ale co s tím výsledkem? Je dostatečně přesný, abychom ho zveřejnili?

Rozumím, takže je lepší zůstat u upozornění, že dopravní prostředek má takové a takové zpoždění a cestující s touto informací může naložit podle své zkušenosti, jak třeba autobusy v tuto denní hodinu běžně jezdí a podobně. 

Přesně tak. Jde spíš o doprovodné varování, že ta informace nemusí být přesná, a pokud ten člověk má třeba nějaký alternativní způsob dopravy, může ho použít.

MM Influenceři

V PID Lítačce funguje dvoustupňové hledání těch spojů. Jedno je nazváno „klasické“ a ukáže přestup někde na zastávce a podobně, ale pak funguje i rozšířené vyhledávání, kde jsou výsledky kombinované třeba i s chůzí. Vyhledávač mi řekne, že je například rychlejší nebo výhodnější někde jít pěšky než čekat na další tramvaj nebo metro. Máte zkušenosti s tím, jak lidé tyto dva módy používají? Jak moc se pokročilé vyhledávání ujalo? Používají ho lidé víc než klasický vyhledávač?

V PID Lítačce existují vedle sebe dva odlišné enginy vyhledávání spojení, jsou to dva oddělené algoritmy, které fungují i na trochu odlišné platformě, i když původní data jsou stejná. Rozšířenému vyhledávači někdy říkáme vyhledávač nové generace, protože funguje opravdu dost jinak a snaží se počítat s reálnými časy. Je to jeho základní přednost, ale zároveň to řadu věcí komplikuje. Zároveň má nové prvky, jsou tam plné pěší přesuny mezi libovolnými body, nejenom ty předdefinované, které umí klasický vyhledávač. Jsou tam také prostředky sdílené mobility, jako jsou kola nebo carsharing, umí kombinovat i auto s parkováním a tak podobně. Cílem je pojmout mobilitu víc dohromady. Z rozhraní to nemusí být úplně patrné, může to vypadat, že jsme jen přidali chůzi a kolo, ale vyhledávač funguje na úplně jiném principu. Proto jsme jej schválně chtěli nasazovat postupně. Neudělá třeba to, že by mi našel spojení, který už je předem „prohrané“. Tím myslím případ, kdy mám jet vlakem, který je o 20 minut zpožděný, a pak přestoupit na autobus. IDOS nebo náš klasický vyhledávač takové spojení klidně zobrazí a vůbec jim nevadí, že mi tam reálně chybí 15 minut na přestup. Nový vyhledávač s tím umí nějakým způsobem pracovat a má i spoustu výhod z hlediska pěších přesunů. Když zadám zastávku, kde zrovna nic nejede, navrhne, ať se přesunu tady o 400 metrů vedle na jinou a jedu z ní. Klasický vyhledávač tohle neumí a prostě řekne, že spojení nebylo nalezeno. Zná také strukturu stanic metra, takže dokáže lépe odhadovat přestupní časy. A je tam spousta dalších věcí navíc.

Přepis podcastu je dostupný pouze našim podporovatelům

Můžete se jím stát i vy. Získáte tak nejen přístup k přepisům všech našich podcastů, ale také Lupu bez bannerů, newsletter o zákulisí českého internetu a další výhody.

Seriál: Rozhovory
Neutrální ikona do widgetu na odběr článků ze seriálů

Zajímá vás toto téma? Chcete se o něm dozvědět víc?

Objednejte si upozornění na nově vydané články do vašeho mailu. Žádný článek vám tak neuteče.


Autor článku

Šéfredaktor Lupa.cz a externí spolupracovník Českého rozhlasu Plus. Dříve editor IHNED.cz, předtím Aktuálně.cz a Českého rozhlasu. Najdete mě na Twitteru nebo na LinkedIn

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).