- •Томский государственный университет систем управления и радиоэлектроники (тусур)
- •Экспертные системы
- •1. Цели и задачи дисциплины
- •1. Нейронные rbf сети.
- •2. Реальные экспертные системы.
- •3. Семантическая паутина.
- •Экзаменационные вопросы
- •Практические задания
- •Лабораторный практикум Лабораторная работа 1. Простая экспертная система на языке Prolog
- •Лабораторная работа 2. Экспертная система с использованием ненадежных знаний.
- •Лабораторная работа №3. Экспертная система с использованием нечетких множеств.
Лабораторная работа №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 , если μA >μB ;
y’ = не очень маленькое • Rgg ' =
т.е. y’ = 1/1+ 0.4/2 + 0/3, что интерпретируется как маленькое.
Рассмотренные примеры показывают , что использование отношений Rm ', Ra', Rb' для нечеткого вывода не дают следствий, которые совпадали бы с нашими интуитивными представлениями . Лучшие результаты дает отношение Rgg'.
В классической логике известно и еще одно правило вывода, носящее имя модус толленс. Записывается оно следующим образом:
P → Q
~Q
–––
~P
В нечетком выводе на основе правила модус толленс импликация должна удовлетворять закону контрапозиции , т.е. P → Q = ~Q → ~P.
Это необходимо для обеспечения эквивалентности правил « если х есть А, то y есть В» и «если y есть не В, то х есть не А».
