Está en la página 1de 13

Grafos II

Nora Cancela

Grafos Planares
Definicin. Diremos que G = (V,E) es un grafo plano si se puede representar en el plano de manera que sus aristas slo se toquen en los vrtices.

Algoritmo de Dijkstra
Uno de los algoritmos mas usados para la bsqueda de caminos de peso mnimo es el de Dijkstra, que proporciona los pesos mnimos desde un vrtice dado al resto de los vrtices. Sea G = (V,E) un grafo conexo ponderado. Sean a y z vrtices de G. Queremos hallar la longitud del camino ms corto entre a y z. El algoritmo realiza una serie de iteraciones. Se construye un conjunto de vrtices distinguidos, S, aadiendo un vrtice en cada iteracin. Se realiza un proceso de etiquetado en cada iteracin: un vrtice v se etiqueta con la longitud del camino ms corto desde a hasta v, que contenga slo vrtices del conjunto de vrtices distinguidos. El vrtice que se aade al conjunto de vrtices distinguidos es el que tiene una etiqueta minima entre aquellos que no estn en el conjunto.

Algoritmo de Dijkstra procedimiento DIJKSTRAG: grafo conexo simple ponderado, con todos los pesos positivos. (G tiene n vrtices, a = v0, v1, v2, . . . , vn = Z y pesos w(vi, vj) donde w(vi, vj) = si {vi, vj} no es una arista del grafo) for i := 1 to n
L(vi) := L(a) := 0 S :=

(las etiquetas ahora estn inicializadas para que la etiqueta de a sea cero y todas las dems sean , y S sea el conjunto vaco) while z / S begin
u :=vrtice no perteneciente a S con L(u) minima S := S {u} for todos los vrtices v / S if L(u) + w(u, v) < L(v) then L(v) := L(u) + w(u, v)

end (L(z) =longitud del camino ms corto desde a hasta z)

Ejemplo. Calcular el camino ms corto de a af

Inicializamos a con (a, 0) y el resto de los vrtices con (a,)

Empezamos con el vrtice origen a analizando todas sus salidas para recalcular las etiquetas de sus destinos.

De todas esas etiquetas analizamos la de b, (a, 1) por ser la que tiene el menor costo. Indicamos que b entra dentro del conjunto de vrtices distinguidos S

Repetimos el proceso, teniendo en cuenta que ahora ya tenemos a y b en S y recalculamos las etiquetas. Nueva etiqueta de e es (b, 4)

Analizamos todos los costos y vemos que la que tiene un costo menor es la c. Metemos c en nuestro conjunto S.

Continuamos recalculando las etiquetas. Analizamos los costos y vemos que la del costo menor es la del vrtice e, (b, 4) y la metemos en S.

Por ltimo recalculamos las etiquetas (la de f). Vemos que f tiene el mismo costo que d, pero como queremos ir a f, introducimos f en el conjunto S. Por tanto hemos llegado a f con coste 8 (etiqueta (E, 8)). El camino ms corto, segn van indicando las etiquetas es: a, b, e, f.

Algoritmo Inicio
Armar una matriz de adyacencia, teniendo en cuenta que se pone infinito dnde no hay arista. Tomo el vrtice del nodo designado como inicio y lo agrego al subconjunto S de nodos estudiados. S = {v0} Armo un vector D con la fila de la matriz correspondiente a las aristas que parten de v0 Para j desde 1 hasta n-1 Sacar de V S el vrtice tal que la arista entre v0 y dicho vrtice sea la de menor peso en D. Incorporarlo a S y llamarlo ve. Para cada i desde 1 hasta n d[i]=min(d[i],d[ve]+c[ve,i]) Fin para i Fin para j

También podría gustarte