Разработка open-source библиотеки OSOL Extremum для решения задач теории управления на основе независимого стандарта FMI

Введение

Взаимосвязь между математикой и инженерными задачами очевидна: теория вероятности применяется для оценки время отказа, используя экспериментально собранные данные, линейная алгебра – для упрощения динамических систем, описывающих движение объектов, машинное обучение – для предсказывания будущего состояния объекта на основе текущих наблюдений и т.п. Теория оптимизации – одно из наиболее важных направлений математики, которое используется при решении большого числа прикладных задач, поэтому их реализацию можно обнаружить в подавляющем большинстве прикладных математических пакетов (например, Matlab, Wolfram Mathematica, Maple и др.) в той или иной форме [1-3]. Однако уровень использования современных метаэвристических алгоритмов до сих пор остается недостаточным ввиду различных причин: полный цикл применения алгоритма оптимизации состоит из нескольких этапов, включающих в себя математическое описание алгоритма, его программную реализацию, детализацию прикладной задачи и, наконец, соединение всех этапов вместе. Все это требует коллаборации между большим числом исследователей в разных научных областях, что приводит к стагнации процесса разработки. К сожалению, не всегда возможно иметь в своем распоряжении полный набор разработчиков, который включает в себя математика, программного архитектора, разработчика и остальных. Именно поэтому развитие свободно распространяемых программных продуктов (open-source) с явной сепарацией блоков (в зависимости от научного направления) необходимо. Имеющиеся open-source пакеты (например, модули scikit и scipy языка программирования python [4,5] и пакеты языка программирования R [6]) частично решают эти задачи, но в основном предоставляют наборы готовых инструментов. Это повышает важность разработки библиотек, которые могут быть использованы как набор строительных блоков для создание своих собственных алгоритмов.

Текущие проблемы

В данном разделе будут описаны основные проблемы, для решения которых разрабатывался программный комплекс OSOL Extremum.

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

Проблема повторного использования кода. Существует огромная разница в том, как пишут код академические исследователи и профессиональные программисты: первые в большинстве сосредоточены на решении задач своего проекта, в связи с этим они не беспокоятся о повторном использовании библиотек и скриптов, которые они пишут. Программисты же, напротив, используют разнообразные подходы и парадигмы (например, объектно-ориентированное программирование) для максимизации повторного использования написанного кода. Это дает им возможность создавать удобные инструменты, которые могут быть адаптированы для применения в той или иной сфере и впоследствии позволят увеличить скорость проведения исследований в данной или смежных областях.

Кризис воспроизводимости является общей проблемой науки. Лишь небольшое количество исследований, описанных в научных статьях, могут быть верифицированы или хотя бы повторены. Это приводит к снижению скорости развития, уровня доверия к проводимым исследованиям и возможности прикладного применения результатов. Метаэвристические алгоритмы являются одним из наиболее распространенных примеров того, как недостаток информации приводит к кризису воспроизводимости: большое количество исследований не приводят пошагового описания алгоритма, что приводит к разночтениям. В лучшем случае в работах могут быть представлены псевдокод в паре с таблицей бенчмарков. Но даже в этом случае информации недостаточно для повторения эксперимента, т.к. отсутствуют точные значений гиперпараметров алгоритма.

Все указанные проблемы снижают общую скорость проведения исследований, вынуждают ученых решать дополнительные задачи, находящиеся вне рамок их специализации и компетенций. Один из способов снижения эффектов описанных проблем – это создание open-source библиотек, представляющих высокоуровневый API для создания алгоритмов, также включающий тестирование и поддерживающий большое число прикладных задач.

OSOL Extremum

OSOL (open-source optimization library) Extremum представляет собой библиотеку для языка Python [7]. Библиотека является свободно распространяемой, ее код доступен и выложен [8].

В текущей версии библиотеки реализованы вариации алгоритма случайного поиска, необходимые элементы линейной алгебры и шаблоны для построения алгоритмов оптимизации. Следует отметить, что в данной библиотеке поддерживается работа с динамическими системами, экспортированными в соответствии со стандартом FMI [9], FMI, представляющий собой платформонезависимый стандарт, поддерживающий процедуры обмена и симуляций динамический моделей, используя комбинацию XML-файлов и скомпилированного C-кода. На текущий момент актуальной является вторая версия стандарта, выпущенная в июле 2014 года.

Пример работы

