You are on page 1of 29

Grafos

Programacin en Tiempo Real Elabora: Jos Manuel Snchez Morales


8.1 Introduccin a los grafos 8.2 Terminologa en teora de grafos 8.5 Caminos eulerianos y hamiltonianos 8.6 Caminos de longitud mnima 8.3 Representacin de grafos e isomorfismo de 8.7 Grafos planos grafos 8.4 Conexin

8.1 Introduccin a los grafos

Los grafos son estructuras discretas que constan de vrtices y de aristas que conectan entre s esos vrtices. Hay varios tipos de grafos, que se diferencian entre si por el tipo y el numero de aristas que pueden conectar cada par de vrtices. Grafo simple: G=(V;E) consta de V, un conjunto no vaco de vrtices, y de E, un conjunto de pares no ordenados de elementos distintos de V, A estos pares se les llama aristas. (Esto quiere decir que no hay restricciones , solo lneas de conexin directa).

Tipos de Grafos

Ejemplo:

Multgrafo: Est facultado para tener aristas mltiples, es decir, aristas con los mismos nodos iniciales y finales. Formalmente, un multgrafo G es un par G:=(V,A) donde: -V es un conjunto de vrtices o nodos -A es un multiconjunto de pares ordenados de nodos, llamados aristas.

Ejemplo:

Pseudografo: es un grafo G = (V,E), en el que existe al menos un vrtice u que es adyacente de si mismo, es decir que existe alguna arista de la forma uu, a dichas aristas se les denomina lazos.

Ejemplo:

Grafos dirigidos: es un tipo de grafo en el cual el conjunto de las aristas tiene una direccin definida1 , a diferencia del grafo generalizado, en el cual la direccin puede estar especificada o no.

Ejemplo:

Multgrafo dirigido: G(V, E) consta de un conjunto V de vrtices, un conjunto E de aristas y una funcin f de E en {(u, v)|u, v V }. Se dice que las aristas e1, e2 son aristas mltiples o paralelas si f(e1) = f(e2).

Ejemplo:

8.2 Terminologa en teora de grafos


Aristas y Vrtices

Dos vrtices u, v de un grafo G = (V, E) se dicen adyacentes si {u, v} E, asimismo dos aristas son adyacentes si tienen un mismo vrtice como extremo; anlogamente si e = {u, v} decimos que el lado e es incidente a los vrtices u y v.

Grado de un vrtice de un grafo no dirigido

Es el numero de arritas incidentes con el grafo, exceptuando los bucles, cada uno de los cuales contribuye con dos unidades l del grado del vrtice. El grado del Vrtice v se denota por (v). Ejemplo:

(1)= 2 (2)= 3 (3)= 2 (4)= 3 (5)= 3 (6)= 1

Grado de un vrtice de un grafo dirigido


Es el numero de arritas incidentes con el grafo, y se dividen en grados de llegado y grados de salida identificados de la siguiente forma:

Grados de vrtice llegada: -(1), Grados de vrtice de salida -(1)


Ejemplo:

-(1)= -(2)= -(3)= -(4)=

1, +(1)= 2, +(2)= 1, +(3)= 1, +(4)=

2 1 1 0

NOTA: el numero de aristas es igual el de entrada al de salida.

El teorema de los apretones de manos


La suma de los grados de un grafo numero de aristas: es igual al doble del nmero de aristas, siendo E el

Ejemplo: Cuntas aristas hay en un grafo de 8 vrtices, cada uno de los cuales tiene grado 5?

2E=5*8 2E=40 E=40/2 E=20

El teorema de los apretones de manos


La suma de los grados de un grafo numero de aristas: es igual al doble del nmero de aristas, siendo E el

Ejemplo: Cuntas aristas hay en un grafo de 8 vrtices, cada uno de los cuales tiene grado 5?

2E=5*8 2E=40 E=40/2 E=20

Familia de grafos simples


Ciclos: Se conectan todos los vrtices y cada uno tiene una adyacencia, Si k>=3 y

v1,,vk-1 son distintos de C se llama ciclo, donde C= v1,v2,,va. Ejemplo:

Ruedas: Obtenemos la rueda En cuando aadimos un vrtice adicional al ciclo, para k>=3 y conectamos este nuevo vrtice con cada uno de los n vrtices de Cn mediante una nueva arista. Ejemplo:

N-Cubos: Es el grafo cuyos vrtices representan las 2 la n cadenas de bits de longitud n. Dos vrtices son adyacentes si, y solo si, las cadenas de bits a las que representan difieren exactamente en un bit. Ejemplo:

