Vous êtes sur la page 1sur 8

ALGORITMO DE RECORRIDO Y BUSQUEDA

Ingeniera en Sistemas Computacionales Guadalupe Guendulay Escalante

Matemticas Discretas
Felipe de Jess Hernndez Demetrio. Kevin Pez lvarez Ivn Giovanni Martnez Mrida Edgar Eduardo Mora Reyes Roberto Sosa Reyes

Semestre: 1
06/Dic./2012

Algoritmo de recorrido y bsqueda


El camino ms corto Una grfica con pesos es una grfica en la cual se asignan valores a las aristas y que la longitud de una ruta (camino) en una grfica de pesos es la suma de los pesos de las aristas en la ruta. Sea w (i, j) el peso de la arista (i, j). En la graficas con pesos, con frecuencias queremos determinar la ruta ms corta(es decir, un camino de longitud mnima) entre dos vrtices dados. Teorema 6.4.3 El algoritmo de la ruta ms corta de DIJKSTRA (Algoritmo 6.4.1) determina de manera correcta la longitud de una ruta ms corta de a a z.

Demostracin. Utilizamos la induccin matemtica sobre i para demostrar que la isima ves que llegamos a la lnea diez, L (v) es la longitud de una ruta mas corta de a a v. demostrar esto, tendrenmos que el algoritmo es ocrrecto, pues al elegir z en la lina diez, L (z) dara la longitud de una ruta mas corta de a a z.

Paso base (i=1). La primera ves que llegamos a la lnea diez, debido a los pasos de inisializacion (lneas2-4), L(a) es igual a cero y todos los dems valores de L son infinitos. Asi, se elige la primera ves que llegamos a la lnea diez. Como L(a) es igual a cero, L(a) es la longitud de una ruta mas corta de a hasta a.

Paso inductivo. Supongamos que para todo k < i, la k-sima ves que llegamos a la lnea diez, L(v) es la longitud de una ruta mas corta de a a v.

Teorema 6.4.5 Para una entrada consistente en una grafica simple ,conexa con pesos n vrtices,el el algoritmo de DIJKSTRA(algoritmo 6.4.1) tiene el tiempo de ejecucin de(n2)en el peor de los casos. Demostracin: consideremos que el tiempo ocupado en los ciclos,el cual proporciona una cota superior a la del tiempo total. La lnea 4 se ejecuta n veces.dentro del ciclo while. ALGORITMO DE RECORRIDO Cualquier algoritmo de recorrido de grafos consiste bsicamente en visitar un nodo del grafo y luego ir visitando los nodos conectados a este. Este principio se aplica recursivamente comenzando desde un nodo inicial cualquiera del grafo. Lo que diferencia un algoritmo de recorrido de otro es, una vez ubicado en un nodo en particular, la forma en que se visitan los nodos conectados a este. Por supuesto, estos algoritmos pueden ser aplicados en grafos dirigidos o no dirigidos. Los dos algoritmos clsicos de recorrido de grafos son el recorrido en profundidad y en anchura. Precisamente por ser clsicos han sido estudiados con anterioridad y se les conoce su orden de complejidad en tiempo y todos los beneficios de aplicarlos. ALGORITMO DE BUSQUEDA Un algoritmo de bsqueda es un algoritmo cuyo propsito es encontrar todos los vrtices de un grafo G=(V,E) que satisfacen un propiedad particular. Diferentes variables de un algoritmo de bsqueda aparecen en una gran variedad de problemas. Un vrtice esta marcado si se sabe que es alcanzable desde el origen. Sea X el conjunto de los vrtices marcados y Y el conjunto de los vrtices no marcados (Y=V-X). Inicialmente X consta de solamente del vrtice r. se observa que si u E Y y uV E e, entonces se pueden marcar v. Un algoritmo de bsqueda recorre los vrtices marcados en cierto orden. Se escribe ord(u) para indicar el orden de u en el recorrido.

