Folosești Waze sau Google Maps? Atunci TREBUIE să citești materialul ăsta!

Miracolul pe care l-am uitat să-l mai vedem

 

Există o categorie aparte de miracole, cele pe care le-am consumat atât de mult, încât am uitat complet că sunt miracole. Electricitatea care îți aprinde becul dimineața. Avionul care te duce de la București la Londra în trei ore. Și, mai nou, linia aceea albastră care apare pe ecranul telefonului tău în mai puțin de patru secunde, trasând cu precizie milimetrică cel mai rapid drum din punctul A în punctul B.

O tastezi, aștepți, și gata. Nu te întrebi nimic. De ce ai face-o?

Ei bine, hai să ne întrebăm împreună, pentru că ce se petrece în acele câteva secunde este, din punct de vedere matematic, ceva ce n-ar trebui să fie posibil. Cel puțin nu la viteza asta.

Gândește-te la rețeaua rutieră a Americii de Nord. Peste 64 de milioane de intersecții, noduri, cum le numesc matematicienii. Acum imaginează-ți că vrei să găsești cel mai scurt drum de la New York la San Francisco. Abordarea naivă, cea „umană”, ar fi să identifici toate rutele posibile, să calculezi distanța fiecăreia și să o alegi pe cea mai scurtă. Logic, nu?

Problema e că numărul total de rute posibile între cele două coaste este aproximativ 10220. Cu alte cuvinte, există incomparabil mai multe rute posibile pe harta Americii decât atomi în tot ceea ce există.

Dacă ai pune un supercomputer ipotetic să verifice un miliard de rute pe secundă, ar termina calculul după 10200 de ani. Deci nu, nu am apuca să vedem rezultatul.

Și totuși, telefonul tău face asta în doar trei secunde, printr-un mecanism mult mai interesant decât o simplă magie: arhitectura logică. Iar firul acestei arhitecturi pornește dintr-un loc surprinzător de uman: o terasă din Amsterdam, o ceașcă de cafea și un om care se gândea la cum să ajungă din Rotterdam în Groningen.

 

Omul fără profesie

 

Dacă ar fi să cauți originea acestei arhitecturi logice, ai ajunge inevitabil în Olanda anilor ’50. Protagonistul nostru se numește Edsger W. Dijkstra. 

Un nume care astăzi figurează în manualele de informatică ale tuturor universităților serioase din lume, dar care, în 1956, aparținea unui tânăr cu o problemă administrativă ridicolă: autoritățile olandeze refuzaseră să îi proceseze actele de căsătorie. Motivul? Profesia pe care o declarase, cea de „programator”, nu exista oficial în niciun registru al statului. Pentru ca viitorul geniu al informaticii să se poată căsători cu liniște, funcționarii i-au sugerat să se declare altceva. Ceva recunoscut, ceva real. Dijkstra a acceptat. S-a înregistrat drept „fizician teoretician”.

Ironia istoriei e frumoasă uneori.

Dijkstra lucra la acea vreme la centrul matematic din Amsterdam, contribuind la dezvoltarea software-ului pentru ARMAC, unul dintre primele computere construite vreodată în Țările de Jos. 

Era o epocă în care publicul larg privea aceste mașinării uriașe cu un amestec curios de fascinație și scepticism. Curiozități academice consumatoare de energie, fără nicio utilitate practică evidentă. Dijkstra se simțea presat să demonstreze contrariul. Intenția lui nu era să folosească o problemă criptică din fizica nucleară, ci un model accesibil oricărui om obișnuit, a cărui rezolvare să fie în mod evident corectă și utilă. 

Răspunsul i-a venit pe neașteptate, în acea dimineață de cumpărături, alături de logodnica sa. S-au oprit la o terasă. Dijkstra privea harta mentală a Olandei și se gândea la o întrebare simplă: care e cel mai scurt drum de la Rotterdam la Groningen?

În 20 de minute, fără creion, fără hârtie, pur mental, a construit algoritmul complet.

Absența instrumentelor nu a fost un handicap, a fost, paradoxal, sursa eleganței. El însuși avea să mărturisească mai târziu că lipsa creionului l-a forțat să elimine orice ramificație inutilă, orice complexitate care putea fi evitată. Ce a rămas a fost un nucleu pur, de o claritate aproape estetică. O soluție care nu avea nevoie să fie corectată ulterior, pentru că fusese gândită corect de la început.