Для демонстрации эффективности OSOL Extremum была выбрана задача стабилизации спутника с использованием метаэвристических алгоритмов оптимизации. Данная задача подробна описана и решена в нескольких исследованиях [10-12], поэтому в распоряжении имеются несколько способов ее решения. Целью задачи является поиск такого управления, которое одновременно минимизирует затраты топлива и гасит вращательное движение, снижая угловые скорости до нуля. Выбранная задача может быть редуцирована к задаче нелинейного программирования, что дает возможность решить ей напрямую как задачу оптимизации.

Динамическая система, описывающая поведение спутника в безразмерных величинах представлена ниже:

где – проекции угловых скоростей да главную ось инерции, а управления характеризуют тягу двигателей.

Данная модель была реализована в программе MapleSim и впоследствии экспортирована в соответствии со стандартом FMI.

Модель спутника, реализованная в MapleSim Рис. 1. Модель спутника, реализованная в MapleSim

Оригинальное решение поставленной задачи из [10] представлено на рисунке ниже:

Управления для спутника Рис. 2. Управления для спутника

Соответствующие траектории Рис. 3. Соответствующие траектории

Требуемые управления искались в классе кусочно-линейных функций. Результаты, полученные с помощью OSOL Extremum представлены ниже:

Управления для спутника, найденные с помощью OSOL Extremum Рис. 4. Управления для спутника, найденные с помощью OSOL Extremum

Соответствующие траектории Рис. 5. Соответствующие траектории

По представленным графикам видно, что угловые скорости равны нулю в конечный момент времени, а найденные управления имеют вид, близкий к тому, который представлен в оригинальной работе. Таким образом, поставленная задача решена успешно.

Заключение

Представленное программное обеспечение является попыткой расширить возможности ученых, работающих в области теории оптимизации и ее применения для решения различных прикладных задач. OSOL Extremum предоставляет высокоуровневый API, включающий инструментарий для разработки и тестирования различных алгоритмов оптимизации и их использования для решения задач синтеза оптимального управления. Это позволит минимизировать существующие научные проблемы, включающие в себя проблему «черного ящика», повторного использования кода и кризиса воспроизводимости, делая науку более прозрачной и верифицируемой.

В будущем планируется расширить функционал OSOL Extremum, добавив поддержку оценки эффективности алгоритмов оптимизации на наборе бенчмарков, визуальную верификацию, сравнение алгоритмов и др. Кроме того, дальнейшая работа будет сфокусирована не только на написании программного продукта, но и его подробное документирование.

Список литературы

  1. Global Optimization Toolbox. Solve multiple maxima, multiple minima, and nonsmooth optimization problems (дата обращения: 01.12.2018)
  2. Wolfram Language & System. Guide: Optimization (дата обращения: 01.12.2018)
  3. Overview of the Optimization Package (дата обращения: 01.12.2018)
  4. Scikit-Learn. Available (дата обращения: 01.12.2018)
  5. SciPy. Available (дата обращения: 01.12.2018)
  6. CRAN Task View: Optimization and Mathematical Programming (дата обращения: 01.12.2018)
  7. Lutz M. Learning Python – Sebastopol: O’Reilly Media, 2013, 1594 p.
  8. GitHub: Open-Source Optimization Library - Extremum (дата обращения: 01.12.2018)
  9. Functional Mock-up Interface (дата обращения: 01.12.2018)
  10. Крылов И.А. Численное решения задачи об оптимальной стабилизации спутника // Вычислительная математика и математическая физика, № 8(1), 1968, С. 203-208.
  11. Panteleev A.V., Metlitskaya D.V.. Using the method of artificial immune systems to seek the suboptimal program control of deterministic systems // Automation and Remote Control, vol. 75(11), 2014, pp. 1922–1935.
  12. Panteleev A., Panovskiy V. Meta-heuristic interval methods of search of optimal in average control of nonlinear determinate systems with incomplete information about its parameters // Journal of Computer and Systems Sciences International, vol. 56(1), 2017, pp. 52–63.
  13. Panteleev A., Panovskiy V. Multiagent Self-Organizing Interval Bacterial Colony Evolution Optimization Algorithm // Proceedings of the First International Scientific Conference “Intelligent Information Technologies for Industry” (IITI’16). Advances in Intelligent Systems and Computing, vol. 450, 2016, pp. 451–461.
  14. Kumar E.V., Raajab G.S., Jerome J. Adaptive PSO for optimal LQR tracking control of 2 DoF laboratory helicopter // Applied Soft Computing, vol. 41, 2016, pp. 77–90.
ИП Пановский Валентин Николаевич
ОГРНИП 322774600390419
ИНН 771683960143