Я использую GPOPS-II (к сожалению, коммерческое программное обеспечение для оптимизации) для решения задачи оптимизации траектории самолета. GPOPS-II преобразовывает проблему в проблему НЛП, которая впоследствии решается IPOPT, решателем НЛП.
Пытаясь решить свою проблему, я ограничиваю высоту полета самолета. Ставлю верхнюю границу 5500 м по высоте. Теперь я могу сделать это двумя способами. Прежде всего, я могу установить прямую верхнюю границу высоты переменной состояния в 5500 м. Для этого IPOPT требуется примерно 1000 итераций и 438 секунд, пока не будет найдено оптимальное решение. Во-вторых, я могу наложить ограничение пути на высоту переменной состояния 5500 м. Одновременно ослабляю прямую границу государственной переменной высоты до 5750 м. Эти формулировки задач логически эквивалентны, но не математически: на этот раз IPOPT занимает всего 150 итераций и 240 секунд, чтобы прийти к точно такому же оптимальному решению.
Я уже нашел обсуждение, в котором кто-то заявляет что ослабление границ программы НЛП способствует более быстрой сходимости из-за природы методов внутренней точки. Мне это кажется логичным: внутренний точечный решатель преобразует проблему в проблему с барьером, в которой ограничения в основном преобразуются в экспоненциально возрастающую стоимость на границах нарушения ограничений. В результате внутренняя точечная решающая программа (изначально) избегает границ задачи (из-за увеличения штрафной функции на границах нарушения ограничений) и сходится с более медленной скоростью.
Мои вопросы следующие:
- Чем отличаются математические формулировки ограничений и ограничений пути в методе внутренней точки?
- Почему установка границы ограничения пути на 5500 м не замедляет сходимость так же, как ограничение переменной замедляет сходимость?
Заранее спасибо!
P.s. Оптимальное решение находится вблизи границы ограничения высоты 5500 м; в оптимальном решении самолет должен достичь h = 5500 м в последний момент времени, и, как следствие, он пролетит около этой высоты за некоторое время до t_f.