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

Организация работы на предприятиях общественного питания. Выбор инструмента прогнозирования заказов. Разработка системы программного учёта услуг в организациях общественного питания. Методики проектирования и обучения персептрона. Нейронная сеть и интерфе

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.12.2019
Размер файла 4,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http: //www. allbest. ru/

3

Пермский филиал федерального государственного автономного образовательного учреждение высшего образования

Национальный исследовательский университет

«Высшая школа экономики»

Факультет экономики, менеджмента и бизнес-информатики

Выпускная квалификационная работа

по направлению подготовки 09.03.04 Программная инженерия

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

Першин Илья Дмитриевич

студента образовательной программы «Программная инженерия»

Рецензент А.С. Ивановк.т.н., директор ООО «ИТИС»

Руководитель М.В. Крючков

старший преподаватель кафедры высшей математики

Пермь, 2019 год

Аннотация

персептрон интерфейс услуга программный

Першин Илья Дмитриевич «Разработка программного модуля системы учёта услуг в организациях общественного питания».

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

Для прогнозирования будет использоваться нейронная сеть - персептрон. Для обучения персептрона будет использован метод «упругого распространения ошибки».

Страниц: 48.

Иллюстраций: 29.

Год: 2019.

Кафедра: «Кафедра информационных технологий в бизнесе».

Оглавление

  • Введение
  • Глава 1. Анализ требований
    • 1.1 Описание организации общественного питания заказчик
    • 1.2 Выявление входных параметров
    • 1.3 Выбор инструмента прогнозирования
    • 1.4 Выбор методики проектирования и обучения персептрона
    • 1.5 Выявление требований
    • 1.6 Итоги главы
  • Глава 2. Проектирование нейронной сети и интерфейсов
    • 2.1 Подготовка входных и выходных параметров
    • 2.2 Проектирование схемы нейронной сети
    • 2.3 Проектирование интерфейсов
    • 2.4 Итоги главы
  • Глава 3. Реализация
    • 3.1 Реализация модуля
    • 3.2 Внедрение
    • 3.3 Итоги главы
  • Заключение
  • Библиографический список
  • Приложения

Введение

В настоящие время в сети организаций общественного питания «Шаверма от души» используется приложение для учёта услуг «RManager». Данная система позволяет пользователям учитывать поступление продуктов, списания, работу сотрудников, заказы.

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

Объект исследования: процесс прогнозирование пользовательского спроса. Предмет исследования: программный модуль, который осуществляет прогнозирование пользовательского спроса.

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

1. Проанализировать требований пользователя.

2. Проанализировать и выбрать методы решения.

3. Проанализировать факторы, влияющие на спрос.

4. Спроектировать список входных параметров.

5. Подготовить обучающее множество.

6. Разработать модуль веб-приложения для прогнозирования пользовательского спроса.

7. Протестировать разработанный модуль.

8. Написать документацию к разработанному модулю.

Методы исследования:

· анкетирование - опрос владельцев заведений общественного питания;

· анализ ответов по анкете;

· синтез моделей на основе полученных данных при анализе;

· проектирование модуля приложения (примерное представление последовательности выполняемых алгоритмов и визуальной составляющей веб-приложения) и изображение работы модуля приложения в виде блок-схем;

· наблюдение - изучение полученных результатов после разработки приложения.

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

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

Глава 1. Анализ требований

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

1.1 Описание организации общественного питания заказчика

Разработка модуля системы ведётся для сети кафе «Шаверма от души», в которой используется система «RManager» для учёта услуг. На данный момент в сети 4 филиала, расположенные в одном районе города Перми. На момент построения модели прогнозирования было 42 позиции меню.

Каждое утро при открытии смены работники проверяют количество блюд на складе и количество испортившихся блюд, из-за чего заказывает дополнительно и/или списывают испортившиеся (рис. 1.1).

Рисунок 1.1 Бизнес-процессы начала рабочего дня

В среднем, в день в этом кафе покупатели совершают более 100 заказов со средним чеком равным 250 рублей. Валовая выручка за месяц составляет 1,2 миллиона рублей. Поставки продуктов происходят 3 раза в неделю. Списание происходят каждый день и суммарно за месяц списывается продуктов на 40 тысяч рублей, из-за того, что они испортились. Продукты портятся, потому что заказывают больше, чем успевают потратить. Поэтому владелец заведения заказал модуль прогнозирования, чтобы снизить затраты на списание товаров.

1.2 Выявление входных параметров

В своей работе Бирюкова [1] предлагает прогнозировать товары, опираясь на следующие показатели:

1. ассортиментную;

2. качественную;

3. количественную;

4. стоимостную.

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

1. сумма, потраченная на маркетинг;

2. удобство расположения заведения;

3. цена блюда;

4. масса/объём блюда (зависит от категории блюда);

5. категория блюда;

6. температура блюда.

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

Рисунок 1.2 Анкета

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

1. специфичность блюда для кафе;

2. сумма, потраченная на маркетинг;

3. температура на улице;

4. погода в целом.

1.3 Выбор инструмента прогнозирования

Самые распространённые инструменты для прогнозирования временных рядов это:

1. Авторегрессия проинтегрированного скользящего среднего (АРПСС) - это математическая модель, служащая для прогнозирования не статических временных рядов.

2. Экспоненциальное сглаживание - это математический метод сглаживания временного ряда. В основе процедуры экспоненциального сглаживания лежит расчёт экспоненциальных скользящих средних сглаживаемого ряда.

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

Все представленные инструменты подходят для выполнения задачи по прогнозирования, но необходимо выбрать только один. Для того чтобы выбрать инструмент классифицируем методы по времени (рис. 1.3) [2].

Рисунок 1.3 Классификация методов прогнозирования

Прогнозирование на срок длительностью месяц является краткосрочным, для него наиболее подходящими методами являются: АРПСС или нейронная сеть [3].

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

Выделяют множество видов нейронных сетей, но самыми распространенными являются: персептрон, глубокие сети и сверточные сети. Каждый из этих типов сетей предназначена для разных типов задач. Сверточные сети [4] чаще всего используют для компьютерного зрения, потому что они позволят рассматривать не каждый входной параметр по отдельности, а рассматривать входные данные наборами и искать закономерности в них. Глубокие сети [5] применяются для компьютерного зрения, машинного перевода и распознавания речи, по сфере применения видно, что этот вид сетей используется для анализа образов. Персептрон [6] используют для построения временного ряда, прогнозирования и много другого. Таким образом персептрон наиболее подходит для поставленной в работе задачи.

1.4 Выбор методики проектирования и обучения персептрона

Летокангас и Сааринен [7] доказали, что наличие центроидов на первом скрытом слое многослойного персептрона (рис. 1.4) минимизирует ошибки. Это помогает кластеризовать входные данные перед прогнозированием. Также, Джерда, Урдиджи, Исэйд и др. в своей работе [8] предлагают реализовать двунаправленный многослойный персептрон (рис. 1.5), чтобы уменьшить ошибку, но двунаправленный многослойный персептрон сильно снижает гибкость нейронной сети.

Рисунок 1.4 Персептрон с центроидами на первом скрытом слое

Рисунок 1.5 Двунаправленный многослойный персептрон

После построения нейронной сети ее необходимо обучить. Есть много алгоритмов обучения, наиболее популярными являются метод на основе генетического алгоритма и алгоритм обратного распространения ошибок. Эксперименты Инохиры и Йокио [9] показали, что метод упругого распространения ошибок (рис. 1.6) требует больше времени, чем метод на основе генетического алгоритма (см. рис. 1.7), но дает более точные результаты.

Рисунок 1.6 Алгоритм упругого распространения ошибок

