Algoritmo de floyd warshall en máxima
A continuación te muestro un ejemplo de implementación del algoritmo de Floyd-Warshall en el lenguaje de programación Máxima:
```maxima
floyd_warshall(matrix) :=
block(
[n: length(matrix), dist: copy(matrix)],
for k: 1 thru n do (
for i: 1 thru n do (
for j: 1 thru n do (
dist[i][j]: min(dist[i][j], dist[i][k] + dist[k][j])
)
)
),
return(dist)
);
/* Ejemplo de uso */
matrix: [[0, inf, 3, inf],
[2, 0, inf, inf],
[inf, 7, 0, 1],
[6, inf, inf, 0]];
floyd_warshall(matrix);
```
En este código, la función `floyd_warshall` toma una matriz de adyacencia como entrada y devuelve la matriz de distancias mínimas entre todos los pares de vértices del grafo representado por la matriz. La constante `inf` se utiliza para representar la ausencia de conexión entre dos vértices.
Por favor, ten en cuenta que Máxima no es un lenguaje de programación convencional, por lo que esta implementación es más bien una representación simbólica del algoritmo de Floyd-Warshall en lugar de un código ejecutable.