Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


edsdrgt5t, Apuntes de Diseño

Asignatura: Nuevas Tecnologías Aplicadas, Profesor: , Carrera: Diseño de Productos, Universidad: arte-diseño

Tipo: Apuntes

2013/2014

Subido el 14/01/2014

wisinmi
wisinmi 🇪🇸

2 documentos

1 / 1

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1

Vista previa parcial del texto

¡Descarga edsdrgt5t y más Apuntes en PDF de Diseño solo en Docsity!

Sección 8.5 Caminos mínimos tras. que a primera vista pudiera parecer necesario utilizar dos de estás matrices, una «que contendría los valores deD, , y otra los valores de D,, o incluso una matriz 1 El algoritmo, que se conoce con el nombre de algoritmo de Floyd, es como sigue E función Floyd(L[1..., 1..0]): matriz[1...2, 1.19] matriz D[1..1, 1..1] D=+-L para k — 1 hasta n hacer para ¡1 hasta n hacer paraj — 1 hasta 1 hacer Dli, $] —min(Dli, jL Dis, £] + DIK, ¿h devolver D La figura 8,5 da un ejemplo de la forma en que funciona el algoritmo. Es evidente que este algoritmo requiere un tiempo que está en O). También podemos utilizar el algoritmo de Dijkstra para resolver el mismo problema; véase la Sección 6.4. En este caso, tenemos que aplicar el algoritmo » veces, seleccionan- do en cada ocasión un nodo distinto como origen. 51 utilizamos la versión del al- goritmo de Dijkstra que funciona con una matriz de distancias, entonces el tiem- po total de cálculo está en 1 x 62), esto es, en B( El orden es el mismo que pa- ra el algoritmo de Floyd, pero la sencillez de este último significa que es probable que tenga una constante oculta más pequeña, y por tanto que sea más rápido en la práctica. Además a los compiladores se les da bien optimizar los bucles para. Por otra parte, si utilizamos la versión del algoritmo de Dijkstra que emplea un montículo, y por tanto listas de las distancias hasta los nodos adyacentes, el tiem- po total está en 1 = B((a + log 1), esto es, en E [an + 1) g 21), donde a es el mú- mero de aristas del grafo. Si el grafo es disperso (a << 1”), entonces quizá sea pre- ferible utilizar el algoritmo de Dijkstra n veces; si el grafo es denso a = 11, es mejor utilizar el algoritmo de Floyd. Normalmente, deseamos saber cuál es el camino más corto, y no solamente su longitud. En tal caso, utilizaremos una segunda matriz P, cuyos elementos tienen todos ellos un valor inicial 0. El bucle más interno del algoritmo pasa a ser si DJé, £J+D[k, [J