КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
УДК 004.056
И. М. Ажмухамедов, Н. А. Колесова
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ВЫЧИСЛЕНИЙ С НЕЧЕТКИМИ ЧИСЛАМИ
Введение
В настоящее время широкое применение находят методы нечеткой алгебры, формирующие один из новых подходов к решению прикладных задач. Математическая теория нечетких множеств и нечеткая логика являются обобщениями классической теории множеств и формальной логики. Основной причиной появления новой теории стало наличие нечетких и приближенных рассуждений при описании человеком процессов, систем, объектов.
К теории нечетких множеств и нечеткой логике привлечено внимание широкого круга исследователей, работающих в таких областях прикладной математики, как обработка информации, моделирование, исследование операций, управление, прогнозирование, а также внимание специалистов в различных областях социально-экономических наук. Кроме того, в настоящее время стало уделяться внимание вопросам построения экспертных систем, основанных на нечеткой логике, которые находят широкое применение в медицине и экономике, ведется разработка нечетких контроллеров. Нечеткие числа применяются в автомобильной, аэрокосмической и транспортной промышленности, в области изделий бытовой техники, в сфере финансов, анализа и принятия управленческих решений и многих других областях [1].
Возможность успешного применения подходов, основанных на нечеткости, во многом определяется гибким математическим аппаратом, используемым при анализе и обработке данных, способным адекватно не только отразить зависимости и взаимосвязи, не подлежащие строгой формализации, но и учесть неточные, субъективные оценки специалистов, лежащие в их основе.
Среди очевидных преимуществ нечетких систем можно выделить следующие [2]:
— возможность оперировать нечеткими входными данными (непрерывно изменяющиеся во времени значения (динамические задачи); значения, которые невозможно задать однозначно (результаты статистических опросов, рекламные компании, и т. д.);
— возможность нечеткой формализации критериев оценки и сравнения: оперирование критериями «большинство», «возможно», «преимущественно»;
— возможность проведения качественных оценок как входных данных, так и выходных результатов, т. е. возможность оперировать не только значениями данных, но и степенью их достоверности и ее распределением;
— возможность быстрого моделирования сложных динамических систем и их сравнительного анализа с заданной степенью точности.
В связи с возрастающей потребностью применения теории нечетких множеств для решения различных прикладных задач в настоящее время все более актуальной становится задача автоматизации процесса работы с основным элементом данной теории - нечеткими числами.
Постановка и решение задачи
Необходимо разработать программный продукт, позволяющий производить вычисления с нормированными нечеткими числами.
Приведем некоторые определения. Нечетким числом называется нечеткое подмножество (совокупность пар вида А = {х, тА (х)}, где х е X, а та (х) - функция принадлежности, ставящая в соответствие множеству X отрезок [0,1]) универсального множества действительных чисел Я, функция принадлежности ц которого удовлетворяет условиям:
1) непрерывности;
2) нормальности: sup{m(x)} = 1, xє R ;
3) выпуклости: m(Xj) > min{|і(хг-), m(xk)}, x < Xj < xk .
В зависимости от вида функции принадлежности принято различать треугольные (рис. 1), трапециевидные (рис. 2) и колоколообразные (рис. 3) нечеткие числа.
Часто при решении слабоформализуемых задач в качестве семейства функций принадлежности выступает стандартный 01-классификатор. Наиболее часто используются 3-, 5-и 7-уровневые классификаторы (рис. 4).
Классификатор, приведенный на рис. 4, осуществляет проекцию нечеткого лингвистического описания (например: Низкий, Средний, Высокий) на 01-носитель, и делает это непротиворечивым способом, симметрично располагая узлы классификации (0,15; 0,5; 0,85). В этих узлах значение соответствующей функции принадлежности равно единице, а всех остальных функций -нулю. Неуверенность эксперта в классификации убывает (возрастает) линейно с удалением от узла (с приближением к узлу). При этом сумма функций принадлежности во всех точках носителя равна единице.
Рассмотрим алгоритм выполнения вычислений с нечеткими числами на примере трапециевидных чисел.
Трапециевидным нечетким числом с интервалом устойчивости [а, Ь], правой шириной 7 > 0 и левой шириной 5 > 0 называется нечеткое множество, функция принадлежности которого имеет вид
Существуют два основных способа ведения операций над нечеткими числами: с использованием а-сечения (рис. 5) или при помощи расширения, предложенного Л. Заде [3]. Первый из них является наиболее простым и удобным для использования.
Kx) '
0
І
x
x
0
x
Рис. 1. Треугольные нечеткие числа
Рис. 2. Трапециевидные нечеткие числа
Рис. 3. Колоколообразные нечеткие числа
\ /
о
0.3 0.4 0.6 0.7
-*■
x
Рис. 4. Пример 3-уровневого классификатора на основе трапециевидных чисел
x — b
1 — x—b, b < x < b + 5, 5
0, иначе.
а-Сечением (а-уровнем, срезом) [л]а нечеткого числа А называется множество
[А]а _ \{*Є ^) , а> 0,
8ир(А), а = 0,
где 8ир(А) - замыкание носителя нечеткого подмножества, т. е. при 8ир(Л) = (а, Ь) нулевым уровнем будет [а, Ь].
Операции над нечеткими числами осуществляются последовательно уровень за уровнем, аналогично выполнению операций над интервалами:
1) сложение [а, Ь] (+) [с, С] = [а + с, Ь + С];
2) умножение [а, Ь] (*) [с, С] = [а * с, Ь * С];
3) вычитание [а, Ь] (-) [с, С] = [а - с, Ь - С];
4) деление [а, Ь] (/) [с, С] = [а / с, Ь / С];
5) умножение на коэффициент [а, Ь] (*) к = [а * к, Ь * к].
Возведение нечеткого числа в десятичную степень производится следующим образом:
0, 0 < х < а -у,
10(х1/р - (а - у)), а - у < х < а,
1, а < х < Ь,
10((Ь + 5) - х1/р), Ь < х < Ь + 5,
0, Ь + 5< х < 1.
Часто при решении прикладных задач после выполнения арифметических операций полученное нечеткое число необходимо лингвистически распознать. Для этого нужно соотнести по*
лученную функцию т (х) и функции т (х), соответствующие принятым «эталонным» значениям классификатора.
*
Если ("х е [0,1])8иршт(т (х), тг- (х)) = 0, то результат однозначно не распознается как уровень, которому отвечает /-я «эталонная» функция принадлежности.
Стопроцентное распознавание наступает, если выполняется следующее условие:
("х е[0,1])т (х) = т(х).
Во всех промежуточных случаях необходимо задаться мерой уровня распознавания, т. е. ввести так называемый индекс схожести (ИС). Для этого нужно определить расстояния между двумя нечеткими числами А и В.
В качестве такой величины может выступать линейное (хемингово) расстояние
1
р( Л В)=| |т а (х) - т в (х)| ^
0
или квадратичное (евклидово) расстояние
р( а, в)=у (m a (x) -тв (x))2 dx.
Для определения ИС необходимо вычислить сумму рои расстояний в точках, в которых
выполняется т* (х) > т (х), и сумму рги расстояний в точках, в которых т* (х) < т (х). Далее, с целью повышения информативности, можно перейти к относительному расстоянию
р = (Рш -РсШ )/ М,
где М- «мощность» нечеткого числа, равная (рги + роШ) . В случае непрерывного распределения
*
М равна площади фигуры, описываемой его функцией принадлежности т (х), а значения рои и рги находятся как интегралы от функции распределения на соответствующих отрезках. Учитывая, что р < 1, в качестве ИС можно принять величину
(1 + р)
W = -
2
Определенный таким образом ИС, изменяясь в диапазоне от 0 до 1, будет характеризовать близость найденного нечеткого числа к той или иной эталонной функции принадлежности выбранного классификатора.
Изложенные выше теоретические сведения были положены в основу разработанного программного продукта «Вычисления с нечеткими числами», главное окно которого представлено на рис. 6. Среда разработки - Visual Studio 2008. Язык программирования - C#.
Рис. 6. Главное окно программы «Вычисления с нечеткими числами»
0
Разработанный программный продукт позволяет производить все основные арифметические действия (сложение, умножение, вычитание, деление, возведение в степень, умножение на коэффициент, растяжение и сжатие) над нормированными нечеткими числами и определять ИС полученного результата с «эталонными» значениями выбранного классификатора.
Пример использования
Рассмотрим применение программного продукта на примере задачи оценки качества последовательности случайных чисел (ПСЧ). В [4] было показано, что влияние результатов различных проверок ПСЧ на общий уровень ее качества может быть представлено в виде ориенти-
рованного трехуровневого графа О, имеющего одну корневую вершину и не содержащего петель и горизонтальных ребер в пределах одного уровня иерархии:
О =< };{Д} >,
где {Ц}- множество вершин графа; {Ду}- множество дуг, соединяющих 7-ю и у-ю вершины;
К0 - корневая вершина, отвечающая комплексному (интегральному) критерию.
При этом дуги расположены так, что началу дуги соответствует вершина нижнего уровня иерархии (ранга), а концу дуги - вершина ранга, на единицу меньшего.
На втором (нижнем) уровне были расположены тесты Т 7, используемые для проверки различных характеристик случайных последовательностей. На уровень выше находились обозначенные через К основные характеристики случайности: равномерность, стохастичность и независимость. И наконец, корневой вершине нулевого уровня соответствовал комплексный критерий К0 оценки качества проверяемой ПСЧ.
Для дальнейшего построения модели на данный граф была наложена система отношений предпочтения одних критериев над другими по степени их влияния на заданный элемент следующего уровня иерархии.
Чтобы произвести комплексную оценку качества проверяемой ПСЧ, проводилось агрегирование данных, собранных в рамках иерархии О, по направлению дуг графа иерархии. Для этого в рассмотрение вводился набор качественных оценок уровней каждого фактора в иерархии: Ь = (Неслучайная (НС), Не определена (НО), Случайная (СЛ)} и формировалась лингвистическая переменная «Уровень фактора» с терм-множеством значений Ь.
В качестве семейства функций принадлежности выступал стандартный трехуровневый 01-классификатор, где функции принадлежности - трапециевидные нечеткие числа:
НС (0; 0; 0,3; 0,4); НО (0,3; 0,4; 0,6; 0,7); СЛ (0,6; 0,7; 1; 1).
Таким образом, в качестве математической модели оценки качества ПСЧ был принят кортеж <О, Ь, Е>, в котором при переходе со второго уровня на первый применялась аддитивная свертка, а при переходе с первого уровня на нулевой - мультипликативная.
Допустим, что значения двух концептов второго уровня, влияющих на значение некоторого концепта первого уровня, определены как {НО} и {СЛ}. Веса влияния равны 1/3 и 2/3 соответственно для первого и второго концептов. Поскольку при переходе с первого уровня когнитивной модели на второй должна использоваться аддитивная свертка, то необходимо найти сумму двух нечетких чисел с коэффициентами 1/3 (0,33) и 2/3 (0,67). Вычисленное значение для концепта первого уровня и результат его распознания показаны на рис. 7.
1 Операции над неметкими числами
(§) 3-уровневая шкала © 5-уровневая шкала О 7-уровневая шкала а-сечение: 0.01
первое число
¡Средний -у | 0.3 0.4 0,6 0,7 1 0,33
ЧИСЛО
второе число
| Высокий___________0.6 0.7 1
число а Ь
Итог 0,50
0.90
С- 0,30
□ степень 10 коэфф.
степень
/
1
V : \
; і
продолжить
Н- 0,00 С- 0,30 0,70
Рис. 7. Пример вычислений
□ і і □ 2 1
сброс
Видно, что полученное значение относится к категории {СЛ («Случайная»)} с ИС 0,7.
Заключение
Рассмотрение теоретических предпосылок дало возможность создать простой и удобный программный продукт, который может быть использован как инструмент для оперирования с нечеткими числами при решении широкого круга плохо формализуемых задач.
СПИСОК ЛИТЕРАТУРЫ
1. Нечеткая логика / http://www.itfru.ru/index.php/fuzzy-logic.
2. Проталинский О. М. Применение методов искусственного интеллекта при автоматизации технологических процессов. - Астрахань: Изд-во АГТУ, 2004. - 184 с.
3. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений. - М.: Мир, 1976. - 165 с.
4. Ажмухамедов И. М., Колесова Н. А. Методика оценки качества последовательности случайных чисел // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. -2010. - № 2. - С. 141-148.
Статья поступила в редакцию 30.04.2011
ELECTRONIC CALCULATIONS WITH FUZZY NUMBERS
I. M. Azhmukhamedov, N. A. Kolesova
The necessity of development of the software that helps to make calculations with normalized fuzzy numbers is substantiated. The theoretical assumptions which made it possible to create a simple and intuitive to use software product " Calculations with fuzzy numbers" are given. The software can be used as a tool to operate with fuzzy numbers in addressing a wide range of bad formalized tasks. The example of this product application in solution of the tasks on assessment of the fuzzy number sequence quality is given.
Key words: fuzzy numbers, arithmetic operations with fuzzy numbers, fuzzy cognitive modelling, linguistic variable, fuzzy numbers similarity index.