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

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

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



Вµны рисунки форм программы после выполнения оптимизации с оптимальной структурой ГА для каждой из функций.

Выводы:

оптимальной структурой ГА в данной задаче является: турнирная селекция, слабая (средняя см. табл. 3. приложения А) мутация, равномерная рекомбинация,

ГА успешно справился с задачей оптимизации (т.к. показатели надежности равны 1),

для всех оптимальных структур (для каждой из функций) для нахождения глобального максимума не потребовалось выполнения всех отведенных поколений (т.е. глобальный максимум был найден уже после 20-21 поколения).

2.3 Настройка нейронной сети на целевые функции отдельно от процесса оптимизации и ее проверка в ГА

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

Для настройки сети автором была разработана и реализована на языке высокого уровня программа в основе которой был положен уже известный алгоритм обратного распространения [7] с адаптивным шагом обучения на основе простого алгоритма локального поиска.

Общая схема обучения выглядит так:

1.Случайно генерируется битовая строка заданной длины (закодированный шаг обучения).

2.Битовая строка декодируется в вещественное число - шаг обучения.

.Сети предъявляются все образы. Происходит настройка сети с шагом обучения, полученным на этапе 2. Вычисляется ошибка сети.

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

.Если ошибка уменьшается, то инвертируем в битовой строке текущего шага обучения 0 на 1 (0 выбирается случайно) - увеличиваем шаг iелью более быстрого спуска в точку минимума ошибки сети, иначе инвертируем в битовой строке текущего шага обучения 1 на 0 (1 также выбирается случайно) - уменьшаем шаг iелью локализации найденного минимума ошибки сети и спуска в него. Переходим к этапу 2.

.Если инвертирование невозможно тогда переходим на этап 1.

Начальное окно программы изображено на рисунке 2.8.

В данной программе пользователь может не только установить архитектуру сети в настройках Задать структуру(см. рисунок 2.9), с произвольным числом слоев и нейронов на каждом слое, но и выбрать функцию активации нейронов в параметрах сети Выбрать вид сигмоидной функции.

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

В опциях тАжшага обучения устанавливаются ограничения на величину и точность шага обучения. И в зависимости от этих параметров получаем определенную длину булевой строки, которая также указывается в окне (см. рис. 8.2).

Рис. 2.8 Начальное окно программы Настройка сети

Рис. 2.9 Окно установки архитектуры НС

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

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

Рис. 2.10 Кривая обучения сети

Для настройки НС потребовалось 1000 обучающих пар вход-выход. Данное число пар было случайным образом сгенерировано с помощью уже имеющейся программы вычисления целевой функции по системе уравнений Колмогорова-Чепмена. Подбор числа обучающих пар осуществлялся эмпирическим (опытным) образом. Начиная со 100 пар, прибавляя по 100 настраивалась НС и проверялась в ГА. То есть, если точка оптимума не соответствовала реальной, то сеть считалась недообученной, добавлялись следующие 100 пар в обучающую выборку и обучение проводилось заново. Таким образом, в результате было получено 1000 пар, что составляет 0.38 процента от всех точек пространства оптимизации.

Запустив данную программу несколько раз, была получена НС. Аппроксимация по сети для одного из коэффициентов готовности КА изображена на рис 2.11.

Рис. 2.11 Окно программы после завершения настройки сети

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

Выводы

В данном подразделе была разработана и реализована программа, позволяющая настроить нейронную сеть