You are on page 1of 4

INSTITUTO TECNOLOGICO SUPERIOR DE IRAPUATO

Licenciatura en Informtica

Fundamentos de Redes

Noveno Cuatrimestre

Tarea

ALGORITMO DE DIJKSTRA

Oscar Salinas Hernndez

Irapuato, Gto. a23 de Junio del 2011.

ALGORITMO DE DIJKSTRA

2 300

200 5 300 300

100 1 3 200 6

300

200

100

200

4 300

En el grafo de arriba, los nodos 1, 2, 3, 4, 5, 6 y 7 representan las opciones entre la cuales se eligen para la bsqueda del camino ms corto. Entonces en el ejercicio suponemos que un Fabricante 1 necesita alcanzar al cliente 6 a travs de su cadena de distribucin (los nodos) cuyos costes (incluyen margen de ganancia), son representadas por las lneas continuadas. El grafico se ha ordenado de modo tal que representan las relaciones entre ellos, as el fabricante tiene dos distribuidores principales, que son los nodos 4 y 2. Los nodos 4 y 2, alcanzan a sus subdistribuidores, los subnodos 3 , 5 y 7, y finalmente estos ltimos subdistribuidores son proveedores directos del cliente nodo 6. Pregunta: Si el Nodo Cliente est dispuesto a pagar como mximo el precio de la competencia , esto es 400 unidades monetarias, cual es la ruta de costes ms corta (econmica) para que el Fabricante 1 pueda alcanzar al cliente y con cuales distribuidores debe trabajar? Desarrollar esta pregunta, requiere de conocer el denominado Algoritmo de HedsgerDijkstra (1959), que utiliza los grafos ponderados no dirigidos. Sea G = (V,E) un grafo conexo ponderado. Sean a y z nodos 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 denodos distinguidos, S, aadiendo un nodo en cada iteracin. Ver que en nuestro grafo a es el nodo 1 y z es el nodo 6.

Se realizaun proceso de etiquetado (labeling) en cada iteracin: un nodoV se etiqueta con lalongitud del camino ms corto desde a hasta v, que contenga slo nodosdel conjunto de nodos distinguidos. El nodo que se aade al conjunto denodos distinguidos es el que tiene una etiqueta minimal entre aquellos queno estn en el conjunto. Denotaremos por Sk al conjunto de nodos distinguidos despus de la iteracin k del proceso de etiquetaje. Empezamos con S0 = , para k 1, Sk = Sk 1U{u}, donde u Sk 1 y la etiqueta L(u) es la menor. A continuacin se actualizan todas las etiquetas de los nodos que no estnen Sk de forma que Lk(v) (etiqueta en v en la etapa k) sea la longitud delcamino (que slo contiene nodos de Sk) ms corto desde a hasta v. Ahora, el camino ms corto desde a hasta v conteniendo solo nodosde Skes, el camino ms corto desde a hasta u en la etapa k 1 aadindole la arista{u, v}, o bienel camino ms corto desde a hasta v que contiene slo elementos de Sk1 (esdecir u no est incluido) Lk(v) = min{Lk1(v), Lk1(u) + w(u, v)} Cuando z se aada al conjunto de nodos distinguidos, la etiqueta de z ser lalongitud del camino ms corto buscado desde a hasta z. La etiqueta Lk, muestra el coste menor de nuestra eleccin, siguiendo el algoritmo de Dijkstra. Vamos a la prtica: 1ra. Iteracin: Nodo distinguido es 1. Partimos del nodo 1. Desde aqu , tenemos dos nodos distribuidores 2 y 4, los cuales tienen costes adicionales de 300 unidades (ambos iguales) por ello para el fabricante 1 es indistinto distinguir o seleccionar a cualquiera de estos nodos distribuidores como primer nodo de iteracin. Elegimos al nodo 4, y construimos las etiquetas Lk: [300,1] donde 300 es el coste y 1 el nodo desde donde llega. Elegimos al nodo 2 y tenemos la etiqueta [300,1], similar al del nodo 4. 2da. Iteracin: Nodo distinguido es 4 (pudo haber sido 2 por tener el mismo minimal). Desde el nodo 4 al nodo 3 tenemos {etiqueta nodo 4 + 200} = [300+200, 4] = [500,4] Desde el nodo 4 al nodo 7 tenemos [300+300,4] = [600, 4] , porque es la suma de la etiqueta en el nodo 4 mas el coste adicional hacia el nodo 7. Desde el nodo 4 al nodo 6 el cliente, tenemos [300 + 100, 4] = [400,4] 3ra Iteracin: Nodo distinguido es 2 porque la etiqueta m nima es [300,1], las dems etiquetas son de mayor valor (ver nodos 3, 6, 7). Desde el nodo 2 al nodo 5 [300+200,2] = [500,2] Desde el nodo 2 al nodo 3 [300+100,2] = [400,2] Ntese que en el nodo 3 tenemos dos etiquetas y el minimal es [400,2] por lo que tachamos el valor de la etiqueta [500,4] debido a ser un valor mayor.

4ta Iteracin: Nodo distinguido es 3 (pudo haber sido 6 por tener el mismo coste, pero el nodo 6 es el objetivo). Desde el nodo 3 hasta el nodo 5 tenemos [400+300,3] = [700,3] Desde el nodo 3 hasta el nodo 6 tenemos [400+200,3] = [600,3]

5ta Iteracin: Nodo distinguido es 6 (tiene la etiqueta minimal menor que los restantes nodos sin calcular)

Desde el nodo 6 hasta el nodo 5 [400+300,6] = [700,6] Desde el nodo 6 hasta el nodo 7 [400+200,6] = [600,6]

6ta Iteracin: Nodo distinguido es 5 (tiene la etiqueta minimal menor que el nodo restante 7)

Dado que todos los nodos que se relacionan con el nodo distinguido 5 , no podemos calcular ninguna ruta minima y queda el ejercicio finalizado. Luego el menor coste para alcanzar al cliente 6 desde el fabricante 1 a travs de los distribuidores y subdistribuidores es: [400,4]2, esto es desde el distribuidor 4 alcanzamos con el costo mnimo de 400 unidades en un segundo nivel (iteracin). Elegir cualquier otra opcin resultar ms costosa y por ende significara perder el negocio.

[300,1]1

[500,2]3

2 300

200

[700,2]5

5
[700,3]4

300

300 100
[600,3]4

1
[400,2]3

200 3
[500,4]2

6
[400,4]2

300
[300,1]

200

100

200

4 300

7
[600,4]2

[600,6]5

You might also like