Grafos bipartitos
Es un grafo G=(N,E) cuyos vrtices se pueden separar en dos conjuntos disjuntos U y V, es decir, tal que se cumple: // de manera que las aristas slo pueden conectar vrtices de un conjunto con vrtices del otro. Ejemplo:

8.3 Representacin de Grafos e isomorfismo


Matrices de adyacencia

Es una matriz cuadrada que se utiliza como una forma de representar relaciones binarias. 1.Se crea una matriz cero, cuyas columnas y filas representan los nodos del grafo. 2.Por cada arista que une a dos nodos, se suma 1 al valor que hay actualmente en la ubicacin correspondiente de la matriz.

Si tal arista es un bucle y el grafo es no dirigido, entonces se suma 2en vez de 1. Finalmente, se obtiene una matriz que representa el nmero de aristas (relaciones) entre cada par de nodos (elementos).

Ejemplo:

Matrices de Incidencia
Es una matriz binaria (sus elementos slo pueden ser unos o ceros), que se utiliza como una forma de representar relaciones binarias.
1.

Las columnas de la matriz representan las aristas del grafo.

2.
3.

Las filas representan a los distintos nodos.


Por cada nodo unido por una arista, ponemos un uno (1) en el lugar correspondiente, y llenamos el resto de las ubicaciones con ceros (0) Ejemplo:

Isomorfismo de grafos
Es una biyeccin f entre los conjuntos de sus vrtices que preserva la relacin de adyacencia. Es decir, cualquier par de vrtices u y v de G son adyacentes si y solo si lo son sus imgenes, f(u) y f(v), en H. Nota: Para que exista un isomorfismo entre los siguientes grafos se deben de cumplir las siguientes propiedades: # vrtices iguales, # aristas iguales, mismo grado y adyacencia. Ejemplo: Grafo G Grafo H #vrtices = 8 #aristas= 12

8.4 Conexin
Grafo conexo: Caminos

Se dice que un grafo no dirigido es conexo si hay un camino entre cada par de vrtices distintos del grafo.

Es una secuencia de aristas que comienzan en un vrtice del grafo y recorre ciertas aristas del grafo siempre conectando pares de vrtices adyacentes.

Nota: Un camino simple o circuito simple son cuando no contiene la misma arista mas de una vez.

Circuitos

Es un camino que comienza y termina en el mismo vrtice.

Vrtices de corte: Se les llama de esta forma cuando al eliminar este y todas
las aristas incidentes con el producen un subgrao original. Las vrtices de corte de G son b, c y e. Eliminar uno de estos vrtices (y sus aristas adyacentes) desconecta al grafo. Las aristas de corte son { a,b } y { c,e }. Eliminar cualquiera de estas aristas desconecta a G.

Conexin de Grafos Dirigidos


Se dice que un grafo dirigido es fuertemente conexo si hay un camino de a b y un camino de b a para cualquiera dos vrtices. G es fuertemente conexo porque hay un camino entre dos vrtices de este grafo dirigido. Por lo tanto G es tambin dbilmente conexo.

Se dice que un grafo dirigido es dbilmente conexo si hay un camino entre dos vrtices del grado no dirigido subyacente. El grafo H no es fuertemente conexo. No hay ningn camino dirigido de a b en este grafo. Sin embargo, H es dbilmente conexo, ya que hay un camino entre cado dos vrtices en el grafo no dirigido subyacente a H.

8.5 Caminos Eulerianos y Hamiltonianos


Caminos y Circuitos Eulerianos

Un camino Euleriano es un camino simple que contiene a todas las aristas G. Un circuito Euleriano de un grafo G es un circuito simple que contiene a todas la arista de G.

Ejemplo: De las siguientes figuras cuales contienen un circuito Euleriano,


cuales no lo contienen y cuales contienen un camino Euleriano?
El grafo H2 contiene un circuito Euleriano, a,g,c,b,g,e,d,f,a. Ni H1 ni H3 contienen un circuito Euleriano, El grafo H3 contiene un camino Euleriano, a saber c,a,b,c,d,b, pero H1 no.

TEOREMAS de los caminos y circuitos Eulerianos

Teorema 1

Un multgrafo conexo contiene un circuito euleriano si, y solo si, cada uno de sus vrtices tiene grado par.

Teorema 2

Un multgrafo conexo contiene un camino euleriano, pero no un circuito euleriano si, y solo si, tiene exactamente dos vrtices de grado impar.

Caminos y Circuitos Hamiltonianos

