Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Лабораторная работа №3. Экспертная система с использованием нечетких множеств.




 

Цель: Освоить технологию разработки экспертных систем, приобрести опыт использования нечетких множеств и правил нечеткого вывода.

Методика выполнения

Для выполнения работы необходимо выполнить следующее:

1) составить и ввести базу знаний:

a) выбрать предметную область (ПО);

b) определить цели в выбранной ПО - вопросы на которые должна будет отвечать экспертная система;

c) выбрать тип используемой нечеткой логики;

d) записать правила и факты, позволяющие экспертной системе отвечать на определенные вопросы;

 

Нечеткие множества

 

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

1) недетерминированность выводов;

2) неоднозначность (зашумленный сигнал);

3) ненадежность (в силу ограниченности точности прибора);

4) неполнота (пропуск значений в таблице факторы/испытания);

5) собственно нечеткость (лингвистические аспекты языка).

Методологической основой для формализации нечетких знаний является теория нечетких множеств.

Когда мы говорим «Старик», то неясно, что мы имеем в виду:

старше 50, старше 60 или старше 70? Одним из методов изучения множеств без уточнения их границ является теория нечетких множеств, которая была предложена Л. Заде в 1965 г. и продолжает развиваться. Эти исследования связаны также с нечеткими выводами, которые выполняются с использованием правил, представленных как нечеткие множества. В данном разделе мы ознакомимся с основными понятиями теории нечетких множеств и методами нечетких выводов.

Определение

Нечеткое подмножество F множества элементов U определяется функцией принадлежности μF(u). Эта функция отображает элементы u множества U на множество чисел в интервале [0,1], которые указывают степень принадлежности каждого элемента нечеткому подмножеству F.

Если множество U состоит из конечного числа элементов { u1, u2,..., un }, то нечеткое подмножество F можно представить следующим образом:

 

F = μF(u1) / u1 + μF(u2) / u2 +... + μF(un) / un = ∑ μF(ui) / ui.

 

Следует иметь в виду, что знак плюс в этой формуле означает не суммирование, а объединение или конъюнкцию, а символ «/» показывает, что значение μA(ui) относится к элементу, следующему за ним.

Пример

U = 1 + 2 + 3 +... + 10. Тогда нечеткое множество А, которое описывается понятием «несколько», можно записать в следующем виде:

«несколько» = 0,4/2 + 0,7/3 + 0,8/9, символ «=» означает здесь равенство по определению.

В случае непрерывного множества U вводится следующее обозначение подмножества

F: ∫ μ (u) / u.

 

Следует иметь в виду, что знак ∫ в приведенной выше формуле означает не интегрирование, а объединение. Заметим также, что если μ A (u) принимает значение только 0 или 1, то множество А является обычным множеством. Запись μA(u) = 1 означает, что элемент u Є U принадлежит множеству А, т.е. u Є A. Запись μA(u) = 0 означает, что u Є U не принадлежит множеству А, т.е. u U.

Пусть U – множество людей в возрасте 0–100 лет, функции принадлежности нечетких множеств, означающих возраст: «Молодой», «Средний», «Старый» можно определить при помощи графика.

 

 

 

При дискретизации через 10 лет получим приблизительно следующее:

молодой = 1/0 + 1/10 + 0,9/20 + 0,3/30,

средний = 0,8/30 + 1/40 + 0,8/50,

старый = 0,3/50 + 0,9/60 + 1/70 + 1/80 + 1/90+ 1/100.

Здесь элементы множества с функцией принадлежности, равной 0, не записываются.

 

Операции на нечетких множествах

 

Над нечеткими множествами выполняются те же операции, что и над обычными множествами. Понятие нечеткого подмножества Л. Заде определил следующим образом: нечеткое подмножество данного конечного множества U – это такое подмножество, значения степеней принадлежности элементов которого лежат в единичном интервале [0,1]. Пусть A = ∫ μA(u) / u

и B = ∫ μB (u) / u − два нечетких множества, тогда нечеткое множество A является подмножеством нечеткого множество B (A B), если для всех u справедливо неравенство μA(u) ≤ μB(u).