Într-o industrie actuală care pune pe un piedestal rapiditatea lansărilor și acceptă resemnată ideea că „erorile vor fi corectate pe parcurs”, Dijkstra rămâne o figură spirituală pe cât de importantă, pe atât de incomodă. El a fost omul care a refuzat categoric compromisul imperfecțiunii și care, tocmai prin această rigoare, a creat o structură ce a rezistat neclintită timp de șapte decenii. 

 

Anatomia certitudinii

 

Bun. Deci avem un om, o terasă, o ceașcă de cafea și 20 de minute. Dar cum funcționează, concret, această invenție care astăzi îți trasează drumul spre aeroport în câteva secunde?

Imaginează-ți harta Românieii nu ca pe o colecție de străzi și autostrăzi, ci ca pe o rețea de puncte conectate prin linii. Fiecare punct este un oraș sau o intersecție. Fiecare linie este un drum dintre două puncte. Iar fiecare drum are asociat un număr, distanța în kilometri pe care trebuie să o parcurgi ca să ajungi de la un capăt la celălalt. Atât. 

Acum, algoritmul lui Dijkstra pornește de la o întrebare simplă: cât mă costă, în kilometri parcurși, să ajung din punctul de plecare până la fiecare alt punct de pe hartă? „Costul” nu e altceva decât suma kilometrilor acumulați pe drum, ca un contor de bord care numără distanța parcursă de când ai ieșit din parcare. 

Logica e dezarmant de simplă. La start, contorul tău arată zero, ești deja acolo, n-ai mers nicăieri. Pentru toate celelalte puncte de pe hartă, contorul arată infinit, pentru că, momentan, nu știi cât de departe sunt, sau dacă le vei atinge vreodată. Algoritmul începe să exploreze vecinii imediați ai punctului de plecare și înlocuiește „infinitul” cu valori reale: până la primul oraș sunt 10 kilometri, până la al doilea sunt 23 de kilometri, și așa mai departe. 

Magia apare în pasul următor și anume în cum alege algoritmul unde să meargă în continuare. 

Nu merge la întâmplare. Nu merge nici în direcția destinației finale. Merge întotdeauna spre punctul la care poate ajunge cu cei mai puțini kilometri acumulați până în acel moment. Cel mai mic contor câștigă. Mereu. De acolo, explorează din nou vecinii, actualizează distanțele, și repetă. O undă de căutare care se extinde metodic, din aproape în aproape — ca un ecou care se propagă într-un lac perfect calm, acoperind mai întâi ce e aproape și abia apoi ce e departe. 

Dacă pe parcurs descoperă o rută alternativă mai scurtă spre un punct pe care credea că știe deja cum să îl atingă, actualizează contorul. Dacă noua variantă e mai lungă, o ignoră și merge mai departe. 

Iar când această undă ajunge în sfârșit la destinație, să zicem, Salut Mare, ai ceva prețios: garanția matematică absolută că traseul descoperit este cel mai scurt posibil. Nu „probabil cel mai scurt”. Nu „cel mai scurt dintre cele pe care le-am verificat”. Cel mai scurt.

De ce această certitudine? Pentru că dacă ar fi existat undeva un drum mai scurt, contorul său ar fi fost mai mic și ar fi fost explorat mai devreme. Nu există cale de scăpare din logica asta. E etanșă ca un seif.

Această garanție este cea care a propulsat algoritmul în galeria marilor invenții ale secolului XX. Dijkstra nu oferise doar o metodă, oferise certitudine. Iar certitudinea, în matematică, e monedă rară.

Și totuși, certitudinea are un preț. Pe harta Olandei din 1956, prețul era neglijabil. Pe rețeaua rutieră a Americii de Nord din 2024, prețul devine o problemă existențială.

Un algoritm Dijkstra, aplicat pe cele 64 de milioane de intersecții ale continentului nord-american, are nevoie de aproximativ 7 secunde pentru a calcula ruta New York — San Francisco. Șapte secunde. Sună rezonabil? Ba chiar impresionant, dacă te gândești la ce calcul se ascunde în spate?

Ei bine, nu e. Deloc. Problema nu ești tu, utilizatorul singular care poate răbda șapte secunde. Problema sunt celelalte câteva milioane de utilizatori care cer direcții exact în același moment. Dacă serverele Google ar aloca câte șapte secunde fiecărei cereri simultane, infrastructura s-ar prăbuși sub propria greutate în câteva minute. Pentru ca Google Maps să pară instantaneu la scară globală, timpul de execuție trebuie să coboare sub o milisecundă. 

