Таблица 3.2 Данные для процедуры обучения ИНС

Переменная

Тип

Вид

Диапазон значений

ID

ном.

входная

232

Quantity

числ.

входная/выходная

min ÷ max

Date

Day

числ.

входная

1 ÷ 31

Month

числ.

входная

1 ÷ 12

Весь алгоритм обработки данных в системе СППР условно разбит на три этапа: пре-процессирование, основная обработка (прогноз) и пост-процессирование с представлением результата ЛПР.

До выполнения всех этапов обработки производятся необходимые настройки и изменения в конфигурации системы программ «1С: Предприятие 7.7», заключающиеся в создании определенной формы отчета, таблицы результатов, интерфейса пользователя и модулей обработки на встроенном языке программирования.

Первый этап:

1)  выборка необходимых данных и исторических сведений из БД посредством языка запросов SQL;

2)  впределение минимального и максимального значения прогнозируемой переменной;

3)  впределяется горизонт прогнозирования (по умолчанию ½ срока хранения);

4)  исходя из п.2 проводится нормализация данных, необходимых для обучения сети;

5)  создается в памяти объект обработки;

6)  данные, необходимые для обработки, передаются в созданный объект.

Второй этап:

1)  создается экземпляр нейронной сети;

2)  проводится процедура обучения сети;

3)  матрица значений синаптических весов сохраняется в файле;

4)  построится прогноз в единичном базисе с необходимым горизонтом;

5)  значения переменной прогнозирования в единичном базисе за весь период прогноза суммируются (будущий объем продаж);

6)  результаты прогноза возвращаются в вызывающую процедуру.

Третий этап:

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

2)  из каждого объема будущих продаж вычитается величина остатков (переменная Rest);

3)  полученное количество округляется в меньшую сторону до целого числа тарных мест минимальной заводской упаковки;

4)  определяется среднее значение наценки по каждому пункту номенклатуры;

5)  вычисляется произведение значений, полученных в п.3 и 4;

6)  исходя из величины значения полученного в п.5 произведения, кортежи таблицы сортируются по убыванию;

7)  таблица с отсортированными кортежами сохраняется в БД;

8)  результаты в предусмотренной форме отчета предоставляются ЛПР для дальнейшего принятия решения.

4.4  Определение параметров ИНС

Для определения оптимальных параметров нейронной сети был проведен ряд экспериментов. Целью экспериментов было прогнозирование объема будущих продаж. Для достижения данной цели было проведено исследование влияния предс­тавления исторических и прогнозируемых данных на ошибку прогнози­рования. Также были рассмотрены вопросы влияния структуры НС на скорость обучения сети и ошибку прогнозирования. При этом стави­лись следующие задачи:

·  поиск критериев прогнозирования;

·  поиск оптимального представления исторических данных;

·  поиск оптимального представления результата прогнозирова­ния;

·  поиск оптимального размера окна;

·  поиск оптимальной структуры сети.

Каждый из экспериментов, проводился в четыре этапа.

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

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

На третьем этапе проводилось тестирование обучения сети. На вход подавалось порядка 4–5% наборов из обучающей выборки и оп­ределялось качество распознавания сети. Опыт считался успешным если относительная достоверность распознавания образов была не менее 80%.

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

В целях формирования необходимого пространства признаков номинальная переменная ID представлена двоичным кодом со смещёнными уровнями [0, 1] → [–0.5, +0.5] для управления уровнями смещениями нейронов первого слоя.

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

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

На основании формулы (2.10) и опытных данных были определены следующие параметры нейронной сети:

·  количество слоев нейронов в сети 3;

·  размер окна входного вектора 14;

·  количество нейронов в слоях во входном – 28, в скрытом 21, в выходном 14;

·  функция активации сигмовидная во входном и скрытом и линейная в выходном слое;

Архитектура нейронной сети, построенной по этим данным изображена на Рис. 3.2.

Рис. 3.2 Архитектура нейронной сети

В качестве тестового примера был выбраны исторические данные, представляющие собой временные ряды динамики продаж фарм. препаратов двух видов за год. Для исследования был взят период с 1 октября 2001 г по 1 ноября 2002 г.

Для прогнозирования применялась трехслойная нейронная сеть по 28:21:14 нейронов в соответствующем слое, которая на основе четырнадцати предыдущих значений временного ряда предсказывала его следующее значение. В качестве нелинейного преобразователя использовалась сигмовидная функция с характеристическим коэффициентом [21]. Обучение НС осуществлялось по алгоритму обратного распространения ошибки методом скользящего окна из 14 примеров.

Результаты работы данной системы прогнозирования представлены на Рис. 3.3 .