Рисунок 1.7 Генетический алгоритм

1.5 Выявление требований

В п. 1.2. проводилось выявление пользовательских требований. Для этого проводилось анкетирование менеджеров заведений общественного питания. Данное анкетирование позволило выявить желаемые функции программного обеспечения для прогнозирования. На основе анализа пользовательских требований были сформированы следующие функциональные требования:

1. программа должна выделять самое продаваемое блюдо и самое невостребованное;

2. программа должна обеспечивать экспорт данных приложения в электронную таблицу формата .xls;

3. прогнозирование должно вестись на период длительностью месяц.

На основе анализа литературных источников, проводимого в п. 1.2-1.4, были сформированы нефункциональные требования:

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

2. топология нейросети - персептрон;

3. метод обучения персептрона - алгоритм обратного распространения ошибки.

На основе разработанных требований были выявлены основные сценарии использования системы. На основе данных сценариев была построена use-case диаграмма системы с разрабатываемым модулем (рис. 1.8)

Рисунок 1.8 Use-case диаграмма

1.6 Итоги главы

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

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

Глава 2. Проектирование нейронной сети и интерфейсов

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

2.1 Подготовка входных и выходных параметров

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

Специфичность блюда можно заменить артикулом блюда, потому что именно он однозначно определяет блюдо в базе данных. Но для того чтобы включить артикул блюда в выборку, и он не оказывал бы влияния на прогноз, артикул был закодирован двоичным кодом. Это необходимо сделать, чтобы артикул воспринимался системой только, как обозначение блюда, но разность между артикулами разных блюд не воспринималась, как качественный признак. Так как сейчас в заведении 42 блюда, необходимо 6 бит для кодировки, но добавим один дополнительный бит на тот случай, если в будущем меню будет пополняться. Таким образом, на артикул будет выделено 7 входов, это позволит закодировать 128 блюд. Аналогичная операция была проведена с категорией блюда (7 категорий, 4 бита, табл. 2.1).

Таблица 2.1 Коды категорий

Кодировка

Обозначение

0001

1-е

0010

2-е

0011

Холодная закуска

0100

Горячая закуска

0101

Холодные напитки

0110

Горячие напитки

0111

Разное

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

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

Таким образом, получились 7 входных параметров, по 14 нейронов на входном слое нейросети (табл. 2.2).

Таблица 2.2 Входные нейроны

Номер входа

Название входа

Тип данных

Х1

Артикул 1

0 или 1

Х2

Артикул 2

0 или 1

Х3

Артикул 3

0 или 1

Х4

Артикул 4

0 или 1

Х5

Артикул 5

0 или 1

Х6

Артикул 6

0 или 1

Х7

Артикул 7

0 или 1

Х8

Средняя месячная температура

Вещественное число

Х9

Категория 1

0 или 1

Х10

Категория 2

0 или 1

Х11

Категория 3

0 или 1

Х12

Категория 4

0 или 1

Х13

Масса\объём (г\мл)

Вещественное число

Х14

Стоимость блюда

Вещественное число

Х15

Затраты на маркетинг в этом месяце

Вещественное число

Х16

Затраты на маркетинг в предыдущем месяце

Вещественное число

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

2.2 Проектирование схемы нейронной сети

Для того чтобы построить схему нейронной сети, надо понимать, сколько всего входов, сколько выходов и сколько элементов в обучающем множестве. Система работает в заведении с ноября 2017 года и была получена выборка по 42 блюдам за 12 месяцев, таким образом, была получена выборка, состоящая из 502 элементов (см. прил. Б). Для определения количество нейронных связей необходимых для качественного прогнозирования была использована формула «Арнольда - Колмогорова - Хехт_Нильсена» 2.1, 2.2, 2.3 [10, 11] (см. табл. 2.3). После необходимо найти среднее арифметическое между минимальным и максимальным количеством связей. При выявленных параметрах необходимо примерно 242 связи.

(2.1)

(2.2)

(2.3)

Таблица 2.3 Параметры для расчёта

Обозначение

Определение

Значение

Nx

Количество входов.

16

Ny

Количество выходов.

1

Q

Количество элементов в тренировочной выборке.

502

Nwmin

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

50

Nwmax

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

583

Nw

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

317

N

Количество нейронов на скрытом уровне.

18

Количество связей не большое, поэтому необходимо добавить всего 1 скрытый слой. Для определения количества нейронов на скрытом слое необходимо поделить количество связей на сумму количеств входов и выходов нейросети. Необходимо примерно 18 нейронов на скрытом слое (см. рис. 2.1).

Рисунок 2.1 Первоначальная схема нейросети

Для тестирования разработанной модели были проведены тесты в программе «Нейросимулятор». В этой системе была спроектирована модель нейросети и проведено ее обучение. Обучение проходило в 1000 эпох, после обучения.

Было проведено тестирование тестовой выборкой, которая состояла из 42 элементов (см. рис. 2.2) и была рассчитана среднее квадратичное отклонение, которое составило 10,6391%, это отклонение характеризует, то на сколько в среднем реальные результаты отличаются от результатов нейросети.

Рисунок 2.2 тестирование модели

Так как в сети 18 нейронов на скрытом слое, она лишена гибкости [10, 11] и при сильно отличающихся входных данных будет давать результаты, сильно отличающиеся от реальных. Было решено редуцировать сеть и проверить результаты на той же тестовой выборке. В процессе редуцирования была определена оптимальная сеть (табл. 2.4, см. рис. 2.3).

Таблица 2.4 Параметры редуцированной сети

Обозначение

Определение

Значение

Nx

Количество входов.

16

Ny

Количество выходов.

1

N

Количество нейронов на скрытом уровне.

3

Рисунок 2.3 Схема редуцированной сети

Для редуцированной сети было проведено тестирование тестовой выборкой, которая состояла из 42 элементов (рис. 2.4) и была рассчитана среднее квадратичное отклонение, которое составило 3,9418%, такое отклонение было согласовано и принято заказчиком.

Рисунок 2.4 Тестирование модели редуцированной сети

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

Рисунок 2.5 Значимость параметров

2.3 Проектирование интерфейсов

Интерфейсы были спроектированы при помощи системы NinjaMock. Было спроектировано 4 интерфейса для системы RManager и 2 дополнительных шаблона таблиц Excel для импорта данных из приложения. Первым был спроектирован главный интерфейс вкладки «Прогноз» (см. рис. 2.6).

Рисунок 2.6 Вкладка «Прогноз»

Поле «Выберите блюдо» будет выпадающим списком, в котором можно будет выбрать одно из блюд заведения, если оставить это поле пустым (не выбрать блюдо), то прогноз будет строиться для всех блюд в меню. В поле «Средняя месячная температура необходимо ввести предполагаемую температуру, которая будет в прогнозируемом месяце, если оставить это поле пустым, то при нажатии на кнопку «Построить прогноз» будет показано уведомление «Поле температуры обязательное». В поля «Затраты на маркетинг в этом месяце» и «Затраты на маркетинг в прошлом месяце» необходимо ввести суммы, потраченные на маркетинг в прогнозируемом месяце и месяце, предшествующем прогнозируемому соответственно, если не заполнить эти поля, то будет показано уведомление «Поля затрат на маркетинг обязательны». При нажатии на кнопку «Построить прогноз» проверяется, выбрано ли блюдо, если нет, то строиться прогноз по всем блюдам из меню заведения (см. рис. 2.7), иначе прогноз строиться только по выбранному блюду (см. рис. 2.8).

Рисунок 2.7 Прогноз по всему меню

