¿Se puede usar el algoritmo de Prim para encontrar la ruta más corta desde un vértice a todos los demás vértices en un gráfico no dirigido?

Gracias por A2A!

Puedo entender lo que te llevó a esta pregunta.

Pero, el algoritmo de Prim no se puede utilizar para encontrar la ruta más corta desde un vértice a todos los demás vértices en un gráfico no dirigido.

Veamos las posibles razones por las que no se puede usar.

  • Algoritmo de Prim
    • Básicamente es un algoritmo codicioso (elige el borde ponderado mínimo adyacente a un vértice).
    • Encuentra el árbol de expansión mínima (es decir, un árbol que consta de cada borde presente en el gráfico sin ningún ciclo en el que se minimice el peso total de los bordes). [Que ya has mencionado]

Ahora, esta es una imagen de un árbol de expansión mínimo, digamos que lo obtuvimos por la regla de Prim. Ahora lo ves por ti mismo

El camino (me dirijo a ellos con su peso)

3–2–2 tiene un peso total de 7 todavía, hubo una conexión directa de 6, eligió ese camino. El algoritmo de Prim siempre elegirá el borde ponderado mínimo local ya que es un algoritmo codicioso.

Por lo tanto, no podemos encontrar una solución correcta cuando intentamos encontrar el camino más corto .


Sí, ya que es un MST que conecta todos los bordes pero no genera la ruta más corta entre los vértices.

Dado que esta no es la forma de encontrar el camino más corto, debe haber algunos de ellos, y hay algún algoritmo para hacer la tarea:

  • BFS si el peso no está definido o igual
  • El algoritmo de Bellman Ford solía encontrar las rutas más cortas desde el vértice de origen a todos los demás vértices en un gráfico ponderado.
  • El algoritmo de Floyd – Warshall se utiliza para encontrar los caminos más cortos entre todos los pares de vértices en un gráfico.

Notas al pie :

  1. Algoritmo de Prim – Wikipedia
  2. Árbol de expansión mínima – Wikipedia
  3. Algoritmo codicioso – Wikipedia
  4. Algoritmo de Bellman – Ford – Wikipedia
  5. Algoritmo de Floyd – Warshall – Wikipedia
  6. Estructuras de datos y primer recorrido transversal

¡Gracias por leer!

Espero eso ayude:)

Los recortes darán un árbol de expansión mínimo, NO la ruta más corta, pero BFS definitivamente le dará la ruta más corta en un gráfico no detectado

More Interesting

¿Se puede resolver Codeforces 431C - k-tree por recusión?

Un k-palíndromo es una cadena que se transforma en un palíndromo al eliminar como máximo k caracteres de él. Dada una cadena S y un número entero K, ¿encuentra si S es un k-palíndromo o no? Restricciones: S tiene como máximo 20,000 caracteres y 0 <= k <= 30

Cómo encontrar un trabajo de programación de algoritmos y no solo escribir aplicaciones CRUD

¿Cómo funciona un algoritmo de bogosort cuántico?

Lenguaje ensamblador: ¿Por qué las instrucciones INC y DEC no establecen la bandera de acarreo?

¿Qué algoritmos de programación de procesos usa Android?

Dos conjuntos finitos tienen elementos myn cada uno. El número total de subconjuntos del primer conjunto es 56 más que el número total de subconjuntos del segundo conjunto. ¿Cuáles son los valores de myn?

¿Es necesario el conocimiento de algoritmos clásicos para convertirse en un experto en inteligencia artificial?

¿Qué calcularía los algoritmos pesados ​​en matemáticas más rápido: FPGA o GPU?

¿Es posible proporcionar un análisis de complejidad para todos los algoritmos en términos de theta?

¿Qué es un algoritmo eficiente para el agrupamiento k-means donde k es 2 y la dimensión es una, con o sin pesos?

¿Cómo funciona el algoritmo de sugerencia de seguimiento de Twitter?

Cómo ejecutar un algoritmo escrito en C

¿Cuáles son las estrategias más populares utilizadas en el comercio de alta frecuencia?

Digamos que encontramos un algoritmo que resuelve problemas de NP-Complete en tiempo polinómico pero no podemos probarlo. ¿Cuáles serían las consecuencias?