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