Navigăm, deci, într-un univers în care provocarea nu mai este să găsești răspunsul corect, Dijkstra rezolvase asta în 1956 pe o terasă. Provocarea este să îl găsești de câteva mii de ori mai repede decât permite matematica pură.

Cum faci asta? Adaugi intuiție.

 

Când matematica perfectă e prea lentă

 

Deci problema e clară: algoritmul lui Dijkstra e perfect, dar orb. Se extinde în toate direcțiile cu aceeași fervoare, explorând cu același entuziasm o stradă care merge clar spre destinație și una care o ia în direcția complet opusă. La scara Olandei, asta e un moft. La scara unui continent, e o catastrofă operațională.

Prima idee a fost să îi adaugi un simț al direcției. Și de aici s-a născut algoritmul A* — pronunțat „A-Star” pentru că sună mai bine decât „A-cu-steluță”, și pentru că, în fond, industria tech are o relație specială cu brandingul.

A* introduce o regulă suplimentară față de Dijkstra: pe lângă kilometrii deja parcurși, ia în calcul și distanța în linie dreaptă de la poziția curentă până la destinație. Practic, înainte să decidă unde merge în continuare, algoritmul se uită pe hartă și se întreabă: „Bine, dar cât de departe sunt de unde vreau să ajung?” Drumurile care se îndepărtează de destinație primesc o penalizare, un cost suplimentar care le face mai puțin atractive. Rezultatul e că în loc de o undă circulară care se extinde uniform în toate direcțiile, A* dezvoltă un fascicul îngust, direcționat cu precizie spre destinație, ignorând tot ce e evident irelevant.

Imaginează-ți că vrei să cobori într-o vale pentru a ajunge la o cabană la baza ei. Dijkstra ar explora metodic și versanții din spate, și potecile laterale, și probabil și un drum care urcă în munte înainte să coboare. A* s-ar uita direct spre cabană și ar spune: „Nu, mulțumesc, sus nu e destinația mea.” Spațiul de căutare se reduce dramatic, viteza crește, serverele respiră ușurate.

Sună perfect. Și ar fi perfect, dacă noi am vrea să ajungem undeva cât mai scurt în kilometri.

Dar noi nu vrem asta. Noi vrem să ajungem cât mai repede. Iar distanța în kilometri și timpul petrecut la volan sunt două lucruri fundamental diferite.

Gândește-te la o situație pe care probabil ai trăit-o: ești în centrul unui oraș și vrei să ajungi într-un cartier aflat la sud. Drumul direct, cel mai scurt în kilometri, trece prin centru, ambuteiaje, semafoare, livratori de pizza care blochează banda. Există însă o altă variantă: ieși din oraș spre nord, faci un ocol de 15 kilometri pe autostradă și intri în cartierul respectiv dinspre un drum expres liber. Mai lung în kilometri, mai scurt în timp.

Exact aceasta e fisura lui A* aplicat la trafic real. Când introduci în ecuație limitele de viteză și fluxul de trafic, logica „mergi spre destinație” se destramă. Uneori, cel mai rapid drum spre sud pornește spre nord. Euristica se destabilizează, algoritmul devine confuz, și pe distanțe lungi ajunge să piardă în fața clasicului Dijkstra. Un algoritm cu simț de orientare care, în anumite condiții, se orientează mai prost decât cel orb. Frumos.

A doua idee a fost și mai intuitivă: în loc de o singură undă de căutare care pornește de la tine și se extinde spre destinație, lansezi simultan două unde, una pornind de la mașina ta, alta pornind de la destinație, înapoi spre tine. Cele două se întâlnesc undeva la mijloc, reducând spațiul total de căutare la aproximativ jumătate. Câștig real de viteză, logică elegantă.

Dar nici asta nu rezolvă problema fundamentală: mașina tot nu gândea ca un om.

Noi, oamenii, avem o conștientizare instinctivă a ierarhiei drumurilor. Când pleci din cartier, nu te gândești la fiecare stradă posibilă, instinctiv știi că ieși pe o stradă mică, ajungi la un bulevard, de acolo pe un drum expres, și în final pe autostradă unde rămâi sute de kilometri. Aproape de destinație, procesul se inversează. Nu compari autostrada cu aleea din spatele blocului. E evident care e care.

Mașinăriile din anii ’90 nu aveau această intuiție. Tratau o alee lăturalnică exact la fel ca o autostradă interstatală, același statut, aceeași prioritate, același drept la existență în calculul rutei. Industria a încercat să repare asta manual: echipe de cartografi au clasificat fiecare drum în categorii, autostradă, arteră principală, drum local și au programat algoritmii să respecte această ierarhie. Caută mai întâi pe local, dacă nu găsești urci la arteră, dacă nu găsești urci la autostradă.