При прогнозировании для всего меню выводиться таблица, отсортированная по количеству заказов по убыванию, в которой выделены самое востребованное блюдо и самое не востребованное блюдо. При нажатии на кнопку «Преобразовать в необходимые продукты» открывается страница, на которой отображена таблица с необходимым количеством того или иного продукта для реализации всех спрогнозированных заказов (см. рис. 2.9). При нажатии на «Отправить в Excel» будет сгенерирована таблица в системе Excel, для данных из таблицы с прогнозом (см. рис.2.10).

Рисунок 2.8 Прогноз по одному блюду

При прогнозировании по одному конкретному блюду на странице отображается прогноз только по этому блюду и на этой же странице отображены необходимые продукты для реализации всех заказов этого блюда. При нажатии на «Отправить в Excel» будет сгенерирована таблица в системе Excel, для данных из таблицы с необходимыми продуктами (см. рис.2.11).

Рисунок 2.9 Необходимые продукты

В таблицу выводиться необходимым количеством того или иного продукта для реализации всех спрогнозированных заказов. При нажатии на «Отправить в Excel» будет сгенерирована таблица в системе Excel, для данных из таблицы с необходимыми продуктами (см. рис.2.11).

Рисунок 2.10 Пример таблицы Excel с прогнозом по всему меню

Рисунок 2.11 Пример таблицы Excel с необходимым количеством продуктов

2.4 Итоги главы

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

Также были спроектированы дополнительные интерфейсы системы: 4 формы и 2 шаблона таблиц для экспорта данных.

Глава 3. Реализация

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

3.1 Реализация модуля

Для разработки модуля используется фреймворк «.NET MVC Framework». Этот инструмент был выбран, потому что другие модули системы «RManager» разработаны в нем. Данный модуль будем встроен в систему учета.

На рис. 3.1. представлена схема взаимодействия модуля прогнозирования с системой в целом. Для вызова внутренних функций программный модуль предоставляет API. База данных необходима для обучения модуля и построения прогноза по позициям, для которых имеются сохранённые в системе данные.

Рисунок 3.1 Схема системы

Для реализации нейросети было решено выбрать готовую библиотеку. Были рассмотрены самые передовые из библиотек для реализации нейросетей (табл. 3.1) [12 - 16].

Таблица 3.1 Выбор библиотеки

FANN

Caffe

DLIB

OpenCV

TensorFlow

Предназначена для

Персептрон

Обработка изображений

Глубокое обучение

Обработка изображений

Персептрон

Лицензия

GPL 2.1

2_clause BSD

Boost Software

3-clause BSD

Apache License 2.0

Сфера использования

.NET, Python

C++, Python, Java

C++, Python

.NET, Python, Java

Python, Java

Для реализации персептрона, состоящего из трёх слоёв, подходят библиотеки: FANN и TensorFlow, но библиотека TensorFlow не предназначена для интеграции в .NET проекты, поэтому для реализации нейросети была выбрана библиотека с открытым исходным кодом FANN.

Для построения прогноза необходимо учитывать температуру на улице, но в системе не предусмотрена возможность учёта температуры по месяцам. Для того чтобы сохранять показания температуры в схему базы данных была добавлена таблица «Температура» (рис.3.2).

Рисунок 3.2 Таблица «Температура»

Для модуля был создан 1 контроллер «ForecastingController» (рис. 3.3), который будет обрабатывать запросы на прогнозирование.

Рисунок 3.3 Контроллеры приложения

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

При создании сети необходимо подготовить данные. Система извлекает все данные о продажах, затратах на маркетинг и температуре месяца за всё время из базы данных и преобразует в объект класса FANN.Net.TrainingData.

После подготовки данных необходимо создать саму сеть, для этого создаётся объект класса FANN.Net.NeuralNet. У этого объекта настраиваются количество слоёв, количество нейронов на всех слоях, настраиваются функции активации слоёв. После настройки вызывается метод TrainOnData для обучения сети на подготовленном заранее объекте класса FANN.Net.TrainingData.

После обучения сеть готова к сохранению в файл и прогнозу, необходимо создать еще объект класса FANN.Net.TrainingData, для записи в него данных, полученных с формы запроса прогноза. После этого вызывается метод Test, который возвращает результаты сети.

Разработанная сеть была протестирована в системе (см. рис. 3.4 - 3.6) в каждом результате заложено отклонение на 5 процентов в большую и меньшую сторону от спрогнозированного результата и округлено. 97,6 процентов реальных результатов за прогнозируемый месяц совпали со спрогнозированными результатами.

Рисунок 3.4 Тестирование результатов прогноза 1

Рисунок 3.5 Тестирование результатов прогноза 2

Рисунок 3.6 Тестирование результатов прогноза 3

Для импорта данных в Excel была использована библиотека Microsoft.Office.Interop.Excel. При помощи этой библиотеки данные из таблицы со страницы были преобразованы в таблицу Excel (см. рис.3.6).

Рисунок 3.6 Импорт прогноза в Excel

3.2 Внедрение

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

Рисунок 3.7 Сети в предприятии

Обновление программного обеспечения на сервере происходило в нерабочее время организации в день, когда во всех филиалах происходил санитарный день (06.05.2019) и кафе были закрыты. Акт о внедрении находится в приложении В. После внедрения было проведено тестирование по методике «Опытной эксплуатации», акт о проведении которого находится в приложении Г. При помощи модуля прогнозирования, за первые две недели работы с использований результатов модуля, затраты на списание продуктов были снижены с 20 тысяч рублей ранее до 5 тысяч рублей.

3.3 Итоги главы

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

1. построение прогноза по всему меню;

2. построение прогноза для одного блюда;

3. расчёт необходимого количества продуктов для приготовления спрогнозированного количества блюд;

4. экспорт прогноза по всему меню в Excel;

5. экспорт рассчитанного количества продуктов в Excel.

После этапа разработки приложение было обновлено на сервере заказчика и был проведён второй этап тестирования посредством опытной эксплуатации.

Заключение

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

1. Проанализировать требований пользователя.

2. Проанализировать и выбрать методы решения.

3. Проанализировать факторы, влияющие на спрос.

4. Спроектировать список входных параметров.

5. Подготовить обучающее множество.

6. Разработать модуль веб-приложения для прогнозирования пользовательского спроса.

7. Протестировать разработанный модуль.

8. Написать документацию к разработанному модулю.

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

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

На этапе проектирования программного модуля проводилось проектирование архитектуры нейронной сети. Факторы, влияющие на спрос, были получены на этапе анализа требований. Для того чтобы вводить эти факторы в нейросеть, они были выражен в числовом формате и закодированы. При помощи формулы Арнольда_Колмогорова_Хехт-Нельсена было рассчитано, что необходимо сделать персептрон с одним скрытым слоем, на котором должно располагаться от 3 до 34 нейронов. Экспериментальным путём было определено, что оптимальное количество нейронов на скрытом слое - 3.

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

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

Разработка модуля велась при помощи фреймворка «ASP .NET MVC Framework». Тестирование модуля проводилось на тестовой выборке, полученной из заведения за месяц, который не попал в тренировочную выборку. Система была внедрена в заведения и после внедрения был проведен этап опытной эксплуатации.

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

1. построение прогноза по всему меню;

2. построение прогноза для одного блюда;

3. расчёт необходимого количества продуктов для приготовления спрогнозированного количества блюд;

4. экспорт прогноза по всему меню в Excel;

5. экспорт рассчитанного количества продуктов в Excel.

На этапе опытной эксплуатации реализованный программный модуль функционировал во всех филиалах заведения «Шаверма от души» 2 недели. С помощью программного модуля менеджеры прогнозировали спрос на товары и необходимое количество закупок продуктов. Таким образом, во время проведения опытной эксплуатации затраты на покрытие списаний были снижены на 75%.

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

