Está en la página 1de 94

TEORIA DE GRAFOS

Estructuras Discretas
Ing. Jenny Paredes Aguilar
INTRODUCCION
 Teoria de grafos se usa en numerosos problemas
cuantificables, en las organizaciones, intervienen
una serie de elementos entre los que se establecen
unas relaciones:
 por ejemplo, los problemas relacionados con
posibilidades de comunicación (redes de
comunicación y de transporte), relaciones de
orden entre actividades (planificación de
proyectos mediante PERT) o estructuras de
producto complejas (gestión de inventarios
mediante MRP).
 Los grafos son una herramienta que permite
modelizar relaciones de esta naturaleza, de modo que
se puedan resolver problemas asociados a esas
circunstancias, frecuentemente de forma menos
costosa que utilizando otras técnicas como la
programación lineal.
INTRODUCCIÓN
Grafos: modelos matemáticos de situaciones reales
Ejemplos:
 Mapa de carreteras, plano de metro, red de PCs,

 plano de un circuito eléctrico, árboles


genealógicos, etc.

Aplicaciones:
 Compiladores y traductores, Redes, Planificación,
etc.
 Origen: 1736 (Los Puentes de Könisberg. Euler)
DEFINICIÓN
 Un grafo G se define como un conjunto E de
pares no ordenados de elementos distintos
y otro conjunto de elementos V.
 El conjunto V es el conjunto de vértices del
grafo, se denota por V(G).
 El conjunto E es el conjunto de aristas del
grafo, se denota por E(G).
G=(V, E)
V={v1, v2,..., vn}
E={vivj, vn,vm,...}
EJEMPLO DE UN GRAFO
 G = (V, E)

V = {Co, M, G, J, A}
E = {(Co, G), (M, G), (G, J), (G, A),(M,J)}
DEFINICIÓN
 Dos vértices vi, vj son adyacentes si son los
extremos de una arista, es decir, si el par de
 vértices V es un elemento de E.

 #V es el número de vértices.
 #E es el número de aristas.

 Un grafo es finito si #V es finito.


TIPOS DE GRAFOS
 Multigrafo.- es un grafo con varias aristas entre
dos vértices.
TIPOS DE GRAFOS
 Pseudografo: tiene aristas cuyos extremos
coinciden (origen y fin en el mismo vértice), tales
aristas se denominan lazos.
TIPOS DE GRAFOS
 Digrafos: Cuando E está formado por pares
ordenados (es decir, importa cual de los 2 vértices
del par se coloca primero) de elementos de V, sus
elementos son llamados arcos y se habla de grafo
dirigido o dígrafo: D = (V, E). (grafo orientado).
TOPOLOGIA DE GRAFOS
Grafos Orientados.- Un lado (a,b) definido por los
vértices a y b es diferente al lado (b,a). Es decir el
orden de los vértices importa en la definición del lado
->Grafos Dirigidos.
 El Grado de um vertice.- se define como numero
total de arcos que inciden em dicho vertice. Y para un
grafo orientado se define:

 Semigrado interior de un vertice .- es el numero


de arcos con destino en un vertice , un vertice con
semigrado interior cero puede ser un origen del grafo.

 Semigrado Exterior de un vertice .-es el numero


de arcos con origen en el vertice. Un vertice con
semigrado exterior cero puede representar en
determinadas situaciones un destino del grafo.
TOPOLOGIA DE GRAFOS
TOPOLOGIA DE GRAFOS
Grafos no orientados
Un lado (a,b) definido por los vértices a y b es
idéntico al lado (b,a)-> Grafos No dirigidos
TOPOLOGIA DE GRAFOS
 Lados Orientados vs
No-Orientados
CUANTIFICACIÓN DE UN LADO
Se pueden asignar valores a los lados
representando así atributos cuantitativos como:
 Intensidad de la relación.

 Capacidad informativa del lado.

 Volúmenes de flujo o tráfico a través del lado.

 Distancias entre nodos.

 Probabilidades de pasar información.

 Frecuencia de interacción.

 Costos asociados.

 Heurísticas
CONCEPTOS
 Isomorfismo: Dos grafos son isomorfos, si cada
par de vértices adyacentes, corresponde con un
par de vértices adyacentes del otro.
Sean G=(V, E) y G’=(V’, E’) y sea f: V->V’ una
biyección tal que uv ∈ E, si y solo si
f(u)f(v) ∈ E’, esta biyección se denomina
isomorfismo de G a G’.
Dos grafos isomorfos pueden ser representados
por figuras aparentemente diferentes.
CONCEPTOS
 Isomorfismo:
CONCEPTOS
 Orden del grafo G (número de vértices).
 Grado de un vértice (número de lados a los que
está conectado el vértice). Es el número de aristas
que parten de él. El grado de un vértice se
conserva por isomorfismo. Dado un vértice u de
G(V), su grado es gr(u).
 En dígrafos se habla de:
