Sunteți pe pagina 1din 5

PROIECT DE LECŢIE

Clasa: a XI-a B
Disciplina: Informatică
Subiectul lecţiei: Reprezentarea grafurilor orientate cu matricea drumurilor
Scopul lecţiei: Determinarea matricei drumurilor într-un graf orientat folosind
proprietăţile
matricei de adiacenţă - Algoritmul Roy-Warshall
Tipul de lecţie: Mixtă

Obiective operaţionale:
Elevii trebuie să fie capabili:
 Să deosebească matricea drumurilor de celelalte tipuri de matrici
folosite în reprezentarea grafurilor orientate.
 Să implementeze corect algoritmul Roy-Warshall.
 Să observe avantajele şi dezavantajele reprezentării grafurilor
orientate cu matrici faţă de reprezentarea cu listele de adiacenţă.

Metode folosite: expunerea, conversaţia, exerciţiul, demonstraţie


Mijloace de învăţare: Manuale, Calculator

DESFĂŞURAREA LECŢIEI

Etapa 1: Moment organizatoric


Timp: 2 min.
Activitatea desfăşurată de profesor:
Se face prezenta şi se verifică existenţa celor necesare începerii orei.

Metoda: conversaţia

Etapa 2: Verificarea cunoştinţelor.


Timp: 14 min.
Activitatea desfăşurată de profesor:
Verificarea temei date elevilor acasă: implementarea în Pascal a
algoritmilor de determinare a gradului interior şi a gradului exterior al unui nod
dat într-un graf orientat.
Verificarea cunoştinţelor din lecţia precedentă cu tema: Reprezentarea
grafurilor orientate cu matrici prin întrebări:
 Care sunt tipurile de matrici folosite în reprezentarea grafurilor
orientate?
R: matrice de adiacenţă (booleană), matrice arc-vârf, matrice cost

 Avantajele şi dezavantajele reprezentării grafurilor orientate cu matrici


faţă de reprezentarea cu liste de adiacenţă.
R: Dezavantaj: Există multe elemente nule în matrici, deci se consumă
multă memorie inutil, faţă de listele de adiacenţă, unde memorarea lor
presupune puţin spaţiu de memorie.
Avantaj: Accesul uşor la informaţie, faţă de listele de adiacenţă, unde
accesul la informaţie este mai dificil.

 Reluarea reprezentării cu matrici pe un graf orientat luat ca exemplu.

Metoda: verificare orală, conversaţia, demonstraţia

Etapa 3: Trecerea la lecţia nouă


Timp: 2 min.
Activitatea desfăşurată de profesor:
Anunţarea şi scrierea pe tablă a titlului lecţiei: Determinarea matricei
drumurilor cu algoritmul Roy-Warshall

Etapa 4: Predarea noilor cunoştinţe.


Timp: 14 min.
Activitatea desfăşurată de profesor:
Se porneşte de la un exemplu de matrice de adiacenţă pe un graf orientat
dat şi se aplică o serie de transformări succesive.
Fie graful orientat G cu n=4 noduri şi matricea sa de adiacenţă a:
1 2  0110 
 
 0011 
4 3
Def. Matricea drumurilor este o matrice d cu n linii şi n coloane, în  0000 
care fiecare element d[i,j] este:  
 1, dacă există drum de la nodul i la nodul j în graf; 1100 
 0, în caz contrar.  
Un algoritm simplu de determinare a matricei drumurilor unui graf orientat
este algoritmul Roy-Warshall. Acest algoritm construieşte matricea drumurilor
pornind de la matricea de adiacenţă a grafului şi constă în următoarele:
Dacă a[i,j]=0, în matricea de adiacenţă a grafului dat, atunci spunem că nu
avem arc direct de la nodul i la nodul j, dar vom căuta un nod k, diferit de nodul i
şi de nodul j, cu propietatea că există drum de la nodul i la nodul k şi drum de la
nodul k la nodul j. Astfel:
un element a[i,j], care este 0, devine 1, dacă există un nod k astfel încât
a[i,k]=1 şi a[k,j]=1. Pentru a găsi arcele nodului k, trebuie parcurse pe rând în
variabila k toate nodurile 1, 2, …, n.

ALGORITMUL ROY-WARSHALL {pseudocod}:


{ pentru k=1, n exec
pentru i=1, n exec (i ≠ k )
pentru j=1, n exec (j ≠ k)
dacă (a[i,j]=0) şi (i≠k) şi (j≠k) atunci
a[i,j]←a[i,k]*a[k,j];
}