Библиографический список

1. Бирюкова О.Е. Прогнозирование спроса на товары и услуги фирмы // Белгородский государственный университет - национальный исследовательский университет, Белгород, 2016.

2. Методы прогнозирования [Электронный ресурс] // StatSoft: сайт. 2011. URL: http://statsoft.ru/solutions/tasks/forecast/#tab-review-link (дата обращения 21.01.2019).

3. Shanmuganathan S. An introduction // Artificial neural network modelling - 2016 - С. 1-14.

4. Design of memristor-based image convolution calculation in convolutional neural network / X. Zeng [и др.]. Neural Computing and Applications. - 2018 - Т. 30 - С. 503-508.

5. Shafiee M. J, Mishra A, Wong A. Deep Learning with Darwin: Evolutionary Synthesis of Deep Neural Networks // Neural Processing Letters - 2018 - T. 48 - С. 603-613.

6. Haussler D. New Theoretical Directions In Machine Learning // Machine Learning, 1988 - T. 2 - С. 281-284.

7. Lehtokangas M, Saarinen J. Centroid based Multilayer Perceptron Networks // Neural Processing Letters - 1998 - T. 7 - С. 101-106.

8. A Bi-Directional Multilayer Perceptron / M. Jedra [и др.]. Neural Processing Letters - 1999 - T. 10 - С. 89-95.

9. Inohira E, Yokoi H. Evaluation of an optimal design method for a multilayer perceptron by using the design of experiments // Artificial Life and Robotics - 2011 - T. 16 - С. 403-406.

10. Ясницкий Л.Н. Интеллектуальные системы. М.: Лаборатория знаний - 2016 - С. 221..

11. Ясницкий Л.Н. Нейронные сети - инструмент для получения новых знаний: успехи, проблемы, перспективы // Нейрокомпьютеры: разработка, применение. - 2015 - № 5. - С. 48-56.

12. Fast Artificial Neural Network Library (FANN) [Электронный ресурс] // FANN: сайт. URL: http://leenissen.dk/fann/wp/ (дата обращения 12.04.2019).

13. Caffe | Deep Learning Framework [Электронный ресурс] // Caffe: сайт. URL: http://caffe.berkeleyvision.org (дата обращения 12.04.2019).

14. dlib C++ Library [Электронный ресурс] // dlib: сайт. URL: http://dlib.net (дата обращения 12.04.2019).

15. OpenCV [Электронный ресурс] // OpenCV: сайт. URL: https://opencv.org (дата обращения 12.04.2019).

16. TensorFlow [Электронный ресурс] // TensorFlow: сайт. URL: https://www.tensorflow.org (дата обращения 12.04.2019).

Приложение A

Анкета

1. Какие параметры влияют на популярность блюда в заведении?

В первую очередь влияет посещаемость самого заведения, на которую в свою очередь влияют следующие параметры: деньги, потраченные на рекламу, при чем, потраченные, не только в этом месяца; температура на улице; погода на улице; удобство расположения заведения. На популярность самого блюда влияют: его масса и объём; цена; то к какой категории меню оно относится; сезонность ингредиентов; температура блюда.

2. На какой период вы чаще всего прогнозируете спрос блюда?

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

3. Что еще было бы необходимо прогнозировать, для того чтобы минимизировать списания?

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

4. Какая дополнительная функциональность программы была бы полезна в работе?

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

Приложение Б. Обучающее множество

Таблица Б.1 Обучающее множество

X1

X2

X3

X4

X5

X6

X7

X8

X9

X10

X11

X12

X13

X14

X15

X16

D1

0

0

0

0

0

0

1

-12,2

0

1

0

1

500

65

18000

18000

24

0

0

0

0

0

0

1

-6,6

0

1

0

1

500

65

18000

18000

21

0

0

0

0

0

0

1

-0,2

0

1

0

1

500

65

5000

18000

44

0

0

0

0

0

0

1

12,6

0

1

0

1

500

65

18000

0

48

0

0

0

0

0

0

1

23,3

0

1

0

1

500

65

0

0

3

0

0

0

0

0

0

1

22,8

0

1

0

1

500

65

0

0

2

0

0

0

0

0

0

1

17,8

0

1

0

1

500

65

0

0

20

0

0

0

0

0

0

1

18,5

0

1

0

1

500

65

0

0

12

0

0

0

0

0

0

1

3,8

0

1

0

1

500

65

0

0

21

0

0

0

0

0

0

1

-2,0

0

1

0

1

500

65

0

0

13

0

0

0

0

0

0

1

-12,8

0

1

0

1

500

65

0

0

6

0

0

0

0

0

0

1

-15,7

0

1

0

1

500

65

0

18000

19

0

0

0

0

0

1

0

-12,2

0

1

0

1

300

50

18000

18000

18

0

0

0

0

0

1

0

-6,6

0

1

0

1

300

50

18000

18000

24

0

0

0

0

0

1

0

-0,2

0

1

0

1

300

50

5000

18000

29

0

0

0

0

0

1

0

12,6

0

1

0

1

300

50

18000

0

48

0

0

0

0

0

1

0

23,3

0

1

0

1

300

50

0

0

49

0

0

0

0

0

1

0

22,8

0

1

0

1

300

50

0

0

42

0

0

0

0

0

1

0

17,8

0

1

0

1

300

50

0

0

43

0

0

0

0

0

1

0

18,5

0

1

0

1

300

50

0

0

30

0

0

0

0

0

1

0

3,8

0

1

0

1

300

50

0

0

38

0

0

0

0

0

1

0

-2,0

0

1

0

1

300

50

0

0

41

0

0

0

0

0

1

0

-12,8

0

1

0

1

300

50

0

0

17

0

0

0

0

0

1

0

-15,7

0

1

0

1

300

50

0

18000

26

0

0

0

0

0

1

1

-12,2

0

1

0

1

500

65

18000

18000

14

0

0

0

0

0

1

1

-6,6

0

1

0

1

500

65

18000

18000

3

0

0

0

0

0

1

1

-0,2

0

1

0

1

500

65

5000

18000

6

0

0

0

0

0

1

1

12,6

0

1

0

1

500

65

18000

0

5

0

0

0

0

0

1

1

23,3

0

1

0

1

500

65

0

0

0

0

0

0

0

0

1

1

22,8

0

1

0

1

500

65

0

0

2

0

0

0

0

0

1

1

17,8

0

1

0

1

500

65

0

0

7

0

0

0

0

0

1

1

18,5

0

1

0

1

500

65

0

0

6

0

0

0

0

0

1

1

3,8

0

1

0

1

500

65

0

0

5

0

0

0

0

0

1

1

-2,0

0

1

0

1

500

65

0

0

10

0

0

0

0

0

1

1

-12,8

0

1

0

1

500

65

0

0

8

0

0

0

0

0

1

1

-15,7

0

1

0

1

500

65

0

18000

20

0

0

0

0

1

0

0

-12,2

0

1

0

1

300

50

18000

18000

7

0

0

0

0

1

0

0

-6,6

0

1

0

1

300

50

18000

18000

9

0

0

0

0

1

0

0

-0,2

0

1

0

1

300

50

5000

18000

10

0

0

0

0

1

0

0

12,6

0

1

0

1

300

50

18000

0

13

0

0

0

0

1

0

0

23,3

0

1

0

1

300

50

0

0

28

0

0

0

0

1

0

0

22,8

0

1

0

1

300

50

0

0

33

0

0

0

0

1

0

0

17,8

0

1

0

1

300

50

0

0