Grado entrante (número de lados que llegan al vértice)
Grado saliente (número de lados que salen del vértice)
La suma del grado entrante más el saliente da el
grado total del vértice.
CONCEPTOS
 Subgrafo:
Sea G=(V,E)un grafo , un subgrafo de G es
cualquier grafo H=(V(H),E(H)), de modo
que V(H) está contenido en V y E(H) está
contenido en E.
Un subgrafo se obtiene eliminando alguna(s)
arista(s) y/o vértice(s). Si se suprime um vértice,
se suprimen todas las aristas que tienen por
origen o fin dicho vértice.
CONCEPTOS
 Grafo regular (todos los vértices son del mismo
grado) si dicho grado es k, el grafo se denominará
k-regular. El grafo G anterior es un grafo 3-
regular. La regularidad de grafos se
conserva por isomorfismo.
 Grafo simple (no contiene ciclos y no hay más
de 1 lado entre un par de vértices dado).
 Grafo completo (todos los vértices están
conectados entre sí). Cada par de vértices son los
extremos de una arista. Dos grafos completos con
el mismo número de vértices son isomorfos
CONCEPTOS
 Un camino
En un grafo G es una sucesión finita de
vértices y aristas alternos, donde cada
arista
tiene por extremos los vértices adyacentes.
(v0, v0v1, v1, v1v2,..., vn-1, vn-1vn, vn)
A v0 y vn se les denomina extremos del camino.
 Longitud del camino

Es el número de aristas que contiene. La


distancia entre dos nodos es la longituddel
camino más corto existente entre ellos
CONCEPTOS
 Camino cerrado
Los extremos coinciden, v0=vn.
En un grafo (no un multigrafo), un camino puede
expresarse por la sucesión de vértices
(v0, v1,..., vn-1, vn)
 Camino simple:
En la sucesión de vértices no hay ninguno repetido.
 Un ciclo
Es un camino cerrado donde el primero y último
vértice son el mismo (camino simple cerrado). En un
multigrafo se considera ciclo a aquellos caminos
cerrados que no repiten aristas.
CONCEPTOS
 Un circuito
Es un camino cerrado que no repite aristas.

 Un grafo es conexo:
Grafo en el cual es posible desde cualquier vértice
llegar a cualquier otro vértice presente en el
grafo (aunque para ello haya que pasar por otros
vértices), en caso contrario
diremos que es desconexo.
REPRESENTACIÓN DE GRAFOS
 La representación gráfica, adecuada para la
interpretación y resolución de problemas en grafos
pequeños o medianos.
 La representación mediante matriz asociada o de
adyacentes, especialmente útil para el tratamiento
de problemas de grafos con programas
informáticos.
 Otras representaciones, como el diccionario de
grafo, buscan definir el grafo de forma más
compacta, en términos de posiciones de memoria.
Pueden ser útiles para representar grafos de gran
tamaño.
REPRESENTACIÓN DE GRAFOS
 Definición 1. Dado un grafo G = (V, E) con n
vértices {v1, ..., vn} su matriz de adyacencia es
la matriz de orden n×n, A(G)=(aij) donde aij es el
número de aristas que unen los vértices vi y vj.
REPRESENTACIÓN DE GRAFOS
REPRESENTACIÓN DE GRAFOS
 La matriz de adyacencia de un grafo es
simétrica. Si un vértice es aislado entonces la
correspondiente fila (columna) esta compuesta
sólo por ceros.
 Si el grafo es simple entonces la matriz de
adyacencia contiene solo ceros y unos
(matriz binaria) y la diagonal esta compuesta
sólo por ceros.
REPRESENTACIÓN DE GRAFOS
 Definición 2 Dado un grafo simple G = (V, E)
con n=|V| vértices {v1, ..., vn} y m=|E| aristas
{e1, ..., em}, su matriz de incidencia es la
matriz de orden nxm, B(G)=(bij), donde bij=1 si
vi es incidente con ej y bij=0 en caso contrario.
REPRESENTACIÓN DE GRAFOS
 La matriz de incidencia sólo contiene ceros y unos
(matriz binaria). Como cada arista
 incide exactamente en dos vértices, cada columna
tiene exactamente dos unos.
 El número de unos que aparece en cada fila es
igual al grado del vértice correspondiente.
 Una fila compuesta sólo por ceros corresponde a
un vértice aislado.
REPRESENTACIÓN DE GRAFOS
 Definición 1.4.5. Dado un grafo dirigido o
