Grafos

Anuncio
CI2613: Algoritmos y Estructuras III
Conceptos básicos de grafos
Blai Bonet
Universidad Simón Bolı́var, Caracas, Venezuela
Enero-Marzo 2015
c 2014 Blai Bonet
Grafos
Ejemplo: grafo
Un grafo es una estructura algebraica que consiste en un conjunto de
vértices y un conjunto de aristas
Los vértices son entidades abstractas
Las aristas conectan pares de vértices entre si
Un grafo G es un par G = (V, E) donde:
– V es el conjunto de vértices
– E es el conjunto de aristas
c 2014 Blai Bonet
c 2014 Blai Bonet
Grafos dirigidos y no dirigidos
Ejemplos: grafos dirigidos y no dirigidos
Clases importantes de grafos:
– Grafo dirigido: las aristas son de la forma x → y
– Grafo no dirigido: las aristas son de la forma x − y
c 2014 Blai Bonet
c 2014 Blai Bonet
Grafos simples y multigrafos
Ejemplos: multigrafo
Una arista entre dos vértices x y y es un bucle si x = y
Dos aristas son paralelas si conectan el mismo par de vértices (en la
misma dirección)
Un grafo simple es un grafo sin bucles y sin aristas paralelas
Un multigrafo es un grafo con bucles o aristas paralelas
c 2014 Blai Bonet
c 2014 Blai Bonet
Grafos simples
Caminos
Sea G = (V, E) un grafo
Un camino es una sucesión de vértices hx1 , x2 , . . . , xn i tal que:
Sea G = (V, E) un grafo simple
– Si G es dirigido, (xi , xi+1 ) ∈ E para todo 1 ≤ i < n
Si G es dirigido, entonces E ⊆ (V × V ) \ {(x, x) : x ∈ V }
– Si G es no dirigido, {xi , xi+1 } ∈ E para todo 1 ≤ i < n
Si G es no es dirigido, entonces E ⊆
V
2
Un camino es simple si no repite vértice
Si hx1 , x2 , . . . , xn i es un camino, x1 y xn estan conectados
La sucesión hxi, para x ∈ V , es un camino
c 2014 Blai Bonet
c 2014 Blai Bonet
Ejemplo: caminos
Ciclos
Sea G = (V, E) un grafo
Un ciclo es un camino hx1 , x2 , . . . , xn i tal que:
– el primer y último vértice son iguales; i.e. x1 = xn
Un ciclo hx1 , x2 , . . . , xn i es simple ssi xi = xj =⇒ {i, j} = {1, n}
Si hx1 , x2 , . . . , xn i es un ciclo, entonces los siguientes:
– hx2 , x3 , . . . , xn−1 , x1 , x2 i
– hx3 , x4 , . . . , xn−1 , x1 , x2 , x3 i
Camino ha, b, c, di
– ...
son el mismo ciclo
c 2014 Blai Bonet
c 2014 Blai Bonet
Ejemplo: ciclos
Grafos bipartitos
Un grafo no dirigido G = (V, E) es bipartito ssi V se descompone en
dos partes disjuntas V = V1 ∪ V2 (con V1 ∩ V2 = ∅) tal que:
– Si {x, y} es una arista, entonces x ∈ V1 y y ∈ V2
Ciclo simple
c 2014 Blai Bonet
c 2014 Blai Bonet
Ejemplo: grafos bipartitos
c 2014 Blai Bonet
Ejemplo: grafos bipartitos
c 2014 Blai Bonet
Grafos bipartitos
Grafo conexo
Un grafo G = (V, E) no dirigido es conexo ssi todo par de vértices
están conectados
Teorema
Un grafo G = (V, E) es bipartito ssi no contiene un ciclo de longitud
impar
Si G = (V, E) es un grafo dirigido, el grafo no dirigido subyacente es
G0 = (V, E 0 ) donde:
– E 0 = {{x, y} : (x, y) ∈ E}
Un grafo G = (V, E) dirigido es conexo si el grafo no dirigdo
subyacente es conexo
c 2014 Blai Bonet
c 2014 Blai Bonet
Arboles y forestas
Ejemplo: Arboles
Un árbol G = (V, E) es un grafo no dirigido que es conexo y no tiene
ciclos
Una foresta o bosque es un grafo compuesto por árboles
desconectados
c 2014 Blai Bonet
c 2014 Blai Bonet
Caracterización de Arboles
Caracterización de Arboles
1 ⇒ 2 : Como todo árbol es conexo, G es conexo
Sea u y v dos vértices y suponga que existen dos caminos p1 y p2
distintos de u a v
Teorema
Sea G = (V, E) un grafo no dirigido. Los siguientes son equivalentes:
1. G es un árbol
Sea w el primer vértice tal que el sucesor x de w en p1 es distinto al
sucesor y de w en p2
2. Todo par de vértices están conectados por un único camino simple
Sea z el primer vértice para el cual p1 y p2 convergen
3. G es conexo pero se desconecta al remover cualquier arista
4. G es conexo y |E| = |V | − 1
00
El subcamino p0 B.5
de pTrees
1 de w a z seguido del subcamino p de p2 de z
a w forma un ciclo en G y por lo tanto no es un árbol (contradicción)
5. G es acı́clico y |E| = |V | − 1
p′
6. G es acı́clico pero si cualquier arista se añade aparece un ciclo
w
u
c 2014 Blai Bonet
z
y
v
p′′
c 2014 Blai Bonet
Caracterización de Arboles
2 ⇒ 3 : Claramente G es conexo
Si se remueve la arista (u, v), u queda desconectado de v puesto que
existe un único camino de u a v en G
c 2014 Blai Bonet
x
Figure B.5 A step in the proof of Theorem B.2: if (1) G is a free tree, then (2) any
in G are connected by a unique simple path. Assume for the sake of contradiction th
and ! are connected by two distinct simple paths p1 and p2 . These paths first diverge
and they first reconverge at vertex ´. The path p 0 concatenated with the reverse of the p
a cycle, which yields the contradiction.
Caracterización de Arboles
3 ⇒ 4 : Veamosthat
porGinducción
n=
| que
|E|there
= |Vcan
| −be1 at most one simple pat
is a tree. en
Thus,
if |V
G is
a tree,
two vertices.
Un grafo que satisface
(3)(3):
conIfnany
= 2two
vértices
tiene
una
arista by a unique sim
(2) )
vertices
in G
aresola
connected
then G is connected. Let .u; !/ be any edge in E. This edge is a path fr
Suponga que G and
tiene
3 vértices
y que path
todofrom
grafou que
sonit ≥
must
be the unique
to !.satisface
If we remove .u; !/ from
is no
path
from u totiene
!, and
its removal disconnects G.
(3) con a lo sumo
n−
1 vértices
|V hence
| − 1 aristas
(3) ) (4): By assumption, the graph G is connected, and by Exercise
have
We shall para
proveobtener
1 by induction. A
jV j "y 1.remuevala
jEj # jV
j "grafos
Sea (u, v) una arista jEj
en el!grafo
dos
n D 1 grafos
or n Dsatisfacen
2 vertices (3)
has yn por
" 1 hipótesis
edges. Suppose that G
desconectados Ggraph
1 y Gwith
2 . Ambos
vertices and that all graphs satisfying (3) with fewer than n vertices a
inductiva:
1. Removing
an arbitrary edge from G separates the graph
jEj # jV j " |E
1 | = |V1 | − 1
connected components (actually k D 2). Each component satisfies (3),
|E2 | =
− 1view each connected component V , with ed
would not satisfy
(3).|VIf2 |we
i
as its own free tree, then because each component has fewer than jV j v
inductive
we
have
#=jV|V
1. 1Thus, the number of e
ij 1
ij "
Claramente, |E|the
= |E
|V2jE
|−
|−
1 | + |Ehypothesis
2 | + 1 = |V
1| +
components combined is at most jV j " k # jV j " 2. Adding in the rem
yields jEj # jV j " 1.
c 2014 Blai Bonet
(4) ) (5): Suppose that G is connected and that jEj D jV j " 1. We
that G is acyclic. Suppose that G has a cycle containing k vertices !1 ;
Caracterización de Arboles
4 ⇒ 5 : Suponga que G es conexo y |E| = |V | − 1. Debemos mostrar
que G es acı́clico. Suponga que G tiene un ciclo (v0 , v1 , v2 , . . . , vk ),
con v0 = vk , y asuma que es un ciclo simple
Sea Gk = (Vk , Ek ) el subgrafo formado por el ciclo con
|Vk | = |Ek | = k
Si k = |Vk | < |V |, existe un vértice vk+1 ∈ V \ Vk que es adyacente a
algún vértice vi en Vk ya que G es conexo
Sea Gk+1 = (Vk+1 , Ek+1 ) con Vk+1 = Vk ∪ {vk+1 } y
Ek+1 = Ek ∪ {(vi , vk+1 )}, y |Vk+1 | = |Ek+1 | = k + 1
Continue de la misma forma hasta obtener un subgrafo
Gn = (Vn , En ) con |Vn | = |En | = n = |V |
Caracterización de Arboles
5 ⇒ 6 : Suponga que G es acı́clico y |E| = |V | − 1. Debemos mostrar
que si añadimos cualquier arista a G se crea un ciclo
Sea k el número de componentes conexas en G. Cada una de las k
componentes es un árbol ya que es conexa y acı́clica
Como (1) ⇒ (5), si sumamos el número de aristas en cada
componentes, obtenemos |E| = |V | − k y por lo tanto k = 1
Es decir, solo hay una componente conexa y G es un árbol
Si añadimos la arista (u, v), se crea un ciclo de u a v ya que G
contiene un camino de u a v por ser un árbol
Esto es una contradicción ya que |E| = |V | − 1
c 2014 Blai Bonet
c 2014 Blai Bonet
Caracterización de Arboles
6 ⇒ 1 : Suponga que G es acı́clico y al añadir cualquier arista se crea
un ciclo
Sea u y v dos vértices no adyacentes. Al añadir (u, v) se crea un
ciclo. Dicho ciclo debe involucrar a u y v. Por lo tanto, u esta
conectado con v en G
Es decir, G es conexo y por la tanto es un árbol
c 2014 Blai Bonet
Descargar