18

0

0

0

0

1

0

0

18,5

0

1

0

1

300

50

0

0

6

0

0

0

0

1

0

0

3,8

0

1

0

1

300

50

0

0

16

0

0

0

0

1

0

0

-2,0

0

1

0

1

300

50

0

0

11

0

0

0

0

1

0

0

-12,8

0

1

0

1

300

50

0

0

11

0

0

0

0

1

0

0

-15,7

0

1

0

1

300

50

0

18000

15

0

0

0

0

1

0

1

-12,2

0

1

0

1

500

65

18000

18000

11

0

0

0

0

1

0

1

-6,6

0

1

0

1

500

65

18000

18000

5

0

0

0

0

1

0

1

-0,2

0

1

0

1

500

65

5000

18000

8

0

0

0

0

1

0

1

12,6

0

1

0

1

500

65

18000

0

4

0

0

0

0

1

0

1

23,3

0

1

0

1

500

65

0

0

0

0

0

0

0

1

0

1

22,8

0

1

0

1

500

65

0

0

8

0

0

0

0

1

0

1

17,8

0

1

0

1

500

65

0

0

19

0

0

0

0

1

0

1

18,5

0

1

0

1

500

65

0

0

9

0

0

0

0

1

0

1

3,8

0

1

0

1

500

65

0

0

5

0

0

0

0

1

0

1

-2,0

0

1

0

1

500

65

0

0

5

0

0

0

0

1

0

1

-12,8

0

1

0

1

500

65

0

0

13

0

0

0

0

1

0

1

-15,7

0

1

0

1

500

65

0

18000

15

0

0

0

0

1

1

0

-12,2

0

1

0

1

300

50

18000

18000

16

0

0

0

0

1

1

0

-6,6

0

1

0

1

300

50

18000

18000

12

0

0

0

0

1

1

0

-0,2

0

1

0

1

300

50

5000

18000

7

0

0

0

0

1

1

0

12,6

0

1

0

1

300

50

18000

0

6

0

0

0

0

1

1

0

23,3

0

1

0

1

300

50

0

0

28

0

0

0

0

1

1

0

22,8

0

1

0

1

300

50

0

0

52

0

0

0

0

1

1

0

17,8

0

1

0

1

300

50

0

0

8

0

0

0

0

1

1

0

18,5

0

1

0

1

300

50

0

0

29

0

0

0

0

1

1

0

3,8

0

1

0

1

300

50

0

0

16

0

0

0

0

1

1

0

-2,0

0

1

0

1

300

50

0

0

10

0

0

0

0

1

1

0

-12,8

0

1

0

1

300

50

0

0

7

0

0

0

0

1

1

0

-15,7

0

1

0

1

300

50

0

18000

8

0

0

0

0

1

1

1

-12,2

0

1

0

1

500

80

18000

18000

9

0

0

0

0

1

1

1

-6,6

0

1

0

1

500

80

18000

18000

4

0

0

0

0

1

1

1

-0,2

0

1

0

1

500

80

5000

18000

1

0

0

0

0

1

1

1

12,6

0

1

0

1

500

80

18000

0

0

0

0

0

0

1

1

1

23,3

0

1

0

1

500

80

0

0

1

0

0

0

0

1

1

1

22,8

0

1

0

1

500

80

0

0

21

0

0

0

0

1

1

1

17,8

0

1

0

1

500

80

0

0

24

0

0

0

0

1

1

1

18,5

0

1

0

1

500

80

0

0

8

0

0

0

0

1

1

1

3,8

0

1

0

1

500

80

0

0

7

0

0

0

0

1

1

1

-2,0

0

1

0

1

500

80

0

0

2

0

0

0

0

1

1

1

-12,8

0

1

0

1

500

80

0

0

5

0

0

0

0

1

1

1

-15,7

0

1

0

1

500

80

0

18000

5

0

0

0

1

0

0

0

-12,2

0

1

0

1

500

50

18000

18000

6

0

0

0

1

0

0

0

-6,6

0

1

0

1

500

50

18000

18000

3

0

0

0

1

0

0

0

-0,2

0

1

0

1

500

50

5000

18000

0

0

0

0

1

0

0

0

12,6

0

1

0

1

500

50

18000

0

0

0

0

0

1

0

0

0

23,3

0

1

0

1

500

50

0

0

0

0

0

0

1

0

0

0

22,8

0

1

0

1

500

50

0

0

0

0

0

0

1

0

0

0

17,8

0

1

0

1

500

50

0

0

3

0

0

0

1

0

0

0

18,5

0

1

0

1

500

50

0

0

5

0

0

0

1

0

0

0

3,8

0

1

0

1

500

50

0

0

2

0

0

0

1

0

0

0

-2,0

0

1

0

1

500

50

0

0

10

0

0

0

1

0

0

0

-12,8

0

1

0

1

500

50

0

0

4

0

0

0

1

0

0

0

-15,7

0

1

0

1

500

50

0

18000

5

0

0

0

1

0

0

1

-12,2

0

0

1

0

610

155

18000

18000

1360

0

0

0

1

0

0

1

-6,6

0

0

1

0

610

155

18000

18000

954

0

0

0

1

0

0

1

-0,2

0

0

1

0

570

155

5000

18000

1210

0

0

0

1

0

0

1

12,6

0

0

1

0

570

155

18000

0

1325

0

0

0

1

0

0

1

23,3

0

0

1

0

570

155

0

0

1378

0

0

0

1

0

0

1

22,8

0

0

1

0

570

155

0

0

1290

0

0

0

1

0

0

1

17,8

0

0

1

0

570

155

0

0

1243

0

0

0

1

0

0

1

18,5

0

0

1

0

570

155

0

0

1041

0

0

0

1

0

0

1

3,8

0

0

1

0

570

155

0

0

1028

0

0

0

1

0

0

1

-2,0

0

0

1

0

570

155

0

0

951

0

0

0

1

0

0

1

-12,8

0

0

1

0

570

155

0

0

769

0

0

0

1

0

0

1

-15,7

0

0

1

0

610

155

0

18000

988

0

0

0

1

0

1

0

-12,2

0

0

1

0

360

135

18000

18000

2160

0

0

0

1

0

1

0

-6,6

0

0

1

0

360

135

18000

18000

1599

0

0

0

1

0

1

0

-0,2

0

0

1

0

360

135

5000

18000

1559

0

0

0

1

0

1

0

12,6

0

0

1

0

360

135

18000

0

1747

0

0

0

1

0

1

0

23,3

0

0

1

0

360

135

0

0

2006

0

0

0

1

0

1

0

22,8

0

0

1

0

360

135

0

0

2002

0

0

0

1

0

1

0

17,8

0

0

1

0

360

135

0

0

1735

0

0

0

1

0

1

0

18,5

0

0

1

0

360

135

0

0

1687

0

0

0

1

0

1

0

3,8

0

0

1

0

360

135

0

0

1550

0

0

0

1

0

1

0

-2,0

0

0

1

0

360

135

0

0

1491

0

0

0

1

0

1

0

-12,8

0

0

1

0

360

135

0

0

1325

0

0

0

1

0

1

0

-15,7

0

0

1

0

360

135

0

18000

1806

0

0

0

1

0

1

1

-12,2

0

0

1

0

360

135

18000

18000

648

0

0

0

1

0

1

1

-6,6

0

0

1

0

360

135

18000

18000

437

0

0

0

1

0

1

1

-0,2

0

0

1

0

360

135

5000

18000

744

0

0

0

1

0

1

1

12,6

0

0

1

0

360

135

18000

0

733

0

0

0

1

0

1

1

23,3

0

0

1

0

360

