Vous êtes sur la page 1sur 26

Cap 3: Recorreguts, camins i arbres generadors

tol
optims
`
Matem`tica discreta
a
Grau dEnginyeria Inform`tica
a
Escola Enginyeria
Universitat Aut`noma de Barcelona
o

2013-2014

1/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Contingut

Motivaci
o

Exploraci de grafs
o

Camins de cost m
nim

Caracteritzaci dels arbres


o

Arbres generadors `ptims


o

2/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Motivaci
o

Per saber si existeix algun cam possible entre dos ciutats (v`rtexs)

e
en una xarxa daerol
nies (graf) i quina s la ruta ms econ`mica,
e
e
o
moltes vegades cal examinar lestructura del graf i trobar el cam

de cost m
nim.
Per tal dexaminar el graf sovint cal fer-ne un recorregut de manera
sistem`tica.
a
3/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Exploraci de grafs
o

Per recrrer un graf considerarem dues estrat`gies, les ms


o
e
e
comunes.
1

La Breadth First Search (BFS): coneguda com a recerca


per amplada priorit`ria. Dna prefer`ncia a lexploraci en
a
o
e
o
parallel de totes les alternatives possibles des del v`rtex on
e
ens trobem.

La Depth First Search (DFS): coneguda com a recerca en


profunditat priorit`ria. En aquest cas es dna prefer`ncia a
a
o
e
lobertura duna unica via dexploraci a partir del v`rtex

o
e
actual.

Tots dos tenen una complexitat O(m) O(n2 ).

4/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Exploraci de grafs
o

Per recrrer un graf considerarem dues estrat`gies, les ms


o
e
e
comunes.
1

La Breadth First Search (BFS): coneguda com a recerca


per amplada priorit`ria. Dna prefer`ncia a lexploraci en
a
o
e
o
parallel de totes les alternatives possibles des del v`rtex on
e
ens trobem.

La Depth First Search (DFS): coneguda com a recerca en


profunditat priorit`ria. En aquest cas es dna prefer`ncia a
a
o
e
lobertura duna unica via dexploraci a partir del v`rtex

o
e
actual.

Tots dos tenen una complexitat O(m) O(n2 ).

4/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Exploraci de grafs
o

Per recrrer un graf considerarem dues estrat`gies, les ms


o
e
e
comunes.
1

La Breadth First Search (BFS): coneguda com a recerca


per amplada priorit`ria. Dna prefer`ncia a lexploraci en
a
o
e
o
parallel de totes les alternatives possibles des del v`rtex on
e
ens trobem.

La Depth First Search (DFS): coneguda com a recerca en


profunditat priorit`ria. En aquest cas es dna prefer`ncia a
a
o
e
lobertura duna unica via dexploraci a partir del v`rtex

o
e
actual.

Tots dos tenen una complexitat O(m) O(n2 ).

4/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Exploraci de grafs
o

Per recrrer un graf considerarem dues estrat`gies, les ms


o
e
e
comunes.
1

La Breadth First Search (BFS): coneguda com a recerca


per amplada priorit`ria. Dna prefer`ncia a lexploraci en
a
o
e
o
parallel de totes les alternatives possibles des del v`rtex on
e
ens trobem.

La Depth First Search (DFS): coneguda com a recerca en


profunditat priorit`ria. En aquest cas es dna prefer`ncia a
a
o
e
lobertura duna unica via dexploraci a partir del v`rtex

o
e
actual.

Tots dos tenen una complexitat O(m) O(n2 ).

4/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Exploraci de grafs
o

BFS
1

Etiqueteu v1 amb un 0.

j = 0.

A partir del v`rtex etiquetat j, cerqueu tots els v`rtexs no


e
e
etiquetats adjacents. Si no hi ha cap v`rtex adjacent ja hem
e
acabat.

Etiqueteu tots els v`rtexs trobats en el pas anterior amb j + 1.


e

j = j + 1, torneu a 3.

5/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Exploraci de grafs
o
DFS
1

2
3