dígrafo D = (V, E) con n vértices {v1, ..., vn}
su matriz de adyacencia es la matriz de
orden n×n, A(D)=(aij) donde aij es el número
de arcos que tienen a vi como extremo inicial y a
vj como extremo final.
REPRESENTACIÓN DE GRAFOS
 La matriz de adyacencia de un dígrafo no es
simétrica. Es una matriz binaria.
 El número de unos que aparecen en una fila es
igual al grado de salida del correspondiente
vértice
 número de unos que aparecen en una
determinada columna es igual al grado de
entrada del correspondiente vértice
REPRESENTACIÓN DE GRAFOS
 Diccionario del grafo

 Se enumeran los destinos de los arcos que parten


de cada nodo. Diccionario inverso- enumeran los
origenes de los arcos que inciden en cada nodo
REPRESENTACIÓN DE GRAFOS
 La Lista de arcos, proxima a la definicion formal
de un grafo expresada mas arriba, permite una
representacion compacta delgrafo , la lista de
arcos para el grafo queda:
REPRESENTACIÓN DE GRAFOS
 Matriz de Vértices.- Se utiliza cuando se desea
guardar la posición (x, y) en el plano cartesiano
de cada vértice.
EJEMPLO
EJEMPLO
 Puntos de corte:
 􀂙 Vértices que si se quitan desconectan el

 grafo. En el ejemplo el vértice a.

 Lados de corte:

 􀂙 Un lado que si se quita desconecta el

 grafo. En el ejemplo el lado (d,a).


PUNTOS DE CORTE
LADOS DE CORTE
REPRESENTACION DE GRAFOS :LISTAS DE
ADYACENCIA
LISTAS DE ADYACENCIA
LISTA DE ADYACENCIA
RECORRIDOS SOBRE GRAFOS
 Recorrer un grafo consiste en visitar (pasar) por
cada uno de los nodos que son alcanzables a
partir de un nodo de inicio dado.
 El recorrido se puede hacer de 2

maneras: DFS o BFS.


DFS (DEPTH FIRST SEARCH)
 Literalmente “Búsqueda del Primero en
Profundidad”
Consiste en: A partir de un vértice inicial dado,
determinar sus vértices adyacentes*, de esos
vértices adyacentes elegir uno que no haya
sido visitado y a partir de allí iniciar nuevamente
el recorrido DFS.
Como puede verse se trata de una definición
recursiva.
EJEMPLO
EJEMPLO
EJEMPLO
EJEMPLO
BFS (BREATH FIRST SEARCH)
Literalmente “Búsqueda del Primero en
Anchura”.
La diferencia con el recorrido DFS consiste en
que: en el recorrido DFS no se visitan
inmediatamente todos los nodos adyacentes a
un nodo, en el BFS por el contrario si se hace
esto. Luego de visitar todos los adyacentes de
un vértice dado, entonces se elige uno de ellos
y se continúa de la misma forma.
EJEMPLO
GRAFO COMPLEMENTARIO
 El complementario G’ de un grafo G=(V,A)
tiene:
 Los mismos vértices que G
 Si {u,v}  G, entonces {u,v}  G’
 Si {u,v}  G, entonces {u,v}  G’

 Una forma de construirlo:


 Dibujar el corresp. grafo completo Kn, con n=|V|
 Eliminar de Kn las aristas {u,v}  G
GRAFO COMPLEMENTARIO
 Ejemplo : Complementario de

1º Representar 2º Marcar 3º
K6 las aristas Eliminarlas
de G
GRAFOS BIPARTITOS
 Definición: Sea G=(V,A). Se dice que G es
bipartito si existen V1, V2 tales que:
1. V1  V2= V
2. V1 ∩ V2= Ø
3. Para toda {vi,vj} A se cumple vi  V1, vj  V2
GRAFOS BIPARTITOS
 Ejemplos:

¿Es bipartito ? Sí; V1 = {2,5},


V2={0,1,3,4,6,7}
aquellos grafos que se pueden colorear en
dos colores grafos bipartitos
GRAFOS BIPARTITOS
 Idea de cómo pintarlo:
 Empezar por un vértice cualquiera, de color C1
 Dibujar todos los adyacentes de color C2
 Seguir este proceso hasta haber terminado

Parece que No
es bipartito,
pero …
¿cómo estar
seguros?
GRAFOS BIPARTITOS
 Teorema: Una grafo es bipartito si y sólo si no
tiene ciclos de longitud impar

 Ejemplo anterior: No bipartito; contiene ciclos


de longitud impar (en la figura aparece marcado
uno de long. 3)
GRAFOS BIPARTITOS
GRAFOS BIPARTITOS COMPLETOS
RECORRIDOS EULERIANOS
 Ciudad de Könisberg, en XVIII:

 Pregunta: ¿sería posible dar un paseo


