УДК 004.89
К. А. Павлова, Н. В. Береза, А. Н. Береза, В. В. Бегляров
РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ ОПРЕДЕЛЕНИЯ РАСХОДОВ ИНТЕРНЕТ-МАГАЗИНА НА ОСНОВЕ АЛГОРИТМА МАМДАНИ
Разработана информационная система, обладающая возможностя-
--ми алгоритма Мамдани, вывода графиков функций принадлежности
26 нечетких лингвистических переменных, построения диаграмм с целью
визуальной оценки уровня каждого вида затрат. Представлена блок-схема и описан общий алгоритм работы информационной системы. Построена диаграмма классов реализации информационной системы в нотации языка UML. Описаны основные принципы работы системы. Выполнено тестирование информационной системы, проведен анализ результатов.
We present an information system capable of performing the Mamdani algorithm operations, plotting graphs for the functions of fuzzy linguistic variables, and creating diagrams for a visual assessment of each type of expenditure. We provide a block diagram and describe a general algorithm for the information system operation. A class diagram of information system implementation is created in the UML. We outline the main principles of the system operation and describe the testing of the system and the analysis of the results obtained.
Ключевые слова: нечеткая логика, алгоритм Мамдани, диаграмма классов.
Keywords: fuzzy logic, Mamdani algorithm, class diagram.
Введение
Важной частью функционирования современного электронного магазина является процесс ценообразования. Ценообразующие факторы представляют собой нечеткие описания, задаваемые экспертами интервальными значениями, в связи с чем электронная коммерция представляет собой сложноорганизованную систему, проектирование которой является затруднительным и многоэтапным процессом. Поэтому применение нечетких моделей, методов и алгоритмов позволит устранить проблемы неопределенности и предоставит возможность задания интервала допустимых значений.
Изучение вопросов степени научной разработанности проблемы, предметной областью которой служит сфера электронной коммерции, показало, что исследование задачи определения расходов интернет-магазина на базе нечеткой логики мало изучена, в связи со все возрастающей популярностью и ростом числа электронных магазинов в современном мире имеет научный и практический интерес.
© Павлова К. А., Береза Н. В., Береза А. Н., Бегляров В. В., 2018
Вестник Балтийского федерального университета им. И. Канта. Сер.: Физико-математические и технические науки. 2018. № 2. С. 26 —
Поэтому разработка информационной системы определения расходов интернет-магазина на основе алгоритма Мамдани для автоматизации процесса ценообразования является актуальной.
Цель работы — осуществление доработки имеющейся системы определения расходов интернет-магазина, направленной на расширение ее функционала и выполнения требований, предъявленных к разрабатываемой системе в работе [1].
Для реализации системы нечеткого вывода определения расходов интернет-магазина будем использовать алгоритм Мамдани, относящийся к числу алгоритмов, нашедших широкое применение в разработках многих нечетких систем. Следует отметить, что данный алгоритм, созданный английским математиком Е. Мамдани, на сегодня находит применение для решения множества задач различных классов, что подтверждают многочисленные публикации [2 — 6]. В сфере экономики можно привести немало примеров использования теории нечетких множеств и алгоритма Мамдани: разработка систем менеджмента качества, оценка эффективности инвестиционных проектов, анализ риска банкротства и многие другие [7—9]. Все вышесказанное в очередной раз доказывает высокую степень применимости данного алгоритма для решения любых классов задач.
Не является исключением задача определения расходов интернет-магазина, относящаяся к плохо формализуемым, для решения которой следует использовать аппарат теории нечеткой логики. Возможность представления нечетких описаний в виде лингвистических переменных, а также способность учитывать количественные и качественные показатели позволяет сделать наиболее эффективным применение аппарата нечетких множеств для решения задачи определения расходов интернет-магазина [10].
В работе [1] нами была реализована информационная система, обладающая возможностями расчета затрат интернет-магазина, определением категории полученных затрат на основе базы нечетких правил, а также возможностью их корректировки посредством слайдера, предоставляя руководству интернет-магазина осуществить предварительное планирование.
В статье [11] были рассмотрены основы применения теории нечеткой логики в системе определения расходов интернет-магазина. В работе был представлен набор используемых нечетких лингвистических входных и выходной переменных, для каждой из которых были заданы и подробно описаны терм-множества. Кроме того, в статье приведены построенные трапециевидные функции принадлежности для нечетких переменных, сформирована база нечетких продукций и представлена структура разрабатываемой системы нечеткого вывода.
Наконец, определим задачи, которые необходимо выполнить в данной работе:
— разработать и описать алгоритм работы информационной системы;
27
— разработать и описать диаграмму классов реализации информационной системы в нотации языка ИМЬ;
— описать основные принципы работы системы;
— выполнить тестирование информационной системы.
1. Алгоритм работы информационной системы
Алгоритм разработанной информационной системы представлен на рисунках 1 и 2.
28
Рис. 1. Алгоритм работы информационной системы определения расходов интернет-магазина
29
Рис. 2. Алгоритм работы информационной системы определения расходов интернет-магазина (продолжение)
Следует отметить, что алгоритм работает по принципу «черного ящика». Из этого следует, что на вход и выход поступают числовые значения, на промежуточных этапах выполняется расчет по формулам, составляющим экономико-математическую модель определения расходов интернет-магазина, а также осуществляется применение аппарата нечеткой логики [12 — 14].
Опишем вкратце общий алгоритм работы нашей информационной системы.
Шаг 1. Ввод исходных данных. На данном шаге пользователь задает количественные значения для семи входных переменных.
Шаг 2. Расчет, корректировка, определение категории расходов. Этот шаг предназначен для расчета и выполнения возможности осуществления корректировки рассчитанных таких показателей, как «Общие расходы», «Себестоимость», «УСН», «Цена с учетом УСН» [1].
Шаг 3. Переход к блоку нечеткой логики. На данном шаге на слайдере представлены значения каждой входной переменной, диапазон которых был определен на предыдущем шаге. Пользователю необходимо лишь выбрать желаемой значение для каждой категории затрат.
Шаг 4. Выполнение алгоритма Мамдани, принцип работы которого описывают шаги 5 — 9.
Шаг 5. Формирование базы правил системы нечеткого вывода подразумевает формальное представление эмпирических знаний (или знаний экспертов) о той или иной предметной области [15; 16]. Для разработанной информационной системы использовались правила нечетких продукций следующего вица.
Правило 1. Если «Условие 1» и «Условие 2», то «Заключение 1» (Fi).
Правило 2. Если «Условие 2» и «Условие 2», то «Заключение 2» (F2).
Правило n. Если «Условие n» и «Условие n», то «Заключение n» (Fn).
где Fn — весовые коэффициенты, по умолчанию равны 1.
Количество правил, функционирующих в системе, равно 45. Обоснование выбора их количества, а также фрагмент базы правил обоснованы в статье [11].
Шаг 6. Фазификация входных переменных (введение нечеткости) заключается в выполнении процесса установления соответствия между численным значением каждой входной переменной и значением функции принадлежности соответствующего ей терма входной лингвистической переменной [15; 16].
Шаг 7. Агрегирование подусловий. Процесс агрегирования подразумевает нахождение степени истинности для каждого условия базы нечетких правил, для определения которой используются операции нечеткой конъюнкции
T(А л B) = min {T( A), T(B)}, где А и B — нечеткие высказывания.
Шаг 8. Активизация подзаключений. Цель активизации заключается в нахождении степени истинности каждого из подзаключений базы нечетких правил, определяемой следующим образом:
ц'(у) = min {, ц(у)}, (1)
где сг — степень истинности i-го подзаключения; ц( у) — функция принадлежности терма.
Шаг 9. Дефазификация выходной переменной. Этап дефазифика-ции представляет собой процесс перехода от нечеткого множества к четкому [17; 18]. В качестве метода дефаззификации был использован метод центра тяжести
Max
j хц(x)dx
y = Mm--(2)
У Max • VW
j ц(x) dx
Min
где y — результат дефаззификации; x — переменная, соответствующая выходной лингвистической переменной; ц( x) — степень принадлежности, определенная на этапе активизации; Min и Max — левая и правая точки интервала выходной переменной.
Шаг 10. Вывод решения (значения затрат, агрегирование, итоговое терм-множество, шт-активизация, результат дефазификации) и графиков функций принадлежности пользователю.
Таким образом, все шаги алгоритма выполняются последовательно, а значения, полученные на предыдущем шаге, используются для выполнения последующего шага [12].
2. Диаграмма классов информационной системы
На рисунке 3 представлена диаграмма классов реализации информационной системы в нотации языка UML [17; 18].
31
Рис. 3. Диаграмма классов реализации информационной системы в нотации языка УЫЬ
Исходный код информационной системы написан на языке программирования JavaScript. Представленная диаграмма показывает основные классы, задействованные в алгоритме, и существенные связи между ними.
Класс GetData предназначен для получения данных из формы, введенных пользователем. Методы parseInp(), getInputs(), getInputs2() используются для получения данных из полей формы.
Класс CalculateData предназначен для выполнения расчетов по экономико-математической модели определения расходов интернет-магазина. Для этого используется метод calculate(), а методы setRes() и setRes2() используются для вывода результатов в форму.
Класс Correct реализует возможность корректировки рассчитанных данных, используя инструмент слайдера в форме. Для этого используются методы InitSliders() и refreshSliders(), предназначенные для установки начальных значений и обновления данных на слайдере. Метод getInputsCorrect() реализует получение данных со слайдера, а метод calculate2() — перерасчет значения на основе данных, полученных с помощью метода getInputsCorrect().
32
Класс Category осуществляет определение категории значения выходной переменной с помощью метода getCategory(). Метод resToRus() реализует перевод полученной категории в текстовое значение «низкий», «средний», «высокий». Метод getInfo() включает в себя базу правил для осуществления определения категории рассчитанного значения выходной переменной.
Дальнейшее описание используемых в алгоритме классов включает в себя непосредственно реализацию алгоритма Мамдани.
Класс InputsData реализует получение заданных на слайдере значений входных переменных. Для этого предназначены методы InitSli-ders() и InitVars(), служащие для установки начальных значений данных на слайдере и обнуления переменных.
Класс OutputsData производит расчет значений и выводит их на форму. При этом метод getInputs() получает данные со слайдера, метод calculate() осуществляет расчет и вывод полученных данных в форму, метод hForInp() находит шаг для равномерного разделения интервала на фиксированное количество точек, которые используются в классе Fuzzyfication, а метод calculateR() реализует расчет значений и определяет минимальное и максимальное значения интервала выходной переменной.
Класс Rule реализует базу правил с помощью метода checkRules(). Класс Fuzzyfication осуществляет установление соответствия между численным значением каждой входной переменной и значением функции принадлежности соответствующего ей терма с помощью методов hForInp() и kToLMH().
Класс Agregation реализует нахождение степени истинности для каждого условия базы правил с помощью метода calculateLMH().
Класс Activate осуществляет этап активизации с помощью метода minActivate() для определения min-активизации, рассчитанной по формуле (1).
Класс Defuzzyfication реализует процедуру нахождения количественного значения выходной переменной, или переход от нечеткого множества к четкому. Для этого предназначен метод getDf(), который осуществляет процедуру дефаззификации по формуле (2). В качестве вспомогательного метода выступает getMinMaxForTerm(), определяющий левую и правую точки интервала выходной переменной, необходимые для дефаззификации. Метод createDiagramms() реализует построение графиков функций принадлежности.
3. Описание работы информационной системы
В информационную систему, созданную в работе [1], были добавлены новые функциональные возможности. Так, после проведения расчетов, составляющих экономико-математическую модель определения расходов интернет-магазина [19], пользователю предоставляется возможность построения столбчатых диаграмм, позволяющих визуально оценить уровень каждого вида затрат, как это показано на рисунке 4.
33
Рис. 4. Диаграмма оценки уровня каждого вида затрат
Кнопка «Перейти к нечеткой логике» предусмотрена для выполнения алгоритма Мамдани. При нажатии на нее появляется окно, представленное на рисунке 5.
Рис. 5. Раздел для работы с блоком нечеткой логики
На рисунке 6 — слайдер для каждой входной переменной, диапазон которого был определен на предыдущем шаге. Пользователю необходимо лишь выбрать желаемой значение для каждой категории затрат.
Подробности решения Значения расходов
Реклама: 8000 руб [4000,16000], шаг 1000
Аренда: 9787 руб [2500,15000], шаг 1041
Зарплата: 47740 руб [26040,78120], шаг 4340
Интернет: 595 руб [450,800], шаг 29
Сайт: 358 руб [250,1550], шаг 108
Телефон: 370 руб [1,500], шаг 41
Стоимость закупки: 14000 руб [4000,16000], шаг 1000
Расходы: 80850 руб [37241,127970], шаг 7560
Степени принадлежности и терм-множества входных переменных:
0.25,0.25,1,1,1,0.25,1
L,H,M,M.L,M,H
Итоговое терм-множеетао: М
Итоговая степень принадлежности выходной переменной: 0.25 Границы вычисления интеграла: от 44801 до 112841
Результат дефаззификации
78821
Рис. 6. Вывод подробностей решения
Для осуществления возможности вывода подробностей решения предусмотрен checkbox «Показыывать подробности решения». В результате на экран будут выыведены графики функций принадлежности каждой входной переменной и, кроме того, график функции принадлежности результирующей переменной «Расходы» (рис. 7).
Л.
«к tk 10k tlk 14* life
А
«* |к 10» |)к I*
Рис. 7. Графики функций принадлежности нечетких переменных определения расходов интернет-магазина: а — «реклама»; б — «аренда»; в — «телефон»; г — выходная нечеткая переменная «расходы», выводимая пользователю
4. Тестирование информационной системы
Для осуществления проверки адекватности работы информационной системы сначала были заданы разные интервальные значения для каждого из видов расходов с целью тестирования работоспособности на разных интервалах, имитируя, таким образом, работу пользователя в информационной системе.
Затем было осуществлено тестирование работоспособности слайдера системы, выполняющего роль корректировки заданных значений и отвечающего за перерасчет итоговых значений.
Следующий шаг — проверка работоспособности алгоритма Мамдани, где проверке подверглись следующие результирующие значения:
— степень принадлежности и терм-множество каждой входной лингвистической переменной;
— полученное итоговое терм-множество;
— степень принадлежности терм-множества;
— результат дефазификации.
Общее число тестовых заданий составило 45, что соответствует количеству правил в базе разработанной информационной системы. Результаты тестирования информационной системы представлены в таблице.
Результаты тестирования информационной системы
35
Ввод исходных данных
Вид затрат Интервальные значения, руб. Корректировка введенных значений
Вид затрат Числовое значение, руб.
Реклама 4000 16000 Реклама 10000
Аренда 2500 15000 Аренда 7098
Зарплата и страховые взносы 26040 78120 Зарплата и страховые взносы 72203
Интернет 450 800 Интернет 599
Сайт 250 1550 Сайт 250
Телефон 100 500 Телефон 388
Количество товаров, шт. 100
Стоимость закупки 4000 16000 Стоимость закупки 14415
Составляющие процесса ценообразования Значение
Желаемая прибыль Средняя
Ставка налога, % 6
Удельный вес номенклатурной группы или модели, доли 0,5
Результат, руб. Результат после корректировки, руб.
Общие затраты Себестоимость единицы товара УСН на единицу товара Общие расходы Себестоимость единицы товара УСН на единицу товара Цена единицы товара с учетом УСН
66655 393 30 90538 597 46 762
Категория затрат Средние
Окончание табл.
36
Алгоритм Мамдани
Лингвистическая переменная Числовое значение Терм-множество Итоговое терм-множество ц(х) итогового терм-множества Результат дефазификации
Реклама 8000 0,25 Ь М 0,25 78821
Аренда 9787 0,25 Н
Зарплата и страховые взносы 47740 1 М
Интернет 595 1 М
Сайт 358 1 Ь
Телефон 370 0,25 М
Стоимость закупки 14000 1 Н
Апробация результатов показала адекватность работы информационной системы.
Выводы
Представленная информационная система обладает следующими возможностями:
— расчет по формулам, составляющим экономико-математическую модель определения расходов интернет-магазина;
— возможность корректировки значений входных параметров системы с целью перерасчета выходных параметров;
— определение категории рассчитанных расходов («низкие», «средние», «высокие»);
— построение столбчатых диаграмм, позволяющих визуально оценить уровень каждого вида затрат;
— реализация алгоритма Мамдани;
— вывод графиков функций принадлежности входных и выходной лингвистических переменных.
Кроме того, разработанная информационная система имеет простой удобный интерфейс, осуществлено выделение основных рабочих областей системы, а также выполнено оформление и вывод результатов пользователю.
Работа выполнена при поддержке РФФИ (проект № 17-07-01323).
Список литературы
1. Павлова К. А., Береза Н. В., Береза А. Н., Бегляров В. В. Проектирование и разработка сложноорганизованной социотехнической системы на основе нечетких интервальных оценок / / Вестник Балтийского федерального университета им. И. Канта. Сер.: Физико-математические и технические науки. 2018. № 1. С. 5 — 17.
2. Сухинина В. В. Анализ влияния факторов внешней и внутренней среды предприятия на изменение его рыночной доли // Вестник Московского государственного областного университета. Сер.: Экономика. 2011. № 1. С. 55 — 59.
3. Матковская М. О. Исследование алгоритмов нечеткого вывода в моделях принятия решений / / Известия ЮФу. Технические науки. 2009. № 3 (92). С. 240 — 244.
4. Ехлаков Ю. П., Пермякова Н. В. Нечеткая модель оценки рисков продвижения программных продуктов // Бизнес-информатика. 2014. № 3 (29). С. 69 — 78.
5. Быков А. В., Кореневский Н. А., Устинов А. Г. Нечеткий алгоритм прогноза развития ишемической болезни конечностей для различных этапов ведения пациентов // Известия Юго-Западного государственного университета. Сер.: Управление, вычислительная техника, информатика. Медицинское приборостроение. 2016. № 2 (19). С. 142—155.
6. Веретехин А. В. Управление уровнем эколого-экономической безопасности промышленного предприятия с применением нечетко-множественного инструментария // Вестник Забайкальского государственного университета. 2017. Т. 23, № 6. С. 128—138.
7. Абалдова С. Ю., Волынский В. Ю. Разработка системы нечеткого вывода оценки результативности системы менеджмента качества предприятия на основе алгоритма Мамдани // Известия высших учебных заведений. Сер.: Экономика, финансы и управление производством. 2011. № 1. С. 86 — 93.
8. Семененко М. Г., Князева И. В., Чудеснова Я. С. Комбинированный метод оценки эффективности инвестиционных проектов // Фундаментальные исследования. 2013. № 8-1. С. 60— 63.
9. Згуровский М. З., Зайченко Ю. П. Комплексный анализ риска банкротства корпораций в условиях неопределенности. Ч. 2 // Системш дослщження та шформацшш технологи. 2012. № 2. С. 111 — 124.
10. Козлова Е. В. Нечеткая иерархическая модель оценки поставщика материальных ресурсов крупного промышленного предприятия / / Производственный менеджмент: теория, методология, практика. 2016. № 8. С. 103—109.
11. Павлова К. А., Береза Н. В., Бегляров В. В. Применение теории нечеткой логики в системе определения расходов интернет-магазина // Научная весна-2018: Технические науки. Шахты, 2018.
12. Волков В. Н., Стычук А. А., Котляр А. А., Новиков С. В., Рыженков Д. В. Формирование рейтингов поставщиков электронных услуг населению. URL: http://irsit.ru/files/article/322.pdf (дата обращения: 15.04.2018).
13. Братищенко В. В. Проектирование информационных систем. Иркутск, 2008.
14. Гаибова Т. В., Шумилина Н. А. Оценка проектного риска отказа оборудования на основе теории нечетких множеств // Интеллект. Инновации. Инвестиции. 2013. № 2. С. 10—16.
15. Леоненков А. В. Нечеткое моделирование в среде MATLAB и fuzzyTech. СПб., 2005.
16. Штовба С. Д. Проектирование нечетких систем средствами MATLAB. М., 2007.
17. Леоненков А. В. Самоучитель UML 2. СПб., 2007.
18. Саак А. Э., Пахомов Е. В., Тюшняков В. Н. Информационные технологии управления. СПб., 2008.
19. Береза А. Н., Береза Н. В., Павлова К. А. Нечеткая модель формирования цены единицы товара интернет-магазина // Научная весна-2017: Технические науки. Шахты, 2017. С. 323—330.
37
Об авторах
Кристина Александровна Павлова — магистрант, филиал Донского государственного технического университета в г. Шахты, Россия. E-mail: crist.pavlova2012@yandex.ru
Наталья Викторовна Береза — канд. экон. наук, доц., филиал Донского государственного технического университета в г. Шахты, Россия. E-mail: nvbereza@bk.ru
38
Андрей Николаевич Береза — канд. техн. наук, доц., филиал Донского государственного технического университета в г. Шахты, Россия.
E-mail: anbirch@mail.ru
Вадим Валерьевич Бегляров — канд. техн. наук, доц., филиал Донского государственного технического университета в г. Шахты, Россия.
E-mail: torbww@yandex.ru
The authors
Kristina A. Pavlova, Master's Student, Shakhty Branch of the Don State Technical University, Russia.
E-mail: crist.pavlova2012@yandex.ru
Dr. Natalia V. Bereza, Associate Professor, Shakhty Branch of the Don State Technical University, Russia.
E-mail: nvbereza@bk.ru
Dr. Andrey N. Bereza, Associate Professor, Shakhty Branch of the Don State Technical University, Russia.
E-mail: anbirch@mail.ru
Dr. Vadim V. Beglyarov, Associate Professor, Shakhty Branch of the Don State Technical University, Russia. E-mail: torbww@yandex.ru