Данная статья является продолжением статьи, опубликованной в № 1 журнала «Прикладная информатика» в 2019 году [1]. В ней задачи компьютерного проектирования трасс различных линейных сооружений (новые и реконструируемые железные и автомобильные дороги, трубопроводы различного назначения, каналы и др.) рассматриваются с единых позиций – как задачи аппроксимации последовательности точек на плоскости гладкой кривой, состоящей из элементов заданного вида, т. е. сплайном. Принципиальное отличие от других задач аппроксимации, рассматриваемых в теории сплайнов и ее приложениях, состоит в том, что границы элементов сплайна и даже их число неизвестны. Поэтому предложена двухэтапная схема поиска решения. На первом этапе с помощью динамического программирования определяется число элементов сплайна и их параметры. Для некоторых задач этот этап является единственным. В более сложных случаях результат первого этапа используется как начальное приближение для оптимизации параметров сплайна с помощью нелинейного программирования. Другим осложняющим обстоятельством является наличие многочисленных ограничений на параметры сплайна, которыми учитываются проектные нормативы и условия строительства и последующей эксплуатации сооружения. В статье рассмотрены особенности математических моделей соответствующих проектных задач. Для сплайна, состоящего из дуг окружностей, сопрягаемых отрезками прямых, используемого в проектировании продольного профиля как новых, так и реконструируемых железных и автомобильных дорог и трубопроводов, построена математическая модель и использован нестандартный алгоритм решения задачи нелинейного программирования с учетом структурных особенностей системы ограничений. В отличие от стандартных алгоритмов нелинейного программирования используется построение базиса в нуль-пространстве матрицы активных ограничений и его модификация при изменении набора активных ограничений. При этом для поиска направления спуска на каждой итерации не требуется решение вспомогательных систем уравнений вообще. Рассмотрены два варианта организации итерационного процесса оптимизации: спуск по группам переменных при наличии участков независимого построения направления спуска и традиционное изменение всех переменных в одной итерации.
все жанры