Разработка и исследование гибридного алгоритма решения сложных задач оптимизации

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



на получение значений показателей надежности ТК КА. В результате экспериментов над программой сеть была настроена на необходимую функцию вычисления коэффициента готовности КА. После настройки нейронной сети она была проверена. То есть полученная нейронная сеть была применена в качестве блока вычисления коэффициента готовности КА в ГА. Окна разработанной и реализованной программы ГА и Нейронная сеть (НС) приведены на рисунке 2.12.

Рис. 2.12 Окно программы ГА и Нейронная сеть (НС)

В программе ГА и Нейронная сеть генетический алгоритм решает задачу оптимизации коэффициентов готовности подсистем КА. Особенностью является то, в программу включена обученная НС. Недостаток обученной НС: значение в точке полученного оптимума отлично от объективного (для коэффициента готовности КА объективное равно 0.99992905, полученное сетью 0.999915555), а положительным моментом является то, что точка оптимума равна объективной (для коэффициента готовности КА она равна 000000111111111111).

.4 Настройка НС в процессе оптимизации с помощью ГА

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

Известно, что ГА на первых шагах своей работы охватывает большую часть оптимизируемого пространства, поэтому предлагается использовать точки, сгенерированные ГА, в качестве точек, по которым проводится настройка НС. После обучения далее продолжается оптимизация, то есть генерируются новые точки ГА, по которым проверяется обученность НС, и так далее. Также для ускорения обучения было предложено использовать не все точки сгенерированные ГА в обучении НС, а только те которые дают наибольшую ошибку экзамена обучения. Такой алгоритм можно представить в виде пошаговой структуры так:

Алгоритм ГА+НС:

1.Проводится оптимизация ГА по n1 первым точкам, которые записываются в обучающую выборку.

2.По записанным в обучающую выборку n1 точкам проводится настройка НС.

.По следующим n2 точкам проводим соответствующие шаги ГА.

.Вновь полученные n2 точек используем в качестве экзамена для обучающейся НС.

.Если ошибка экзамена НС недопустимая, то дописываем k (k<n2) точек дающих наибольшую ошибку в обучающую выборку и если целевая НС выполняет роль вычисления целевой функции, то необходимо заменить ее на систему уравнений Колмогорова-Чепмена. Получаем n1 = n1 +k . Переходим на шаг 2.

.Иначе заменяем целевую функцию (систему уравнений Колмогорова-Чепмена) на обученную НС при выполенении оптимизации ГА. Переходим на шаг 3.

Описанный алгоритм был реализован автором на языке высокого уровня С++ в оболочке Builder 5.0. Начальное окно программы изображено на рис 2.13.

Рис. 2.13 Начальное окно программы Гибрид ГА и НС

Настройки в данном случае аналогичны приведенным ранее. Следует только отметить, что пользователь может остановить процесс, изменить настройки, запустить его заново, не закрывая программы (кнопка Стоп), или сделать паузу, то есть временно остановить работу программы с заданными настройками и, не меняя их продолжить, нажав на кнопку Пауза.

Новый раздел Параметры обучающей выборки включает следующие настройки:

Начальное число точек обучения - это то количество начальных точек, которое просматривает ГА. После чего запускается в первый раз функция настройки сети.

Число точек экзамена это количество точек, которое ГА просматривает после настройки сети и на которых проверяется, насколько хорошо сеть была настроена.

В этой программе-гибриде соединены две вышеописанных программы - генетический алгоритм и нейронная сеть, в ее основе лежит алгоритм ГА+НС.

Что касается результатов, то заранее предполагалось, что вычисление по нейронной сети сократит время оптимизации, но практика показывает иное. Мало того, что за время оптимизации сеть не удалось настроить, да еще пришлось потратить рабочее время программы на обучение НС, а она оказалась не нужной.

Выводы:

Нейронную сеть в ходе процесса оптимизации ГА не удалось настроить. Автором предполагаются следующие возможные причины:

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

2.Возможно, генетический алгоритм при оптимизации использует те точки пространства, по которым настроить НС нельзя, то есть себя проявляет одна из проблем настройки сети - проблема генерации обучающей выборки или, по другому, проблема формирования точек обучения таким образом, чтобы они адекватно описывали функциональную зависимость (функцию на которую настраиваем НС).

.Приведенные исследования показали, что при оптимальной структуре ГА требуется около 800 вычислений для нахождения точки оптимума, а НС была настроена при 1000 точек в обучающей выборке. Причем эти точки были случайно сгенерированы, а ГА, как известно, делает все-таки неравномерный разброс по поисковому пространству. То есть, возможно не хватило точек в обучающей выборке.

.5 Проверка настройки НС во время оптимизации ГА одномерных функций

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