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