- •Содержание
- •Введение
- •1 Постановка задачи
- •2 Модель решения задачи
- •3 Алгоритм решения задачи
- •4 Реализация методов решения задачи
- •5 Архитектура программы
- •6 Графический интерфейс пользователя
- •7 Тестирование программы
- •8 Демонстрация работы программы
- •Заключение
- •Список использованных источников
- •Приложение а
5 Архитектура программы
В соответствии с заданием было разработано веб-приложение, реализующее генетические операции на примере задачи перенастройки оборудования.
На рисунке 4 представлена структура проекта.
Рисунок 4- Структура проекта
Интрефейс FitnessFunction и класс FitnessFunctionMax реализуют фитнесс-функцию. Реализация генетического алгоритма находится в классе GeneticEngine.
Матрица времени реализована в модуле Time, промежуточное хранение результатов работы алгоритма находится в объектах класса Result.
Первое поколение хромосом генерируется в классе FirstGeneration, лучший результат представляет собой объект класса BestResult.
Библиотека jquery подключена для возможности использования асинхронных запросов ajax. Модуль index.js отвечает за отправку на сервер асинхронных запросов и возврат результатов обработки.
Обработка исключений реализуется в классах-контроллерах, отвечающих за обработку запросов от клиента и возврат результата на сервер. Модуль index.js реализует вывод сообщений об ошибке на веб-страницу.
Веб-страница реализована в модуле index.jsp. На веб-странице реализованы поля для ввода начальных условий и окна вывода результатов алгоритма и сообщений об ошибке.
6 Графический интерфейс пользователя
Графический интерфейс пользователя представлен веб-страницей, предназначенной для ввода параметров алгоритма и окнами вывода матрицы времени и результатов работы алгоритма (рисунок 5).
Рисунок 5- Интерфейс приложения для определения перенастройки оборудования
В поле «Максимальное время» вводится максимальное время перенастройки оборудования. Поле количество операций определяет размерность матрицы времени, а также число генов в хромосоме. Количество хромосом в популяции задается при помощи поля «Размер популяции». Поле «Время стагнации» предназначено для ввода времени останова алгоритма, если не будет происходить более «приспособленной» особи.
Текстовые формы предназначены для вывода матрицы времени и для отчета о ходе выполнения алгоритма.
7 Тестирование программы
Тестирование проводилось на ЭВМ под управлением ОС Ubuntu 16.04 LTS, а также Windows 7. Тестирование прошло успешно.
В результате детального тестирования не было выявлено неточностей или сбоев в работе приложения. Приложение отображает все необходимые данные.
Результат работы программы для количества 10 технологических операций, размере популяции – 10, максимальном времени перенастройки оборудования – 1000 с, времени стагнации – 5 с (рисунок 6).
Рисунок 6 - Результат
выполнения алгоритма с временем
стагнации 5 с
Увеличим время стагнации до 10 с и повторим эксперимент. Оптимальное время перенастройки сократилось. Таким образом, при увеличении времени стагнации возрастает вероятность получения наиболее эффективного результата. Результаты работы при времени стагнации в 10 с приведены на рисунке 7.
Рисунок 7 - Результат выполнения алгоритма с временем стагнации 10 с
8 Демонстрация работы программы
При переходе по ссылке http://localhost:8080/Spring/ открывается веб-страница для ввода параметров алгоритма (рисунок 8).
Рисунок 8 — Веб-страница для работы с алгоритмом
Ввод данных осуществляется в текстовые поля в левой верхней части страницы (рисунок 9).
Рисунок 9 — Ввод данных в текстовые поля
Допускается ввод только целых чисел. При вводе нечисловых данных алгоритм не будет выполняться.
По нажатию на кнопку «Сгенерировать матрицу» производится создание матрицы времени и вывод ее на экран (рисунок 10).
Рисунок 10 — Создание матрицы времени
По нажатию на кнопку «Генерация первого поколения» производится создание первого поколения хромосом. По итогам создания первого поколения выводится сообщение (рисунок 11).
Рисунок 11 — Создание первого поколения
При нажатии на кнопку «Выполнить» осуществляется выполнение алгоритма. Пр итогам выполнения алгоритма выводится отчет на экран (рисунок 12).
Рисунок 12 — Результат выполнения алгоритма
