Professional Documents
Culture Documents
06 Grafoak Berritua
06 Grafoak Berritua
Grafoak
G=(N, A)
– N adabegien multzo bat da (edo erpinak)
– A arkuen multzoa (adabegi bikotez adieraziak)
A C A C
E E
B D B D
{A, C} {B, C} (A, C) (C, B)
{A, B} {D, B} (A, B) (B, D)
EZ zuzendua {A, E} {E, D} zuzendua (E, A) (D, E)
Grafoak/Grafos 2
EDA
Zenbait kontzeptu
Grafoak/Grafos 3
EDA
Zenbait kontzeptu
Grafoak/Grafos 4
EDA
Grafoen adierazpideak
Auzokidetasun-zerrendak
A B C D E A B C D E
C A A B A B D B E A
B C B E D C
E D
Grafoak/Grafos 5
EDA
Grafoen adierazpideak
Auzokidetasun-matrizeak
A B C D E A B C D E
A 0 1 1 0 1 A 0 1 1 0 0
B 1 0 1 1 0 B 0 0 0 1 0
C 1 1 0 0 0 C 0 1 0 0 0
D 0 1 0 0 1 D 0 0 0 0 1
E 1 0 0 1 0 E 1 0 0 0 0
Grafoak/Grafos 6
EDA
Zabalerako ibilbidea
Zuhaitzen mailakako
ibilbidearen tankerakoa
Grafoak/Grafos 7
EDA
Zabalerako ibilbidea
Proc ZabalerakoIbilbidea (G = (N, A))
for n bakoitzeko in N loop
marka(n) ← false
for n bakoitzeko in N loop
If not(marka(n)) then MarkatuZabaleran(n)
Grafoak/Grafos 8
EDA
Grafoak/Grafos 10
EDA
Sakonerako ibilbidea
Grafoak/Grafos 11
EDA
Sakonerako ibilbidea
Proc SakonerakoIbilbidea (G = (N, A))
for n bakoitzeko in N loop
marka(n) ← false
for n bakoitzeko in N loop
If not(marka(n)) then MarkatuSakoneran(n)
Proc MarkatuSakoneran(Nodo v)
marka(v) ← true
for w in N v-ren auzokide bakoitzeko loop
If not(marka(w)) then MarkatuSakoneran(w)
Grafoak/Grafos 12
EDA
Sakonerako ibilbidea
(eskema orokorra)
proc MarkatuSakoneranGen(Nodo v)
// prozesatu v, lehen bisitan (aurreordenan bezala)
marka(v) ← true
for w in N v-ren auzokide bakoitzeko loop
// (v,w) arkua prozesatu
If not(marka(w)) then
// (v,w) arkua prozesatu
MarkatuSakoneranGen(w)
// w prozesatu ondoren, v prozesatu (inordenan bezala)
else
// (v,w) arkua prozesatu
end for
// v prozesatu, uzterakoan (postordenan bezala)
Grafoak/Grafos 13
EDA
Zabalerako eta sakonerako
ibilbideen analisia
Izanik n grafoko adabegien kopurua eta a
arkuen kopurua:
– O(n+a) baldin eta grafoa auzokidetasun
listekin adierazten bada.
– O(n2) baldin eta grafoa auzokidetasun
matrizeekin adierazten bada.
Grafoak/Grafos 14
EDA
Ordenazio topologikoa
G= (N,A) zuzendutako grafo ez-zikliko baten ordenazio topologikoak berekin
dakar grafoko adabegien lista bat, non A-ko (u,v) arku bakoitzerako u adabegia
v adabegiaren aurretik agertuko den emaitzako listan.
Grafoak/Grafos 15
EDA
Ordenazio topologikoa
func OrdenazioTopologikoa (G=(N,A)) return NodoenLista
L ← new Lista
for n bakoitzeko in N loop
marka(n) ← false
for n bakoitzeko in N loop
If not(marka(n)) then OrdenTopo(n, L)
return L
Grafoak/Grafos 16
EDA
Irakurgaiak
Barne-txostena:
– “Recorridos de grafos: Teoría y aplicaciones”
Jesús Bermúdez de Andrés
[Lewis, Chase 2006]
– 18. kapitulua
Grafoak/Grafos 17