Равенство двух нечетких множеств определяется следующим образом: два нечетких множества A и B равны (A = B), если для всех u справедливо μA(u) = μB(u).

ОБЪЕДИНЕНИЕ нечетких множеств А и В:

A U B = ∫ (μA(u) ∨ μB (u)) / u,

где

A(u) ∨ μB(u)) = max(μA(u), μB (u)).

 

ПЕРЕСЕЧЕНИЕ нечетких множеств А и В:

A ∩ B = ∫ (μA(u) ∧ μB (u)) / u,

где

A(u) ∧ μB(u)) = min(μA(u), μB (u)).

ДОПОЛНЕНИЕ или ОТРИЦАНИЕ определяется следующей

формулой: ~ A = ∫ (1 − μA(u)) / u.

 

Квантификатор не может интерпретироваться с помощью операции отрицания:

не x = (1 − μx(u)) / u.

РАЗНОСТЬ двух нечетких множеств определяется формулой

A − B = A∩ ~ B.

ДИЗЪЮНКТИВНАЯ СУММА определяется соотношением

A + B = (A ∪ B) − (A ∩ B).

Например,

~(молодой) = 0,1/20+0,7/30+1/40+1/50+1/60+1/70+1/80+1/90+1/100.

(молодой) ∪ (средний) = 1/0+1/10+0,9/20+0,8/30+1/40+0,8/50.

(молодой) ∩ (средний) = 0,3/30.

 

ПРОИЗВЕДЕНИЕ нечетких множеств А и В определяется следующим соотношением:

A · B = ∫ (μA(u) · μB(u)) / u.

 

Операция возведения в степень

Ab = ∫ (μA(u))b / u, где b > 0.

Операция концентрирования нечеткого множества

CON(A) = A2.

Эта операция уменьшает степень принадлежности элементов тем больше, чем меньше степень их принадлежности первоначальному множеству А. Квантификатор очень может интерпретироваться с помощью операции концентрации, то есть возведения в квадрат:

очень x = ∫ μx2(u) / u.

Операция растяжения нечеткого множества является противоположной концентрации и определяется соотношением DIL(A) = A0,5.

Операция контрастной интенсивности определяется соотношением

 

Эта операция увеличивает значения μA(u), которые больше 0,5, и уменьшает те значения μA(u), которые меньше 0,5, уменьшая тем самым нечеткость А.

 

Нечеткие отношения

Пусть U и V – универсальные множества, на которых определены X и Y соответственно, тогда нечеткое отношение R: X → Y определяется как подмножество декартова произведения двух нечетких множеств X ×Y ⊆ U × V, которое задается с помощью функции принадлежности двух переменных по формуле R = ∫ μR(u, v) /(u, v) (X ×Y).

 

В общем случае n-арное отношение, или n-отношение, определяется следующим образом. Пусть R – результирующее множество декартова произведения n множеств и μ – его функция принадлежности.

Нечеткое n-отношение определяется как нечеткое подмножество R, принимающее какое-либо значение на интервале функции принадлежности в соответствии со следующей формулой:

R = ∫ μR(u1,..., un) / (u1,..., un).

(X1 ×... × Xn)

xi ∈ Xi, i = 1,..., n.

Пример

Допустим, что Х = {Иван, Марья};

Y = {Петр, Дарья}, тогда

Дружба = 0.6/(Иван, Петр) + 0.9/(Иван, Дарья) + 0.8/(Марья, Петр) + 0.1/(Марья, Дарья).

Отношения удобно записывать с помощью матрицы отношений

  Петр Дарья
Иван 0.6 0.9
Марья 0.8 0.1

 

Допустим, что существует нечеткое знание-правило типа если F, то G (если старый, то умный), использующее нечеткие множества F ⊂ U и G ⊂ V. Тогда один из способов построения нечеткого отношения из соответствующей области полного множества U в область полного множества V состоит в следующем:

R = F × G = ∫ (μF(u) ∧ μG(v)) /(u, v) (U ×V)

или

R = F × G = ∑ ∑ (μF(ui) ∧ μG(vj)) / (ui, vj).

 

Необходимо отметить, что есть и другие способы построения нечеткого отношения.

Пусть U и V – это области натуральных чисел от 1 до 4, тогда определим следующим образом нечеткие множества:

F = маленькие = 1/1 + 0.6/2 + 0.3/3 + 0/4,

G = большие = 0/1 + 0.1/2 + 0.6/3 + 1/4.

Если есть нечеткое знание-правило если u – маленькое, то v – большое, то можно следующим образом построить нечеткое отношение, определяющее данное знание -правило:

 

Пусть R – нечеткое отношение из области U в область V, S – нечеткое отношение из области V в область W, тогда нечеткое отношение из области U в область W определяется как свертка max-min:

 

 

Здесь знак «•» обозначает свертку max-min,

∪ – взятие максимума для всех vj;

∧ – взятие минимума.

Пример

U = V = W = {1, 2, 3, 4}.

F = маленькие = 1/1 + 0.6/2 + 0.3/3 + 0/4,

G = большие = 0/1 + 0.1/2 + 0.6/3 + 1/4.

~F = не_ маленькие = 0/1 + 0.4/2 + 0.7/3 + 1/4,

G 2 = очень_большие = 0/1 + 0.01/2 + 0.36/3 + 1/4 или, округлив, 0/1 + 0 /2 + 0.4/3 + 1/4. Тогда если есть знание-правило если v – не маленькое, то w – очень большое, то в соответствии с формулой S = ~F × G 2 можно построить нечеткое отношение S из V в W

 

И далее можно построить нечеткое отношение из U в W.

 

 

Вывод на нечетких знаниях

Традиционный дедуктивный вывод, называемый также модус поненс, записывается следующим образом:

P ⇒ Q

P

______

Q

Что означает вывод Q из факта P по правилу P ⇒ Q.

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

P ⇒ Q

P′

______

Q′

Однако эта формулировка имеет существенное отличие от традиционного модус поненс. Здесь не требуется совпадения высказывания P′ в факте и высказывания P в правиле. В общем случае могут не совпадать и заключения Q и Q′.

Л. Заде предложил нечеткий условный вывод в следующей форме:

если х есть А, то y есть В, иначе y есть С

х есть А'

___________________________________

y есть D

Здесь x, y – имена объектов; A, A ', B, C, D – нечеткие понятия, представленные нечеткими множествами, определенными на U, U, V, V, V соответственно.

Предложено несколько правил, переводящих нечеткое условное высказывание «если х есть А, то y есть В, иначе y есть С» в нечеткое отношение U • V.

Пусть А, В, С – нечеткие множества в U, V, V, заданные в виде A = ∫ μA(u) / u; B = ∫ μB(v) / v; C = ∫ μC(v) / v.

 

Тогда имеем:

А. Максиминное правило Rm':

Rm′ = (A × B) ∪ (~ A × C) = ∫ (μA(u) ∧ μB(v)) ∨ (1 − μA(u)) ∧ μC(v) /(u, v).

 

Б. Арифметическое правило Ra':

Ra ′ = (~ A × V + U × B) ∩ (A × V + U × C) =

