Условная оптимизация в нелинейном программировании с помощью генетических алгоритмов

СПИСОК ЛИТЕРАТУРЫ

1. Гук Ю.Б., Рудакова P.M. Выбор критериев для расчета надежности схем высоковольтных подстанций. // Известия ВУЗов, Энергетика, № 4, 1969.

2. Гук Ю.Б., Казак H.A., Мясник А.В. Теория и расчет надежности систем электроснабжения. -М.: Энергия, 1970.

3. Шишонок Н.А. и др. Основы теории надежности и эксплуатации радиоэлектронной техники. -М.: Советское радио, 1969.

4. Муравьев В.П., Разгильдеев Г.И. Надежность систем электроснабжения и электрооборудования подземных разработок шахт. -М.:Недра, I970.

5. Сорокин А.С. Преобразование Лапласа и его приложение к решению разностных уравнений. Новокузнецк, СибГГМА. 1994. - 89 С.

6. Баруча-Рид А.Т. Элементы теории марковских процессов и их применение. -M..: Наука, 1969. 511С.

7. ЦыпкинЯ.З. Теория линейных импульсных систем. - М.: Физматгиз. 1963. -761 С.

8. Королюк B.C., Томусяк А.А. Описание функционирования резервированных систем посредством полумарковских процессов. //Кибернетика, вып.5, 1965.

9. Разгильдеев Г.И. Надежность электрооборудования и электроснабжения угольных шахт. Дис. докт. ... техн. наук. Л., 1971.

10. Сорокин А.С. Алгоритм решения систем уравнений Колмогорова (Оценка качества системы). //Вторая Всероссийская научная конф. Проектирование инженерных и научных приложений в среде MATLAB. -М., 2004. С. 389 - 397.

11. Сорокин А. С. Применение полумарковских процессов к определению характеристик надежности технологических схем. // Вестн. Кузбасского гос. тех. унив., 2005. № 1. С. 3 -9.

12. Черчлин У., Акоф Л. Введение в исследование операций. - Киев: Наукова Думка, 1968.

Автор статьи:

Сорокин Андрей Семенович

- канд. физ.-мат.наук, доцент, ст.н.с. (филиал КузГТУ в г. Новокузнецке), тел.: 8 (3843) 725007

УДК 519.6

А.В Смольянинов

УСЛОВНАЯ ОПТИМИЗАЦИЯ В НЕЛИНЕЙНОМ ПРОГРАММИРОВАНИИ С ПОМОЩЬЮ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

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

Ниже рассмотрен один из таких, относительно новых методов - «генетические алгоритмы» (ГА) с применением штрафных функций. В основе ГА лежит метод случайного поиска, время решения задачи априори неизвестно и во многом зависит от использованных его модификаций.

Недостатком классических эволюционных алгоритмов является отсутствие механизма учета ограничений оптимизационной задачи [2] и нами

устранения этой проблемы были использованы некоторые модификации метода штрафных функций.

Как известно из курса классического численного анализа [5], основная идея методов штрафных функций состоит в преобразовании задачи минимизации функции с соответствующими ограничениями в задачу поиска минимума функции без ограничений. Для каждого ограничения определяется несколько уровней его нарушения, для каждого уровня нарушений каждого ограничения определяется коэффициент штрафа, который может выбираться в динамике в зависимости от степени нарушения ограничений (эта модификация называется методом динамических штрафов).

Нами была предложена модификация метода динамических штрафов, названная методом адаптивных штрафов. В отличие от предыдущего, в данном методе штрафные функции зависят не

38

А.В Смольянинов

только от номера итерации, но и от количества попаданий лучшего представителя популяции на каждом шаге в допустимую или недопустимую области.

В ходе решения задачи могут получиться индивиды из недопустимой области. Для того, чтобы все решения были допустимы, разработан метод “лечения” недопустимых индивидов.

Идея метода состоит в том, что на последнем шаге эволюции все недопустимые индивиды подвергаются следующей процедуре:

- из всех полученных допустимых индивидов выбирается наиболее близкий по генотипу к данному недопустимому;

- случайный бит недопустимого индивида заменяется на аналогичный бит в допустимом индивиде;

- производится проверка промежуточного решения на принадлежность к допустимой области. Если решение недопустимо, то переход к предыдущему шагу .

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

Одним из наиболее перспективных в этом отношении подходов является коэволюционный алгоритм [4]. Коэволюционный генетический алгоритм - это несколько параллельно действующих стандартных генетических алгоритмов. Отдельный генетический алгоритм называется подпопу-ляцией. Каждая из подпопуляций оптимизирует заданную функцию и обладает своей стратегией оптимизации. При этом популяции «борются» за ресурс, который в течение работы алгоритма перераспределяется в пользу более эффективной из них. В нашей работе реализована одна из модификаций такого коэволюционного генетического алгоритма.

В ходе проделанной работы был разработан программный продукт на языке С# для условной оптимизации нелинейных функций с нелинейными ограничениями. В программном продукте реализованы модифицированный ГА , коэволюционный ГА и метод “лечения” недопустимых решений.

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

Разработанный на основе сочетания ГА с методом штрафных функций. программный продукт был апробирован на тестовых задачах, где показал высокую эффективность Данный программный продукт может быть использован для решения сложных нелинейных задач, решение которых классическими методами практически невозможно.

Естественно, использованный подход имеет стохастическую природу, поэтому не гарантирует оптимальное решение задачи, а предоставляет субоптимальные решения, которые вполне могут быть использованы для практических целей.

Следует обратить внимание на следующие возможности разработанного программного продукта

1) Возможность задания ограничений и целевой функции в виде произвольного математического выражения (в том числе возможно наличие циклов, ветвлений и других операторов). Поддерживается полный синтаксис языка С#. Поддерживаются все основные классы функций (тригонометрические, возведение в степень и другие). Для вычисления значений заданных математических выражений используется компиляции выражений в машинный код.

2) Для задач с 1 и 2 независимыми переменными возможно построение графиков соответствующих целевых функций и ограничений.

3) Система тестирования надежности работы алгоритма при известном решении.

4) Сохранение задач в файл.

5) Вывод результатов пошаговой работы алгоритма

Созданная программа была апробирована на ряде тестовых задач. На рис. 1 и 2 видна постановка тестовой задачи минимизации «многоовражной» функции

Р(х,у) =

1-57П2

при условиях

х 2 + у 2 < 8 sin(х) + сои(х) > 0

3

х + sin(х)  со,?(у) < 3 На решении данной задачи программа показала уровень надёжности 0,97, в 97 случаях поиска из 100 было получено решение с относительной погрешностью по значению функции не более 0,01.

Точным решением задачи является вектор {0,0} при значении целевой функции, равном 1, а данная программа показывает решение {-0.02; -0.0098} при значении целевой функции 0.9996 (рис.3), что показывает достаточно высокую эффективность созданной программы.

9 Функция Сомбреро

Файл Задача Справка

J W U © $ ^ <&

Описание | Поиск решения

Функция Сомбреро

Описание функции:

Тестовая функция

Постановка Задачи

Целевая функция:

Р(х,У) =

1 - sin

2U^ZZ)

1 + 0.001 ' (jT + Vі) Ограничения:

ix +y1-8<0 \ Sh^x) + Cos(j) > 0 ( jc; + Sm(x) * Cos(у) - 3 < 0

Точное решение:

X[0]=0

X[1]=0

Рис. 1-Функция “Сомбреро” Рис. 2 -Главное окно программы

1 Функция Сомбреро ' — " П " X ]

1 Файл Задача Справка 1

Л С' У © о 0

Описание Поиск решения

.

Алгоритм <© Генетический алгоритм О Коэволсиионный Генетический алгоритм Решение Решение Х={-0.01953125;-0.009765625} F(X)=0.99952276201861 Точное решение X*={0;0} F(X*)=1 Относительная лофешностьло Функции 0.00048

Настройка ГА

Абсопотная пофешностьло аргументу:[0,01953;0,00977] Абсопотная пофешностьло Функции:0.00048

Настройка штрафа

Процент поискового пространства О.01%

Диапазон поиска

Вид оптимизации ф Максимизация С Минимизация Дополнительные настройки

И Применить лечение

1 1 Отобразить работу ГА

Поиск решения

Рис. 3 -Решение задачи

СПИСОК ЛИТЕРАТУРЫ

1. Holland J. H. Adaptation in natural and artificial systems. - Ann Arbor. MI: University of Michigan Press, 197З.

2. Семенкин Е.С. Адаптивные поисковые методы оптимизации сложных систем / Е.С. Семенкин, О.Э. Семенкина, С.П. Коробейников — Красноярск: СИБУП, 1997.—3ЗЗ с.

3. www.basegroup.ru. Электронный ресурс о генетических алгоритмах, нейронных сетях и других алгоритмах решения сложных оптимизационных задач

4. Жукова М.Н. Коэволюционный алгоритм решения сложных задач оптимизации. - Дисс. канд. техн. наук. — Красноярск: СибГАУ, 2004.—126 с.

З. Тынкевич М.А. Численные методы анализа. - Кемерово: КузГТУ, 1997. - 122 с.

Автор статьи:

Смольянинов Андрей Владимирович - студент гр. ПИ-041 Email: smoly@mail/ru