Anda di halaman 1dari 30

Algoritmos de Grafos

Estructura de Datos y Algoritmos II

EDAII- Profa. Karen Sáenz 1


Grafos
• Un grafo es un conjunto de puntos llamados vértices, en el cual
algunos vértices pueden estar unidos por líneas llamadas aristas.

EDAII- Profa. Karen Sáenz 2


Grafos
• Un grafo es una entidad matemática introducida por Leonhard Euler
en 1736 con el trabajo de los 7 puentes de Konigsberg.

• El problema fue formulado en el siglo XVIII y consistía en encontrar un


recorrido para cruzar a pie toda la ciudad, pasando sólo una vez por
cada uno de los puentes, y regresando al mismo punto de inicio
EDAII- Profa. Karen Sáenz 3
Permiten modelar problemas que se definen mediante las
conexiones entre objetos o entidades

EDAII- Profa. Karen Sáenz 4


Grafo

EDAII- Profa. Karen Sáenz 5


Grafos
• Dependiendo de la importancia del orden de los vértices se
tienen:
• Grafos Dirigidos (Digrafos): aristas u arcos con dirección

• No Dirigidos: Aristas no orientadas

EDAII- Profa. Karen Sáenz 6


Grafos Dirigidos

EDAII- Profa. Karen Sáenz 7


Grafo NoDirigido

EDAII- Profa. Karen Sáenz 8


Otras Definiciones

EDAII- Profa. Karen Sáenz 9


Aristas Incidentes

EDAII- Profa. Karen Sáenz 10


Adyacencia
• Dos vértices son adyacentes si son distintos y existe una arista que va
de uno a otro.

• Dos aristas son adyacentes, si siendo distintas, comparten un extremo


común.

EDAII- Profa. Karen Sáenz 11


Grado
• Grafos no dirigidos
• Grado de un vértice: Número de aristas que lo contienen.
• Grafos dirigidos
• Grado de salida de un vértice v:
• Número de arcos cuyo vértice inicial es v.
• Grado de entrada de un vértice v:
• Número de arcos cuyo vértice final es v.

EDAII- Profa. Karen Sáenz 12


Grado
• Si todos los vértices tienen el mismo grado, se conoce como grafo
regular. En un grafo dirigido

EDAII- Profa. Karen Sáenz 13


Mas Definiciones
• Grafo etiquetado. Un grafo se dice que está etiquetado, si cada arista
tiene asociada una etiqueta o valor de cierto tipo.
• Grafo ponderado o con pesos: Es un grafo etiquetado con valores
numéricos.

EDAII- Profa. Karen Sáenz 14


Mas Definiciones
• Camino: En un grafo dirigido un camino es una secuencia finita de
aristas tal que el extremo final de cada arista coincide con el extremo
inicial del siguiente. Al camino se le llama simple cuando no utiliza
dos veces la misma arista, en caso contrario se llama camino
compuesto.
• Longitud del camino: Es el número de aristas del camino y está dado
por el número de vértices menos uno.
• Circuito o ciclo: Es un camino en el que el vértice final coincide con el
inicial.

EDAII- Profa. Karen Sáenz 15


EDAII- Profa. Karen Sáenz 16
Grafo conexo
• Grafo conexo. En matemáticas y ciencias de la computación es aquel
grafo no dirigido que entre cualquier par de sus vértices existe un
Camino (Grafo) que los une.

EDAII- Profa. Karen Sáenz 17


Representación de los Grafos
• Matriz de Adyacencia
• Lista de adyacencia
• Matriz de Incidencia

EDAII- Profa. Karen Sáenz 18


Matriz de Adyacencia

EDAII- Profa. Karen Sáenz 19


Matriz de Adyacencia

EDAII- Profa. Karen Sáenz 20


Lista de adyacencia

EDAII- Profa. Karen Sáenz 21


Lista de adyacencia

EDAII- Profa. Karen Sáenz 22


Matriz de Incidencia

EDAII- Profa. Karen Sáenz 23


Algoritmos de Grafos
• Algoritmos importantes para la exploración de grafos
• Realizan un recorrido para visitar de forma eficiente cada
vértice y arista:
• Búsqueda por expansión, también llamado búsqueda primero en
amplitud o anchura
• Búsqueda por profundidad, también llamado búsqueda primero en
profundidad.

EDAII- Profa. Karen Sáenz 24


Búsqueda primero en anchura
(Breadth-first search- BFS)
• Se avanza por niveles, primero se exploran todos los nodos del primer
nivel, luego los del segundo, posteriormente los del tercero y así
sucesivamente hasta encontrar el estado meta. Es decir llega a los
nodos de distancia k, solo luego de haber llegado a los nodos k-1.

• En el algoritmo para un grafo G=(V,A) y un vértice s de inicio, se


exploran sistemáticamente las aristas de G para descubrir cada
vértice que es alcanzable desde s, además calcula la menor distancia
(menor numero de arcos ) de s a cada vértice alcanzable.

EDAII- Profa. Karen Sáenz 25


Búsqueda primero en anchura
(Breadth-first search- BFS)

EDAII- Profa. Karen Sáenz 26


Búsqueda primero en anchura (Breadth-first
search- BFS)

EDAII- Profa. Karen Sáenz 27


BFS

EDAII- Profa. Karen Sáenz 28


• Ejemplo en clase

EDAII- Profa. Karen Sáenz 29


BFS(G,s)
Inicio
Para cada vértice
u.color=White
u.d = 9999
u. p=NULL
Fin Para
s.color=Gris
s.d=0
s.p=NULL
Encolar(,)
Mientras
u=Desencolar()
Para cada vértice que es adyacente al vértice u
Si v.color== Blanco
v.color=Gris
v.d=u.d+1
u.p=u
Encolar (,)
Fin Si
Fin Para
u.color=Negro
Fin Mientras
Fin EDAII- Profa. Karen Sáenz 30

Anda mungkin juga menyukai