En la descripcin del algoritmo L representaran la lista de vrtices marcados que el algoritmo no a marcado en el sentido de que algunas aristas pueden incidir en estos vrtices. Cuando el algoritmo termina se obtiene un rbol con raz r. Este rbol es llamado un arbolo de bsqueda. ALGORITMO DE BUSQUEDA (G) Entrada Un grafo G=(V,E) con n vrtices y un vrtice origen r. Salida un rbol T con raz r y una funcin ord: V{ 1,2..,n} El algoritmo de bsqueda no especifica la manera de seleccionar o insertar un vrtice en L. diferentes regalas da lugar a diferentes mtodos de bsquedas. Dos estructuras de datos son las mas populares para mantener una lista: una cola y una pila las cuales dan lugar a dos estrategias de bsqueda fundamentales: buscar primero lo ancho (BPA) y buscar primero a lo largo (BPL).

BUSCAR PRIMERO A LO ANCHO Si se mantiene la lista L como una cola, entonces se seleccionan los vrtices del frente de la lista y se insertan al final, de esta manera se siguen el principio de: el primero en entrar es el primero en salir.

ALGORITMO EN PROFUNDIDAD El algoritmo de recorrido en profundidad de un grafo consta de dos rutinas: la primera hace un recorrido en profundidad a partir de un vrtice dado, marcando los puntos por los cuales va pasando. La segunda rutina busca vrtices sin marcar y lanza el proceso antes mencionado, terminando cuando todos los vrtices hayan sido visitados. El proceso se ilustra en el siguiente ejemplo:
Ejemplo 6.9:

Considere el grafo dirigido de la figura, y suponga que se va a hacer un recorrido en profundidad partiendo del vrtice 1.

El primer paso es visitar el vrtice 1, marcar dicho vrtice, localizar sus sucesores, y hacer una llamada recursiva sobre cada uno de ellos, verificando que no estn marcados. Recorrido: 1 Se debe hacer un recorrido en profundidad partiendo del vrtice 7 (el nico sucesor de 1), para lo cual se repite el mismo proceso del paso anterior. Recorrido: 1, 7 Se debe hacer el recorrido en profundidad a partir del vrtice 5, y, al terminar, comenzar el mismo proceso a partir del vrtice 6. Recorrido: 1, 7, 5 Pendiente recorrido desde: 6 Se repite recursivamente el proceso para los vrtices 2 y 6 (sucesores de 5) Recorrido: 1, 7, 5, 2 Pendiente recorrido desde: 6, 6

Se recorre en profundidad el grafo a partir del vrtice 3 (sucesor de 2) Recorrido: 1, 7, 5, 2, 3 Pendiente recorrido desde: 6, 6 Se repite recursivamente el proceso para los vrtices 4 y 6 (sucesores de 3) Recorrido: 1, 7, 5, 2, 3, 4 Pendiente recorrido desde: 6, 6, 6 Puesto que el vrtice 4 no tiene sucesores, se hace el recorrido en profundidad desde el elemento 6 (el ltimo que qued pendiente en el proceso) Recorrido: 1, 7, 5, 2, 3, 4, 6 Pendiente recorrido desde: 6, 6 Ya que todos los recorridos pendientes comienzan en vrtices marcados (el 6), se da por terminado el proceso.

Debe ser claro que el orden de visita de los elementos, en el recorrido en profundidad, depende del vrtice inicial escogido y del orden en el cual la respectiva operacin del TAD retorne los sucesores de un elemento. Por ejemplo, el recorrido en profundidad del grafo anterior, partiendo del vrtice 3, se puede resumir en la siguiente secuencia de figuras:

Recorrido: 3

Recorrido: 3, 6 Pendiente recorrido desde: 4

Recorrido: 3, 6, 4

Puesto que no hay sucesores, ni recorridos pendientes, se escoge cualquier vrtice no marcado y se contina desde all el proceso. Recorrido: 3, 6, 4, 5

Recorrido: 3, 6, 4, 5, 1 Pendiente recorrido desde: 2

Recorrido: 3, 6, 4, 5, 1, 7 Pendiente recorrido desde: 2

Recorrido: 3, 6, 4, 5, 1, 7, 2