Sistemul era mai rapid. Dar sufera de o miopie artificială și rigidă. Dacă ierarhiile fuseseră stabilite greșit de inginerii umani, GPS-ul putea rata un drum național liber și eficient doar pentru că fusese programat să favorizeze o autostradă complet blocată. Certitudinea lui Dijkstra dispăruse, rămăsese doar un surogat convenabil, destul de bun pentru majoritatea cazurilor, dar departe de perfect.

Și „departe de perfect” nu era o opțiune pentru cei care construiau Google Maps.

 

Când mașina și-a descoperit singură ierarhia

 

Deci aveam o problemă elegantă: cum construiești un sistem care păstrează garanția matematică absolută a lui Dijkstra, dar funcționează de mii de ori mai rapid, fără să depinzi de judecata subiectivă a unui cartograf uman care decide ce drum e important și ce drum nu e?

Răspunsul a venit dintr-o direcție surprinzătoare: nu îi spui mașinii ce e important. O lași să descopere singură.

Această idee stă la baza a ceea ce inginerii numesc Ierarhii de Contracție Personalizabile, sau CCH, pentru că industria tech are o alergie cronică la denumiri care se pronunță ușor. E o inovație care funcționează în trei faze distincte, și care, odată înțeleasă, e greu să nu o găsești pur și simplu frumoasă.

Faza întâi: mașina își desenează propriul schelet.

Totul începe cu o întrebare esențială pe care algoritmul o proiectează asupra întregii hărți continentale: care sunt punctele nodale prin care este configurat, inevitabil, orice traseu pe distanță lungă? Unde se află, de fapt, strâmtorile naturale ale acestei rețele? 

Gândește-te la SUA tăiată în două de fluviul Mississippi. Dacă vrei să traversezi țara de la est la vest, ești obligat să treci peste Mississippi, nu există altă variantă. Există un număr finit de poduri peste fluviu. Acele poduri devin automat puncte de maximă importanță structurală în rețea. Algoritmul le identifică singur, fără ca nimeni să îi spună că Mississippi există sau că e relevant.

Ulterior, sistemul împarte teritoriul în segmente tot mai mici și reia procedura: localizează următoarea barieră geografică, îi identifică punctele de strangulare și le clasifică pe treapta imediat următoare a ierarhiei. Munții Apalași, fluviul Colorado, defileurile și trecătorile din vest , fiecare element structural este transformat într-un nod ierarhic în interiorul rețelei. Acest algoritm se execută recursiv, de sute de mii de ori, până când fiecare intersecție de pe continent dobândește un rang ce îi oglindește adevărata valoare structurală. O valoare dictată nu de subiectivitatea umană, ci conferită în mod obiectiv de geometria internă a rețelei. 

Pentru a se asigura că drumurile locale scurte nu sunt ignorate în acest proces, algoritmul introduce și „scurtături” virtuale, conexiuni directe între puncte care, în realitate, sunt legate printr-o serie de drumuri minore. Scurtăturile nu schimbă distanțele reale, ele doar permit algoritmului să sară peste detaliile locale atunci când caută rute lungi, fără să piardă precizia.

Această hartă de bază se calculează în aproximativ două ore. Și rămâne fixă până când, fizic, undeva pe continent, se construiește o stradă nouă.

Faza a doua: infuzia de realitate.

Harta de bază e scheletul. Dar noi nu trăim pe un schelet, trăim în trafic real, cu accidente, ambuteiaje și drumuri blocate care apar și dispar de la un minut la altul.

Aici intervine ceva ce probabil nu te-ai gândit niciodată: telefonul tău, când ai navigația activă, nu e doar un receptor de informații. E și un emițător. Datele de viteză și poziție ale milioanelor de telefoane care se mișcă simultan pe șosele alimentează în timp real sistemul, care recalculează „greutatea” fiecărui drum. Un ambuteiaj pe autostradă se traduce imediat într-un cost mai mare pentru acel segment. Un accident care blochează o arteră principală devine instantaneu mai scump de traversat decât un ocol aparent irațional prin cartiere laterale. Această recalculare durează aproximativ șapte secunde și se întâmplă continuu, în fundal, fără ca tu să observi ceva.

Faza a treia: fulgerul.

Acum apasă tu butonul „Afișează ruta”.

