Está en la página 1de 41

I. Teoría de grafos.

¿Qué es un grafo?
Es un conjunto de (Nodos o Vértices) unidos por
líneas (Arcos o Aristas).
¿Por qué se estudian los grafos?
Dado un escenario donde ciertos objetos se
relacionan se puede modelar un grafo y luego
aplicar algoritmos para resolver distintos
problemas.
SE APLICAN EN:
1. Ingeniería en sistemas computacionales.
2. Modelado de redes.
3. Química, etc.
¿Dónde de aplican los grafos?

1.-Conexiones de vuelo de una aerolínea.


2.-Cicuitos electrónicos.
3.-Carreteras que unen ciudades.
4.-Redes de computadoras, etc.
¿Cómo se compone un grafo?
G=(V,E)
V= es el conjunto de vértices o nodos representan
los objetos.

E=es el conjunto de arcos o aristas representan las


relaciones de los objetos.
V=1,4,9,7,5,1
E=(1,4)(4,9)(9,7)(7,5)(5,1)
(4,1)(1,5)(5,7)(7,9)(9,4).
Grado de un grafo.
Es el numero de arcos que tiene un vértice.

C=Grado 3 E=Grado 4
D=Grado 3 H=Grado 3
F=Grado 3
Grado de el grafo =numero de arcos *2
8*2=16
Tipos de grafos
Grafo simple. o simplemente grafo es aquel que acepta una sola una
arista uniendo dos vértices cualesquiera. Esto es equivalente a decir
que una arista cualquiera es la única que une dos vértices específicos.

Multigrafo. o pseudografo son grafos que aceptan más de una arista


entre dos vértices. Estas aristas se llaman múltiples o lazos.
Tipos de grafos
Bipartido un grafo bipartido es cualquier grafo, cuyos vértices pueden
ser divididos en dos conjuntos, tal que no haya aristas entre los
vértices del mismo conjunto. Se ve que un grafo es bipartito si no hay
ciclos de longitud impar.

Acíclico Es aquel grafo que no contiene ningún ciclo simple.


Tipos de grafos
Cíclico Un grafo es cíclico si contiene algún ciclo simple.

Es un camino que inicia y termina en el


mismo nodo.
No se recorre dos veces por el mismo arista.

Completo Un grafo es completo si cada vértice tiene un grado


igual a n-1, donde n es el número de vértice que compone el
grafo. Además es un grafo simple en el que cada vértice es
adyacente a cualquier todo otro vértice.
Tipos de grafos
Conexo: Decimos que es un grafo conexo, si es posible formar un
camino desde cualquier vértice a cualquier otro en el grafo.

Denso: grafo en el que el número de aristas está cercano al


número de máximo de aristas. Lo opuesto, un grafo con solo
algunas aristas, es un grafo disperso.
Tipos de grafos.
Dirigido: Es un conjunto de vértices V y un conjunto de aristas E tal que
para cada arista perteneciente al conjunto de aristas E se asocia con
dos vértices en forma ordenada.

No dirigido: Son aquellos grafos en los cuales los lados no están


orientados (no son flechas). Cada lado se representa entre
paréntesis, separando sus vértices por comas
Grafos ponderados
Un grafo ponderado es aquel que asocia un valor o peso a cada arista
en el grafo. El peso de un camino en un grafo con pesos es la suma de
los pesos de todas las aristas atravesadas.
Trayectorias en grafos
Camino/recorrido
Un camino p desde u hasta v en el grafo G es una secuencia finita de
vértices que comienza en u y termina en v.

Longitud del camino


El numero de arcos que lo forman.