Рис. 3.3 Прогноз и динамика продажи двух фарм. препаратов за 1 год.

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

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

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

4.5  Разработка программного продукта

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

Такой подход обеспечивает более быструю и компактную реализацию НС.

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

Для решения поставленной задачи на основе технологии ИНС был разработан встраиваемый в «1С: Предприятие 7.7» программный модуль, предназначенный для прогнозирования и обнаружения скрытых закономерностей во временных рядах динамики продаж. Для прогнозирования был выбран адаптивный предиктор, построенный на основе многослойной нейронной сети.

Программа предназначена для совместного использования с системой программ «1C:Предприятие 7.7» и представляет собой библиотеку написанную по правилам ActiveX компонента на языке программирования Delphi. Для стыковки программы с системой «1C:Предприятие 7.7» используется специальный скрипт на внутреннем языке системы представленный в приложении Б. Скрипт загружает и инициализирует ActiveX компонент. Параметры для программы задаются изнутри системы «1C:Предприятие 7.7», и передаются в компонент как параметры при его инициализации.

Библиотека написана с использованием языка программирования Delphi 6 и дополнительных библиотек реализующих интерфейсы для программирования нейронных сетей “Neural Networks Component Library”.

В программе реализована библиотека классов для моделирования разнообразных нейронных сетей.

Классы с суффиксом ff, описываюте прямопоточные нейронные сети (feedforward), входят в состав не только сетей с обратным распространением – bp (backpropagation), но и других, например таких, как с обучением без учителя. Иерархия классов приведенной библиотеки приведена на Рис. 3.4.

Рис. 3.4 Иерархия классов библиотеки для сетей обратного распространения

Основными классами программы являются:

TNeuron – Реализует все свойства и методы математического нейрона.

Этот класс содержит вектора весов и функцию активации для нейрона.

TNeuronBP - Реализует класс нейронов для сети back-propagation.

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

TLayer – Реализует базовый класс слоя нейронов и содержит механизмы регулирования количества нейронов на слое.

TLayerBP – Реализует класс слоя для сети back-propagation. Содержит нейроны класса TNeuronBP.

TNeuralNet – Реализует базовый класс нейронной сети. Определяет массив слоёв, определяет число обучающих выборок.

TNeuralNetBP – Реализует базовый класс для сети back-propagation.

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

В приложении А приведен исходный код программы, а интерфейс пользователя (форма отчета), реализованная средствами системы «1С: Предприятие 7.7» в приложении В.

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

Программа компилировалась с помощью среды Borland Delphi 6.0 Enterprise Edition компилятором bcc32.

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

5.  Организационно-экономическая часть

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

Для достижения данной цели, необходимо исследовать существующий рынок потребителей продукции, выявить сегменты рынка, которым необходима разработанная система, исследовать продукцию конкурентов, составить бизнес-план[3] [61] и разработать стратегию маркетинга [62, 63].

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

5.1  Описание характеристик программного продукта

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

5.1.1  Характеристика программного продукта

Наименование: “Система поддержки принятия маркетинговых решений”.

Назначение: упрощение процедуры принятия решения должностным лицом предприятия.

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

Характеристика программного продукта представлена в Таблица 4.1.

Таблица 4.1 Характеристика программного продукта

Наименование

Значение параметра

Тип ПЭВМ

IBM «Pentium-III 900» и выше

Операционная система

MS Windows 9х/2000/XP

Модель

Реляционная

Среда программирования

1C:Предприятие, Borland Delphi 6, SQL

5.1.2  Особенности продукта

Программный продукт представляет собой приложение, разработанное с помощью программной среды RAD Borland Delphi 6.0 Enterprise Edition. Включает в себя таблицы с данными, формы для работы с данными, SQL - запросы, позволяющие осуществлять выборку необходимых данных, отчеты, представляющие собой формы выходных документов, макросы и модули на языке Visual Basic, позволяющие автоматизировать работу приложения, размещенного на локальном компьютере учреждения. Приложение работает в диалоговом режиме и отличается удобным пользовательским интерфейсом. Это обеспечивает гибкость системы, масштабируемость и быстрый доступ к ресурсам и данным. Использование передовых технологий диктует требования к технической базе. Для доступа к ресурсам и БД используются IBM совместимые персональные компьютеры с процессором Intel Pentium-166 и выше. Операционная система для ПК пользователей – MS Windows 9х/2000/ХР.

5.1.3  Система сервиса

Программный продукт разработан под операционную систему MS Windows 9х/2000/ХР, представляющей собой интуитивно-понятный интерфейс. Также в системе предусмотрена защита от неправильного ввода данных.