Atribuirea a[i,j]←a[i,k]*a[k,j] este o scriere elegantă a regulii de mai sus:


- în cazul în care unul din elemntele a[i,k] şi a[k,j] este 0, a[i,j] va rămâne
0;
- dacă a[i,k]=1 şi a[k,j]=1, atunci a[i,j] devine 1.

Conform algoritmului se obţine matricea drumurilor d[i,j]:

1111 
 
1111 
 0000 
 
1111 
 
Observaţii:
1. Dacă d[i,i]=1 înseamnă că există un circuit care trece prin nodul i.
2. Dacă linia i şi coloana i, din matricea obţinută, cuprind numai elemente
de 0, deducem că nodul i este un vârf izolat, adică nu există drumuri
care să ducă la nodul i şi nici care să plece din nodul i.
Metoda: expunerea, demonstraţia, exerciţiul, problematizare

Etapa 5: Fixarea cunoştinţelor asimilate


Timp: 3 min.
Activitatea desfăşurată de profesor:
Graful dat are n=4 noduri, deci matricea de adiacenţă va suferi 4
transformări într-un ciclu, pentru k =1, 2, 3, 4.
Ordinul de complexitate al acestui algoritm este O(n 3).
Profesorul formulează întrebări şi exerciţii :

 Ce se caută în matricea de adiacenţă iniţială prin acest algoritm?


R: Se caută elementele a[i,j] nule, impunând condiţiile ca i, j ≠ k, pentru
i, j, k = 1,n.

 Ce face algoritmul pentru fiecare element găsit a[i,j] egal cu 0?


R: Încearcă să-l transforme în 1 prin atribuirea a[i,j]←a[i,k]*a[k,j].
Exemplu: a[i,j]←a[i,1]*a[1,j], pentru k=1.
 Se specifică, că algoritmul Roy-Warshall va fi folosit în determinarea
componentelor tari conexe.

Metoda: Conversaţia.

Etapa 6: Asigurarea conexiunii inverse


Timp: 3 min.
Activitatea desfăşurată de profesor:
Se solicită răspunsuri din partea elevilor prin întrebări succesive:

 Cum se stabilesc drumurile într-un graf orientat?


R: Se va ţine cont de orientarea arcelor prin care se trece, pentru a respecta
noţiunea de drum?

 Se vor da exemple pe graful dat, de drumuri de la un nod i la un nod j, cu


trecere prin noduri intermediare k. Câte drumuri există în graful dat şi ce
tipuri?
R: D = [1, 2, 4, 1] – drumul este un circuit.

 Ce problemă întâlnită anterior, la grafuri neorientate, poate fi rezolvată cu


algoritmul de determinarea a drumurilor între oricare 2 noduri?
R: Deteminarea componentelor conexe în grafuri neorientate.

 Ce alte exemple de probleme s-ar putea rezolva cu ajutorul acestui algoritm?


R1: Determinarea celei mai influente persoane dintr-un grup de n persoane între
care există relaţii. Se va căuta nodul cu grad maxim, adică linia cu cei mai mulţi
de 1 dintr-o matrice a drumurilor construită cu alg. R-W.
R2: Determinarea celei mai celebre persoane dintr-un grup de n persoane care
se cunosc sau nu între ele. Se va căuta nodul cu grad extern 0 şi grad intern n-1,
în matricea drumurilor construită cu alg. R-W.

Metode: conversaţie, descoperire, problematizare

Etapa 7: Obţinerea performanţelor


Timp: 10 min.
Activitatea desfăşurată de profesor:
Se propune elevilor scrierea de rutine care să implementeze în Pascal
operaţiile de citire şi de afişare a unei matrici, cât şi a algoritmului Roy-Warshall.
Elevii sunt îndrumaţi şi supravegheaţi atât la tablă cât şi în activitatea
independentă.

Metoda: Muncă independentă, conversaţia

Etapa 8: Precizarea temei pentru acasă.


Timp: 2 min.
Activitatea desfăşurată de profesor:
1. Implementarea în Pascal a algoritmului Roy-Warshall, pentru:

- Determinarea celei mai influente persoane dintr-un grup de n


persoane;
- Determinarea celei mai celebre persoane dintr-un grup de n persoane;

2. Lecţia pentru ora următoare va fi: Conexitate în grafuri orientate şi


determinarea componentelor tari conexe.

S-ar putea să vă placă și