Лекция 10

Экспертные системы, основанные на нечеткой логике. (НЭС) Fuzzy expert systems .

НЭС мы можем описать тремя логическими частями.

•  The Front – end Compiler (FC) Конечный транслятор ( КТ )

•  The Inference Engine (IE) Механизм вывода ( МВ )

•  The Question-Answer Program (QAP) Модуль объяснений ( МО )

FC получает входные данные от пользователя или другой программы и компилирует их. В течение компиляции данные преобразуются в формат, понятный IE . Последующая компиляция передает данные в механизм вывода. Механизм вывода использует эти данные в объединении с БЗ в форме продукционных правил.

У QAP только одна функция – следить за ходом решения и показывать пользователю, как этот вывод был достигнут. Механизм вывода размещает данные в рабочей области, чтобы использовать их в процессе получения знаний. Рабочая область ( flatboard ) – это глобальная структура данных, которая включает важную информацию о данных. Каждый элемент рабочей области имеет:

•  2 – 3 ключевых слова;

•  верхнюю и нижнюю границу переменных;

•  фактор уверенности, который используется для вывода решения;

•  номер правила, которое, если предложение введено пользователем, равно 0, в противном случае – это номер из базы знаний.

Структура элементов рабочей области:

Название

Англ. аббревиатура

Обозначение

Ключевое слово 1

Keyword 1

K1

Ключевое слово 2

Keyword 2

K2

Ключевое слово 3

Keyword 3

K3

Нижняя граница 1

Low bound 1

LB1

Верхняя граница 1

Upper bound 1

UB1

Нижняя граница 2

Low bound 1

LB2

Верхняя граница 2

Upper bound 2

UB2

Фактор уверенности

Certainly factor

CF

Номер правила

Rule number

RN

CF , когда данные введены пользователем, равны 1, даже если эти данные неопределенны (например, почти 30 человек имеют возраст от 20 до 25 лет).

Существует два типа предложений, которые принимает FC :

1.существительное им. падеж А

   существительное род. падеж B

   глагол (является, имеет, есть – is ) прилагательное С

A и B – ключевые слова, C – ключевое слово и характеристика B .

Преобразование предложения первого типа опирается на значение прилагательного (глагол – это связка). Затем мы будем задавать значения, которые будут использоваться в утверждениях для механизма вывода. Отрицание будет вида «не С».

•  Пример 1

Цвет продукции является синим.

Ключевые слова: цвет ( K 1), продукция ( K 2), синий ( K 3).

Так как данные введены пользователем, верхние и нижние границы данного утверждения описываются K 3. Так как K 3 – не число, то LB 1 = 0, UB 1 = 1, LB 2 = UNDEF , UB 2 = UNDEF .

Рабочая область:
K1

цвет

K2

продукции

K3

синий

LB1

0

UB1

1

LB2

UNDEF

UB2

UNDEF

CF

1

RN

0

•  Пример 2

Отрицание: Цвет продукции не синий.

Для отрицания: [0… x - ε ][ x + ε ..1], ε= 0.01

Рабочая область:

K1

цвет

K2

продукции

K3

синий

LB1

0

UB1

0.99

LB2

UNDEF

UB2

UNDEF

CF

1

RN

0

•  Пример 3

Цвет продукции почти синий

Будем использовать таблицы нечетких переменных и характеристическую функцию.

Таблица нечетких переменных:

 

LB

UB

Почти

x – 10%

x – 1

Больше или меньше

x – 10%

x + 10%

Больше

x + 1

x + 10%

Значительно больше

2*x

Характеристические функции:

Для нечеткой переменной «возраст»

Для нечеткой переменной «вес»

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

K1

цвет

K2

продукции

K3

синий

LB1

0.9

UB1

0.9

LB2

UNDEF

UB2

UNDEF

CF

1

RN

0

•  Пример 4

Возраст Димы 20 лет.

Рабочая область:

K1

возраст

K2

Димы

K3

20 лет

LB1

0.16

UB1

0.16

LB2

UNDEF

UB2

UNDEF

CF

1

RN

0

•  Пример 5

Возраст Димы больше или меньше 20 лет.

Рабочая область:

K1

возраст

K2

Димы

K3

20 лет

LB1

0.15 ([20 – 10%]/120)

UB1

0.18 ([20 + 10%]/120)

LB2

UNDEF

UB2

UNDEF

CF

1

RN

0

•  Пример 6

Возраст Димы не 18 лет.

ε = 0.01

Рабочая область:

K1

возраст

K2

Димы

K3

18 лет

LB1

0

UB1

0.14 (18/120 – 0.01)

LB2

0.16 (18/120 + 0.01)

UB2

1

CF

1

RN

0

•  Пример 7

Возраст Димы не больше или не меньше 20 лет.

ε = 0.01

Рабочая область:

K1

возраст

K2

Димы

K3

20 лет

LB1

0

UB1

0.14 ([20 – 10%]/120 – 0.01)

LB2

0.19 ([20 + 10%]/120 + 0.01)

UB2

1

CF

1

RN

0

2. [ наречие ]

    [число до ]

    число K1

    С

•  Пример 8

Почти 20 людей имеют возраст от 25 до 30 лет.

Рабочая область:

K1

люди

K2

возраст

LB1

18 (20 – 10%)

UB1

19 (20 – 1)

LB2

25

UB2

30

CF

1

RN

0

Пример

От 20 до 25 людей имеют возраст 15 лет.

Больше или меньше 20 людей имеют возраст от 20 до 30 лет.

25 людей имеют возраст почти 40 лет.

Рассчитаем χ и μ:

1. χ 0,125 – 0,125 μ 1 – 1
2. χ 0,16 – 0,25 μ 0,63 – 0,70
3. χ 0,3 – 0,325 μ 0,34 – 0, 39

Находим минимумы в каждой строке:

0,125 – 0,125

0,16 – 0,25

0, 3 – 0,325

Находим максимум среди всех пар:

0,3 – 0,325