Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЭТНМ - Лабораторная работа №8

.pdf
Скачиваний:
20
Добавлен:
20.03.2016
Размер:
369.84 Кб
Скачать

Лабораторная работа №8

Нечеткая и лингвистическая переменная

1. КРАТКАЯ ТЕОРИЯ

ЛП

лингвистическая переменная;

НМ

нечеткое множество;

ФП

функция принадлежности;

УМ

универсальное множество.

Нечеткая переменная V

V = < , U, F >,

где – наименование (имя) нечеткой переменной, U – УМ (область определения ),

F – НМ в U, описывающее ограничения (т.е. F(x)) на возможные значения нечеткой переменной (ее семантику).

ЛП Ω

ЛП – это такая переменная, значениями которой могут быть слова или словосочетания естественного или искусственного языка.

= < , T, U, G, M>,

где – наименование ЛП;

Ттерм–множествомножество всех возможных значений ЛП,

представляющих собой наименования нечетких переменных; U – область определения ЛП;

G– синтаксическое правило, которое, в частности, позволяет генерировать новые термы;

М– семантическое правило, которое ставит в соответствие каждой нечеткой переменной из Т ее смысл М – НМ УМ.

Терм-множество ЛП

Множество T называется базовым терм-множеством ЛП. Любой элемент терм–множества называется термом.

Терм, состоящий из одного слова (нескольких слов, всегда фигурирующих вместе друг с другом) называется атомарным термом.

Терм, состоящий из нескольких атомарных термов, называется

составным термом.

Конкатенация некоторых компонент составного терма является

подтермом.

Терм формализуется нечетким множеством с помощью ФП.

Вычисление значений ЛП

В общем случае значение ЛП есть составной терм t=t1t2t3…tn, который представляет собой сочетание элементарных термов t1t2t3…tn.

Элементарные термы делятся на 4 категории:

1.первичные термы (например, молодой, старый);

2.отрицание не и союзы и, или;

3.лингвистические неопределенности (квантификаторы) типа очень, много, слабо, более или менее и т.д., которые дают возможность модифицировать значения элементарных и составных термов;

4.маркеры (скобки, вводные слова).

Вычислить значение t – значит найти НМ в U, символом которого является терм t.

Соответствие:

Союз или лингв. неопределенность

Операция над НМ

И

пересечения

ИЛИ

объединения

НЕ

взятие дополнения

ОЧЕНЬ

концентрирования

СЛЕГКА

растяжения

БОЛЕЕ ИЛИ МЕНЕЕ

оператор увеличения нечеткости

Правила приоритета выполнения операций:

1. неопределенность, не,

2. и,

3. или.

Для изменения порядка можно использовать скобки.

2. ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЙ

1. Задана ЛП = «скорость автомобиля». УМ значений ЛП U = [0; 200].

Терм-множество значений ЛП T = {«низкая», «средняя», «высокая»}. ФП для соответствующих термов из терм-множества (u U)

представлены ниже:

«низкая» = 0/1 + 20/1 + 40/0,8 + 60/0,5 + 80/0,1 + 100/0 + 120/0 +

+ 140/0 + 160/0 + 180/0 + 200/0; «средняя»= 0/0 + 20/0,1 + 40/0,7 + 60/1 + 80/0,8 + 100/0,3 + 120/0,1+ + 140/0 + 160/0 + 180/0 + 200/0;

«высокая» = 0/0 + 20/0 + 40/0 + 60/0,1 + 80/0,2 + 100/0,6 + 120/0,9 + + 140/1 + 160/1 + 180/1 + 200/1;

Синтаксические правила G позволяют генерировать новые термы с использованием квантификаторов «не», «слишком» и «более-менее»;

Семантические правила M: не t

{ 1 – t(u) };

слишком t

{

( t(u))2

} ;

более-менее t

{

( t(u))0.5

}.

Требуется:

а) Задать ФП термов «не слишком высокая», «более-менее низкая» данной ЛП.

б) Вычислить значения полученных термов для скоростей 20, 80, 120

км/ч.