pasando por cada uno de los siete puentes,
sin repetir ninguno, comenzando y
acabando en el mismo punto?
RECORRIDOS EULERIANOS
 Representación propuesta por Leonard Euler en
1736:

 ¿Existe un circuito que pase por todas las aristas


una sola vez?
RECORRIDOS EULERIANOS

 A estos circuitos se les llama circuitos eulerianos, y


a los grafos que los contienen grafos eulerianos
 Grafo o multigrafo euleriano: admite un recorrido
que pasa por todas las aristas una sola vez, empezando
y terminando en el mismo vértice. Los vértices sí se
pueden repetir
 Ejemplo: Grafo euleriano.

Circuito euleariano: a,b,c,d,b,f,d,e,a,c,e,f,a


RECORRIDOS EULERIANOS
 Ejemplo: Grafo euleriano.

Circuito euleariano: a,b,c,d,b,f,d,e,a,c,e,f,a


 Ejemplo: El siguiente grafo es euleriano

Encuentra un circuito euleriano:


RECORRIDOS EULERIANOS
 ¿Cómo saber si un grafo (o multigrafo) es
euleriano?
 Teorema de Euler: Un grafo conexo es
euleriano  no tiene vértices de grado impar
 Ejemplo:

A tiene grado 3el grafo de los puentes no


es euleriano.
RECORRIDOS EULERIANOS
 Si el grafo/multigrafo tiene sólo dos vértices de
grado impar se llama semi-euleriano. Se puede
convertir en euleriano añadiéndole una arista:

Semi-euleriano Euleriano

(__,__ grado
impar)
RECORRIDOS HAMILTONIANOS
 Un grafo se dice hamiltoniano si existe un ciclo
que recorre todos sus vértices. Al ciclo se le llama
ciclo hamiltoniano
 Ejemplos:
RECORRIDOS HAMILTONIANOS
 No existe un método sencillo para saber si un
grafo es no hamiltoniano  problema muy
complejo
 Ejemplo: Este grafo es hamiltoniano

 ...pero este no ¡difícil de probar!


PROBLEMA DEL VENDEDOR VIAJERO

En un grafo G con pesos se pretende encontrar un


ciclo que pase por todos los vértices de forma que la
suma de los pesos de las aristas escogidas para formar
el ciclo sea lo menor posible.

65
RUTA MAS CORTA
Un grafo con pesos es un grafo en el cual se asignan
valores a las aristas y que la longitud de un camino en
un grafo con pesos es la suma de los pesos de las
aristas en el camino. Con frecuencia se desea
determinar la ruta mas corta entre dos vértices dados.
Dijkstra escribió el algoritmo que resuelve este
problema.

66
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
EJEMPLO ALGORITMO DE DIJKSTRA
MODELIZACION MEDIANTE GRAFOS
 Mediante la teoria de grafos pueden
representarse gran numero de situaciones que
supongan relaciones entre diversos elementos.

 Ejemplos:
POSIBILIDADES DE COMUNICACION

 Mediante grafos de este tipo pueden resolver problemas de


conectividad (arbol parcial minimo ) o problemas de
caminos. Donde se trata de encontrar camino de minima
distancia.
REDES DE TRANSPORTE

 Una red de transporte devera tener uno o varios vertices


origen y uno o varios vertices de destino y el resto de
vertices seran vertices de transbordo.
REDES DE TRANSPORTE
RELACIONES DE ORDEN
 Se puede representar mediante un grafo la relaciones
de sucesion entre las actividades de un proyecto.

 El grafico muestra la secuencia de actividades para


realizar una tortilla de patatas.

 Es usual representar estas situaciones en grafos en


los que las actividades puedan estar representadas
por arcos (PERT) o por nodos (ROY).
RELACIONES DE ORDEN
RELACIONES DE ORDEN

 Estos grafos se emplean frecuentemente para gestion de


proyectos , podemos determinar otros parametros como:

 Tiempo en que puede finalizarse el proyecto


 Holgura de las actividades
 Camino Critico (conjunto de actividades de holgura cero)
ESTRUCTURA DE UN PRODUCTO

 Este tipo de grafos se utiliza en procedimientos de la


 prevision de la demanda dependiente , en el sistema
de gestion de inventarios MRP( Material Requeriment
Planning ).
PROBELAMAS DE CAMINOS
 Problemas de Caminos Minimos .-
Algoritmos que permiten establecer la conexion
entre todos los nodos del grafo a minimo coste
(Algoritmo de Prim).
Encontrar el camino mas corto entre dos nodos
del grafo (Algoritmo de Dijkstra y de Bellman –
Kalaba, Bellman-Ford).

 Problemas de Flujo Total Maximo.-


Trata de determinar cual es el flujo maximo que
puede circular por la red de transporte
(Algoritmo de Ford –FulKerson ).

También podría gustarte