Inicialment totes les connexions aresta-v`rtex no estan


e
etiquetades.
v = v1
Si a v totes les connexions sn etiquetades, aneu a 4.
o
Escolliu una connexi no etiquetada, etiqueteu-la amb un 0 i
o
useu laresta per arribar a laltre extrem vi .
Si vi t alguna connexi etiquetada, etiqueteu la connexi
e
o
o
dentrada vi amb un 0 i torneu enrere cap a v.
Si no, etiqueteu la connexi dentrada a vi amb un 1; v = vi .
o
Torneu a 2.
Si totes les connexions tenen una etiqueta diferent de 1, hem
acabat.
Si no, useu la connexi etiquetada amb un 1 per anar cap a
o
laltre extrem vi
v = vi i torneu a 2.
6/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim
Lobjectiu dels camins de cost m
nim s determinar el cam
e

optim que uneix dos v`rtexs determinats.


`
e
Un exemple t dun graf s una xarxa de carreteres que
pic
e
connecten un conjunt de ciutats.

7/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

El problema algor
smic ms natural en aquest graf s trobar el
e
e
cam ms curt o de cost m
e
nim que uneix dues ciutats s (start) i t
(target) en un graf ponderat.
Un graf ponderat es denota per (G, w) on G = (V, A) s un graf i
e
w s una funci w : A R que assigna pesos a les arestes del
e
o
graf. Els pesos, en aquest exemple, ens poden indicar els costos
que volem avaluar, ja sigui km, temps que cal emprar, preu dels
peatges, etc.

8/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

El problema algor
smic ms natural en aquest graf s trobar el
e
e
cam ms curt o de cost m
e
nim que uneix dues ciutats s (start) i t
(target) en un graf ponderat.
Un graf ponderat es denota per (G, w) on G = (V, A) s un graf i
e
w s una funci w : A R que assigna pesos a les arestes del
e
o
graf. Els pesos, en aquest exemple, ens poden indicar els costos
que volem avaluar, ja sigui km, temps que cal emprar, preu dels
peatges, etc.

8/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

A partir dun graf ponderat (G, w) i un cam C : v0 , v1 , ..., vk

denim el pes del cam C com

w(C) =

w(vi1 , vi ),
i=1

i la dist`ncia entre dos v`rtexs u, v V com


a
e
dG (u, v) = min{w(C) | C s un u v cam
e
}.

9/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

A partir dun graf ponderat (G, w) i un cam C : v0 , v1 , ..., vk

denim el pes del cam C com

w(C) =

w(vi1 , vi ),
i=1

i la dist`ncia entre dos v`rtexs u, v V com


a
e
dG (u, v) = min{w(C) | C s un u v cam
e
}.

9/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

Per trobar el cam de cost m

nim en (G, w) amb w 0 dirigit


entre dos v`rtexs s i t a partir del v`rtex inicial v0 utilitzarem
e
e
lalgorisme de Dijkstra.
En canvi, si volem trobar el cost m
nim entre totes les parelles de
v`rtexs cal utilitzar lalgorisme de Floyd.
e

10/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

Per trobar el cam de cost m

nim en (G, w) amb w 0 dirigit


entre dos v`rtexs s i t a partir del v`rtex inicial v0 utilitzarem
e
e
lalgorisme de Dijkstra.
En canvi, si volem trobar el cost m
nim entre totes les parelles de
v`rtexs cal utilitzar lalgorisme de Floyd.
e

10/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim

Dijkstra
1

(s) = 0; (vj ) = vj = s..

T =V.

Sigui vk T tal que (vk ) s m


e
nima.

Si vk = t, ja hem acabat.

ai = (vk , vq ), si vq T i (vq ) > (vk ) + C(ai ) aleshores


(vq ) = (vk ) + C(ai ).

T = T {vk }. Torneu a 3.

La complexitat s O(n2 ).
e

11/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Camins de cost m
nim
Floyd
1

m = 1.

Per a tota parella vi , vj , tal que 1 i, j n, calculeu:

m = min{m1 , m1 + m1 }
ij
ij
im
mj
3

Si m = n, hem acabat. Si no, m = m + 1 i torneu a 2.

On n s lordre del graf que estem evaluant.


e
La complexitat s O(n3 ). Menor que si saplica Dijkstra n2
e
vegades. Per` aplicant Dijkstra n vegades s sucient si cada
o
e
vegada explorem tots els v`rtexs. Aleshores la complexitat s la
e
e
mateixa.

12/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Caracteritzaci dels arbres


o

Un arbre sim`tric s un graf sim`tric connex sense cicles. Si


e
e
e
eliminem la condici de connectivitat obtenim un bosc.
o

Observeu que cada component dun bosc s un arbre.


e

13/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Caracteritzaci dels arbres


o

Sigui G un graf dordre n i mida m.


Teorema 1.
G s un arbre entre cada parella de v`rtexs diferents de G hi ha
e
e
cam unic.

