Sunteți pe pagina 1din 6

Colegiul Naţional “Mihai Eminescu” Buzau

PROIECT DE LECŢIE

Data: 23 Ian. 2003


Clasa: a XI-a K
Profesor: Stroe Daniela
Disciplina: Informatică
Subiectul lecţiei: Reprezentarea grafurilor orientate cu matricea drumurilor
Scopul lecţiei: Determinarea matricei drumurilor într-un graf orientat
folosind propietăţ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.
1
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

4 3

 0 1 1 0
 
 0 0 1 1
 0 0 0 0
  2

 1 1 0 0
 
Def. Matricea drumurilor este o matrice d cu n linii şi n coloane,
în care fiecare element d[i,j] este:
• 1, dacă există drum de la nodul i la nodul j în graf;
• 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]:

3
 1 1 1 1
 
 1 1 1 1
 0 0 0 0
 
 1 1 1 1
 
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(n3).
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.
4
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:

5
- 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