ЭТНМ - Лабораторная работа №8
.pdfЛабораторная работа №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
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.Как вычислить значение составного терма?