Se dice un camino X0, X1, , Xn-1, Xn del grafo G= (V,E) es un camino Hamiltoniano si V={X0, X1, , Xn-1, Xn} y Xi Xj 0 i< j n. Se dice que un circuito X0, X1, , Xn-1, Xn, X0 (con n>1) del grafo G= (V,E) es un circuito Hamiltoniano si X0, X1, , Xn-1, Xn es un camino Hamiltoniano.

Ejemplo: Identificar de los siguientes grafos cual contiene un circuito hamiltoniano o un camino hamiltonianos.
G1 contiene un circuito hamiltoneano: a,b,c,d,e,a. No hay circuitos hamiltonianos en G2, ya que cualquier circuito tienen que contener do veces la arista {a,b}, G2 contiene un camino hamiltoneano, que es a,b,c,d. G3 no contiene caminos ni circuitos hamiltonuano ya que debe pasar al menos dos ocasiones por la misma arista.

TEOREMAS de Dirac y de Ore

Teorema Dirac

Sea G un grafo simple con n vrtices con n3 tal que todos los vrtices de G tienen grado mayor o igual que n/2. Entonces G, contiene un circuito Hamiltoniano. Teorema Ore

Sea G un grafo simple con n vrtices con n3 tal que (u)+(v) n para cada par de vrtices no adyacentes u y v de G. Entonces, G contiene un circuito Hamiltoniano Un multgrafo conexo contiene un camino euleriano, pero no un circuito euleriano si, y solo si, tiene exactamente dos vrtices de grado impar.

8.6 Caminos de Longitud mnima


Caminos y Circuitos Eulerianos
Como encontrar el camino de longitud mnima entre dos vrtices en un grafo ponderado?

Grafos ponderados:
de las aristas.

Son los grafos en los que se asigna un numero a cada una

La longitud de un camino:
camino.

es la suma de los pesos de las aristas de ese

El algoritmo de Dijkstra, tambin llamado algoritmo de caminos mnimos, es

un algoritmo para la determinacin del camino ms corto dado un vrtice origen al resto de vrtices en un grafo con pesos en cada arista. Su nombre se refiere a Edsger Dijkstra, quien lo describi por primera vez en 1959.

Algoritmo:
Teniendo un grafo dirigido ponderado de N nodos no aislados, sea x el nodo inicial, un vector D de tamao N guardar al final del algoritmo las distancias desde x al resto de los nodos.
1.

Inicializar todas las distancias en D con un valor infinito relativo ya que son desconocidas al principio, exceptuando la de x que se debe colocar en 0 debido a que la distancia de x a x sera 0. Sea a = x (tomamos a como nodo actual). Recorremos todos los nodos adyacentes de a, excepto los nodos marcados, llamaremos a estos nodos no marcados vi. Si la distancia desde x hasta vi guardada en D es mayor que la distancia desde x hasta a, sumada a la distancia desde a hasta vi; esta se sustituye con la segunda nombrada, esto es: si (Di > Da + d(a, vi)) entonces Di = Da + d(a, vi) Marcamos como completo el nodo a. Tomamos como prximo nodo actual el de menor valor en D (puede hacerse almacenando los valores en una cola de prioridad) y volvemos al paso 3 mientras existan nodos no marcados.

2. 3. 4.

5. 6.

Una vez terminado al algoritmo, D estar completamente lleno.

TEOREMAS

Teorema 1

El algoritmo de determina la longitud mnima entre dos vrtices de un grafo ponderado simple, conexo y no dirigido.

Teorema 2

El algoritmo de realiza O(n2) operaciones (sumas y comparaciones) para determinar la longitud del camino mas corto entre dos vrtices de un grafo ponderado simple, conexo y no dirigido con n vrtices .

8.7 Grafos Planos


Se dice que le grafo es plano si puede dibujarse en el plano de manera que ningn par de sus aristas se corte. A ese dibujo se le llama representacin plana del grafo.
NOTA: un grafo sigue siendo plano aunque habitualmente se dibuje con cortes de arista, ya que cabe la posibilidad de que se pueda dibujar de manera diferente sin ningn corte.

Euler: Sea G un grafo simple conexo con E arista y vrtices. Sea r el numero de regiones de una representacin plana de G. Entonces, r=e-v+2.

Teoremas Euler

Teorema 1:

Sea G un grafo plano simple y conexo con aristas, vrtices y 3. Entonces; 36.

Teorema 2: Teorema 3:

Sea G un grafo plano simple y conexo. Entonces G tiene un vrtice de grado 5.

Si un grafo plano simple y conexo tiene aristas y vrtices con 3 y no contiene circuitos de longitud 3, entonces 24.

Teoremas KURATOWSKI:

Teorema :

Un grafo es plano si, y solo si, no contiene ningn subgrafo homeomorfo a 3,3 o a 5.

You might also like