в) Вычислить значения следующих составных термов для тех же скоростей: «слишком низкая или средняя», «не слишком низкая и не слишком высокая».

Решение.

а) Получим сначала ФП терма «слишком высокая». Как указано в семантических правилах M лингвистической переменной, квантификатор «слишком» может быть применен с использованием операции концентрирования. Т.е. каждое значение ФП НМ «высокая» нужно возвести в квадрат. Получаем:

«слишком высокая» = 0/0 + 20/0 + 40/0 + 60/0,01 + 80/0,04 + + 100/0,36 + 120/0,81 + 140/1 + 160/1 + 180/1 + 200/1.

Чтобы получить терм «не слишком высокая», нужно к полученному терму применить квантификатор «не», что, согласно семантическим правилам, соответствует операции дополнения. Т.е. каждое значение ФП терма «слишком высокая» вычитаем из единицы:

«не слишком высокая» = 0/1 + 20/1 + 40/1 + 60/0,99 + 80/0,96 +

+ 100/0,64 + 120/0,19 + 140/0 + 160/0 + 180/0 + 200/0

Чтобы получить ФП терма «более-менее низкая» ЛП «скорость автомобиля», применим к терму «низкая» квантификатор «более-менее», что соответствует операции растяжения (из каждого значения ФП извлекаем корень). Получаем:

«более-менее низкая» = 0/1 + 20/1 + 40/0,89 + 60/0,71 + 80/0,32 +

+ 100/0 + 120/0 + 140/0 + 160/0 + 180/0 + 200/0

б) Значения полученных термов для скоростей 20, 80, 120 км/ч уже были посчитаны на предыдущем этапе и приведены в таблице:

Скорость, км/ч

«не слишком высокая»

«более-менее низкая»

20

1

1

80

0,96

0,32

120

0,19

0

в) Чтобы вычислить значения составных термов, нужно в их наименованиях заменить связку «и» на операцию пересечения НМ, а связку «или» – на операцию объединения (т.е. применить операции нахождения минимума или максимума соответственно).

Найдем значение составного терма «слишком низкая или средняя». Поэтапные вычисления показаны в таблице:

Скорость,

«низкая»

«слишком

«средняя»

«слишком низкая

км/ч

низкая»

или средняя»

 

 

20

1

1

0,1

1

80

0,1

0,01

0,8

0,8

120

0

0

0,1

0,1

Найдем значение составного терма «не слишком низкая и не слишком высокая». Поэтапные вычисления показаны в таблицах:

1)

Скорость,

«низкая»

 

«слишком низкая»

«не слишком

км/ч

 

низкая»

 

 

 

20

1

1

0

80

0,1

0,01

0,99

120

0

0

1

2)

 

 

 

 

Скорость,

«высокая»

 

«слишком

«не слишком

км/ч

 

высокая»

высокая»

 

 

20

0

 

0

1

80

0,2

 

0,04

0,96

120

0,9

 

0,81

0,19

3)

Скорость,

«не слишком

«не слишком

«не слишком низкая и

км/ч

низкая»

высокая»

не слишком высокая»

20

0

1

0

80

0,99

0,96

0,96

120

1

0,19

0,19

2. Задана ЛП = «рост человека».

Универсальное множество значений ЛП U = {150, 160, 170, 180, 190,

200}.

Терм-множество значений ЛП состоит из следующих значений: T = {«низкий», «высокий»}.

ФП для соответствующих термов из терм-множества ( ) представлены ниже:

«низкий» = 150/1 + 160/0,9 + 170/0,5 + 180/0,3 + 190/0,1 + 200/0 «высокий» = 150/0 + 160/0,2 + 170/0,4 + 180/0,7 + 190/0,9 + 200/1

Синтаксические правила G позволяют генерировать новые термы с использованием квантификаторов «не», «более или менее».

Семантические правила M:

не t вычисляется по правилу: 1 – t(u);

более или менее t = F(t, K), где K – ядро оператора увеличения

нечеткости F.

K(150) = 150/1 + 160/0,7 + 180/0,3

