Научная статья на тему 'Компьютерная реализация операций с нечеткими числами'

Компьютерная реализация операций с нечеткими числами Текст научной статьи по специальности «Математика»

CC BY
1258
134
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АРИФМЕТИКА НЕЧЕТКИХ ЧИСЕЛ / НЕЧЕТКИЕ ЧИСЛА / КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ / ARITHMETIC OF FUZZY NUMBERS / FUZZY NUMBERS / COMPUTER IMPLEMENTATION

Аннотация научной статьи по математике, автор научной работы — Галлямов Евгений Расимович, Ухоботов Виктор Иванович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPUTER IMPLEMENTATION OF OPERATIONS WITH FUZZY NUMBERS

In this paper the problem of representing normal fuzzy numbers in a form suitable for computer implementation is considered. In particular, the results of the investigation of fuzzy arith-metic using level sets of fuzzy numbers are given. Also in the paper the problems associated with necessity of receiving a resulting fuzzy number with the parameters satisfying the given constraints are analyzed. Within this research the software package for work with fuzzy numbers with L-R representation was realized. Implementation of the package gives an opportunity of in-creasing the capabilities and using in other scientific researches of similar subject.

Текст научной работы на тему «Компьютерная реализация операций с нечеткими числами»

УДК 519.816

КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ ОПЕРАЦИЙ С НЕЧЕТКИМИ ЧИСЛАМИ

Е.Р. Галлямов, В.И. Ухоботов

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

Ключевые слова: арифметика нечетких чисел, нечеткие числа, компьютерная реализация.

Введение

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

Нужно отметить, что с момента публикации Л.А. Заде своей работы по нечетким множествам [1] вышло большое количество работ, в которых, так или иначе, рассматривались арифметические операции с нечеткими числами (см., например, [2-8]).

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

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

1. Анализ предметной области

Пусть заданы множество X в обычном смысле, которое принято называть универсальным, и функция ^а: X ^ [0,1]. Нечетким множеством А [1] универсального множества Х называется совокупность пар вида (ж| ^а(ж)), где х е X.

Функция ^а: X ^ [0,1] называется функцией принадлежности нечеткого множества

А, а значение ^а(ж) на конкретном элементе х е X называется степенью (или мерой) принадлежности этого элемента нечеткому множеству А.

Для каждого числа а е [0,1] обычное множество А(а) = {х е X: (х) > а) называет-

ся множеством уровня нечеткого множества А. Эти множества уровня удовлетворяют следующим свойствам:

Л(0) = Z; 0 < а < ß < 1^Л(#)сЛ(а); 0 < а < 1^ flo<t<a ^(0 = Л(а). (1)

Пусть при каждом 0 < а < 1 определено множество Л(а)с^. Если семейство этих множеств Л(а)с^ удовлетворяет свойствам (1), то оно является семейством множеств уровня нечеткого множества A, функция принадлежности которого равна

Мл(х) = sup{a е [0,1]: х е Л(а)}.

Поэтому нечеткое множество A универсального множества X можно задать семейством множеств Л(а)с^ при каждом 0 < а < 1, удовлетворяющим свойствам (1).

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

В данной работе рассматриваются нечеткие числа, множества уровня которых имеют следующий вид:

Л(а) = [а + £/(а); b — 5^(а)]. (2)

Здесь функции /, ^: [0,1] ^ [0,1] удовлетворяют следующим свойствам:

/(0) = <К0) = 0, /(1) = <К1) = 1;

0 < а1 < а2 < 1 ^ /(аг) < /(а2),^(аг) < ^(а2);

lim /(£) = /(т), lim ffl(t) = да(т). (3)

t^T-0 t^T-0

Графическое представление таких нечетких чисел приведено на рис. 1.

Рис. 1. Графическое представление нечеткого числа

Интервал (а; Ь) задает множество, на котором функция принадлежности нечеткого числа принимает значения больше нуля, а на отрезке [а + £; Ь — 5] значение функции принадлежности равно 1. Коэффициенты а, Ь, £, 5 удовлетворяют следующим условиям:

а + £<Ь — 5,5>0, £>0. (4)

При выполнении условий (3) и (4) множества уровня (2) удовлетворяют свойствам

(1).

2. Арифметика нечетких чисел с LR-представлением

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

2.1. Сложение двух нечетких чисел

Результатом сложения двух нечетких чисел Ai будет являться нечеткое число A с множеством уровня вида

Л(а) = Лг(а) + Л2(а) = [% + £і/і(а); Ьі - 5-^(а)] + [а2 + £2/2(а); Ь2 - 52^2(а)].

Результатом сложения двух отрезков является отрезок (см. [10])

Л(а) = [а- + а2 + £і/і(а) + £2/2(а); Ьі + ¿2 - 5^ (а) - 5>^2(а)].

Таким образом, результатом сложения двух нечетких чисел вида (2) является не-

четкое число того же вида, параметры которого имеют вид

а = аі + а2, £ = £і + £2, Ь = Ьі + Ь2, 5 = 5і + 52, с, л £і/і(а) + £2/2(0) л 5і^і(а) + 52^0)

/(а) =-----гтт--------«^(а) =-------тт----------.

£і + £2 5і + 52

Нетрудно проверить, что, если параметры исходных нечетких чисел удовлетворяют

условиям (3) и (4), то этим условиям удовлетворяют и параметры их суммы.

2.2. Умножение нечеткого числа на действительное число

Пусть заданы отрезок [с, С]с К и число Я Є М. Результатом их умножения Л х [с, С] будет являться отрезок [Л с, Л С] при Л > 0 и Л х [с, С] = [Л С, Л с] , если Л < 0. Отсюда следует, что результатом умножения Л х Л нечеткого числа (2) на положительное число Я является нечеткое число Л* вида (2) с параметрами