∫ 1 ∧ (1 − μA(u) + μB(v)) ∧ ((μA(u) + μC(v)) /(u, v).

 

В. Размытое бинарное правило

Rb′ = (~ A × V ∪ U × B) ∩ (A × V ∪ U × C) =

= ∫ 1 ∧ (1 − μA(u) ∨ μB(v)) ∧ ((μA(u) ∨ μC(v)) /(u, v).

 

Г. Правила Танака-Мидзумото

гделенькоеRg g ′ = (~ A × V ⇒ U × B) ∩ (A × V ⇒ U × C) =

= ∫ 1 ∧ (μ A (u) → μB(v)) ∧ ((1 − μ A(u) → μ A (v)) /(u, v),

 

(1, если μA ≤ μB;

μA(u) → μA(v) = (

B, если μA ≥ μB.

Таким образом, возвращаясь к исходной постановке задачи:

если х есть А, то y есть В, иначе y есть С

х есть А'

__________________________________________

y есть D,

следствие D можно вывести следующим образом:

Dm = А' • Rm',

Da = А' • Ra',

Db = А' • Rb',

Dgg = А' • Rgg'.

Пусть имеются следующие посылки:

x – не очень маленькое;

если x – маленькое, то y – большое, иначе y – маленькое.

Найти значения y’. Множество U = 1 + 2 + 3.

маленькое = 1/1+ 0.4/2;

большое = 0.5/2+ 1/3.

Тогда термин очень маленькое = 1/1+ 0.16/2, а не очень маленькое

= 0.84/2+ 1/3.

Отношение для максиминного правила:

Rm ′ = (A × B) ∪ (~ A × C) = ∫ (μA(u) ∧ μB(v)) ∨ (1 − μA(u)) ∧ μC(v) /(u, v).

 

Здесь A = маленькое, B = большое, C = маленькое.

Пример вычисления значений элементов матрицы Rm ' приведен ниже:

(u 1, v 1) = (1 ∧ 0) ∨ (0 ∧ 1) = 0; (u2, v 1) = (0.4 ∧ 0) ∨ (0.6 ∧ 1) = 0.6;

(u 1, v2) = (1 ∧ 0.5) ∨ (0 ∧ 0.4) = 0.5; (u2, v2) = (0.4 ∧ 0.5) ∨ (0.6 ∧ 0.4) = 0.4;

(u 1, v 3) = (1 ∧ 1) ∨ (0 ∧ 0) = 1;

(u 2, v3) = (0.4 ∧ 1) ∨ (0.6 ∧ 0) = 0.4;

(u3, v 1) = (0 ∧ 0) ∨ (1 ∧ 1) = 1;

(u3, v2) = (0 ∧ 0.5) ∨ (1 ∧ 0.4) = 0.4;

(u3, v 3) = (0 ∧ 1) ∨ (1 ∧ 0) = 0.

 

 

Тогда значение y’ может быть определено следующим образом

y’ = не очень маленькое • Rm' =

 

т.е. y’ = 1/1+ 0.4/ 2 + 0.4/3, что может быть интерпретировано (с некоторой натяжкой) как довольно-таки маленькое.

Далее рассмотрим для указанных выше посылок арифметическое правило Ra':

Ra′ = (~ A × V + U × B) ∩ (A × V + U × C) =

∫ 1 ∧ (1 − μA(u) + μB(v)) ∧ ((μA(u) + μC (v)) /(u, v) =

 

 

Тогда значение y’, используя арифметическое правило, может быть определено следующим образом:

y’ = не очень маленькое • Ra' =

 

т.е. y’ = 1/1+ 0.8/2 + 0.4/3.

Вывод с использованием размытого бинарного правила приведен ниже:

Rb′ = (~ A × V ∪ U × B) ∩ (A × V ∪ U × C) =

= ∫ 1 ∧ (1 − μA (u) ∨ μB (v)) ∧ ((μA(u) ∨ μC (v)) /(u, v) =

Тогда значение y’, может быть определено следующим образом:

y’ = не очень маленькое • Rb' =

т.е. y’ = 1/1+ 0.4/2 + 0.4 /3, что может быть также интерпретировано как довольно-таки маленькое.

Последний нечеткий вывод проведем с использованием правила Танака- Мидзумото

Rgg'= (A × V ⇒ U × B) ∩ (~A × V ⇒ U × C) = ∫ (μA(u) → μB(v)) ∧ ((1 − μA(u) → μC(v))/(u, v)

 

(1, если μA ≤μB;

μa(u) → μb(v) = (

B, если μAB;

 

y’ = не очень маленькое • Rgg ' =

 

 

т.е. y’ = 1/1+ 0.4/2 + 0/3, что интерпретируется как маленькое.

Рассмотренные примеры показывают, что использование отношений Rm ', Ra', Rb' для нечеткого вывода не дают следствий, которые совпадали бы с нашими интуитивными представлениями. Лучшие результаты дает отношение Rgg'.

В классической логике известно и еще одно правило вывода, носящее имя модус толленс. Записывается оно следующим образом:

P → Q

~Q

–––

~P

 

 

В нечетком выводе на основе правила модус толленс импликация должна удовлетворять закону контрапозиции, т.е. P → Q = ~Q → ~P.

Это необходимо для обеспечения эквивалентности правил «если х есть А, то y есть В» и «если y есть не В, то х есть не А».

 

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...