K(160) = 150/0,8 + 160/1 + 190/0,4

{ 1 – t(u) }; { (t(u))2 } ;
{ (t(u))0.5 }.

K(170) = 150/0,5 + 160/0,6 + 170/1 + 180/0,3

K(180) = 160/0,5 + 170/0,2 + 180/1 + 200/0,4

K(190) = 170/0,2 + 190/1

K(200) = 160/0,5 + 180/0,7 + 200/1

Требуется задать ФП терма «низкий или более или менее не высокий» данной лингвистической переменной.

Решение.

Вычислим сначала значения ФП терма «не высокий» (вычитаем значения ФП НМ «высокий» из единицы):

«не высокий» = 150/1 + 160/0,8 + 170/0,6 + 180/0,3 + 190/0,1 + 200/0

Чтобы найти ФП терма «более или менее не высокий», применим к полученному НМ оператор увеличения нечеткости Ф. Тогда:

«более или менее не высокий» = 1 (150/1 + 160/0,7 + 180/0,3)0,8 (150/0,8 + 160/1 + 190/0,4) 0,6 (150/0,5 + 160/0,6 +170/1 +

+ 180/0,3) 0,3 (160/0,5 + 170/0,2 + 180/1 + 200/0,4) 0,1(170/0,2 + 190/1) 0 (160/0,5 + 180/0,7 + 200/1) = 150/1 + 160/0,8+ + 170/0,6 + 180/0,3 + 190/0,32 + 200/0,12.

Таким образом, результирующий терм «низкий или более или менее не высокий» будет выглядеть так (применяем операцию объединения к терму «низкий» и полученному терму «более или менее не высокий»):

«низкий или более или менее не высокий» = 150/1 + 160/0,9 + + 170/0,6 + 180/0,3 + 190/0,32 + 200/0,12.

3. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

1. Пусть задана ЛП = «температура в комнате». УМ значений ЛП U = [5,35].

Терм-множество T = {«холодно», «комфортно», «жарко»} ФП для соответствующих термов из терм-множества (u U):

 

 

 

1

 

 

"комфортно" (u)

1

 

" холодно"

(u)

 

 

 

 

 

 

 

;

u 20

6

u 10

12

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

3

 

 

7

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"жарко" (u)

1

 

.

 

 

 

 

 

 

 

 

 

 

 

 

u 30

10

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

Синтаксические правила G порождают новые термы с использованием квантификаторов "не", "очень" и "более-менее";

Семантические правила M: не t очень t

более-менее t

Требуется:

а) Построить графики функций принадлежности термов «холодно», «не очень холодно», «комфортно», «более-менее комфортно», «жарко», «очень жарко», «не очень комфортно», «очень не комфортно» лингвистической переменной «температура в комнате».

б) Вычислить значения исходных термов терм-множества для значений температуры в 10, 15, 20, 25 и 300С, используя соответствующие ФП (значения сократить до 2-х знаков после запятой).

в) Вычислить значения порожденных термов «более-менее не жарко» и «очень очень холодно».

г) Вычислить значения следующих составных термов:

1)«Не очень холодно и не очень жарко»

2)«Не холодно или более-менее жарко»

3)«Не сказать, чтобы очень уж холодно или жарко».

2.Задать самостоятельно ЛП «заработная плата». Возможные элементы терм-множества: «низкая», «средняя», «высокая» и т.п. Определить синтаксические и семантические правила, позволяющие генерировать новые, возможно, составные термы на основе квантификаторов «очень», «слишком», «слегка», «более или менее», «чересчур» и т.п., а также модификаторов «и», «или», «не».

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

Применить описанные правила для вычисления различного вида составных термов.

4. КОНТРОЛЬНЫЕ ВОПРОСЫ:

1.Дайте определение нечеткой переменной.

2.Дайте определение ЛП?

3.Что такое терм-множество ЛП?

4.Чем составной терм отличается от атомарного?

5.Как получают составные термы?

6.Чем формализуются термы ЛП?

7.Как вычислить значение составного терма?