Optimización de trayectoria: algoritmo de vista previa rápida [cerrado]

He estado interesado en la optimización de la trayectoria desde hace un tiempo y he leído algunos artículos sobre ese tema y compré el libro "Optimización de la trayectoria de la nave espacial" de Cambridge University Press y quiero comenzar a programar con el objetivo de optimizar una trayectoria en un sistema solar simplificado. sistema, no en tiempo real sino lo más cercano posible, sin necesidad de una solución exacta sino de un anticipo de una buena.

Los libros y artículos proponen diferentes enfoques como

  • Soluciones analíticas con el primer vector
  • Transcripción directa + programación no lineal
  • algoritmos de enjambre de partículas
  • algoritmos evolutivos/genéticos

Debido a que tengo poca o ninguna experiencia, me gustaría saber qué sugerirían ustedes porque no pude encontrar ninguna comparación con respecto a la velocidad de estos algoritmos.

¡Gracias por tu ayuda!

Esta es una pregunta muy amplia. Tú mismo lo admitiste; compraste un libro y miraste artículos de revistas para entender el tema.
Mi pregunta no fue pensada de esa manera. Debido a que soy nuevo en este tema, pedí algunos consejos para orientarme en la dirección correcta; de lo contrario, tendría que probar todos estos enfoques yo mismo; comprender el tema llevará más tiempo del que estoy dispuesto a invertir.
@user2487105 Nuestras páginas Acerca de y Cómo preguntar explican que somos un sitio de preguntas y respuestas (preguntas y respuestas) y no un foro de discusión, por lo que las preguntas deben ser específicas, no solicitar una discusión prolongada y tener una respuesta definitiva que, idealmente, ser de una duración razonable. Su pregunta es demasiado amplia y se basa principalmente en opiniones, por lo que no es adecuada para nuestras preguntas y respuestas. Pero puede unirse a nosotros en nuestro chat de exploración espacial , donde la discusión abierta (como la que continúa en sus comentarios a la respuesta) es aceptable y no se desaconseja pedir opiniones (que serán diferentes). ¡Gracias!
No puedo unirme al chat, necesito 20 de reputación. Aún así: gracias.
No codifique algo usted mismo. Obtenga un programa de optimización de trayectoria como OTIS o POST . Tenga en cuenta que es probable que ambos requieran que sea una persona estadounidense, ya que son software controlado por exportación.

Respuestas (1)

Aquí hay algunos datos rápidos basados ​​en mi experiencia codificando/investigando cada una de estas áreas:

  • Primer vector: el primer vector tiene una solución bastante elegante una vez que encuentra el hamiltoniano y otras variables requeridas en el algoritmo (por ejemplo, los adjuntos). Una vez que puede configurar el problema, la solución tiende a caer bastante bien. La mayoría de las aplicaciones que he visto con el vector cebador son parte del problema de la 'transferencia óptima'.
  • Programación no lineal: la PNL puede ser bastante engorrosa y difícil de codificar y, a menudo, termina codificando muchas restricciones. PERO, de los cuatro que mencionó, las revisiones de literatura anteriores han demostrado que la PNL brinda los mejores resultados. Conway da algunos buenos ejemplos que pueden o no estar en ese texto, pero examina sus trabajos de búsqueda/evasión y las trayectorias generadas por la PNL.
  • Enjambre de partículas: PSO es uno de mis algoritmos favoritos para implementar. Showalter y Black [1] utilizaron recientemente PSO para generar maniobras de teatro de respuesta (este trabajo en realidad incluye un PSO dentro de un PSO). Con respecto a las transferencias orbitales, encontrará que gran parte del tiempo que pasa dentro de un PSO se propagará en su trayectoria. Puede simplificar esto usando el movimiento Kepleriano, pero la integración numérica completa con perturbaciones de orden superior aumentará su tiempo de cálculo.
  • Algoritmos genéticos: los GA pueden ser muy costosos desde el punto de vista computacional en función de si está realizando una optimización de un solo objetivo o de múltiples objetivos, sus variables de diseño, sus restricciones, etc. Además, los GA también dependen de su número mínimo de generaciones generadas. Hay muchas variantes en el GA, pero el tiempo de cálculo de un GA es, se puede argumentar, dependiente del usuario.

Notas al margen:

  • Estos algoritmos también dependerán de cuán compleja sea su función de costos y sus criterios de convergencia.
  • El tiempo de cálculo será una función de la fidelidad de su modelo

Finalmente, cuando consideras la PNL como un algoritmo de mayor fidelidad, la pregunta es "¿cuál es mi suposición inicial?" para alimentar la PNL (ya que su convergencia en un algoritmo numérico a menudo se basa en qué tan cerca está de una respuesta). Puede usar PSO o primer vector o cualquier número/combinación de rutinas de optimización como calentamiento/suposición inicial para NLP o modelo de mayor fidelidad que lo ubicará en el vecindario de una, con suerte, buena solución.

1: http://arc.aiaa.org/doi/abs/10.2514/1.A32989

¡Gracias por tu rápida respuesta! Algunos de sus puntos también se mencionaron en lo que he leído hasta ahora, pero esa es solo una respuesta parcial a mi pregunta; por lo que ha dicho, los GA son bastante buenos para encontrar mínimos globales de la función de costo, incluso con una primera suposición incorrecta, pero son bastante lentos. Estoy buscando una solución que sea lo más rápida posible pero donde no se requiera encontrar los mínimos globales; una solución 'buena' está bien. Así que todavía no estoy seguro de qué enfoque tomar; como se mencionó antes, debe considerarse una vista previa.
Sugirió que PSO podría usarse como un preprocesador porque crean una buena suposición pero convergen lentamente hacia la solución óptima. Sé que estas preguntas son bastante generales y, por lo tanto, difíciles de responder, pero tome nuestro sistema solar como ejemplo: si quisiera calcular una transferencia interplanetaria desde, digamos, la Tierra a Júpiter, tenga en cuenta todos los planetas y el sol y limite el tiempo de transición a un año ¿sería posible calcular las maniobras necesarias en un minuto? Nuevamente, disculpe este tipo de preguntas, pero no tengo experiencia en ese campo.