Применение генетических алгоритмов в системах управления Эволюционные методы, как и нейросети, позволяют решать вспомогательные задачи теории управления, не привлекая такие базовые понятия, как интеграл, дифференциал, передаточная функция динамического звена и т.п. Приведѐм основные сведения об эволюционных методах. В эволюционных методах вначале создаѐтся множество случайно сформированных объектов с заданной структурой (такое множество называется популяцией объектов) и функция, определяющая близость объекта к истинному решению, называемая функцией цены (целевой функцией). Далее все эволюционные методы работают по общей схеме: определяется цена объектов в популяции, с учѐтом цены и при внесении элемента случайности создаются объекты для популяции следующей итерации. Данный процесс повторяется либо до получения решения, либо до окончания времени, отведѐнного на решение. Популяция имеет «память» — в ней накапливаются лучшие результаты предыдущих итераций, и этим эволюционные методы отличаются от других методов случайного поиска. В создании нового объекта популяции обычно участвуют два существующих объекта, от каждого из которых новый объект отбирает часть свойств; этот процесс называется скрещиванием или кроссовером. При кроссовере, кроме того, исходные объекты подвергаются некоторому случайному изменению — мутации. Иногда используется стратегия элитизма, при которой несколько лучших особей переходят в следующее поколение без изменений, не участвуя в кроссовере и отборе. Эволюционные методы представляют собой модель биологического процесса эволюции: в популяции идѐт борьба за существование; с течением времени объекты совершенствуются и выживают сильнейшие. В литературе направление исследований, объединяющее различные эволюционные методы, получило название «эволюционные вычисления». Обычно все алгоритмы эволюционных вычислений состоят из следующих шагов: 1. Задаѐтся структура объектов, функция цены и условия останова. 2. Создаѐтся популяция объектов P. 3. С помощью функции цены из популяции P выбирается множество лучших объектов. 4. С помощью операторов, поддерживающих эволюцию, из выбранных объектов создаются новые — претенденты на включение в следующую популяцию. 5. Образуется новая популяция P из отобранных на 4-м шаге объектов. 6. Шаги 3-5 повторяются до выполнения условия останова. 7. Если итерации завершены успешно, то из итоговой популяции выделяется объект с высшей ценой, который является искомым решением. Иначе выдаѐтся сообщение о невозможности получить решение. Объектами популяции могут быть структуры данных, автоматы, программы. Функция цены выбирается так, чтобы наибольшую цену имели объекты, лучше всего соответствующие целям эволюции. Широкому распространению эволюционных вычислений способствует три причины. I. Данные алгоритмы для многих типов задач показали свою эффективность по сравнению с другими методами. II. Естественный отбор устраняет необходимость заранее учитывать все особенности решения задачи. Можно успешно решать задачи, структуру решения которых программист не знает. Существует много примеров решения с помощью эволюционных вычислений практических задач (задача коммивояжера, задачи 1 распределения ресурсов; решение задач в реальном времени, связанных с управлением движущимися объектами). III. Высокий параллелизм алгоритмов данного типа. Каждый объект популяции может обрабатываться независимо, что при применении мультипроцессорных компьютеров позволит достигать очень высоких скоростей работы. Эволюционные методы целесообразно применять, если задачи трудно формализуемы или требуется быстро получить грубый результат для принятия решений в реальном времени. Типичными представителями эволюционных вычислений являются: генетические алгоритмы, эволюционные стратегии и генетическое программирование. Отличие генетических алгоритмов и эволюционных стратегий состоит в том, что в первых элементами популяций являются цепочки генов, а во вторых — действительные числа, являющиеся решениями задачи. Данные два направления очень близки между собой и иногда не различаются. Генетическое программирование — это способ создания компьютерных программ для задач, алгоритм решения которых неизвестен заранее. Здесь объектом эволюции являются программы. Популяция состоит из нескольких различных программ. Задаются функция цены и действие эволюционных операторов, модифицирующих программы. Программы обычно пишутся на языке Лисп. Рассмотрим более подробно генетические алгоритмы. В генетике эволюция описывается как процесс воздействия нескольких видов возмущений на генетический материал — хромосомы. Хромосому можно в первом приближении рассматривать как цепочку генов. Каждый из них ответствен за определѐнные свойства организма. В процессе эволюции хромосомы подвергаются в основном двум видам возмущений (операторов): кроссоверу и мутации. Мутации случайным образом изменяют случайно выбранные гены в хромосоме. При кроссовере в двух хромосомах выбирается точка скрещивания и затем происходит обмен частей хромосом-родителей с образованием двух потомков. Возможны и более сложные реализации кроссовера с несколькими точками скрещивания. Иногда применяется инверсия — изменение расположения генов. В качестве генов обычно используются двоичные цепочки. Иногда вместо двоичных цепочек применяют цепочки, в ячейках которых расположены произвольные целые числа. На рисунке 1 показан механизм функционирования основных генетических операторов, Сейчас превалируют гаплоидные алгоритмы с одной хромосомой, но для нестационарных сред и сложных систем могут быть полезны диплоидные или полиплоидные алгоритмы со сложным набором хромосом. 2 1 0 1 Мутация 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 Хромосомы потомков Родительские хром осомы ▼ Инверсия ▼ 1 0 0 0 0 ▼ 1 1 1 Кроссовер 1 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1 Рисунок 1 – Генетические операторы Иногда используются ламарковские генетические алгоритмы: в них цепочки дополнительно трансформируются во время жизни между применением генетических операторов. Применение таких схем иногда позволяет решать трудные для традиционных генетических алгоритмов задачи. Существует много модификаций генетических алгоритмов, в связи, с чем возникает задача сравнения эффективности разных методов. Чаще всего это удаѐтся сделать лишь прямым экспериментом на реальной или модельной задаче. В теоретических моделях генетические алгоритмы рассматриваются чаще всего как марковские процессы. В качестве примера использования генетических алгоритмов рассмотрим задачу нахождение глобального экстремума. Задача нахождения глобального экстремума функций нескольких переменных имеет центральное значение в теории управления; по сути, к ней сводятся задачи синтеза оптимальных регуляторов и управляющих воздействий, идентификации объектов и адаптации. Пусть имеется некоторая целевая функция от многих переменных f(х1, хг, ..., хп), для которой необходимо найти глобальный максимум или минимум. Представим независимые переменные в виде хромосом. Для этого выполним кодирование независимых переменных в двоичной форме, используя т бит для каждого параметра (см. рисунок 2). x1 1 0 1 2 x2 1 1 1 m 1 2 xn 0 m 0 0 1 2 1 m Рисунок 2 – Структура хромосомы Особенно хороший результат даѐт представление хромосом в двоичном формате с использованием кода Грея. Код Грея имеет явные преимущества по сравнению с двоичнодесятичным кодом, который при некотором стечении обстоятельств порождает своеобразные тупики для поискового процесса. Далее работа генетического алгоритма оптимизации аналогична изложенной выше. Отметим, что, кроме генетических алгоритмов, известно несколько способов решения задач глобальной оптимизации: полный перебор возможных решений, случайный по- 3 иск (метод Монте-Карло), локально-градиентный (случайный наброс в сочетании с локальной оптимизацией), использование аналогий с физическими системами (метод моделирования отжига). По скорости определения оптимума целевой функции генетические алгоритмы на несколько порядков превосходят случайный поиск. Поскольку аналитические методы исследования скорости сходимости наталкиваются в этой области на серьѐзные проблемы, была разработана целая система тестовых задач, предназначенная для выявления относительной эффективности различных методов глобальной оптимизации. В частности, показаны уникальные способности генетических алгоритмов в решении задач оптимизации. Генетический алгоритм реализован в популярных версиях нейропакетов — широко известном в России Brain Maker Professional и менее известном, но более профессиональном Neuroforester. В этих пакетах генетический алгоритм управляет процессом общения на некотором множестве примеров, а также стабильно распознаѐт (прогнозирует) новые ситуации с высокой степенью точности даже в условиях внешних помех, например, появления противоречивых или неполных знаний. Причѐм обучение сводится к работе алгоритма подбора весовых коэффициентов, который реализуется автоматически без непосредственного участия пользователя-аналитика. Все результаты обработки представляются в графическом виде, удобном для анализа, принятия решений. В то же время многие исследователи подчеркивают, что применение генетических алгоритмов требует значительных усилий при настройке под конкретную задачу параметров алгоритма. В работе высказана идея об адекватности сложности решаемой задачи и алгоритма решения, суть которой состоит в том, что чем проще задача, тем бессмысленнее становится подбирать кодировки генотипа и настраивать вероятности. В пределе, если целевая функция является гладкой и одноэкстремальной, применение генетических алгоритмов теряет всякий смысл, так как известные методы локальной оптимизации найдут решение быстрее и проще. Отсюда возникла идея гибридных алгоритмов, в которых вначале с помощью генетического алгоритма находится область локализации глобального экстремума, а затем используется метод локальной оптимизации (например, градиентный). В настоящее время большинство исследователей признают, что генетические алгоритмы — один из самых эффективных методов решения задач многоэкстремальной оптимизации. 4