135

0

0

760

0

0

0

1

0

1

1

22,8

0

0

1

0

360

135

0

0

663

0

0

0

1

0

1

1

17,8

0

0

1

0

360

135

0

0

748

0

0

0

1

0

1

1

18,5

0

0

1

0

360

135

0

0

657

0

0

0

1

0

1

1

3,8

0

0

1

0

360

135

0

0

676

0

0

0

1

0

1

1

-2,0

0

0

1

0

360

135

0

0

650

0

0

0

1

0

1

1

-12,8

0

0

1

0

360

135

0

0

534

0

0

0

1

0

1

1

-15,7

0

0

1

0

360

135

0

18000

593

0

0

0

1

1

0

0

-12,2

0

0

1

0

230

140

18000

18000

43

0

0

0

1

1

0

0

-6,6

0

0

1

0

230

140

18000

18000

69

0

0

0

1

1

0

0

-0,2

0

0

1

0

230

140

5000

18000

26

0

0

0

1

1

0

0

12,6

0

0

1

0

230

140

18000

0

27

0

0

0

1

1

0

0

23,3

0

0

1

0

230

140

0

0

24

0

0

0

1

1

0

0

22,8

0

0

1

0

230

140

0

0

35

0

0

0

1

1

0

0

17,8

0

0

1

0

230

140

0

0

10

0

0

0

1

1

0

0

18,5

0

0

1

0

230

140

0

0

12

0

0

0

1

1

0

0

3,8

0

0

1

0

230

140

0

0

17

0

0

0

1

1

0

0

-2,0

0

0

1

0

230

140

0

0

42

0

0

0

1

1

0

0

-12,8

0

0

1

0

230

140

0

0

37

0

0

0

1

1

0

0

-15,7

0

0

1

0

230

140

0

18000

43

0

0

0

1

1

0

1

-12,2

0

0

1

0

220

100

18000

18000

412

0

0

0

1

1

0

1

-6,6

0

0

1

0

220

100

18000

18000

290

0

0

0

1

1

0

1

-0,2

0

0

1

0

220

100

5000

18000

448

0

0

0

1

1

0

1

12,6

0

0

1

0

220

100

18000

0

509

0

0

0

1

1

0

1

23,3

0

0

1

0

220

100

0

0

531

0

0

0

1

1

0

1

22,8

0

0

1

0

220

100

0

0

593

0

0

0

1

1

0

1

17,8

0

0

1

0

220

100

0

0

547

0

0

0

1

1

0

1

18,5

0

0

1

0

220

100

0

0

575

0

0

0

1

1

0

1

3,8

0

0

1

0

220

100

0

0

339

0

0

0

1

1

0

1

-2,0

0

0

1

0

220

100

0

0

313

0

0

0

1

1

0

1

-12,8

0

0

1

0

220

100

0

0

250

0

0

0

1

1

0

1

-15,7

0

0

1

0

220

100

0

18000

312

0

0

0

1

1

1

0

-12,2

0

1

0

0

150

80

18000

18000

59

0

0

0

1

1

1

0

-6,6

0

1

0

0

150

80

18000

18000

69

0

0

0

1

1

1

0

-0,2

0

1

0

0

150

80

5000

18000

80

0

0

0

1

1

1

0

12,6

0

1

0

0

150

80

18000

0

68

0

0

0

1

1

1

0

23,3

0

1

0

0

150

80

0

0

91

0

0

0

1

1

1

0

22,8

0

1

0

0

150

80

0

0

89

0

0

0

1

1

1

0

17,8

0

1

0

0

150

80

0

0

71

0

0

0

1

1

1

0

18,5

0

1

0

0

150

80

0

0

81

0

0

0

1

1

1

0

3,8

0

1

0

0

150

80

0

0

71

0

0

0

1

1

1

0

-2,0

0

1

0

0

150

80

0

0

70

0

0

0

1

1

1

0

-12,8

0

1

0

0

150

80

0

0

64

0

0

0

1

1

1

0

-15,7

0

1

0

0

150

80

0

18000

88

0

0

0

1

1

1

1

-12,2

0

1

0

0

270

150

18000

18000

66

0

0

0

1

1

1

1

-6,6

0

1

0

0

270

150

18000

18000

49

0

0

0

1

1

1

1

-0,2

0

1

0

0

270

150

5000

18000

74

0

0

0

1

1

1

1

12,6

0

1

0

0

270

150

18000

0

62

0

0

0

1

1

1

1

23,3

0

1

0

0

270

150

0

0

74

0

0

0

1

1

1

1

22,8

0

1

0

0

270

150

0

0

95

0

0

0

1

1

1

1

17,8

0

1

0

0

270

150

0

0

77

0

0

0

1

1

1

1

18,5

0

1

0

0

270

150

0

0

54

0

0

0

1

1

1

1

3,8

0

1

0

0

270

150

0

0

75

0

0

0

1

1

1

1

-2,0

0

1

0

0

270

150

0

0

68

0

0

0

1

1

1

1

-12,8

0

1

0

0

270

150

0

0

42

0

0

0

1

1

1

1

-15,7

0

1

0

0

270

150

0

18000

60

0

0

1

0

0

0

0

-12,2

0

1

1

0

200

30

18000

18000

110

0

0

1

0

0

0

0

-6,6

0

1

1

0

200

30

18000

18000

70

0

0

1

0

0

0

0

-0,2

0

1

1

0

200

30

5000

18000

92

0

0

1

0

0

0

0

12,6

0

1

1

0

200

30

18000

0

97

0

0

1

0

0

0

0

23,3

0

1

1

0

200

30

0

0

102

0

0

1

0

0

0

0

22,8

0

1

1

0

200

30

0

0

50

0

0

1

0

0

0

0

17,8

0

1

1

0

200

30

0

0

82

0

0

1

0

0

0

0

18,5

0

1

1

0

200

30

0

0

55

0

0

1

0

0

0

0

3,8

0

1

1

0

200

30

0

0

129

0

0

1

0

0

0

0

-2,0

0

1

1

0

200

30

0

0

137

0

0

1

0

0

0

0

-12,8

0

1

1

0

200

30

0

0

74

0

0

1

0

0

0

0

-15,7

0

1

1

0

200

30

0

18000

70

0

0

1

0

0

0

1

-12,2

0

1

0

1

200

40

18000

18000

22

0

0

1

0

0

0

1

-6,6

0

1

0

1

200

40

18000

18000

19

0

0

1

0

0

0

1

-0,2

0

1

0

1

200

40

5000

18000

31

0

0

1

0

0

0

1

12,6

0

1

0

1

200

40

18000

0

28

0

0

1

0

0

0

1

23,3

0

1

0

1

200

40

0

0

43

0

0

1

0

0

0

1

22,8

0

1

0

1

200

40

0

0

33

0

0

1

0

0

0

1

17,8

0

1

0

1

200

40

0

0

14

0

0

1

0

0

0

1

18,5

0

1

0

1

200

40

0

0

21

0

0

1

0

0

0

1

3,8

0

1

0

1

200

40

0

0

11

0

0

1

0

0

0

1

-2,0

0

1

0

1

200

40

0

0

17

0

0

1

0

0

0

1

-12,8

0

1

0

1

200

40

0

0

10

0

0

1

0

0

0

1

-15,7

0

1

0

1

200

40

0

18000

25

0

0

1

0

0

1

0

-12,2

0

1

0

0

180

140

18000

18000

16

0

0

1

0

0

1

0

-6,6

0

1

0

0

180

140

18000

18000

7

0

0

1

0

0

1

0

-0,2

0

1

0

0

180

140

5000

18000

13

0

0

1

