Grafurile orientate (digrafuri) sunt definite ca perechi (V, E), unde V este mulțimea nodurilor (vârfurilor), iar E este mulțimea arcelor (muchii orientate). Fiecare arc este o pereche ordonată (u, v), indicând o direcție de la u la v. În contextul liceului (clasele 9-12) și al Bacalaureatului, studiul grafurilor orientate se concentrează pe trei concepte fundamentale: drumuri, sortare topologică și componente tare conexe.
Un drum într-un graf orientat este o succesiune de noduri (v0, v1, ..., vk) astfel încât (v_i, v_{i+1}) ∈ E pentru orice i. Un drum poate fi simplu (toate nodurile distincte) sau elementar (fără repetiții). Lungimea unui drum este numărul de arce parcurse.
Un drum care începe și se termină în același nod se numește circuit (sau ciclu orientat). Algoritmul lui Moore (BFS) poate fi folosit pentru a determina cel mai scurt drum în număr de arce, iar algoritmul lui Dijkstra (cu ponderi nenegative) pentru distanțe minime în grafuri ponderate.
Sortarea topologică se aplică grafurilor orientate aciclice (DAG - Directed Acyclic Graph). O sortare topologică este o ordonare liniară a nodurilor astfel încât, pentru orice arc (u, v), nodul u apare înaintea lui v în ordonare. Algoritmul clasic folosește o stivă și o parcurgere DFS (depth-first search): se vizitează fiecare nod, după ce se termină explorarea vecinilor, se adaugă nodul în stivă; la final, se afișează nodurile în ordinea inversă a adăugării.
O altă metodă este algoritmul lui Kahn, bazat pe grade de intrare: se elimină repetat nodurile cu grad interior 0.
Componentele tare conexe (CTC sau SCC - Strongly Connected Components) sunt subgrafuri maximale în care orice nod este accesibil din orice alt nod al aceleiași componente, prin drumuri orientate. Algoritmul lui Kosaraju (bazat pe două DFS-uri, prima pe graful original și a doua pe graful transpus) și algoritmul lui Tarjan (bazat pe o singură DFS și indici de timp) sunt cei mai cunoscuți. Identificarea CTC-urilor este utilă în optimizarea algoritmilor, analiza dependențelor și reducerea grafurilor orientate la DAG-uri (graful componentelor tare conexe).
În problemele de Bacalaureat, se cere adesea să se determine dacă un drum există între două noduri, să se realizeze o sortare topologică pentru un DAG, sau să se numere componentele tare conexe și să se afișeze nodurile care le compun. Înțelegerea acestor concepte și a algoritmilor asociați este esențială pentru promovarea examenului.
Concepte cheie: Drum orientat și lungimea acestuia, Sortare topologică (BFS-Kahn și DFS-stivă), Componente tare conexe (Kosaraju, Tarjan), Graf orientat aciclic (DAG), Grad interior și grad exterior, Algoritmi de parcurgere (DFS, BFS) în grafuri orientate
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.