¿Cómo utilizar MATLAB para encontrar la ruta más corta promedio de una matriz dispersa de 5000 por 5000?
¿El camino más corto entre dos vértices especificados?
El problema es el siguiente: dada una red ferroviaria que conecta varias ciudades, encuentre la línea ferroviaria más corta entre dos ciudades específicas en la red ferroviaria.
Tome la ciudad como el vértice del gráfico G y tome el ferrocarril entre las dos ciudades como el borde entre los dos vértices correspondientes en el gráfico G para obtener el gráfico G.
Cada borde e de G especifica un número real (ew: la longitud del ferrocarril, llamado peso de e), y se obtiene el gráfico de autorización G. El problema es encontrar la trayectoria con el peso más pequeño entre dos vértices especificados 00,vu en el gráfico de asignación G. Esta trayectoria se llama camino más corto entre 00, vu, y su peso se llama distancia entre 00, vu, también expresada como ), (00vud.?).
Existe un algoritmo maduro para encontrar el camino más corto: la idea básica del algoritmo de Dijkstra es encontrar el circuito más corto y la distancia en orden desde la distancia más cercana a la más lejana desde 0u hasta el vértice de G, hasta 0v (o hasta todos los vértices de G), luego finaliza el algoritmo. Para evitar la duplicación y retener información computacional en cada paso, utilizamos un algoritmo de etiquetado. El algoritmo se muestra a continuación.
(i)?Sea 0)(0?ul, para 0uv?, let?) (vl,}{00uS?, 0?i. (ii)?Para cada iSv?(iiSVS\ ? ), utilice ?
)}()(), ({minuvwulvli
Su
en su lugar)(vl. cálculo)}({minvli p >
Sv?, y registrar un vértice que alcance este valor mínimo como 1?iu, entonces}{11iiiuSS????
(iii). 1||?Vi, use 1?
Al final del algoritmo, la distancia desde 0u a cada vértice v está dada por la última etiqueta de v)(vl. El algoritmo consiste en modificar continuamente cada apunte la marca T hasta que se obtenga la marca P Si durante la ejecución del algoritmo, los bordes de cada vértice que obtienen la marca P están marcados en el gráfico, entonces al final del algoritmo, el camino más corto desde 0u. a cada punto también estará marcado en la imagen.
Ejemplo 1: Una empresa tiene sucursales 126,,,cccL en 6 ciudades. La tarifa del vuelo directo de ic a jc se registra en la siguiente tabla. (posición ji. ? significa que no hay vuelo directo), ayude a la compañía a diseñar un mapa de ruta que enumere las tarifas más baratas entre la ciudad 1c y otras ciudades
055252510
5