0

0

1

0

12,6

0

1

0

0

180

140

18000

0

7

0

0

1

0

0

1

0

23,3

0

1

0

0

180

140

0

0

26

0

0

1

0

0

1

0

22,8

0

1

0

0

180

140

0

0

15

0

0

1

0

0

1

0

17,8

0

1

0

0

180

140

0

0

22

0

0

1

0

0

1

0

18,5

0

1

0

0

180

140

0

0

13

0

0

1

0

0

1

0

3,8

0

1

0

0

180

140

0

0

12

0

0

1

0

0

1

0

-2,0

0

1

0

0

180

140

0

0

11

0

0

1

0

0

1

0

-12,8

0

1

0

0

180

140

0

0

14

0

0

1

0

0

1

0

-15,7

0

1

0

0

180

140

0

18000

15

0

0

1

0

0

1

1

-12,2

0

1

0

0

240

170

18000

18000

16

0

0

1

0

0

1

1

-6,6

0

1

0

0

240

170

18000

18000

16

0

0

1

0

0

1

1

-0,2

0

1

0

0

240

170

5000

18000

24

0

0

1

0

0

1

1

12,6

0

1

0

0

240

170

18000

0

44

0

0

1

0

0

1

1

23,3

0

1

0

0

240

170

0

0

71

0

0

1

0

0

1

1

22,8

0

1

0

0

240

170

0

0

33

0

0

1

0

0

1

1

17,8

0

1

0

0

240

170

0

0

24

0

0

1

0

0

1

1

18,5

0

1

0

0

240

170

0

0

21

0

0

1

0

0

1

1

3,8

0

1

0

0

240

170

0

0

22

0

0

1

0

0

1

1

-2,0

0

1

0

0

240

170

0

0

14

0

0

1

0

0

1

1

-12,8

0

1

0

0

240

170

0

0

15

0

0

1

0

0

1

1

-15,7

0

1

0

0

240

170

0

18000

9

0

0

1

0

1

0

0

-12,2

0

1

0

1

1000

120

18000

18000

6

0

0

1

0

1

0

0

-6,6

0

1

0

1

1000

120

18000

18000

0

0

0

1

0

1

0

0

-0,2

0

1

0

1

1000

150

5000

18000

9

0

0

1

0

1

0

0

12,6

0

1

0

1

1000

150

18000

0

6

0

0

1

0

1

0

0

23,3

0

1

0

1

1000

150

0

0

2

0

0

1

0

1

0

0

22,8

0

1

0

1

1000

120

0

0

0

0

0

1

0

1

0

0

17,8

0

1

0

1

1000

150

0

0

1

0

0

1

0

1

0

0

18,5

0

1

0

1

1000

120

0

0

2

0

0

1

0

1

0

0

3,8

0

1

0

1

1000

120

0

0

1

0

0

1

0

1

0

0

-2,0

0

1

0

1

1000

120

0

0

0

0

0

1

0

1

0

0

-12,8

0

1

0

1

1000

120

0

0

15

0

0

1

0

1

0

0

-15,7

0

1

0

1

1000

120

0

18000

7

0

0

1

0

1

0

1

-12,2

0

0

1

1

40

25

18000

18000

19

0

0

1

0

1

0

1

-6,6

0

0

1

1

40

25

18000

18000

8

0

0

1

0

1

0

1

-0,2

0

0

1

1

40

25

5000

18000

0

0

0

1

0

1

0

1

12,6

0

0

1

1

40

35

18000

0

12

0

0

1

0

1

0

1

23,3

0

0

1

1

40

25

0

0

0

0

0

1

0

1

0

1

22,8

0

0

1

1

40

35

0

0

3

0

0

1

0

1

0

1

17,8

0

0

1

1

40

35

0

0

18

0

0

1

0

1

0

1

18,5

0

0

1

1

40

30

0

0

10

0

0

1

0

1

0

1

3,8

0

0

1

1

40

25

0

0

0

0

0

1

0

1

0

1

-2,0

0

0

1

1

40

25

0

0

0

0

0

1

0

1

0

1

-12,8

0

0

1

1

40

25

0

0

0

0

0

1

0

1

0

1

-15,7

0

0

1

1

40

25

0

18000

2

0

0

1

0

1

1

0

-12,2

0

1

0

1

1000

120

18000

18000

46

0

0

1

0

1

1

0

-6,6

0

1

0

1

1000

120

18000

18000

17

0

0

1

0

1

1

0

-0,2

0

1

0

1

1000

150

5000

18000

62

0

0

1

0

1

1

0

12,6

0

1

0

1

1000

150

18000

0

99

0

0

1

0

1

1

0

23,3

0

1

0

1

1000

150

0

0

88

0

0

1

0

1

1

0

22,8

0

1

0

1

1000

150

0

0

125

0

0

1

0

1

1

0

17,8

0

1

0

1

1000

136

0

0

119

0

0

1

0

1

1

0

18,5

0

1

0

1

1000

120

0

0

142

0

0

1

0

1

1

0

3,8

0

1

0

1

1000

120

0

0

121

0

0

1

0

1

1

0

-2,0

0

1

0

1

1000

120

0

0

110

0

0

1

0

1

1

0

-12,8

0

1

0

1

1000

120

0

0

47

0

0

1

0

1

1

0

-15,7

0

1

0

1

1000

120

0

18000

72

0

0

1

0

1

1

1

-12,2

0

1

0

1

1000

110

18000

18000

1

0

0

1

0

1

1

1

-6,6

0

1

0

1

1000

110

18000

18000

6

0

0

1

0

1

1

1

-0,2

0

1

0

1

1000

140

5000

18000

7

0

0

1

0

1

1

1

12,6

0

1

0

1

1000

110

18000

0

0

0

0

1

0

1

1

1

23,3

0

1

0

1

1000

140

0

0

22

0

0

1

0

1

1

1

22,8

0

1

0

1

1000

110

0

0

0

0

0

1

0

1

1

1

18,5

0

1

0

1

1000

110

0

0

0

0

0

1

0

1

1

1

18,5

0

1

0

1

1000

110

0

0

0

0

0

1

0

1

1

1

3,8

0

1

0

1

1000

110

0

0

10

0

0

1

0

1

1

1

-2,0

0

1

0

1

1000

110

0

0

0

0

0

1

0

1

1

1

-12,8

0

1

0

1

1000

110

0

0

0

0

0

1

0

1

1

1

-15,7

0

1

0

1

1000

110

0

18000

0

0

0

1

1

0

0

0

-12,2

0

1

1

0

200

50

18000

18000

59

0

0

1

1

0

0

0

-6,6

0

1

1

0

200

50

18000

18000

12

0

0

1

1

0

0

0

-0,2

0

1

1

0

200

50

5000

18000

66

0

0

1

1

0

0

0

12,6

0

1

1

0

200

50

18000

0

67

0

0

1

1

0

0

0

23,3

0

1

1

0

200

50

0

0

43

0

0

1

1

0

0

0

22,8

0

1

1

0

200

50

0

0

48

0

0

1

1

0

0

0

17,8

0

1

1

0

200

50

0

0

29

0

0

1

1

0

0

0

18,5

0

1

1

0

200

50

0

0

8

0

0

1

1

0

0

0

3,8

0

1

1

0

200

50

0

0

37

0

0

1

1

0

0

0

-2,0

0

1

1

0

200

50

0

0

46

0

0

1

1

0

0

0

-12,8

0

1

1

0

200

50

0

0

36

0

0

1

1

0

0

0

-15,7

0

1

1

0

200

50

0

18000

33

0

0

1

1

0

0

1

-12,2

0

0

1

1

100