а* = Яа, Ь* = ЯЬ, £* = Я£, 5* = Я5, /*(а) = /(а), ^* (а) = ^(а).

Если Я <0, то а* = ЯЬ, b* = Яа, £* = -Я5,5* = -Я£,/*(а) = ^(а), ^*(а) = /(а).

При Я = 0 результатом умножения является нечеткое число, у которого а* = 0, Ь* = 0, £* = 0,5* = 0, /*(а) = /(а), ^*(а) = ^(а).

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

2.3. Умножение нечетких чисел

Результатом умножения двух нечетких чисел Ai будет являться нечеткое число A с множеством уровня вида

Л(а) = Лі(а)х Л2(а) = [аі + £і/і(а); Ьі - 5і^і(а)]х[а2 + £2/2(а); ¿2 - 52^(а)]. (5)

Дальнейший анализ формулы (5) требует разбиения множества нечетких чисел на различные классы. Это обусловлено спецификой операции умножения отрезков [10].

Определение 1. Нечеткое число (2) назовем неотрицательным, если а >0.

Определение 2. Нечеткое число (2) назовем неположительным, если Ь <0.

Определение 3. Нечеткое число (2) назовем числом с нулем первого типа, если а < а + £ <0< Ь - 5 < Ь.

Определение 4. Нечеткое число (2) назовем числом с нулем второго типа, если а <0< а + £ < Ь - 5 < Ь.

Определение 5. Нечеткое число (2) назовем числом с нулем третьего типа, если а < а + £ < Ь - 5 <0< Ь.

2.3.1. Умножение неотрицательных нечетких чисел

В рассматриваемом случае 0 < % < Ь и 0 < а2 < Ь2. Поэтому формула (5) принимает вид

Л(а) = [(% + £1/1 (а)) • (а2 + £2/2 (а)); (¿1 - ^^(аОК^-Зг^С«))]-

Отсюда следует, что множество Л(а) представимо в виде (2) при

а — а1а2, £ = £1а2 + £2а1 + £1£2,Ь — й1й2, 5 = 51Ь2 + 52Ь1 — 5152,

£1«2/1(а) + £2а1/2(а) + ^ЛОО/^

/(а) = ^(а) =

£1«2 + £2«1 + £1£2 51й2^1(а) + ^2Йі^2(а) - ^і^2^і(а)^2(а)

51Ь2 + 52Ь1 5152

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

2.3.2. Умножение нечеткого числа с нулем первого типа на неотрицательное нечеткое число

В рассматриваемом случае выполнены неравенства а1 < а1 + £1 < 0 < Ь1 — 51 < Ь1 и а2 > 0. Поэтому формула (5) принимает вид

Л(а) = [(а1 + £1/1(а))-(Ь2 — ^^(а)); (Ь1 — 5^1(а))(Ь2 — ^^(а))].

Отсюда следует, что множество Л(а) представимо в виде (2) при

а — а^, £ — ^2а1 + £1Ь2 £1^2, Ь — Ь1Ь2, 5 — 51Ь2 + 52Ь1 ^1^2,

-^а^О) + £1Ь2/1(а) — £152/1 (а>2(а)

/(а) = ^(а) =

- ¿>2% + £1^2 — £1^2

¿^2^1(0) + ^2Й1У2(а) - ¿1 ¿2^1 (0)^(0) ¿1^2 + ¿2^1 — ¿1^2

Можно показать, что, если параметры исходных нечетких чисел удовлетворяют условиям (3) и (4), то этим условиям удовлетворяют и параметры их произведения.

2.3.3. Умножение нечеткого числа с нулем второго типа на неотрицательное нечеткое число

В рассматриваемом случае выполнены неравенства а1 < 0 < а1 + £1 < Ь1 — ¿1 < Ь1 и «2 > 0. Поэтому множество (5) равно

[(«1 + £1/1 (о0) • (¿2 — ¿2^2(а)); (¿1 — ¿1^10)) • (¿2 — ¿2^2(а))] при «1 + £1/1 (а) < 0

и

[(«1 + £1/1(0)) • («2 + £2/2(0)); (¿1 — ¿1^1(0)) • (¿2 — ¿2^2(0))] при «1 + £1/1(0) > 0.

Отсюда следует, что множество Л(0) представимо в виде (2) при « = «]^2, ¿ = ¿]^2, £ = («1«2 + «1£2 + «2£1 + £1£2) — «1¿2,8 = ¿152 + ¿251 — 5152.

^¿2^1(0) + 52¿l^2(о) — ¿1 ¿2^1 (0)^2 (0)

=

¿^2 + 52¿l — ¿^2

,, Л — ¿2«1^2(0) + £1 ¿2 У!(0) — £1 ¿2 /1 (00^*2 (00 , гГЛ^п

/(0) =----------------------------------------------при «1 + £1/1 (0) < 0

(а^ + а1£2/2(а) + а2£1/1(а) + ^ДО^О;») — а1Ь2

/(а) —-------------------------------при а1 + £1/1(а) > 0.

£

Можно показать, что, если параметры исходных нечетких чисел удовлетворяют условиям (3) и (4), то этим условиям удовлетворяют и параметры их произведения. Аналогичным образом рассматривается операция умножения двух нечетких чисел и в оставшихся случаях. Нетрудно подсчитать, что в случае пяти выделенных классов нечетких чисел для обоснования операции умножения необходимо рассмотреть пятнадцать различных случаев. Однако данное число можно сократить до шести в силу сводимости ряда случаев к уже рассмотренным. К примеру, случай умножения двух неположительных нечетких чисел сводится к случаю умножения неотрицательных нечетких чисел с помощью умножения обоих нечетких чисел на —1.

2.4. Деление нечетких чисел

Операция деления Л1: Л2 двух нечетких чисел определена для случая строгой положительности или строгой отрицательности числа Л2. Это значит, что а2 >0 или Ь2 < 0.

В этом случае нечеткое число Л — — представимо в виде (2). Рассмотрим случай

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

строго положительного нечеткого числа Л2. Тогда

11

Л(а) —

Ь — 52^2 (а)' а2 + £2/2 (а).'

Для определения параметров в формуле (2) имеем соотношения

а +£«а) — ~Ь — ^ — ¡¡¡тткй ■ (6)

11

Положим в формулах (6) а — 0. Получим а — —, Ь — —. Полагая в (6) а — 1, будем

г2 а2

иметь

1 1 1 1

£ — ь---я 7Т > 05 —---------------1— >

Ь2 — 52 Ь2 а2 а2 + £2

Далее, из неравенств а2 + £2 > 0, Ь2 — 52 > 0, а2 + £2 < Ь2 — 52 следует, что а + £ <

< Ь — 5. Подставим значения параметров а, £, Ь,5 в формулы (6). Получим, что

1

Ь2 — 52у2(а) а — (Ь2 — 52)^2(а)

£ Ь2 — 52 ^2 (а) '

1

/:(а) —

Ь—

■, а2 + £2/2(а) (а2 + £2)/2(а)

ф(а) —--------2—~ 2--—---------„ „ ч ■

5 а2 + £2/2 (а)

Нетрудно проверить, что <а>(0) — 0, <^(1) — 1, /(0) — 0, /(1) — 1. Можно показать, что функции /(а) и <^(а) монотонно возрастают.

Случай со строго отрицательным нечетким числом Л2 сводится к рассмотренному путем умножения Л2 на -1.

и

3. Программная реализация нечеткого числа и арифметических операций

Реализуемый программный пакет ориентирован на построение приложений, работающих в среде CLR платформы .NET. Также возможно использование данного пакета для исследований и проведения вычислений с нечеткими числами в различных пакетах математического моделирования с поддержкой работы с .NET сборками. В качестве главного инструментария была выбрана интегрированная среда разработки Microsoft Visual Studio 2012. Язык реализации - C#.

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

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

При построении диаграммы использовались следующие обозначения в соответствии со стандартами UML:

-класс; ----► - отношение использования; ------^ - наследование.

Класс LeftRightFuzzyNumber (рис. 2) представляет собой нечеткое число с LR-представлением. Свойства (иначе property) Left, Right, LeftFuzzynessCoefficient, Right-FuzzynessCoefficient реализуют соответственно параметры а, Ь, £, S нечеткого числа. Для создания экземпляра класса LeftRightFuzzyNumber необходимо воспользоваться одним из двух публичных конструкторов (public constructor). В данном случае, два конструктора предусмотрены для сохранения гибкости инстанцирования нечеткого числа. В первом случае для создания экземпляра класса необходимы параметры а, Ь, £, S, а также функция принадлежности нечеткого числа, удовлетворяющая виду (2), переданная в виде делегата типа Func<double,double>. Во втором случае, кроме параметров а, Ь, £, S, необходимо передать функцию принадлежности, заданную в виде массива точек.

Рис. 2. Частичная диаграмма классов для работы с нечеткими числами

Теперь подробнее разберем методы, реализованные в рамках класса LeftRightFuzzyNumber.

Метод GetWeight необходим для получения значения функции принадлежности числа для некоторого переданного аргумента. В случае инстанцирования нечеткого числа функцией принадлежности, заданной в виде конечного набора точек, возникла проблема обеспечения возможности получения «веса» точки не только для ограниченного набора заданных аргументов, но для всей числовой оси. Решением данной проблемы стало интерполирование функции принадлежности. Как видно из частичной диаграммы классов, класс LeftRightFuzzyNumber агрегирует реализацию интерфейса IInterpolationMethodCreator, который, являясь реализацией паттерна «фабричный метод», при вызове метода Create возвращает экземпляр класса, наследующего интерфейс IInterpolationMethod. Назначение любого класса, реализующего контракт IInterpolationMethod, заключается в построении интерполяции функции по набору эталонных аргументов и значений функции в них. Так как задача интерполяции не относится непосредственно к теме нечетких чисел и множеств, интерфейсы IInterpolationMethodCreator, IInterpolationMethod и их классы-реализации помещены в сборку MathExtensions.dll в рамках пакета FuzzySolutions. В рамках пакета предоставляется два метода интерполяции (рис. 3). По умолчанию класс нечеткого числа использует фабричный метод, возвращающий экземпляр класса

LinearSplinelnterpolationMethod с функционалом интерполяции линейными сплайнами.

с0 HnterpolationMethod

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

Для реализации арифметических операций над нечеткими числами в терминах множеств уровня было необходимо построить функции /(а) и ^(а). Так как данные функции не задаются пользователем напрямую, они интерполируются исходя из значений функции принадлежности и вида множества уровня (2). Поля класса, отвечающие за интерполяцию функций /(а) и ^(а), являются закрытыми (private) и необходимы также для функций GetLeftBoundOfLevelSet и GetRightBoundOfLevelSet, возвращающих абсциссы левого и правого краев множества уровня нечеткого числа для переданного значения а —уровня.

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

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

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

FuzzyCore. dll, MathNet. Numercs. dll.

Одним из способов использования функционала нечетких чисел, реализованного в пакете FuzzySolutions, является создание нечеткого числа и вызов методов данного класса из системы математического моделирования с поддержкой работы с .NET сборками. Таковой системой, к примеру, является Matlab.

Для комфортной работы пользователя возможно «оборачивание» вызовов методов сборки FuzzyCore.dll средствами интерпретируемого языка Matlab. Для работы с базовым функционалом нечетких чисел необходимо подключить следующие сборки: FuzzyCore.dll, MathExtensions.dll, MathNet.Numercs.dll.

Приведем примеры некоторых функций, написанных на языке Matlab, для работы с нечеткими числами:

• инстанцирование нечеткого числа (рис. 4): результатом данной операции является экземпляр класса LeftRightFuzzyNumber,

function fuzzyNumber = createFuzzyNumber(left,leftFuzzynessCoefficient,

right,

rightFuzzynessCoefficient, fitnessFuncLeftPartValues, fitnessFuncRightPartValues) fitnessFuncLeftPartValuesMapLength=length(fitnessFuncLeftPartValues); fitnessFuncRightPartValuesMapLength=length(fitnessFuncRightPartValues) ;

fitnessFuncLeftPartValuesDictonary =

NET.createGeneric('System.Collections.Generic.Dictionary' ,

{'System.Double','System.Double'},1); fitnessFuncRightPartValuesDictionary =

NET.createGeneric('System.Collections.Generic.Dictionary' ,

{'System.Double','System.Double'},1);

leftPartKeySet = keys(fitnessFuncLeftPartValues); leftPartValueSet = values(fitnessFuncLeftPartValues); for i=1:fitnessFuncLeftPartValuesMapLength key = leftPartKeySet{i}; value = leftPartValueSet{i};

fitnessFuncLeftPartValuesDictonary.Add(key,value);

end

rightPartKeySet = keys(fitnessFuncRightPartValues); rightPartValueSet = values(fitnessFuncRightPartValues); for j=1:fitnessFuncRightPartValuesMapLength key = rightPartKeySet{j}; value = rightPartValueSet{j};

fitnessFuncRightPartValuesDictionary.Add(key,value);

end

fuzzyNumber = IGS.Fuzzy.Core.LeftRightFuzzyNumber(left,

leftFuzzynessCoefficient,right, rightFuzzynessCoefficient, fitnessFuncLeftPartValuesDictonary, fitnessFuncRightPartValuesDictionary) ;

Рис. 4. Инстанцирование нечеткого числа

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

Далее приведем пример выполнения операции сложения двух нечетких чисел и построения графика функции принадлежности результирующего нечеткого числа с помощью пакета FuzzySolutions и средств системы Matlab (рис. 6).

function [points, values] =

getFuzzyNumberFitnessFunctionValues(fuzzyNumber, step)

if step <= 0

points = [fuzzyNumber.Left,

fuzzyNumber.Left + fuzzyNumber.LeftFuzzynessCoefficient, fuzzyNumber.Right - fuzzyNumber.RightFuzzynessCoefficient, fuzzyNumber.Right]; values = [0.0, 1.0, 1.0, 0.0]; else

iterationNumber =floor ( (fuzzyNumber.Right-fuzzyNumber.Left)/step)+1; points = zeros(1,iterationNumber); values = zeros(1,iterationNumber); argument = fuzzyNumber.Left; for i=1:iterationNumber points(i)=argument;

values(i)=fuzzyNumber.GetWeight(argument) ; argument = argument + step;

end

end

Рис. 5. Получение значений функции принадлежности с заданным шагом

>>asm = NET.addAssembly('C:\MATLAB\MathNet.Numerics.dll');

>>asm1 = NET.addAssembly('C:\MATLAB\MathExtensions.dll');

>>asm2 = NET.addAssembly('C:\MATLAB\FuzzyCore.dll');

>>firstNumber =

createFuzzyNumber(2.0,3.0,8.0,1.0,

containers.Map( [2.1,2.15,2.2,2.45,2.5,2.65,2.75,3.0,4.2],

[0.08,0.12,0.18,0.21,0.43,0.6,0.75,0.8,0.93]), containers.Map([7.1,7.5], [0.7,0.15]));

>>secondNumber = createFuzzyNumber(-2.0,1.0,4.5,0.5,

containers.Map( [-1.85,-1.75,-1.7,-1.45,-1.35,-1.2,-1.15,-1.1,-1.05], [0.12,0.15,0.25,0.3,0.43,0.6,0.67,0.78,0.93]), containers.Map( [4.25,4.1], [0.8,0.15] ) );

>>result = firstNumber + secondNumber;

>>[points, values]=getFuzzyNumberFitnessFunctionValues(result, 0.01); >>plot(points, values,'LineWidth',1.5); grid on;

Рис. 6. Демонстрация выполнения операции сложения двух нечетких чисел

Рис. 7. Функция принадлежности результирующего нечеткого числа

Результатом сложения двух нечетких чисел, первое из которых имело параметры аг = 2, Ьг = 8, £г = 3,5г = 1, а второе - параметры аг = -2, Ьг = 4.5, £г = 1,5г = 0.5, стало нечеткое число, график функции принадлежности которого изображен на рис. 7.

Заключение

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

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

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

Литература

1. Zadeh, L.A. Fuzzy Sets / L.A. Zadeh // Information and Control. — 1965. — Vol. 8. — P. 338-353.

2. Dutta, P. Fuzzy Arithmetic with and without using а-cut method: A Comparative Study / P. Dutta, H. Boruah, T. Ali / / International Journal of Latest Trends in Computing — March 2011. — Vol. 2 — P. 99-107.

3. Bansal, A. Trapezoidal Fuzzy Numbers (a,b,c,d): Arithmetic Behavior / A. Bansal // International Journal of Physical and Mathematical Sciences — 2011 — Vol. 2, No. 1 — P. 39-44.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Dubois, D. Fuzzy Sets and Systems: Theory and Applications. / D. Dubois — Academic Press, 1980. — 393 p.

5. Леоненков, А.В. Нечеткое моделирование в среде MATLAB и fyzzyTECH. /

A.В. Леоненков — СПб.: БХВ-Петербург, 2005. — 731 c.

6. Чернов, В.Г. Основы теории нечетких множеств. Решение задач многокритериального выбора альтернатив. / В.Г. Чернов — Учебное пособие. Владимир, 2005.

7. Ухоботов, В.И. Введение в теорию нечетких множеств и ее приложения. /

B.И. Ухоботов — Учебное пособие. Челябинск, 2005. — 133 c.

8. Stefanini, L. Fuzzy Arithmetic with Parametric LR Fuzzy Numbers. / L. Stefanini,

L. Sorini // European Society of Fuzzy Logic and Technology Conference, Lisbon, Portugal — 2009. — P. 600-605.

9. Stefanini, L. Representing fuzzy numbers for fuzzy calculus. / L. Stefanini, L. Sorini — Analysis and Design of Intelligent Systems using Soft Computing Techniques — 2007. — Vol. 41 — P. 485-494.

10. Жолен Л., Кифер М., Дидро О., Вольтер Э. / Жолен Л. /Прикладной интервальный анализ. — М.-Ижевск: Институт компьютерных исследований, 2005. — 468 c.

Галлямов Евгений Расимович, магистр прикладной математики и информатики, кафедра теории управления и оптимизации, Челябинский государственный университет (Челябинск, Российская Федерация), gallyamov.evgeniy@gmail.com.

Ухоботов Виктор Иванович, доктор физико-математических наук, профессор, заведующий кафедрой теории управления и оптимизации, Челябинский государственный университет (Челябинск, Российская Федерация), ukh@csu.ru.

Поступила в редакцию 7 июля 2014 г.

Bulletin of the South Ural State University Series “Computational Mathematics and Software Engineering”

2014, vol. 3, no. 3, pp. 97-108

COMPUTER IMPLEMENTATION OF OPERATIONS WITH FUZZY NUMBERS

E.R. Gallyamov, Chelyabinsk State University (Chelyabinsk, Russian Federation),

V.I. Ukhobotov, Chelyabinsk State University (Chelyabinsk, Russian Federation)

In this paper the problem of representing normal fuzzy numbers in a form suitable for computer implementation is considered. In particular, the results of the investigation of fuzzy arithmetic using level sets of fuzzy numbers are given. Also in the paper the problems associated with necessity of receiving a resulting fuzzy number with the parameters satisfying the given constraints are analyzed. Within this research the software package for work with fuzzy numbers with L-R representation was realized. Implementation of the package gives an opportunity of increasing the capabilities and using in other scientific researches of similar subject.

Keywords: arithmetic of fuzzy numbers, fuzzy numbers, computer implementation.

References

1. Zadeh L.A. Fuzzy Sets // Information and Control. 1965. Vol. 8. P. 338-353.

2. Dutta P., Boruah H., Ali T. Fuzzy Arithmetic with and without using a-cut method: A

Comparative Study / / International Journal of Latest Trends in Computing. March 2011. Vol. 2. P. 99-107.

3. Bansal A. Trapezoidal Fuzzy Numbers (a,b,c,d): Arithmetic Behavior // International Journal of Physical and Mathematical Sciences. 2011. Vol. 2, No. 1. P. 39-44.

4. Dubois D. Fuzzy Sets and Systems: Theory and Applications. Academic Press, 1980.

393 P.

5. Leonenkov A.V. Nechetkoe modelirovanie v srede MATLAB i fuzzyTECH [Fuzzy Modeling in MATLAB Environment and fuzzyTECH]. SPb.: BHV-Peterburg, 2005. 731 P.

6. Chernov V.G. Osnovy' teorii nechetkix mnozhestv. Reshenie zadach mnogokriterial'nogo vy'bora al'ternativ [Foundations of the Theory of Fuzzy Sets. Solving of Problems of a Multicriteria Choice of Alternatives]. Vladimir, 2005.

7. Ukhobotov V.I. Vvedenie v teoriyu nechetkix mnozhestv i ee prilozheniya [Introduction to the Theory of Fuzzy Sets and Its Applications]. Chelyabinsk, Publishing of Chelyabinsk State University, 2005. 133 P.

8. Stefanini L., Sorini L. Fuzzy Arithmetic with Parametric LR Fuzzy Numbers. European Society of Fuzzy Logic and Technology Conference (Lisbon, Portugal, 2009). P. 600-605.

9. Stefanini L., Sorini L. Representing fuzzy numbers for fuzzy calculus. // Analysis and Design of Intelligent Systems using Soft Computing Techniques. 2007. Vol. 41. P. 485494.

10. Jaulin L., Kieffer M., Didrit O., Walter E. Applied Interval Analysis. Springer, 2001.

384 P.

Received 7 July 2014■

i Надоели баннеры? Вы всегда можете отключить рекламу.