ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И ЗАЩИТЫ ИНФОРМАЦИИ Трус Мария Александровна Выпускная квалификационная работа на соискание степени бакалавра техники и технологий Научный руководитель - к.ф.м.н., доцент кафедры ВТ и ЗИ Гараев Рашит Аюпович Направление 552800 – «Информатика и вычислительная техника» 1 Цель работы: • формирование общей архитектуры инструментальных средств прогнозирования, реализация отдельных компонент и их тестирование на реальных данных. Задачи исследования: • • • • Анализ существующих научно-обоснованных подходов и инструментальных средств прогнозирования временных рядов. Разработка общей архитектуры интеллектуальных сервисориентированных систем прогнозирования временных рядов. Разработка клиентского модуля визуализации системы. Экспериментальное исследование (тестирование) прототипа разработанной системы для прогнозирование объема продаж оптовой фирмы. 2 Прогнозирование временных рядов Интеллектуальные методы прогнозирования: • нейронный сети; • нечеткая логика; • генетические алгоритмы; • гибридные методы. В настоящее время, самым перспективным количественным методом прогнозирования являются нейронные сети. При использовании нейронных сетей легко исследовать зависимость прогнозируемой величины от независимых переменных. 3 Существующие подходы Создание группы экспертов; Покупка заказной готовой заказной системы; Создание собственной системы с «нуля»; Создание на основе готовых нейросетевых пакетов 4 Недостатки подхода создания интеллектуальной системы на основе существующего нейросетевого пакета • • • Нехватка вычислительных ресурсов Необходима подготовка данных Нет возможности создавать собственные архитектуры и алгоритмы 5 Взаимодействие клиента с сервером MATLAB 1— Webбраузер передает запрос Webсерверу; 2— Webсервер проверяет права доступа клиента; 3—TCP/IP клиент вызывает MATLAB Server; 4, 5— MATLAB выполняет расчет и возвращает результаты расчета TCP/IP клиенту; 6, 7— клиент TCP/IP через Webсервер передает результат запроса клиенту; 1, 7— Webбраузер может затребовать и получить дополнительные материалы с Webсервера. 6 •Централизованное хранение указателей на источники данных •Открытое добавление новых источников данных •Коллективное использование данных 7 Архитектура интеллектуальной системы прогнозирования временных рядов Client Web-сервер Серверные страницы Сервисы доступа к приложениям •Клиентское приложение Application server • Web-браузер (тонкий клиент) •Сервисы Клиентские сервисы Сервисы распределения нагрузки Server Server Сервисы управления потоками работ •Данные •Сервер виртуальных баз данных •Сервер баз данных Сервисы доступа к данным Сервер обработки информации Сервисы доступа к данным •Web-сервер •Сервер приложений •Matlab Server Фоновая логика Web-браузер Фоновая логика Уровень представляения Web-браузер Уровень представляения Server Сервисы доступа к БД DATABASE Server Сервисы управления потоками работ Сервер обработки информации Сервисы доступа к данным •Классическая трехуровневая архитектура: •Уровень представления •Уровень бизнес-логики •Уровень данных Client Сервисы доступа к БД DATABASE 8 Client Client HTML, PNG, GIF HTML, PNG, GIF Java script/Java •Язык разработки – Java: •Простота •Объектная ориентированность •Устойчивость •Многопоточность •Безопасность Java script/Java Mozilla Firefox •применение единых стандартов на всех уровнях системы Mozilla Firefox HTTP Apache & TomCat HTTP •Критерий выбора средств: Java Server Pages (JSP) Java classes SOAP/HTTP IBM WebSphere Application Server •Web-браузер Java Client Web Services • Mozilla Firefox SOAP/HTTP Java Workflow Control Services SOAP/HTTP Java Data Access Layer •Web-сервер Server Server Matlab Server Matlab /H P A O S •Сервер приложений •WebSphere Application Server Database Access Services /HTTP SOAP P TT SO AP /H TT P Java Workflow Services Java Data Access Layer •Apache & TomCat IBM DB2 Database •Matlab Server •IBM DB2 Universal Database Server Server Java Workflow Services Matlab Server Matlab Java Data Access Layer •Данные /HTTP SOAP Database Access Services IBM DB2 Database 9 .0 5. 20 .0 07 6. 2 25 00 7 .0 6. 2 09 00 7 .0 7. 2 23 00 7 .0 7. 2 0 06 .0 07 8. 20 200 7 .0 8. 2 03 00 7 .0 9. 2 17 00 7 .0 9. 2 01 00 7 .1 0. 2 0 15 .1 07 0. 29 200 7 .1 0. 12 200 7 .1 1. 2 26 00 7 .1 1. 2 10 00 7 .1 2. 2 0 24 .1 07 2. 07 200 7 .0 1. 21 200 8 .0 1. 2 04 00 8 .0 2. 2 18 00 8 .0 2. 2 0 03 .0 08 3. 17 200 8 .0 3. 31 200 8 .0 3. 2 14 00 8 .0 4. 2 0 28 .0 08 4. 12 200 8 .0 5. 26 200 8 .0 5. 20 08 11 28 Прогнозирование объема продаж Исходный временной ряд, ежедневный объем продаж за период май 2007 - май 2008 100,00 90,00 Исходный временной ряд Линейный (Исходный временной ряд) Полиномиальный (Исходный временной ряд) 80,00 70,00 60,00 50,00 40,00 30,00 20,00 10,00 - 10 Пример реализации интерфейса мастера создания нейронной сети Для прогнозирования выбрана архитектура многослойного персептрона Скрытых слоев – 3; Активационная функция – сигмоидальная 1-й слой – 40; 2-й слой – 30; 3-й сло1 – 10; Алгоритма обучения обратного Распространения Порог ошибки распознавания – 0.005 11 Прогнозирование с помощью нейронной сети 102 101 100 10-1 10-2 10-3 0 100 200 300 400 500 600 700 12 Выводы • • • • Из существующих подходов создания интеллектуальной системы прогнозирования наиболее перспективным является создание системы на основе готовых нейросетевых пакетов Предложено использовать SOA в качестве технологии для разработки интеллектуальной системы прогнозирования. Этот подход отличается от существующих реализаций систем возможностью масштабирования и открытостью архитектуры. Что позволяет привлекать сообщество для расширения и модернизации системы. Предложено использовать виртуальные базы данных в качестве механизма интеграции данных. В отличие от существующих подходов на базе независимых реляционных БД, этот подход позволяет упростить процесс объединения данных. Предложено использовать приложение Matlab в качестве математического ядра при разработке системы прогнозирования. Такая реализация системы позволит не только публиковать результаты, но и проводить прогнозирование временных рядов непосредственно в сети.13 13