Algoritmul lansează simultan două unde de căutare, una de la mașina ta, una de la destinație. Dar cu o regulă de fier pe care fazele anterioare au făcut-o posibilă: ambele unde pot călători doar în sus pe ierarhie. Odată ce au ieșit de pe strada ta, nu se mai uită la aleile din cartier. Odată ajunse pe o arteră principală, drumurile locale devin invizibile. Undele urcă fulgerător spre vârful ierarhiei, spre podurile peste Mississippi, spre nodurile majore ale continentului și se întâlnesc undeva la mijloc.

Rezultatul acestui proces, în cifre, e greu de procesat intuitiv.

Algoritmul Dijkstra clasic, pentru ruta New York — San Francisco, vizitează aproape toate cele 64 de milioane de intersecții ale SUA și durează circa șapte secunde. CCH vizitează aproximativ 1.450 de noduri și livrează răspunsul în 200 de microsecunde. O microsecundă este o milionime de secundă, deci vorbim de o cincime dintr-o milisecundă. Factorul de îmbunătățire este de aproximativ 35.000 de ori.

Există ceva aproape emoționant în imaginea de ansamblu a acestui mecanism. Toate inovațiile acumulate în șapte decenii, euristica lui A*, căutările bidirecționale, disecțiile imbricate, scurtăturile virtuale, funcționează ca un edificiu imens construit în jurul unui singur fundament neschimbat. Dijkstra. Tot restul e suprastructură. Elegantă, ingenioasă, spectaculoasă, dar suprastructură.

Spre finalul vieții, Dijkstra reflecta uneori asupra modului în care și-ar dori să fie amintit. Nu viza statui sau recunoaștere publică. Spera ca, ori de câte ori un programator va fi tentat să apeleze la scurtături neglijente pentru a termina mai repede o sarcină, să vizualizeze fantoma sa privindu-l critic peste umăr. Și să-și spună: „Un Dijkstra nu ar fi agreat asta.”

Pentru el, acest nivel de respect față de rafinamentul intelectual ar fi reprezentat, citez exact: „suficientă imortalitate”.

Data viitoare când linia aceea albastră apare pe ecranul telefonului tău în trei secunde, știi acum ce se ascunde în spate. Nu e un server care a muncit din greu. E un edificiu logic construit pe șapte decenii de idei strălucite, toate sprijinindu-se pe o intuiție de 20 de minute, concepută fără creion și hârtie, de un om căruia statul olandez îi refuzase dreptul de a exista profesional.

Mică ironie a istoriei: omul fără profesie recunoscută oficial a inventat infrastructura invizibilă pe care se sprijină o bună parte din civilizația noastră digitală.

 

Un ultim gând

 

Acum, dacă ți-a plăcut această incursiune în arhitectura invizibilă a lumii digitale, probabil că apreciezi același tip de gândire aplicat unui alt sistem la fel de complex și la fel de puțin înțeles: piețele financiare.

Logica e surprinzător de similară, sisteme aparent haotice, guvernate în realitate de structuri și ierarhii clare, pe care odată ce le înțelegi, lumea arată complet diferit. Tocmai de aceea am construit un workshop GRATUIT de educație investițională, gândit exact în spiritul acestui editorial: fără jargon inutil, fără complexitate artificială, cu accent pe claritate și pe înțelegerea reală a mecanismelor.

Și dacă vrei să rămâi conectat la ce se întâmplă în timp real pe piețele financiare, fără să fii nevoit să descifrezi singur zecile de știri contradictorii care apar zilnic, există Pastila Financiară.

E un newsletter săptămânal în care transform cele mai relevante știri financiare ale momentului într-un limbaj lejer, accesibil și, pe alocuri, asumat ironic. Exact genul de analiză pe care ți-ai dori să o primești de la un prieten care întâmplător înțelege cum funcționează economia globală.

Preferi să asculți în loc să citești? Pastila Financiară există și în format audio, același conținut, același ton, gata de consumat în mașină, la sală sau oriunde altundeva unde ecranul nu e o opțiune.

Disclaimer: Conținutul acestui editorial are scop exclusiv educațional și informațional. Nimic din cele scrise mai sus nu constituie recomandare de investiție sau consultanță financiară personalizată. Orice decizie investițională îți aparține în totalitate, exact cum îți aparține și decizia de a ignora GPS-ul și de a te pierde spectaculos pe un drum județean. Investițiile implică riscuri, iar rezultatele din trecut nu garantează performanțele viitoare.

Lasă un răspuns

Your email address will not be published.

You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*