60

18000

18000

3

0

0

1

1

0

0

1

-6,6

0

0

1

1

100

60

18000

18000

0

0

0

1

1

0

0

1

-0,2

0

0

1

1

100

60

5000

18000

1

0

0

1

1

0

0

1

12,6

0

0

1

1

100

60

18000

0

6

0

0

1

1

0

0

1

23,3

0

0

1

1

100

60

0

0

4

0

0

1

1

0

0

1

22,8

0

0

1

1

100

60

0

0

3

0

0

1

1

0

0

1

17,8

0

0

1

1

100

60

0

0

18

0

0

1

1

0

0

1

18,5

0

0

1

1

100

60

0

0

0

0

0

1

1

0

0

1

3,8

0

0

1

1

100

60

0

0

0

0

0

1

1

0

0

1

-2,0

0

0

1

1

100

60

0

0

1

0

0

1

1

0

0

1

-12,8

0

0

1

1

100

60

0

0

0

0

0

1

1

0

0

1

-15,7

0

0

1

1

100

60

0

18000

0

0

0

1

1

0

1

0

-12,2

0

1

0

1

200

85

18000

18000

4

0

0

1

1

0

1

0

-6,6

0

1

0

1

200

85

18000

18000

10

0

0

1

1

0

1

0

-0,2

0

1

0

1

200

85

5000

18000

8

0

0

1

1

0

1

0

12,6

0

1

0

1

200

85

18000

0

9

0

0

1

1

0

1

0

23,3

0

1

0

1

200

85

0

0

20

0

0

1

1

0

1

0

22,8

0

1

0

1

200

85

0

0

23

0

0

1

1

0

1

0

17,8

0

1

0

1

200

85

0

0

12

0

0

1

1

0

1

0

18,5

0

1

0

1

200

85

0

0

7

0

0

1

1

0

1

0

3,8

0

1

0

1

200

85

0

0

14

0

0

1

1

0

1

0

-2,0

0

1

0

1

200

85

0

0

4

0

0

1

1

0

1

0

-12,8

0

1

0

1

200

85

0

0

7

0

0

1

1

0

1

0

-15,7

0

1

0

1

200

85

0

18000

2

0

0

1

1

0

1

1

-12,2

0

1

0

1

300

105

18000

18000

8

0

0

1

1

0

1

1

-6,6

0

1

0

1

300

105

18000

18000

10

0

0

1

1

0

1

1

-0,2

0

1

0

1

300

105

5000

18000

8

0

0

1

1

0

1

1

12,6

0

1

0

1

300

105

18000

0

12

0

0

1

1

0

1

1

23,3

0

1

0

1

300

105

0

0

15

0

0

1

1

0

1

1

22,8

0

1

0

1

300

105

0

0

26

0

0

1

1

0

1

1

17,8

0

1

0

1

300

105

0

0

11

0

0

1

1

0

1

1

18,5

0

1

0

1

300

105

0

0

11

0

0

1

1

0

1

1

3,8

0

1

0

1

300

105

0

0

9

0

0

1

1

0

1

1

-2,0

0

1

0

1

300

105

0

0

12

0

0

1

1

0

1

1

-12,8

0

1

0

1

300

105

0

0

15

0

0

1

1

0

1

1

-15,7

0

1

0

1

300

105

0

18000

0

0

0

1

1

1

0

0

-12,2

0

0

1

0

160

80

18000

18000

140

0

0

1

1

1

0

0

-6,6

0

0

1

0

160

80

18000

18000

108

0

0

1

1

1

0

0

-0,2

0

0

1

0

160

80

5000

18000

118

0

0

1

1

1

0

0

12,6

0

0

1

0

160

80

18000

0

0

0

0

1

1

1

0

0

23,3

0

0

1

0

160

80

0

0

201

0

0

1

1

1

0

0

22,8

0

0

1

0

160

80

0

0

163

0

0

1

1

1

0

0

17,8

0

0

1

0

160

80

0

0

164

0

0

1

1

1

0

0

18,5

0

0

1

0

160

80

0

0

125

0

0

1

1

1

0

0

3,8

0

0

1

0

160

80

0

0

167

0

0

1

1

1

0

0

-2,0

0

0

1

0

160

80

0

0

126

0

0

1

1

1

0

0

-12,8

0

0

1

0

160

80

0

0

65

0

0

1

1

1

0

0

-15,7

0

0

1

0

160

80

0

18000

100

0

0

1

1

1

0

1

-12,2

0

1

0

1

200

85

18000

18000

5

0

0

1

1

1

0

1

-6,6

0

1

0

1

200

85

18000

18000

2

0

0

1

1

1

0

1

-0,2

0

1

0

1

200

85

5000

18000

6

0

0

1

1

1

0

1

12,6

0

1

0

1

200

85

18000

0

8

0

0

1

1

1

0

1

23,3

0

1

0

1

200

85

0

0

5

0

0

1

1

1

0

1

22,8

0

1

0

1

200

85

0

0

5

0

0

1

1

1

0

1

17,8

0

1

0

1

200

85

0

0

1

0

0

1

1

1

0

1

18,5

0

1

0

1

200

85

0

0

0

0

0

1

1

1

0

1

3,8

0

1

0

1

200

85

0

0

1

0

0

1

1

1

0

1

-2,0

0

1

0

1

200

85

0

0

0

0

0

1

1

1

0

1

-12,8

0

1

0

1

200

85

0

0

0

0

0

1

1

1

0

1

-15,7

0

1

0

1

200

85

0

18000

2

0

0

1

1

1

1

0

-12,2

0

1

0

1

300

105

18000

18000

2

0

0

1

1

1

1

0

-6,6

0

1

0

1

300

105

18000

18000

3

0

0

1

1

1

1

0

-0,2

0

1

0

1

300

105

5000

18000

5

0

0

1

1

1

1

0

12,6

0

1

0

1

300

105

18000

0

6

0

0

1

1

1

1

0

23,3

0

1

0

1

300

105

0

0

5

0

0

1

1

1

1

0

22,8

0

1

0

1

300

105

0

0

2

0

0

1

1

1

1

0

17,8

0

1

0

1

300

105

0

0

1

0

0

1

1

1

1

0

18,5

0

1

0

1

300

105

0

0

0

0

0

1

1

1

1

0

3,8

0

1

0

1

300

105

0

0

8

0

0

1

1

1

1

0

-2,0

0

1

0

1

300

105

0

0

3

0

0

1

1

1

1

0

-12,8

0

1

0

1

300

105

0

0

11

0

0

1

1

1

1

0

-15,7

0

1

0

1

300

105

0

18000

3

0

0

1

1

1

1

1

-12,2

0

1

1

0

200

25

18000

18000

161

0

0

1

1

1

1

1

-6,6

0

1

1

0

200

25

18000

18000

100

0

0

1

1

1

1

1

-0,2

0

1

1

0

200

25

5000

18000

159

0

0

1

1

1

1

1

12,6

0

1

1

0

200

25

18000

0

168

0

0

1

1

1

1

1

23,3

0

1

1

0

200

25

0

0

157

0

0

1

1

1

1

1

22,8

0

1

1

0

200

25

0

0

86

0

0

1

1

1

1

1

17,8

0

1

1

0

200

25

0

0

144

0

0

1

1

1

1

1

18,5

0

1

1

0

200

25

0

0

162

0

0

1

1

1

1

1

3,8

0

1

1

0

200

25

0

0

173

0

0

1

1

1

1

1

-2,0

0

1

1

0

200

25

0

0

167

0

0

1

1

1

1

1

-12,8

0

1

1

0

200

25

0

0

151

0

0

1


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.