Tu intuición está en la línea correcta, y lo que dices es posible. Sin embargo, es así en gastos generales computacionales adicionales.
Una matriz de adyacencia [matemática] A [/ matemática] tiene entradas [matemática] a_ {ij} = 1 [/ matemática] iff [matemática] (ij) \ en E [/ matemática], y 0 en caso contrario. Dada una columna de esta matriz, para algunas [matemáticas] j \ in \ {1,2, .. n, \} [/ matemáticas], [matemáticas] \ Sigma_ {i = 1} ^ {n} a_ {ij} = [/ math] Número de vértices adyacentes a j. Entonces, al multiplicar esta fila ‘n -1’ veces en la multiplicación de Matrix, tendría el número de caminatas desde i -> j de longitud ‘n-1’ (que es la longitud máxima permitida de una ruta). Puede usar la Multiplicación matricial para encontrar esta ‘k’, de modo que tenga la ruta más corta desde un nodo fijo [math] s [/ math] a todos los demás nodos mirando una columna [math] a_ {is} [/ matemática], para [matemática] i \ in \ {1,2,… n – 1 \} [/ matemática], para [matemática] A ^ {k} [/ matemática], donde [matemática] k \ in \ { 1,2, .. n \} [/ matemáticas]. La primera vez que vea un valor distinto de cero iluminado en la entrada [math] a_ {is} [/ math], sabrá que el valor ‘k’ correspondiente es la longitud de la ruta más corta desde i -> s (o viceversa), ya que este gráfico no está dirigido.
Sin embargo, tenga en cuenta la complejidad computacional ineficiente de este algoritmo. Recuerde que la multiplicación de matrices es costosa, por lo tanto, su análisis del peor de los casos es: [matemática] O (n ^ {2} l [/ matemática] [matemática] og ([/ matemática] [matemática] k)) [/ matemática] , donde [matemáticas] k \ en \ {1,2, …, n-1 \} [/ matemáticas]. El BFS utiliza un enfoque ‘memorizado’ y hace un uso eficiente de la Estructura de datos de la Lista de adyacencia. No importa cuál sea la longitud de la ruta involucrada, el peor análisis de caso para BFS es [matemática] O (n + m) [/ matemática] ~ [matemática] O (n ^ {2}) [/ matemática], incluso en Un gráfico denso.
La razón de esto es que BFS está ‘memorizado’, COMIENZA su procedimiento en el nodo [math] s [/ math]. La multiplicación de matrices es ingenua-recursiva. Utiliza la simetría de los caminos no dirigidos para terminar en una columna particular que le interese. La ecuación recursiva es la misma, pero BFS es la alternativa más inteligente (similar a la programación dinámica) al enfoque de multiplicación matricial más formal e matemáticamente más intuitivo.
- ¿Qué es el conocimiento estructurado?
- Cómo encontrar el valor mínimo en una lista vinculada (individual / doblemente) en la menor cantidad de tiempo
- ¿Cuál es la mejor manera de usar la notación O grande para determinar la tasa de crecimiento del tiempo de ejecución de un algoritmo?
- Cómo resolver la Tierra y los meteoritos en el Algoritmo Calificador 2 de Hackerearth
- ¿De dónde viene la palabra algoritmo?
¡Espero que esto ayude!