Camino simple
Todos los nodos que lo forman son distintos (no se repiten nodos.

Camino entre 4 y 7
T1={4,6,9,7}
Longitud=3
Caminos y ciclos de Euler.
Camino de Euler.
Recorre todos los arcos sin repetirlos.
Los vértices se pueden repetir.

Ciclo de Euler.
Recorre todos los arcos sin repetirlos.
Los vértices se pueden repetir.
Inicia y termina en el mismo vértice.

Grafo semieuleriano
Es aquel grafo conexo que admite un camino de Euler.

Grafo Euleriano
Es aquel grafo conexo que admite un circuito de Euler.
Teoremas de Euler
Teorema 1 (Grafo Euleriano):
Si G es un grafo conexo y todos sus vértices son
grado par entonces existe un circuito de Euler en G.

Teorema 2 (Grafo semieuleriano):


Si G es grafo conexo y tiene exactamente 2 vértices
de grado impar y el resto grado par entonces existe
un recorrido de Euler en G.
Eulizar un grafo

Se busca minimizar la longitud total de arcos


utilizados.

Procedimiento:
Localizar los vértices de grado impar.

Añadir un arco a c/u de los vértices para que tengan


grado par.
Caminos y ciclos de Hamilton
Camino de Hamilton:
Recorre todos los vértices sin repetirlos.

Ciclo de Hamilton:
Inicia y termina en el mismo vértice.
Recorre todos los vértices sin repetirlos (excepto el
vértice del cual parte y al cual llega).

Grafo Hamiltoniano:
Es aquel grafo que admite un circuito de Hamilton.
Relaciones de un digrafo
A={1,2,3,4}
R={(1,2),(2,2),(2,3),(3,4),(4,3)}
Matriz de adyacencia [A] (grafo no
dirigido)
Dado un grafo G=(V,E)
Está representado por una matriz de V (vértices) por
V (vértices).
1=si hay arco.
Matriz de adyacencia [A] (grafo
dirigido)
Matriz de incidencia
Una matriz de incidencia representa las relaciones binarias entre dos
elementos, en nuestro caso entre un vértice y una arista del grafo.

Para construir la matriz de incidencia a partir de un grafo debemos


realizar una matriz de n x a donde n es el nº de nodos o vértices y a es
el nº de aristas.

En esta matriz las columnas representan las aristas y las filas los
vértices.
0 si vértice i no es incidente con arista j
1 si vértice i es incidente con arista j
Matriz de incidencia (digrafo)
Matriz de vértices
Dado un grafo G=(V,E)
Está representado por una matriz de arcos A *
vértices V.
Está formada por los arcos del grafo representado.
Matriz de distancia [D]
Dado un grafo G=(V,E)
Está representado por una matriz de vértices (V) *
vértices (V)
Almacena las distancias de un vértice a otro.
Algoritmos
Algoritmos
Existen algunas maneras útiles en las cuales
se pueden ordenar sistemáticamente los
nodos de un árbol. Los más importantes
son: preorden, post-orden y en-orden.
Estos tienen tres tipos de actividades comunes:
1. Visitar el nodo raíz
2. Recorrer el subárbol izquierdo
3. Recorrer el subárbol derecho
Preorden: (raíz, izquierdo, derecho). Para
recorrer un árbol binario no vacío en preorden,
hay que realizar las siguientes operaciones
recursivamente en cada nodo, comenzando
con el nodo de raíz:
• Visite la raíz
• Atraviese el sub-árbol izquierdo
• Atraviese el sub-árbol derecho
Inorden: (izquierdo, raíz, derecho). Para
recorrer un árbol binario no vacío en inorden
(simétrico), hay que realizar las siguientes
operaciones recursivamente en cada nodo:
• Atraviese el sub-árbol izquierdo
• Visite la raíz
• Atraviese el sub-árbol derecho
Postorden: (izquierdo, derecho, raíz). Para
recorrer un árbol binario no vacío en
postorden, hay que realizar las siguientes
operaciones recursivamente en cada nodo:
• Atraviese el sub-árbol izquierdo
• Atraviese el sub-árbol derecho
• Visite la raíz
Algoritmo de Floyd Warshall
Búsqueda en anchura
La búsqueda en anchura es otro
procedimiento para visitar sistemáticamente
todos los vértices de un grafo. Es adecuado
especialmente para resolver problemas de
optimización, en los que se deba elegir la
mejor solución entre varias posibles.
Búsqueda en anchura
Búsqueda en anchura: Es equivalente a
recorrer un árbol por niveles. Dado un nodo v,
se visitan primero todos los nodos adyacentes
a v, luego todos los que están a distancia 2 (y
no visitados), a distancia 3, y así
sucesivamente hasta recorrer todos los nodos.
Búsqueda en anchura
Consta de tres elementos:
• Contador (n).
• Vector de naturales (R) para “marcar” los
vértices ya visitados y almacenar el orden de
recorrido.
• Cola (Q) para gestionar los vértices no
visitados.
Búsqueda en profundidad
En la búsqueda en profundidad se avanza de
vértice en vértice, marcando cada vértice
visitado. La búsqueda siempre avanza hacia
un vértice no marcado, internándose en el
grafo sin repetir ningún vértice. Cuando se
alcanza un vértice cuyos vecinos han sido
marcados, se retrocede al anterior vértice
visitado y se avanza desde éste.
Búsqueda en profundidad

También podría gustarte