УДК 004.89
А.В. Ахаев, И.А. Ходашинский, А.Е. Анфилофьев
Метод выбора программного продукта на основе интеграла Шоке и империалистического алгоритма
Рассматривается проблема выбора программного продукта по функциональным возможностям. Данную проблему предлагается решать на основе интеграла Шоке, а для извлечения нечеткой меры использовать империалистический алгоритм оптимизации. Предложен вариант выбора программных продуктов по интегральной оценке. Проведен эксперимент.
Ключевые слова: интегральная оценка, программные продукты, интеграл Шоке, империалистический алгоритм.
Повсеместное применение и постоянное совершенствование информационных технологий, наличие большого количества программных продуктов (ПП) на рынке, а также отсутствие у лиц, принимающих решения, технических знаний и опыта для выбора программного обеспечения делают необходимой разработку методов и средств выбора подходящих программных продуктов из множества аналогов. Данная проблема требует нахождения компромисса между техническими характеристиками, функциональными возможностями и финансовыми вопросами и может быть сформулирована как многокритериальная проблема принятия решений.
Наиболее часто применяемым инструментом для оценки качества программного обеспечения является метод анализа иерархий в различных его модификациях. В работе [1] выбор пакета программного обеспечения для имитационного моделирования основан на нечетком методе анализа иерархий; здесь по семи основным критериям проводится оценка шести программных продуктов. Метод анализа иерархий предложено использовать в работе [2] для выбора одной из двух систем ERP (Enterprise Resource Planning) по восьми критериям. Методология анализа среды функционирования применена в работе [3] для выбора программного обеспечения системы маршрутизации, отличительной особенностью применённого подхода является описание характеристик программных продуктов в порядковых (ранговых) шкалах.
В реальных задачах принятия решений критерии взаимозависимы, следовательно, традиционные операторы агрегации на основе аддитивных мер для объединения таких критериев не применимы. Для моделирования субъективного процесса принятия решений используются нечеткие меры, а в качестве оператора агрегации многими авторами применяется интеграл Шоке [4-6], в том числе и для оценки качества программного обеспечения [7-9]. В качестве оценочных характеристик авторы используют такие понятия, как удобство использования, эффективность, надежность, гибкость, портативность, повторное использование.
Постановка задачи выбора программного продукта. Пусть имеется множество программных продуктов (альтернатив) S, задаваемых на множестве функциональных возможностей (атрибутов, признаков) A и оцениваемых G экспертами, тогда трехмерная матрица вида продукт-атрибут-эксперт
F = || /г]к\\, (i = 1, 2, ..., m;j = 1, 2, ..., n; к = 1, 2, ..., N) определяет степень выраженности атрибута j в программном продукте i, определенную экспертом k, 0 < fjk < 1. Тогда для каждого программного продукта i существует срез вида || fkj\\.
Нечеткая мера выражает значимость каждого подмножества атрибутов и определяется для каждого i следующим образом [10]:
^ :2A ^Ш,
где 2 - множество всех подмножеств множества индексов функциональных возможностей A. Функция i удовлетворяет следующим условиям:
1) ^ (0) = 0, ^ (A) = 1;
2) V B, C с A, B с C ^ ^ (B) < ^ (C).
Тогда применительно к нашей задаче значение интеграла Шоке по нечеткой мере есть интегральная оценка программного продукта i
У = (с) | /Ф = £ (/(к,о(Л)) - /(к,ст(/ - 1)))ц(Л)) ,
А Л=1
где о является перестановкой индексов для ранжирования
/(к,ст(1))^/(к,ст(п)), Л) = {<з(Л),...,ъ(п)} и /(к,ст(0)) = 0.
Для применения интеграла Шоке необходимо задать нечеткую меру. Однако данная задача затруднена не только сложностью задания всех 2п значений коэффициентов, но и пониманием экспертом смысла нечеткой меры [11].
Для того чтобы применить интеграл Шоке, предлагается решить задачу извлечения нечеткой меры на основе обучающей выборки. Пусть экспертные предпочтения по каждому программному продукту выражены в виде матрицы обобщенных интегральных оценок:
У = || ук, ||, (к = 1, 2, ..., N I = 1, 2, ..., т).
Зная вектор экспертных предпочтений || ук || для программного продукта I, можно найти значения ц(А(,)), минимизируя выражение суммы разности квадратов:
N 2 <? =Е (Ук - у ) ^ т1п , к=1
( п
N
e = I к=1
Ук -1 (f(k,a(j)) - f (k,a(j-1)))^(A(i))
Ч j=1
Оптимальное решение должно удовлетворять ограничениям: нечеткие меры должны быть монотонными и всегда принадлежать интервалу [0, 1]. Таким образом, извлечение нечеткой меры является проблемой оптимизации ошибки e с ограничениями.
Для минимизации приведенного выражения будем использовать популяционный империалистический алгоритм. После извлечения нечетких мер M-(A(i)) для каждого программного продукта можно выбрать наилучший по требованиям пользователя.
Пусть требования пользователя представляют собой вектор
T = || tj||,
который определяет степень потребности атрибута j, 0 < tj < 1, а yti - интегральная оценка требований пользователя, вычисленная с использованием значений ^(Ap)) по интегралу Шоке. Для определения наилучшего программного продукта необходимо найти ближайшую к требованиям оценку ПП:
min(|yk - yti|).
Таким образом, метод решения задачи выбора ПП (после задания экспертных предпочтений) состоит из следующих этапов:
1) извлечение нечеткой меры на основе империалистического алгоритма;
2) определение наилучшего программного продукта по методу ближайших соседей.
Ниже предлагается более подробно рассмотреть первый этап.
Извлечение нечеткой меры с использованием империалистического алгоритма. Империалистический алгоритм основан на соперничестве стран в мировой истории [12]. Все страны разделены на две группы: империалистические государства и колонии. Основной частью данного алгоритма является империалистическое соперничество, которое должно приводить колонии к схождению к глобальному экстремуму целевой функции. Описание алгоритма минимизации ошибки e представлено ниже:
Вход: матрица || fkj || экспертных оценок функциональных возможностей программного продукта i, вектор || yk || обобщенных экспертных предпочтений.
Выход: нечеткая мера ^(A(i)).
Интерпретация нечеткой меры и ошибки в данном алгоритме: ^(A(i)) - позиция (координата) i-й страны; c = e - стоимость i-й страны.
Шаг 1. Инициализация империй. Процесс инициализации империй начинается со случайной генерации Npop количества стран. Из них выбирается Nimp наиболее сильных стран (империалистов), которые будут формировать империи.
Сила определяется через нормализованную стоимость Ci каждого империалиста:
Ci = Ci - maxCj ,
j=1, N
imp
где c - стоимость i-го империалиста (c = e). Тогда сила p{.
Ci
pi =
Nimp
IC
j=1
Оставшиеся NCoi стран распределяются в качестве колоний между империалистами пропорционально их силе. То есть количество колоний в i-й империи определяется как
NCi = round (pNCol).
После определения количества колоний в каждой империи, колонии случайным образом распределяются среди них.
Шаг 2. Ассимиляция колоний. Процесс ассимиляции колоний моделируется их перемещением к империалисту. Направление перемещения совпадает с вектором, устремленным от колонии к империалисту. Расстояние перемещения x является случайной величиной, распределенной по нормальному закону
x ~ U(0, p-d),
где d - текущее расстояние между колонией и империалистом, а в - число, большее единицы, которое позволяет колониям сближаться с империалистом равновероятно со всех сторон. В большинстве реализаций алгоритма используется значение в ~ 2 [12].
Шаг 3. Обмен позициями между империалистом и колонией. Если после ассимиляции новая позиция одной или нескольких колоний империи является более выгодной, чем позиция самого империалиста, тогда империалист перемещается на позицию этой колонии, а колония - на позицию империалиста. Иначе переход к Шагу 4.
Шаг 4. Расчет стоимости империи. Стоимость империи складывается из двух показателей: стоимость империалистического государства и стоимость колоний, входящих в нее. При этом наибольшее влияние оказывает империалист, в то время как влияние колоний незначительное:
TCi = Ci +&,
где TCi - сила i-й империи; Ci - стоимость империалиста i-й империи; Ci - средняя стоимость коло -ний империи; £ - положительное число меньше 1. Малое значение £ позволяет обеспечить минимальное влияние колоний на стоимость империи. В большинстве реализаций алгоритма 0,1 является подходящим значением константы £ [12].
Шаг 5. Империалистическое соперничество. Процесс соперничества моделируется выбором некоторого числа колоний (как правило, одной) самой слабой империи и инициированием борьбы между другими империями за право обладания колониями (колонией). При этом возможность выиграть соперничество имеет каждая из империй. То есть колонии не обязательно будут захвачены самой сильной империей, но она имеет наибольшую вероятность обладания ими.
Перед началом соперничества необходимо вычислить силу (вероятность победы) для каждой империи. Сила i-й империи определяется через нормализованную стоимость NTCi каждой империи (аналогично Шагу 1):
NTCi = TCi - maxTCj .
] =1, Nimp -1
Здесь максимальная стоимость империи вычисляется за исключением самой слабой империи, за обладание колонии которой осуществляется соперничество. Тогда сила (вероятность победы) определяется как
Pp =
NTCi
N -1
iyimp 1
I NTCj j=1
Затем формируется вектор Р вида
]
и вектор И такой же размерности, его элементы случайно распределены по равномерному закону
И = [/ъ^..^Щтр-^ ^ %тр- ~ и^ IX
и вычисляется вектор Б как разница между Р и И:
P = [Pp^ Pp2 PpNimp -1]
Б = Р - И = [А, ^2,-, 1тр -1] = [Рр - П, РР2 - г2,-, РрЫтр - - гм1тр -1].
Таким образом, колонии, за которые идет борьба, передаются империи, для которой соответствующее значение вектора Б максимально.
Шаг 6. Уничтожение слабых империй. Если империя не содержит ни одной колонии, то уничтожить империю. Иначе переход к Шагу 7.
Шаг 7. Условие останова. Если осталась только одна империя, то закончить выполнение алгоритма. Позиция ц(4(г-)) империалиста оставшейся империи является выходным значением алгоритма. Иначе переход к Шагу 2.
В [7] утверждается, что генетические алгоритмы могут застревать в локальных оптимумах. В [12] указано, что империалистический алгоритм быстрее сходится к своему оптимальному значению в сравнении с классическим генетическим алгоритмом и оптимизацией по методу роящихся частиц.
Эксперимент. Целью эксперимента является проверка адекватности данных, полученных с помощью представленного метода, соотнесение результатов с рекомендациями экспертов.
Эксперимент проводился на реальных данных по 11 программным продуктам системы «1 С: Предприятие 8» из одной области применения. Множество входных данных состоит из 11 таблиц экспертных оценок по 10 функциональным возможностям ПП, а также 11 векторов предпочтений экспертов. Каждая таблица содержит оценки пяти экспертов по одному ПП (табл. 1).
Таблица 1
Оценки программного продукта____________________________
Эксперт Функциональная возможность Общая оценка
УП КФ МУ РО УО СУ П ВК РЗП УП
Э1 1 0,75 1 0,75 0,5 0,5 0,75 0,75 0,5 0,5 0,8
Э2 1 0,75 1 0,5 0,75 0,75 0,75 0,75 0,5 0,5 0,7
Э3 1 0,75 1 0,75 0,5 0,5 0,5 1 0,75 0,5 0,85
Э4 1 0,5 0,75 0,75 0,75 0,75 0,75 0,75 0,5 0,5 0,75
Э5 1 0,75 1 0,75 0,75 0,5 0,75 0,5 0,5 0,75 0,65
где УП - учет пациентов, КФ - коечный фонд, МУ - медицинские услуги, РО - регламентированные отчеты, УО - управленческие отчеты, СУ - складской учет, П - планирование, ВК - взаиморасчеты с клиентами, РЗП - расчет заработной платы, УП - управление персоналом.
При извлечении нечеткой меры в империалистическом алгоритме использовалось 592 страны и
5 империй. Результаты извлечения нечеткой меры представлены в табл. 2.
Таблица 2
Нечеткая мера программных продуктов______________________
ПП1 ПП2 ПП3 ПП4 ПП5 ПП6 ПП7 ПП8 ПП9 ПП10 ПП11
Нечеткая мера 0,89119 0,91705 0,56071 0,55743 0,32565 0,50426 0,83727 0,27791 0,41013 0,32046 0,81047
Ошибка 0,06365 0,06621 0,02248 0,023 0,0161 0,02245 0,09301 0,01625 0,03509 0,03105 0,02032
Здесь ПП1 - 1С:Медицина. Поликлиника, ПП2 - 1С:Медицина. Больница, ПП3 - 1С:Медицина. Больничная аптека, ПП4 - 1С:Медицина. Клиническая лаборатория, ПП5 - 1С:Медицина. Больничные, ПП6 - 1С:Медицина. Федеральные регистры, ПП7 - 1С:Розница 8. Аптека, ПП8 - 1С:Кабинет здоровья образовательного учреждения, ПП9 - 1С:Управление аптечной сетью, ПП10 - 1С:Паспорт здоровья ребенка, ПП11 - Аналит:учет медицинских услуг.
Метод апробирован на пяти пользователях-экспертах, уже работающих с программными продуктами «1 С: Предприятие 8». Предлагалось сформировать оценки функциональных возможностей желаемого программного продукта (табл. 3).
По данным требованиям и с использованием полученных нечетких мер формировались интегральные оценки желаемых ПП. В результате сравнения интегральных оценок требований пользователей с интегральными оценками ПП определялся наилучший программный продукт для каждого пользователя (см. табл. 3).
Полученные результаты совпали с рекомендациями экспертов, а также с реальным выбором пользователей, сделанным ранее. Проведенное тестирование позволяет сделать вывод о том, что
данный подход способен оказать объективную поддержку пользователю в вопросе выбора программного продукта.
Таблица 3
________________________Требования пользователей и результаты выбора________________________
Пользователь Функциональные возможности Резуль- тат
УП КФ МУ РО УО СУ П ВК РЗП УП
П1 1 0,5 1 1 0,25 0,5 0,05 0,75 0,5 0,5 ПП9
П2 1 0,75 1 0,75 0,75 0,5 0,25 0,75 0,5 0,5 ПП11
П3 1 1 1 0,75 0,75 0,75 0,05 0,05 0,05 0,05 ПП8
П4 0,5 0,75 0,5 1 0,5 0,05 0,75 0,05 0,75 0,75 ПП4
П5 0,75 0,5 0,75 0,25 0,05 0,05 0,5 0,75 1 1 ПП5
Заключение. Предложенный метод позволяет анализировать программные продукты по функциональным возможностям для выбора наиболее подходящего варианта. На основе представленного метода разработана подсистема, которая является частью экспертной системы [13, 14] и позволяет подобрать программный продукт по требованиям пользователя.
Работа выполнена при поддержке Российского фонда фундаментальных исследований (гранты 12-07-00055а, 14-07-00449а).
Литература
1. Azadeh A. A robust decision-making methodology for evaluation and selection of simulation software package / A. Azadeh, S.N. Shirkouhi, K. Rezaie // International Journal of Advanced Manufacturing Technology. - 2010. - Vol. 47. - P. 381-393.
2. Karaarslan N. An application for modular capability-based ERP software selection using AHP method / N. Karaarslan, E. Gundogar // International Journal of Advanced Manufacturing Technology. -2009. - Vol. 42. - P. 1025-1033.
3. Smirlis Y.G. Data envelopment analysis models to support the selection of vehicle routing software for city logistics operations / Y.G. Smirlis, V. Zeimpekis, G. Kaimakamis // Operational Research. 2012. -Vol. 12. - P. 399-420.
4. Tan C. Intuitionistic fuzzy Choquet integral operator for multi-criteria decision making / C. Tan, X. Chen // Expert Systems with Applications. - 2010. - Vol. 37. - P. 149-157.
5. Grabisch M. The application of fuzzy integrals in multicriteria decision making // European Journal of Operation Research. - 1996. - № 89. - Р. 445-456.
6. Meyer P. On the use of the Choquet integral with fuzzy numbers in multiple criteria decision support / P. Meyer, M. Roubens // Fuzzy Sets and Systems. - 2006. - Vol. 157. - P. 927-938.
7. A Hybrid Algorithm to Extract Fuzzy Measures for Software Quality Assessment / X. Wang, M. Ceberio, S. Virani et al. // Journal of Uncertain Systems. - 2013. - Vol. 7, № 3. - P. 219-237.
8. Pasrija V. Assessment of Software Quality: Choquet Integral Approach / V. Pasrija, S. Kumar, P.R. Srivastava // Procedia Technology. - 2012. - Vol. 6. - P. 153-162.
9. Yang H. Measuring Software Product Quality with ISO Standards Base on Fuzzy Logic Technique // Affective Computing and Intelligent Interaction, AISC 137. - Berlin: Springer-Verlag, 2012. -P. 59-67.
10. Sugeno M. Theory of fuzzy integrals and its applications: Ph.D. Thesis. - Tokyo. - 1974. -237 р.
11. Сакулин С. А. К вопросу о практическом применении нечетких мер и интеграла Шоке / С.А. Сакулин, А.Н. Алфимцев // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. - 2012. -С. 55-63.
12. Atashpaz-Gargari E. Imperialist Competitive Algorithm: An Algorithm for Optimization Inspired by Imperialistic Competition / E. Atashpaz-Gargari, C. Lucas // IEEE Congress on Evolutionary Computation. - 2007. - P. 4661-4667.
13. Ахаев А.В. Алгоритмы и программные средства построения экспертных систем выбора программных продуктов на примере «1С:Предприятие 8» / А.В. Ахаев, И.А. Ходашинский // Информатика и системы управления. - 2013. - № 4. - С. 70-79.
14. Ахаев А.Е. Алгоритм оценивания функционального наполнения программных продуктов-на основе нечеткого логического вывода // Доклады ТУСУРа. - 2013. - № 2 (28). - С. 169-174.
Ахаев Александр Валерьевич
Аспирант каф. комплексной информационной безопасности электронно-вычислительных систем
(КИБЭВС) ТУСУРа
Тел.: 8 (382-2) 41-34-26
Эл. почта: [email protected]
Ходашинский Илья Александрович
Д-р техн. наук, профессор каф. КИБЭВС
Тел.: 8 (382-2) 41-34-26
Эл. почта: [email protected]
Анфилофьев Александр Евгеньевич
Студент каф. КИБЭВС ТУСУРа
Тел.: 8 (382-2) 41-34-26
Эл. почта: [email protected]
Akhaev A.V., Hodashinsky I.A.
Method for software selection on the basis of Choquet integral and imperialist algorithm
A problem of software selection on functionality is discusses. To solve based on the Choquet integral, and to extract the fuzzy measure used imperialist optimization algorithm is suggested. Variant of software selection on integrated assessment is offered. The experiment was conducted.
Keywords: integral evaluation, software, Choquet integral, imperialist algorithm.