Proped´ eutico de Matem´ aticas Discretas: Grafos
Alejandro Guti´errez Giles
www.inaoep.mx
Grafos
Definiciones
Los grafos se pueden pensar como pueblos (v´ertices) y carreteras (aristas).
SiV es el conjunto de los v´ertices yE es el conjunto de las aristas, se puede definir una relaci´on aRben V que defina viajar deaa b usando las aristas enE.
Si las aristas son de doble sentido, entonces se tienebRa, i.e. la relaci´on es sim´etrica y se dice que el grafo es no-dirigido
Si las aristas son de un solo sentido, se dice que el grafo es dirigido
Grafo No-Dirigido
En este ejemplo se tieneV ={a, b, c, d, e, f}yE = {{a, b},{a, c},{a, d},{a, e},{a, f},{b, c},{d, e},{e, f}},
Grafo Dirigido
En este ejemplo se tieneV ={a, b, c, d, e}y E ={(a, a),(a, b),(a, d),(b, c)},G= (V, E) b esadyacente a cyc esadyacente desde b b es elorigen y ces el t´ermino
La orilla (a, a) es un ejemplo de bucle ees un v´ertice aislado
Definiciones B´ asicas
Si no se especifica si un grafo es dirigido o no-dirigido, se asume no-dirigido.
Cuando no contiene bucles, se dice que es libre de bucles, o loop-free.
Seanx yy dos v´ertices de G= (V, E). Uncamino
x−y (x−y walk) es una secuencia finita, libre de bucles, del tipo
x=x0, e1, x1, e2, x2, . . . , en−1, xn−1, en, xn=y La longitud del camino es n, el n´umero de aristas.
Cuando x=y se dice que el camino escerrado, de otra
Ejemplo
Definiciones B´ asicas
Considere un camino x−y en un grafo no-dirigido Si no se repite ninguna arista entonces es unrecorrido x−y (trail). A un recorrido cerradox−xse le llama circuito.
Si no se repite ning´un v´ertice entonces se le llama ruta x−y (path). Cuandox=y, se le conoce comociclo.
Para grafos dirigidos existen recorridos dirigidos,rutas dirigidas,ciclos dirigidos, etc.
Ejemplo
Grafo Conectado
Se dice que un grafo dirigidoG= (V, E) est´a conectado si existe una ruta entre cualquier par de v´ertices.
Para grafos no-dirigidos, se redibuja el grafo ignorando la direcci´on de las aristas. Si m´as de una arista conecta a dos v´ertices, s´olo se considera una de ellas. Cuando este grafo redibujado est´a conectado, se considera que el grafo original est´a conectado tambi´en.
Un grafo que no est´a conectado se denominadesconectado.
Ejemplo
Un grafo es desconectado si se puede partir en dos subconjuntos V1 yV2 tales que no exista una arista que conecte a x∈V1 cony∈V2
Para cualquier grafo G= (V, E) el n´umero de componentes conectados se denota como κ(G)
Multigrafos
Un grafo es un multigrafo si para algunosx, y∈V existen dos o m´as aristas de la forma (x, y) para grafos dirigidos o {x, y}para grafos no dirigidos.
En la figura, la arista (a, b) tiene multiplicidad 3. Las
Subgrafos
Dado un grafo G= (V, E), G1= (V1, E1) es un subgrafo de G si∅ 6=V1⊆V yE1 ⊆E, donde cada arista en E1 es incidente en los v´ertices de V1.
SiV1 =V, entoncesG1 es un subgrafo generador (spanning subgraph) de G.
Grafos Completos
SeaV un conjunto de v´ertices. El grafocompleto en V se denota como Kny es un grafo no-dirigido libre de bucles en el que para toda a, b∈V, cona6=b, existe una arista {a, b}.
Grafo Complementario
SeaG un gafo no-dirigido libre de bucles denv´ertices. El complemento de Gse denota como ¯G es el subgrafo deKn
que consiste en losn v´ertices de Gy todas las aristas que no est´an en G
Cliques
Un clique es un conjunto de v´erticesC⊆V, tal que todo par de v´ertices distintos sean adyacentes, es decir que el nuevo grafo inducido porC es un grafo completo.
Isomorfismo
SeanG1 = (V1, E1) yG2 = (V2, E2) dos grafos no-dirigidos.
Una funci´on f :V1 →V2 es un isomorfismo de grafo si (i) f es biyectiva y (b) si para toda a, b∈V1, se cumple que {a, b} ∈E1 si y solo si {f(a), f(b)} ∈E2.
Cuando dicha funci´on existe, se dice que G1 yG2 son isom´orficos.
Ejemplo
Ejemplo
Ejemplo
Grafos Eulerianos
SeaG un grafo. Para cada v´ertice, elgrado de v, denotado por deg(v) es el n´umero de aristas que inciden env. Un bucle en el v´erticev es considerado como dos aristas incidentes.
Grafos Eulerianos
Para grafos no-dirigidos se cumple que La sumatoria
X
v∈V
deg(v) = 2|E|
El n´umero de v´ertices de grado impar debe de ser par.
Si cada v´ertice tiene el mismo grado, el grafo se llama regular. Si deg(v) =kpara todos los v´ertices, el grafo se llamak-regular.
Ejemplo
Encontrar un grafo 3-regular con 9 aristas.
Grafos Eulerianos
SeaG= (V, E) un grafo no-dirigido. Se dice que Gtiene un circuito Euleriano si existe un circuito enG que atraviese cada arista del grafo exactamente una vez.
Si existe un recorrido abierto de aab en Gy ´este pasa por cada arista una sola vez, se dice que es unrecorrido
Euleriano.
Teorema: Sea G= (V, E) un grafo no-dirigido sin v´ertices aislados. Entonces Gtiene un circuito Euleriano si y s´olo si G es conectado y cada v´ertice enG tiene grado par.
Puentes de K¨ oninsberg
¿Es posible comenzar y finalizar en un mismo punto pasando una sola vez por cada puente?
Grafos Eulerianos
Corolario: Si Ges un grafo no-dirigido sin v´ertices aislados, entonces se puede construir un recorrido Euleriano si y s´olo si Gest´a conectado y tiene exactamente dos v´ertices con grado impar.
Sea un grafo dirigidoG= (V, E). Para cada v∈V
Elgrado de entrada dev es el n´umero de aristas que inciden env y se denota comoid(v)
Elgrado de salida dev es el n´umero de aristas que inciden desdevy se denota como od(v).
Si el grafo contiene uno o m´as bucles, cada bucle en un v´erticevcontribuye con 1 para cada id(v) yod(v).
Grafos Eulerianos
Teorema: Sea G= (V, E) un grafo dirigido sin v´ertices aislados. Entonces el grafo tiene un circuito Euleriano si y s´olo si Gest´a conectado yid(v) =od(v) para todov ∈V.
Ejemplo
Dibujar un grafo dirigido de 4 v´ertices que tenga un circuito Euleriano.
Grafos Planares
Un grafo es planar si se puede dibujar en el plano con sus aristas ´unicamente intersecando en los v´ertices. A dicho dibujo se le llama embebido deG en el plano.
K1,K2,K3 yK4 son planares ¿Es K5 planar?
Grafos Bipartidos
Un grafo es bipartido si V =V1∪V2 conV1∩V2=∅y cada arista de Ges de la forma{a, b} cona∈V1 yb∈V2. Si cada v´ertice en V1 se une con cada v´ertice enV2 entonces se tiene un grafo bipartido completo.
En este ´ultimo caso, si|V1|=my |V2|=n, el grafo se denota porKm,n.
Ejemplo
¿Es un grafo bipartido?
Gafos Bipartidos
Un grafo bipartido no puede tener ciclos de longitud impar.
Asimismo, si un grafo conectado no tiene ciclos de longitud impar entonces es bipartido.
Homeomorfismo
SeaG= (V, E) un grafo no-dirigido libre de bucles con E 6=∅.
Unasubdivisi´on elemental delGresulta cuando se le quita una aristae={u, w} y se le a˜naden las aristas{u, v}y {v, w}a G−e, conv /∈V.
Los grafosG1= (V1, E1) yG2= (V2, E2) son
homeom´orficos si son isom´orficos o si ambos pueden ser obtenidos a partir del mismo grafoH mediante una secuencia de subdivisiones elementales.
Grafos No Planares
Uno puede pensar en grafos homeom´orficos como grafos isom´orficos con v´ertices extras de grado 2.
Teorema de Kuratowski: Un grafo esno planar si y s´olo si contiene un subgrafo que sea homeom´orfico aK5 o aK3,3.
Grafos Hamiltonianos
SeaG un grafo con|V| ≥3. Se dice queGtiene un ciclo Hamiltoniano si existe un ciclo enGque contenga todos los v´ertices de V.
Unaruta Hamiltoniana es una ruta que contiene todos los v´ertices de V.
Grafos Hamiltonianos
Para que un grafo sea Hamiltoniano, se tiene que cumplir deg(v)≥2,∀v∈V.
Sia∈V y deg(a) = 2, entonces los dos v´ertices adyacentes a adeben de estar en el ciclo Hamiltoniano.
Sia∈V y deg(a)>2 una vez que pasemos por el v´ertice a debemos descartar todos los v´ertices adyacentes que no se usaron.
Si queremos construir un ciclo Hamiltoniano, debemos evitar construir ciclos que no contengan todos los v´ertices.
Grafos Hamiltonianos
Teorema: sea Kn∗ un grafo dirigido completo, i.e. para cada par de v´ertices distintosx, y, s´olo una de las aristas (x, y) o (y, x) est´a enKn∗. Este grafo se llamatorneo (tournament) y siempre contiene una ruta Hamiltoniana.
Grafos Hamiltonianos
Teorema: sea G= (V, E) un grafo no-dirigido libre de bucles con|V| ≥3. Si deg(v)≥n/2,∀v∈V, entoncesG tiene un ciclo Hamiltoniano.
Grafos Hamiltonianos
Teorema: sea G= (V, E) un grafo no-dirigido libre de bucles con|V| ≥3. Si|E| ≥ n−12
+ 2,∀v∈V, entoncesG tiene un ciclo Hamiltoniano.
Grafos con Pesos
Problema del agente de viajes
Arboles ´
SeaG= (V, E) un grafo no-dirigido libre de bucles. Se le llama ´arbol si el grafo es conectado y no contiene ciclos y se denota como T.
G1 es un ´arbol generador de G2. G3 es un bosque generador deG2.
Arboles ´
Sia, bson dos v´ertices distintos de un ´arbol, s´olo existe una ruta que conecta a dichos v´ertices.
SiG= (V, E) es un grafo no-dirigido, es conectado si y s´olo si Gtiene un ´arbol generador.
Para todo ´arbolT = (V, E) se cumple que |V|=|E|+ 1 Para todo ´arbolT = (V, E) si|V| ≥2 entonces T tiene al menos dos v´ertices pendientes.
Ejemplo
Si un hidrocarburo ac´ıclico saturado (alcano) tiene n
´
atomos de carb´on (C) ¿Cu´antos ´atomos de hidr´ogeno (H) tiene?
Arboles ´
Los siguientes enunciados son equivalentes:
1. Ges un ´arbol
2. Gest´a conectado pero si se remueve cualquier aristaGse desconecta y se obtienen dos ´arboles.
3. Gno contiene ciclos y|V|=|E|+ 1.
4. Gest´a conectado y|V|=|E|+ 1.
5. Gno contiene ciclos y sia, v∈V con{a, b}∈/ E, entonces si se a˜nade la arista{a, b} se obtiene exactamente un ciclo.
Arboles con Ra´ız ´
SeaG un ´arbol dirigido. Se le llama ´arbol con ra´ız si existe un v´ertice ´unico, llamado ra´ız, tal queid(r) = 0 yid(v) = 1 para todos los dem´asv ∈V, v6=r.
Arboles con Ra´ız ´
Si se entiende que la direcci´on de las aristas va de arriba a abajo, puede omitirse.
A los v´ertices conod(v) = 0 se les llamahojas. Los dem´as v´ertices se conocen comov´ertices internos.
Si la ruta desder hasta un v´ertice ses de longitudlse dice que el v´erticesest´a en el nivel l.
Siv1 yv2 son v´ertices yv1 tiene un nivel menor, entonces v1 es ancestro dev2 (ov2 descendiente de v1) si existe una ruta de v1 a v2. Si la longitud de dicha ruta es 1, entonces v es padre dev yv es hijo de v .
Arbol Ordenado ´
Para ordenar un ´arbol, se puede seguir el algoritmo (sistema de direcci´on universal)
1. Asignar 0 al v´ertice ra´ız.
2. Asignar 1,2,3, . . .a los v´ertices del nivel 1, de izquierda a derecha.
3. Siv es un v´ertice interno en el niveln≥1 y v1, v2, . . . , vk
son sus hijos, de izquierda a derecha, asignar las etiquetas a.1, a.2, . . . , a.k, dondeaes la etiqueta del nodov.
Arbol Ordenado ´
Arboles Ordenados ´
Se puede recorrer un ´arbol ordenado de distintas formas
Pre-orden:
Se visita el nodo ra´ız.
Luego el sub-´arbol a la izquierda, empezando por el nodo ra´ız.
Se repite hasta llegar a una hoja.
Se visitan el resto de las hojas hermanas.
Se procede hacia atr´as (backtrack) con el siguiente ´arbol no visitado.
Se repite el procedimiento hasta llegar a las hojas.
Termina cuando se ha visitado todo el ´arbol.
Arboles Ordenados ´
Post-orden:
Se elige el hijo m´as a la izquierda de cada v´ertice.
Se llega a una hoja que se visita.
Se procede hacia atr´as pero no se visita al padre sino hasta que se han visitado todos los hijos.
Se repite el procedimiento en cada sub-´arbol hasta que se hayan visitado todos los hijos.
Arboles Binarios ´
Un ´arbol con ra´ızbinario es aqu´el conod(v) = 0,1,2.
Siod(v) = 0 ood(v) = 2, se dice que es un ´arbol binario completo.
Se puede utilizar para hacer operaciones binarias
Se asume que la operaci´on no es conmutativa y se aplica de izquierda a derecha.
Arboles Binarios ´
Ejemplo: representaci´on de (7−a)/5
∗ (a+b)3