Deje que [math] A [/ math] sea la matriz de costos. Construiremos [math] B [/ math] con las mismas dimensiones que [math] A [/ math] de modo que [math] B_ {i, j} [/ math] proporcione el costo de la ruta más barata desde la esquina superior izquierda de [matemáticas] A [/ matemáticas] a [matemáticas] i, j [/ matemáticas]. Defina [matemáticas] B_ {0, j} = B_ {i, 0} = 0 [/ matemáticas]. Debido a que los únicos movimientos permitidos son ir hacia abajo y hacia la derecha, la única forma de llegar a una celda es desde arriba o desde la izquierda. Por lo tanto, la forma más barata de pasar por una celda es el costo de la celda más el mínimo de las formas más baratas de llegar a su vecino superior y a su vecino izquierdo. Más formalmente, [matemáticas] B_ {i, j} = min (B_ {i-1, j}, B_ {i, j-1}) + A_ {i, j} [/ matemáticas]. Esto sugiere inmediatamente el orden en que se completa [math] B [/ math] y, por definición, [math] B_ {n, m} [/ math] dará el costo de la ruta más barata desde la parte superior izquierda a la parte inferior derecha .
Si se permiten todos los movimientos en una cuadrícula conectada a cuatro, puede definir un gráfico en las celdas de la matriz de costos, con bordes dirigidos entre todas las celdas adyacentes [matemáticas] a [/ matemáticas] y [matemáticas] b [/ matemáticas] que tienen peso [matemática] A [b] [/ matemática] (esto es para el borde de [matemática] a [/ matemática] a [matemática] b [/ matemática]; de [matemática] b [/ matemática] a [matemática] a [/ math] tiene peso [math] A [a] [/ math]). Ejecute Dijkstra en este gráfico para obtener la ruta deseada.
- ¿Cómo planificarías un campamento de algoritmos y estructuras de datos de un mes?
- ¿Cuál es la solución a la siguiente relación de recurrencia: [matemáticas] T (n) = 3T (n-1) - 7T (n-2) + 9T (n-3) [/ matemáticas], con las siguientes condiciones iniciales: [ matemática] T (0) = 1 [/ matemática], [matemática] T (1) = 6 [/ matemática], [matemática] T (2) = 7 [/ matemática]. ¿Qué es una expresión para [math] T (n) [/ math] de modo que no haya términos [math] T (i (\ frac {n} {j}) ^ {k}) [/ math] a la derecha ¿lado?
- ¿Qué es recursivo en matemáticas?
- ¿Qué algoritmos de clasificación tienen la mejor complejidad de tiempo de caso?
- ¿Cuál es el mejor libro para aprender algoritmos genéticos? ¿Por qué?