Пример выполнения работы. Дано 3 нечетких множества A, B, C (заданы их функции принадлежности)




Дано 3 нечетких множества A, B, C (заданы их функции принадлежности). Построить функцию принадлежности нечеткого множества и определить степень принадлежности одного элемента множеству D, используя метод ограничений.

t = 0:0.01:20; % определяем число значений по оси абсцисс

a=2; b=8; c=13; %Параметры функции принадлежности М_А

a1=3; b1=5; %Параметры функции принадлежности М_В

a2=2; b2=8; c2=9; d2=14; %Параметры функции принадлежности М_С

% Рассчитываем значения оси ординат функций принадлежности М_А, М_B, М_C

j=1;

for i = 0:0.01:20

if i<=a M_A(j)=0;

elseif (i>a)&(i<=b) M_A(j)=0.5*(i-a)/(b-a);

elseif (i>b)&(i<=c) M_A(j)=0.5*(c-i)/(c-b);

elseif (i>c) M_A(j)=0; end;

 

if i<=a1 M_B(j)=0;

elseif (i>a1)&(i<=b1) M_B(j)=(i-a1)/(b1-a1);

elseif (i>b1) M_B(j)=1; end;

 

if i<=a2 M_C(j)=0;

elseif (i>a2)&(i<=b2) M_C(j)=0.5*(i-a2)/(b2-a2);

elseif (i>b2)&(i<=c2) M_C(j)=-0.25*i+2.5;

elseif (i>c2)&(i<=d2) M_C(j)=0.25*(d2-i)/(d2-c2);

elseif (i>d2) M_C(j)=0; end

 

j=j+1;

end;

% Строим график функции принадлежности М_А, М_B, М_C

subplot(2, 3, 1)

plot(t, M_A, 'LineWidth', 4); grid on; xlabel('X'); ylabel('M_A(x)');

subplot(2, 3, 2)

plot(t, M_B, 'LineWidth', 4); grid on; xlabel('X'); ylabel('M_B(x)');

subplot(2, 3, 3)

plot(t, M_C, 'LineWidth', 4); grid on; xlabel('X'); ylabel('M_C(x)');

 

Описание процесса решения. Для построения функции принадлежности нового множества необходимо:

1) Определить последовательность выполнения операций в формуле.

2) Построить на отдельных графиках промежуточные множества, согласно определенной последовательности действий. Свести промежуточные множества на одном графике и определить итоговую функцию принадлежности.

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

4) Проверить аналитические вычисления по построенному графику функции принадлежности.

Решение.

1) Множество , значит, последовательность операций будет следующей: .

% Рассчитываем значения последовательности операций

j=1;

for i = 0:0.01:20

M_n_A(j)=1-M_A(j); % Рассчитываем значение отрицания А (M_n_A)

if (M_A(j)+M_B(j))<1 M_A_B(j)=M_A(j)+M_C(j); else M_A_B(j)=1; end;% Рассчитываем значение объединения А и В (M_A_B)

if (M_A_B(j)+M_C(j))<1 M_A_B_C(j)=M_A_B(j)+M_C(j); else M_A_B_C(j)=1; end; %Рассчитываем значение объединения (M_A_B_C)

if (M_A_B_C(j)+M_n_A(j)-1)>0 M_D(j)=M_A_B_C(j)+M_n_A(j)-1; else M_D(j)=0; end; % Рассчитываем значение M_D

j=j+1;

end;

 

2) Построим согласно этой последовательности операций графики функций принадлежности:

% Строим графики функций рассчитанных функций принадлежности

subplot(2, 3, 4)

plot(t, M_n_A, 'LineWidth', 4); grid on; xlabel('X'); ylabel('M_n_A(X)');

subplot(2, 3, 5)

plot(t, M_A_B_C, 'LineWidth', 4); grid on; xlabel('X'); ylabel('M_A_B_C(X)');

subplot(2, 3, 6)

plot(t, M_D, 'LineWidth', 4); grid on; xlabel('X'); ylabel('M_D(X)');

 

3) Носитель множества D состоит из элементов из интервала [2, 15]. Ядро множества D состоит из элементов [13, 14, 15]. Выберем элемент 8.

4)

 

Контрольные вопросы к защите

1. Каким образом задается нечеткое множество?

2. Назовите операции над нечеткими множествами?

3. Что такое функция принадлежности?

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

5. Может ли функция принадлежности изменяться в интервале [-1, +1]?

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: