Оптимизация траектории: алгоритм быстрого предварительного просмотра [закрыто]

Я уже давно интересовался оптимизацией траектории, прочитал несколько статей по этой теме и купил книгу «Оптимизация траектории космического корабля» в издательстве Кембриджского университета и хочу начать программирование с целью оптимизации траектории в упрощенном солнечном свете. системы, но не в режиме реального времени, а как можно ближе, не требуя точного решения, а предварительного просмотра хорошего решения.

В книгах и статьях предлагаются различные подходы, такие как

  • Аналитические решения с вектором праймеров
  • Прямая транскрипция + нелинейное программирование
  • алгоритмы роя частиц
  • эволюционные/генетические алгоритмы

поскольку у меня практически нет опыта, я хотел бы знать, что вы, ребята, могли бы предложить, потому что я не смог найти никаких сравнений в отношении скорости этих алгоритмов.

Спасибо за вашу помощь!

Это очень широкий вопрос. Вы сами это признали; вы купили книгу и просматривали журнальные статьи, чтобы понять тему.
Мой вопрос был не таким. Поскольку я новичок в этой теме, я попросил совета, чтобы указать мне правильное направление, иначе мне пришлось бы попробовать все эти подходы самому - понимание темы займет больше времени, которое я готов инвестировать.
@user2487105 Наши страницы « О нас» и «Как спросить » объясняют, что мы являемся сайтом вопросов и ответов (вопросы и ответы), а не дискуссионным форумом, поэтому вопросы должны быть конкретными, не требовать длительного обсуждения и иметь окончательный ответ, который, в идеале, быть разумной длины. Ваш вопрос слишком широк, а также в первую очередь основан на мнении и поэтому не подходит для наших вопросов и ответов. Но вы можете присоединиться к нам в нашем чате по исследованию космоса , где открытая дискуссия (например, та, которую вы продолжаете в своих комментариях к ответу) приемлема, и не рекомендуется спрашивать мнения (которые будут отличаться). Спасибо!
Не могу присоединиться к чату - мне нужно 20 репутации. Тем не менее: Спасибо.
Не кодируйте что-то сами. Получите программу оптимизации траектории, такую ​​как OTIS или POST . Обратите внимание, что оба, вероятно, требуют, чтобы вы были гражданином США, поскольку они являются экспортно-контролируемым программным обеспечением.

Ответы (1)

Вот некоторые краткие сведения, основанные на моем опыте кодирования/исследования каждой из этих областей:

  • Вектор праймера. Вектор праймера имеет довольно элегантное решение, как только вы найдете гамильтониан и другие необходимые переменные в алгоритме (например, сопряженные). Как только вы сможете поставить проблему, решение, как правило, выпадет довольно хорошо. Большинство приложений, которые я видел с вектором праймеров, являются частью проблемы «оптимального переноса».
  • Нелинейное программирование: НЛП может быть довольно громоздким и трудным для кодирования, и вы часто в конечном итоге кодируете множество ограничений. НО - из четырех, которые вы упомянули, прошлые литературные обзоры показали, что НЛП дает наилучшие результаты. Конвей приводит несколько замечательных примеров, которые могут быть, а могут и не быть в этом тексте, но изучите его работы по преследованию/уклонению и траектории, сгенерированные НЛП.
  • Рой частиц: PSO — один из моих любимых алгоритмов для реализации. Шоуолтер и Блэк [1] ​​недавно использовали PSO для создания ответных театральных маневров (эта работа фактически включает PSO внутри PSO). Что касается орбитальных переходов, вы обнаружите, что большая часть времени, проведенного внутри PSO, будет посвящена распространению вашей траектории. Вы можете упростить это, используя кеплеровское движение, но полное численное интегрирование с возмущениями более высокого порядка увеличит время вычислений.
  • Генетические алгоритмы: ГА может быть очень затратным в вычислительном отношении в зависимости от того, выполняете ли вы однокритериальную или многокритериальную оптимизацию, ваши проектные переменные, ваши ограничения и так далее. Кроме того, GA также зависит от вашего минимального количества сгенерированных поколений. Существует множество вариантов ГА, но можно утверждать, что время вычисления ГА зависит от пользователя.

Боковые примечания:

  • Эти алгоритмы также будут зависеть от сложности вашей функции стоимости и ваших критериев сходимости.
  • Время вычислений будет зависеть от точности вашей модели.

Наконец, когда вы рассматриваете НЛП как алгоритм с более высокой точностью, возникает вопрос: «Каково мое первоначальное предположение?» для подпитки НЛП (поскольку ваша сходимость в численном алгоритме часто зависит от того, насколько вы близки к ответу). Вы можете использовать PSO или вектор праймеров, или любое количество/комбинацию подпрограмм оптимизации в качестве разминки/первоначального предположения для НЛП или модели с более высокой точностью, которая поместит вас по соседству с, надеюсь, хорошим решением.

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

Спасибо за быстрый ответ! Некоторые из ваших пунктов были упомянуты в том, что я уже читал, но это лишь частичный ответ на мой вопрос; из того, что вы сказали, GA довольно хорошо находит глобальные минимумы функции стоимости даже при плохом первом предположении, но довольно медленно. Я ищу решение, которое будет максимально быстрым, но где не требуется поиск глобальных минимумов - «хорошее» решение в порядке. Поэтому я все еще не уверен, какой подход выбрать; как упоминалось ранее, следует рассмотреть предварительный просмотр.
Вы предположили, что PSO можно использовать в качестве препроцессора, потому что они создают хорошее предположение, но медленно сходятся к оптимальному решению. Я знаю, что эти вопросы довольно общие и поэтому на них трудно ответить, но возьмем в качестве примера нашу солнечную систему: если бы я хотел рассчитать межпланетный переход, скажем, от Земли до Юпитера, принять во внимание все планеты и солнце и ограничить время перехода к году можно было бы рассчитать необходимые маневры в течение минуты? Еще раз прошу прощения за такие вопросы, но я довольно неопытен в этой области.