Рис. 5. Оператор мутации с дублированием
Рассмотренные ранее особенности операторов мутации и кроссовера в векторном варианте генетического программирования были учтены при разработке программного средства с рабочим названием GPD toolbox, реализующего механизмы поиска векторного варианта функции решения методом генетического программирования. В качестве среды разработки был выбран математический пакет MATLAB, позволяющий использовать мощный математический аппарат матричных вычислений для моделирования дискретных и непрерывных систем.
Далее была произведена апробация программного средства GPD toolbox на задачах синтеза САУ различными техническими объектами - как линейными, так и нелинейными. Так, например, решалась задача поиска оптимального по критерию обобщенной работы управления объектом вида «двойной интегратор». Подобный тип поведения объектов имеет довольно широкое распространение: в качестве примера можно привести задачу управления поворотом высотного крана [4] и углом наклона космического аппарата. Задача синтеза регулирующего устройства сводилась к задаче поиска двух функций - условия, определяющего момент срабатывания регулятора, и закона формирования управляющего воздействия. При этом исходные функциональные и терминальные множества для искомых функциональных деревьев различны. В результате произведенных исследований было установлено, что применение комбинации векторного генетического оператора кроссовера с частичной попарной схемой выбора рекомбинируемых функциональных деревьев, а также трех описанных схем операторов мутации позволило повысить эффективность поиска решения более чем на 15% (усредненный показатель, взятый на основании 100 запусков процедуры решения в GPD toolbox). Следует отметить, что для операторов кроссовера и мутации выбиралось именно то функциональное дерево особи, изменение которого данным оператором на предыдущем шаге повысило показатель пригодности наилучшим образом.
Далее была рассмотрена задача поиска оптимального по быстродействию векторного управления моделью транспортного средства Dubins Car:
(1)
В приведенной формуле ц - направление движения модели относительно оси x; x, y - координаты положения модели в декартовой системе координат. Управление для такой модели представляет собой вектор из двух функций [u1, u2], задающих уровень напряжения на левом и правом двигателях модели соответственно, что создает тяговое усилие для перемещения модели в пространстве.
Рис. 6. Пример решения задачи оптимального по быстродействию векторного управления мобильным роботом
При этом множество функциональных деревьев, составляющее решение данной задачи, строится на основании единого функционального и терминального базиса. Используемые при поиске операторы мутации и рекомбинации, а также схемы их применения аналогичны приведенным в предыдущем примере. Отличие состоит в использовании дополнительной, перекрестной схемы применения оператора кроссовера. На основании результатов проведенных испытаний было установлено, что использование данной схемы рекомбинации позволяет повысить эффективность поиска решения более чем на 12%. Объясняется это тем, что искомые функциональные деревья содержат в себе фрагменты, описывающие сходное управляющее воздействие при определенном состоянии объекта. Примером может служить задача перемещения мобильного робота по некоторой траектории, на отдельных фрагментах которой оптимальным видом движения является прямолинейное. Обязательное условие такого движения - одинаковая скорость вращения тяговых колес робота. На рис. 6 в качестве примера приведен результат поиска оптимальной траектории, охватывающей три ключевые точки (отмечены серыми четырехугольниками) и пролегающей преимущественно в пределах заданной области в виде буквы «Э». В правой части рисунка приведены графики уровня управляющего сигнала power (напряжения, передаваемого на двигатели) в каждый из моментов времени (time) для левого (left) и правого (right) двигателей. Из рисунка видно, что в траектории мобильного робота присутствуют участки, уровень управляющего сигнала на которых одинаков.
Операторы рекомбинации и мутации являются основной движущей силой поиска функционального решения в генетическом программировании. Естественное возрастание сложности решаемой задачи при векторном характере решения неизбежно приводит к повышению требований к алгоритмам функционирования данных операторов. Кроме того, важным фактором является выбор схем применения операторов кроссовера и мутации в соответствии с характером искомого решения до запуска алгоритма поиска.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Koza J.R. Genetic Programming II: Automatic Discovery of Reusable Programs (Complex Adaptive Systems). - MA: MIT Press, 1994. - 768 с.
Колесов Ю.Б. Моделирование систем: Динамические и гибридные системы. - СПб.: БХВ-Петербург, 2006. - 224 с.
Рогачев Г.Н. Гибридный автомат как модель цифровой системы управления // Вестник СамГТУ. - 2007. - С. 59-63.
Gustafsson T. On the design and implementation of a rotary crane controller // Eur. J. Contr. - 1996. - Т. 2. - С. 166-175.