¿Cuáles son las aplicaciones de la vida real del algoritmo de Prim?

Si está diseñando una PCB con un sistema CAD, al colocar componentes en la placa puede ser útil que el sistema muestre las conexiones entre ese componente y los componentes ya colocados. Estas conexiones se dibujan como líneas rectas, llamadas nidos de ratas, y deben actualizarse como una visualización en tiempo real.

En los años ochenta utilicé el algoritmo de Kruskal para calcular el nido de ratas como un árbol de expansión mínimo. Esto no solo funcionó muy bien, sino que también me permitió incluir restricciones de enrutamiento, necesarias para ECL, donde ciertos pines son transmisores y otros son receptores.

Aquí hay un ejemplo (no es mi trabajo): imagine que está recogiendo un componente y moviéndolo, el nido de ratas se actualiza con las nuevas mejores conexiones a medida que se mueve.

12.3.7 Nido de ratas

El algoritmo de Prim calcula un árbol de expansión mínimo. Lo aprendí en la escuela de posgrado y pensé que nunca lo necesitaría. Resulta que fue la solución perfecta para un problema que tuve en mi trabajo en el razonamiento militar computacional (es decir, la IA que tomó decisiones tácticas de combate). Resulta útil cuando se trata de comprender la relación entre las unidades de combate en un campo de batalla.

La forma en que lo usé se explica mejor en este enlace a uno de mis trabajos publicados “Implementando las cinco maniobras ofensivas canónicas en un entorno CGF”. : http://riverviewai.com/papers/Im

Este documento también tiene algunas buenas capturas de pantalla del uso del cálculo de un árbol de expansión mínimo: http://riverviewai.com/papers/Al

Por último, lo uso como parte de la IA para mi nuevo juego de guerra: http://general-staff.com/

Este es un comienzo: Aplicaciones del problema del árbol de expansión mínimo – GeeksforGeeks

More Interesting

¿Cuál es el significado de usar una cola prioritaria en el algoritmo de Dijkstra? ¿Qué diferencia hay si usamos una cola normal?

No soy bueno en algoritmos, pero estoy tratando de descubrir algo. ¿Cuáles son algunas técnicas o libros o alguna sugerencia?

¿Qué algoritmos se pueden usar para determinar si dos preguntas (como las de Quora) son de alguna manera similares?

¿Cómo se construye exactamente una estructura de datos de árbol en JavaScript?

¿Qué algoritmo puedo usar para generar enteros (pseudo) aleatorios con una duración de ciclo infinito?

Cómo usar el 'mapa combinatorio' de una triangulación de un polígono 2D para probar si un borde dado de la triangulación es un borde límite

¿Cuáles son los principios para crear algoritmos utilizando tipos de datos abstractos?

¿Cómo se almacenan los datos en un árbol binario?

¿Por qué son importantes las pruebas para estudiar algoritmos y estructuras de datos? ¿Estudiar esas pruebas complejas es realmente necesario?

¿Necesito aprender algoritmos y estructuras de datos en la interfaz?

¿Cuáles son los usos de un puntero en una estructura de datos?

¿Por qué ocurre el peor de los casos en Max-Heapify cuando la fila final del árbol está medio llena?

¿Por qué a la mayoría de la gente le cuesta resolver problemas de algoritmos?

¿Cuáles son los 10 algoritmos y estructuras de datos imprescindibles para un concurso de programación?

Cómo probar si una cadena es una subcadena de otra cadena en C sin ninguna función incorporada