Académique Documents
Professionnel Documents
Culture Documents
Conceptos
Grafo: Es un conjunto de nodos y arcos o de vrtices y aristas. Nodo o Vrtice: Elemento que almacena la informacin de un grafo. Arco o Arista: Liga que une a dos nodos del grafo. Nodo adyacente: Dos nodos son adyacentes si hay una arista que los conecte. Camino (trayectoria): Secuencia nodos para de ir de un vrtice X a un vrtice Y. Arista Paralela: Dos aristas son paralelas si comparten los mismos vrtices. Arista Incidente o Lazo: Es aquella arista que se dirige al vrtice desde el cual parti. Vrtice Aislado: Es aquel vrtice en el cual no incide ninguna arista. Ciclo: Es el camino donde el vrtice de inicio y el de terminacin son el mismo y no hay aristas repetidas. Camino (trayectoria) Simple: Camino donde el vrtice de inicio es diferente al vrtice de terminacin y no se repite el paso por ningn vrtice. Grado de un vrtice: Cantidad de aristas que inciden sobre ese vrtice. Grado de un grafo: Es el mximo grado que pueden tener sus vrtices, el cual es la cantidad de aristas que inciden en el vrtice. Se representa con la letra delta minscula:
Tipos de Grafos
Grafo simple: Es un grafo sin lazos ni aristas paralelas. Grafo no dirigido: En un grafo no dirigido las aristas no tienen una direccin particular, por lo que si el vrtice A y el vrtice B son adyacentes, es igual ir de A hacia B que de B hacia A. Grafo dirigido (Digrafo): En un dgrafo las aristas tienen una direccin asociada, la primer arista es el origen y la segunda (quien es apuntada por la flecha) es considerada el destino. Grafo completo: Es en el cual existe un camino desde cualquier vrtice hacia todos los dems vrtices del grafo. Grafo Ponderado: Es el grafo en el cual cada arista tiene asignado un peso o valor real no negativo.
Ejemplo 1:
v1 Aa3 v4 v3 Aa1 Aa2 Aa5 Conjunto de Vrtices: V={v1, v2, v3, v4} v2 Aa4 Aa4 v1 Aa2 v2 v1 y v2 son nodos Conjunto de Aristas:
Adyacentes
Este grafo es un grafo Simple Este grafo es un grafo no dirigido Caminos para recorrer de v1 hacia v4 en este grafo: - v1, v2, v4 - v1, v4 - v1, v3, v4 - v1, v2, v1, v4
Ejemplo 2:
v1 Aa2 v2 Este grafo es un grafo dirigido ya que sus aristas estn direccionadas.
Aa1 v4
Aa3
Ejemplo 3:
Aa3 v1 Aa1 Aa2 v4 v3 Aa4 a1 y a2 son aristas paralelas La arista a4 es un lazo El vrtice v4 es un vrtice aislado
v2
Ejemplo 4:
Ciclos: - v1, v2, v3, v4, v5, v1 - v5, v1, v2, v4, v5 - v3, v2, v4, v3 - v1, v2, v3, v4, v2, v1 (no es ciclo ya que se repite la arista a4) Caminos Simples: - v1, v2, v3 - v1, v5, v4, v2, v3 - v1, v2, v4, v3 - v1, v2, v4, v5, v1, v2, v3 (no es un camino simple ya que se repiten los vrtices v1 y v2
v3 Aa3 v4
v1 Aa2 Aa6 v5
Ejemplo 5:
v3 v2 v4 Este grafo es un grafo Completo El grado del grafo: (grafo)= 4. El grado del vrtice v5: (v5)= 4.
v1
v5
Ejemplo 6:
Chihuahua A820 km Coahuila A700 km Durango El grafo es un grafo ponderado ya que cada arista tiene asignado un valor en este caso son kilmetros de distancia.
A550 km
A
A D
B 0 1 1 1 0
C 1 1 0 0 0
D 1 1 0 0 1
E 1 0 0 1 0
A B
0 0 1 1 1
C E
C D E
Matriz de Adyacencias
A
A D
B 0 1 1 1 0
C 0 0 0 0 0
D 1 0 0 0 1
E 1 0 0 0 0
A B
0 0 1 0 0
C E
C D E
Nodo
Apuntador al siguiente nodo adyacente Ejemplos: #1.- Grafo no dirigido Lista de Adyacencias
A B C D E
C C A A A
D D B B D
C E
Lista de Adyacencias
A
A D
B
C E B
C D E
A B D
Nodo
Apuntador al arco donde el nodo es origen Apuntador al arco donde el nodo es destino
Ejemplo:
C E
A B C D E
A-D
A-E
C-B
Ejemplo:
3 2 4
Algoritmo de la Bsqueda en Profundidad explicada con el grafo anterior: 1. El recorrido comenzara con el nodo 1 (N1). 2. Insertar N1 en la pila de nodos sin visitar. Pila de nodos sin visitar Lista de nodos Visitados Inicio
TOPE
N1
3. Sale N1 de la pila, se visita y se coloca en la lista de nodos visitados. (El algoritmo termina en el momento en que se vayan a sacar nodos de la pila y esta se encuentre vaca).
3 2 4
N1
1
Visitado TOPE
4. Se insertan en la pila los nodos sucesores de N1, respetando su orden. Pila de nodos sin visitar Lista de nodos Visitados Inicio
TOPE
N5 N4 N2
N1
5. Sale de la Pila N5, se visita y se verifica que no est en la lista de nodos ya visitados, si no lo esta se inserta en ella. Pila de nodos sin visitar
3 2 4
N1 TOPE N4 N2
N5
1
Visitado
5
Visitado Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
6. Se agregan los sucesores de N5 a la Pila, en este caso solo tiene uno el cual es N4. Pila de nodos sin visitar Lista de nodos Visitados Inicio
TOPE
N4 N4 N2
N1
N5
7. Sale N4 de la Pila, se visita y se verifica que no est en la lista de nodos visitados, N4 no est en la lista por lo tanto se puede agregar a ella.
3
Pila de nodos sin visitar Lista de nodos Visitados
Inicio
N1 TOPE N4 N2
N5
N4
1
Visitado
5
Visitado Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
8. En el caso de N4 no tiene sucesores por lo tanto la pila no se modifica en este paso. 9. Sale el siguiente elemento de la Pila, ahora es N4, se visita y se verifica si ya est en la pila de nodos visitados, en este caso s lo est por lo tanto no se incluye otra vez en la Lista ni se agregan sus sucesores en la Pila.
3
Pila de nodos sin visitar Lista de nodos Visitados Inicio
N1
N5
N4
1
TOPE N2 Visitado
5
Visitado Ultimo nodo visitado antes de este paso
10. Sale N2 de la pila, se visita y se verifica si se encuentra en la lista de nodos visitados, si no lo est, se agrega a dicha lista.
3
Pila de nodos sin visitar Lista de nodos Visitados
Inicio
N1
N5
N4
N2
1
TOPE Visitado
5
Visitado Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
11. Se agregan los sucesores de N2 (los cuales son N3 y N5) a la Pila de nodos sin vistar. Pila de nodos sin visitar Lista de nodos Visitados Inicio
N1 TOPE N5 N3
N5
N4
N2
12. Sale N5 de la Pila, se visita y se verifica si se encuentra en la lista de nodos visitados, N5 ya est en la lista por lo tanto no se agrega de nuevo, ni sus sucesores se agregan a la pila de nodos sin visitar.
3
Pila de nodos sin visitar Lista de nodos Visitados
Inicio
N1
N5
N4
N2
1
TOPE N3 Visitado
5
Visitado Ultimo nodo visitado antes de este paso
13. Sale N3 de la Pila, se visita y se verifica que no se encuentre en la lista de nodos visitados, N3 no esta en la lista por lo tanto puede agregarse.
3
Pila de nodos sin visitar Lista de nodos Visitados
Inicio
N1
N5
N4
N2
N3
1
Visitado TOPE
5
Visitado Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
14. Se agrega N4 a la pila ya que es el nico sucesor de N3. Pila de nodos sin visitar Lista de nodos Visitados Inicio
N1 TOPE
N5
N4
N2
N3
N4
15. Sale N4 de la Pila, se visita y se verifica que no est en la lista de nodos visitados, N4 ya est en la lista por lo tanto no se puede agregar. Lista de nodos Visitados
3
Pila de nodos sin visitar Inicio
4
N1 N5 N4 N2 N3
1
TOPE Visitado
5
Visitado
16. Ya no hay nodos en la Pila, por lo tanto el algoritmo termina teniendo en la lista de nodos visitados el resultado del recorrido en profundidad. Pila de nodos sin visitar Lista de nodos Visitados Inicio
N1
N5
N4
N2
N3
BUSQUEDA EN PROFUNDIDAD
TOPE
3 2 4
Ejemplo:
3 2 4
Algoritmo de la Bsqueda en Profundidad explicada con el grafo anterior: 1. El recorrido comenzara con el nodo 1 (N1). 2. Insertar N1 en la lista de nodos sin visitar. Fila de nodos sin visitar Inicio Fin Inicio Lista de nodos Visitados
N1
3. Sale N1 de la Fila, se visita y se coloca en la lista de nodos visitados. (El algoritmo termina en el momento en que se vayan a sacar nodos de la Fila y esta se encuentre vaca).
3 2 4
N1
1
Visitado
4. Se insertan en la Fila los nodos adyacentes de N1, respetando su orden. Lista de nodos Visitados Inicio
N2
N4
N5
N1
5. Sale de la Fila N2, se visita y se verifica que no est en la lista de nodos ya visitados, y como no lo est, se inserta en ella.
3
Visitado Fila de nodos sin visitar Inicio Fin
Inicio
N1 N4 N5
N2
1
Visitado
5
Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
6. Se agregan los nodos sucesores de N2 a la Fila, en este caso son N3 y N5. Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados Inicio
N4
N5
N3
N5
N1
N2
7. Sale N4 de la fila, se visita y se verifica que no est en la lista de nodos visitados, N4 no est en la lista por lo tanto se puede agregar a ella.
3
Lista de nodos Visitados Fila de nodos sin visitar Inicio Fin N1 N5 N3 N5 N2 N4
Inicio
1
Visitado
5
Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
8. En el caso de N4 no tiene sucesores por lo tanto la Fila no se modifica en este paso. 9. Sale el siguiente elemento de la Fila, ahora es N5, se visita y se verifica si ya est en la pila de nodos visitados, N5 no est en la Lista por lo tanto puede agregarse.
3
Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados Inicio
N3
N5
N1
N2
N4
N5
1
Visitado
5
Ultimo nodo visitado antes de este paso Nodo agregado en este paso.
10. Se agregan los nodos sucesores de N5 a la Fila, en este caso solo tiene uno: N4. Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados Inicio
N3
N5
N4
N1
N2
N4
N5
11. Sale N3 de la Fila, se visita y se verifica si se encuentra en la lista de nodos visitados: N3 no est en la lista por lo tanto se agrega. Lista de nodos Visitados
3
Fila de nodos sin visitar Inicio Fin Inicio
N1
N2
N4
N5
N3
N5
N4
12. Se agregan los nodos sucesores de N3 a la Fila, en este caso solo tiene uno: N4. Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados Inicio
N5
N4
N4
N1
N2
N4
N5
N3
13. Sale N5 de la Fila, se visita y se verifica si se encuentra en la lista de nodos visitados, N5 ya est en la lista por lo tanto no se agrega de nuevo, ni sus sucesores se agregan a la Fila de nodos sin visitar.
3
Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados
Inicio
N4
N4 N1 N2 N4 N5 N3
1
Visitado
5
Visitado Ultimo nodo visitado antes de este paso
14. Sale N4 de la Fila, se visita y se verifica si se encuentra en la lista de nodos visitados, N4 ya est en la lista por lo tanto no se agrega de nuevo.
3
Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados
Inicio
N4 N1 N2 N4 N5 N3
1
Visitado
5
Visitado Ultimo nodo visitado antes de este paso
15. Sale N4 de la Fila, se visita y se verifica si se encuentra en la lista de nodos visitados, N4 ya est en la lista por lo tanto no se agrega de nuevo.
3
Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados
Inicio
N1
N2
N4
N5
N3
1
Visitado
5
Visitado Ultimo nodo visitado antes de este paso
16. La Fila ya no contiene nodos lo que significa que todos fueron visitados, en la lista de nodos visitados se encuentra la Bsqueda en Anchura Fila de nodos sin visitar Inicio Fin Lista de nodos Visitados Inicio
3 2 4
N1
N2
N4
N5
N3
BUSQUEDA EN ANCHURA