5.1.4  Патентная чистота

При разработке товара использовались лицензионные копии системы, MS Windows 2000, «1С: Предприятие 7.7», Borland Delphi 6.0 Enterprise Edition.

5.1.5  Гарантии и защита потребительских качеств

Гарантируется правильное и надёжное функционирование программного продукта в нормальных условиях эксплуатации и при соблюдении правил использования ПЭВМ и руководства пользователя программного продукта. Обнаруженные ошибки в программном продукте во время его эксплуатации устраняются бесплатно.

5.2  Рынки сбыта

5.2.1  Сегментирование рынка по потребителям

Для исследования рынка сбыта необходимо произвести сегментацию рынка.

Сегментация – один из важнейших инструментов маркетинга. От правильности выбора сегмента рынка во многом зависит успех предприятия в конкурентной борьбе.

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

Наиболее важными характеристиками сегментов являются:

1)  количественные характеристики (сколько изделий и по какой цене может быть продано, число потенциальных потребителей);

2)  доступность для предприятий;

3)  прибыльность;

4)  совместимость с рынками конкурентов;

5)  эффективность работы на выбранных сегментах рынка;

6)  защищенность выбранных сегментов от конкурентов.

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

1)  Предприятий оптовой торговли;

2)  Предприятия розничной торговли;

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

Разработанный программный продукт рассчитан на категорию лиц, связанных с постоянным анализом информации и дальнейшим принятием решения на её основе. Он ориентирован на должностных лиц и работников предприятий оптовой и розничной торговли всех форм собственности, а также пользователей непрограммистов (Таблица 4.2):

1)  Руководители предприятий высшего звена;

2)  Начальники торговых отделов;

3)  Менеджеры.

Таблица 4.2 Сегменты рынка по основным потребителям

Отрасли использования

Потребители

1

2

3

Предприятий оптовой торговли

+

+

+

Предприятия розничной торговли

+

+

+

Определим ёмкость сегментов рынка (Таблица 4.3).

Таблица 4.3 Анализ ёмкости сегментов рынка Харьковской области

Отрасль использования

Кол-во объектов

Предполагаемое кол-во продаж по одному объекту

Предполагаемая ёмкость рынка

Код

Предприятий оптовой торговли

15

1

15

1

Предприятия розничной торговли

25

1

25

2

ИТОГО:

40

Примечание: Колонка 2 заполнена по данным Статистического управления Харьковской области; колонка 4 вычислена следующим образом: колонку 2 умножить на колонку 3.

На основании таблицы 3 можно сделать вывод о том, что предполагаемый рынок программного продукта “Система поддержки принятия маркетинговых решений” состоит из 2 сегментов, суммарная ёмкость рынка – 40.

5.2.2  Параметрическая сегментация рынка

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

Кроме того, приложение ориентировано на графическую среду подобную операционной системе MS Windows 2000, которая в настоящее время является одной из самых удобных и дружественных для пользователя средой. Но, с другой стороны, MS Windows 2000 предъявляет более высокие требования к аппаратным средствам компьютера, чем MS-DOS, что очень важно для пользователей устаревших ЭВМ, используемых во многих отечественных учреждениях.

Одним из важнейших показателей является надёжность. В данной программе приняты все меры по повышению надёжности работы программными средствами.

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

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

Таким образом, для проведения параметрического анализа выделим следующие характеристики продукта:

·  цена;

·  надёжность;

·  интерфейс;

·  гибкость;

·  требования к ЭВМ;

·  сроки получения конечного продукта;

·  эффективность конечного продукта.

Параметрический анализ сегментации рынка в Харьковской области приведен в Таблица 4.4. Бальные оценки (1-5) параметров по сегментам проставлялись следующим образом. Например, для сегмента 1 большое значение имеют цена, надёжность, интерфейс, гибкость и эффективность программного продукта, соответственно им назначенные оценки в баллах "5", "5", "5", "5" и "4". Сроки получения конечного продукта и требования к ЭВМ интересует их меньше, поэтому им назначены оценки "3", "3" соответственно.

Таблица 4.4 Параметрическая сегментация рынка Харьковской области

Параметр

Сегмент

Итоговая оценка

Удельный вес параметров, %

1

2

Надежность

5

5

10

17,6

Интерфейс

5

5

10

17,6

Эффективность конечного продукта

4

5

9

16,5

Цена

5

3

8

12,9

Сроки получения конечного продукта

3

4

7

12,9

Гибкость

5

3

8

12,9

Требования к ЭВМ

3

2

5

9,4

ИТОГО:

30

27

57

100

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8