Teorema 2.
G s un arbre no cont circuits i n = m + 1.
e
e
Teorema 3.
G s un arbre s connex i n = m + 1.
e
e

14/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Caracteritzaci dels arbres


o

Sigui G un graf dordre n i mida m.


Teorema 1.
G s un arbre entre cada parella de v`rtexs diferents de G hi ha
e
e
cam unic.

Teorema 2.
G s un arbre no cont circuits i n = m + 1.
e
e
Teorema 3.
G s un arbre s connex i n = m + 1.
e
e

14/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Caracteritzaci dels arbres


o

Sigui G un graf dordre n i mida m.


Teorema 1.
G s un arbre entre cada parella de v`rtexs diferents de G hi ha
e
e
cam unic.

Teorema 2.
G s un arbre no cont circuits i n = m + 1.
e
e
Teorema 3.
G s un arbre s connex i n = m + 1.
e
e

14/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Arbres generadors `ptims


o

A partir dun graf G(V, A) tot subgraf de G que sigui un arbre i


contingui tots els v`rtexs V sanomena arbre generador de G.
e
Sigui G(V, A) sim`tric amb un cost no negatiu c(ak ) associat a
e
cada aresta ak = (vi , vj ) A.
Per determinar a G un arbre generador sim`tric de cost total
e
m
nim, que tamb podem anomenar `ptim, podem utilitzar
e
o
lalgorisme de Kruskal o b el de Prim. Aquests dos algorismes es
e
basen en la segent propietat:
u

15/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Arbres generadors `ptims


o

A partir dun graf G(V, A) tot subgraf de G que sigui un arbre i


contingui tots els v`rtexs V sanomena arbre generador de G.
e
Sigui G(V, A) sim`tric amb un cost no negatiu c(ak ) associat a
e
cada aresta ak = (vi , vj ) A.
Per determinar a G un arbre generador sim`tric de cost total
e
m
nim, que tamb podem anomenar `ptim, podem utilitzar
e
o
lalgorisme de Kruskal o b el de Prim. Aquests dos algorismes es
e
basen en la segent propietat:
u

15/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Arbres generadors `ptims


o

Teorema 4.
A partir dun graf G(V, A) sim`tric i connex, sigui U V i
e
am = (vi , vj ) una aresta de cost m
nim entre aquelles que tenen
vi U i vj V U . Aleshores, existeix un arbre generador de
cost m
nim a G que cont am .
e

16/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Arbres generadors `ptims


o
Kruskal
1

Comenceu amb un graf G0 (V0 = V, A0 = ).


k=0

Ordeneu les arestes de G de forma creixent en funci del cost.


o

Comenant pel cap de la llista ordenada, preneu la primera


c
aresta a no usada i que NO forma circuit a Gk .
k =k+1
Gk = Gk1 {a }

Si k < n 1 torneu a 3.
Si no, heu acabat.

La complexitat s O(m log m) O(n2 log n). Lalgorisme de Prim


e
t complexitat O(n2 ). Depenent de si el graf t moltes o poques
e
e
arestes interessar` ms usar un algorisme o laltre.
a e
17/17

Cap 3: Recorreguts, camins i arbres generadors `ptims


tol
o

Vous aimerez peut-être aussi