4.5. Нечеткие условные предложения и составное правило вывода

Возможность определять смысл значений, принимаемых лингвистической переменной, необходима для анализа неопределенных высказываний вида "если А, тогда В". Например,

если х - большой, тогда у - малый,

если дорога скользкая, тогда езда опасная.

В сущности предложения этого вида описывают отношения между двумя нечеткими переменными. Это означает, что такие высказывания следует определять как нечеткое отношение на декартовом произведении множеств.

Пусть А - нечеткое подмножество области рассуждения Х, а В - нечеткое подмножество другой, вообще говоря, области рассуждения Y. Рассмотрим простой пример:

Х = 1 + 2

Y = 1 + 2 + 3

А = 1/1 +0,8/2

B = 0,6/1 + 0,9/2 +1/3

Тогда

А* В = 0,6(1,1) + 0,9(1,2) + 1(1,3) + 0,6(2,1) + 0,8(2,2) + 0,8(2,3). (4.33)

Данное отношение можно представить матрицей отношения:

  1 2 3
1 0,6 0,9 1
2 0,6 0,8 0,8

Смысл нечеткого высказывания вида "если А, тогда В" становится более ясным, если рассматривать его как специальный случай условного высказывания "если А, тогда В, иначе С". В терминах декартова произведения последнее предложение определяется так:

А* В ( А* С) (4.34)

Если предположить, что С = У, то получаем:

А* В ( А* Y) (4.35)

Последнее означает, что в отсутствие указаний к противному С может соответствовать любому нечеткому подмножеству области рассуждения, т.е. высказывание "если А, тогда В" интерпретируется высказыванием "если А, тогда В, иначе безразлично".

Для нашего примера ( А* Y) определяется матрицей отношения

  1 2 3
1 0 0 0
2 0,2 0,2 0,2

(4.36)

Подставляя матрицы (4.33, 4.36) в (4.35) находим, что матрица отношения "если А, тогда В" в нашем примере имеет вид матрицы А* В (4.33).

Если допустить, что С пустое множество , а не Y, то (4.34) сведется к декартовому произведению А* В.

Полезно учитывать, что в терминах матриц отношения равенство (4.34) можно выразить как сумму попарных произведений, содержащих А и В или А и С в виде вектор-столбца и вектор-строки соответственно. Так,

если А, тогда В, иначе С = [А][В] + [ А][С].

Рассмотрим следующий пример. Предположим, что

X = Y = 1 + 2 + 3,

А = малый = 1/1 + 0,4/2,

В = большой = 0,4/2 + 1/3, (4.37)

С = не большой = 1/1 + 0,6/2.

Тогда если А, тогда В, иначе С = (1/1 + 0,4/2) * (0,4/2 + 1/3) + (0,6/2 + 1/3) * (1/1 + 0,6/2) =

= 0,4(1,2)+1(1,3)+0,4(2,2)+0,4(2,3)+0,6(2,1)+0,6(2,2)+1(3,1)+0,6(3,2),

что можно представить в виде матрицы отношения

 

0 0,4 1
0,6 0,6 0,4
1 0,6 0

(4.38)

Аналогично,

если А, тогда В = (1/1 + 0,4/2) * (0,4/2 + 1/3) + (0,6/2 + 1/3) * (1/1 + 1/2 + 1/3) =

= 0,4(1,2) + 1(1,3) + 0,4(2,2) + 0,4(2,3) + 0,6(2,1) + 0,6(2,2) + 0,6(2,3)+

+ 1(3,1) + 1(3,2) + 1(3,3),

что эквивалентно матрице отношения

0 0,4 1
0,6 0,6 0,6
1 1 1

(4.39)

Пример 4.2. Заданы универсальные множества X = Y = 1 + 2 + 3 и нечеткие множества:

А = малый = 1/1 + 0,4/2,

В = большой = 0,4/2 + 1/3,

1. Определить матрицу отношения R = если А, то В, иначе С,

где С = не очень большой.

2. Найти результат композиции термина очень малый и отношения R.

С = не большой = 1/1 + 0,84/2.

Матрица отношения А* В:

0 0,4 1
0 0,4 0,4
0 0 0

Матрица отношения А* С:

0 0 0
0,6 0,6 0
1 0,84 0

Тогда матрица - если А, то В, иначе С:

0 0,4 1
0,6 0,6 0,4
1 0,84 0

Результат композиции очень малый с R есть:

  0,16 0,4 1    

Пусть термины малый и большой определены соответственно как

маленький = 1/1 + 0,8/2 + 0,6/3 + 0,4/4 + 0,2/5,

большой = 0,2/1 + 0,4/2 + 0,6/3 + 0,8/4 + 1/5.

Тогда, подставляя в (4.33) малый вместо А, большой вместо В, получаем матрицу отношения А* В:

  0,2 0,4 0,6 0,8 1
1 0,2 0,4 0,6 0,8 1
0,8 0,2 0,4 0,6 0,8 0,8
0,6 0,2 0,4 0,6 0,6 0,6
0,4 0,2 0,4 0,4 0,4 0,4
0,2 0,2 0,2 0,2 0,2 0,2

Далее, подставляя не очень большой вместо С, получаем матрицу отношения А* С:

  0,96 0,84 0,64 0,36 0
0 0 0 0 0 0
0,2 0,2 0,2 0,2 0,2 0
0,4 0,4 0,4 0,4 0,36 0
0,6 0,6 0,6 0,6 0,36 0
0,8 0,8 0,8 0,64 0,36 0

Матрица отношения R получаем путем объединения А* В ( А* С):

  0,2 0,4 0,6 0,8 1
  0,2 0,4 0,6 0,8 0,8
  0,4 0,4 0,6 0,6 0,6
  0,6 0,6 0,6 0,4 0,4
  0,8 0,8 0,64 0,36 0,2

Результат композиции R с х есть очень малый:

  0,36 0,4 0,6 0,8 1

Вообще, если - нечеткие подмножества Х, а - нечеткие подмножества из Y, то

если , тогда , иначе, . . . , если , тогда =

= (4.40)

Последнее выражение переходит в предыдущее, если выражение "если А, тогда В, иначе С" интерпретировать как "если А, тогда В, иначе если А, тогда С".

4.6. Простые отношения между нечеткими переменными

При традиционном подходе зависимость между числовыми переменными х и у часто описывают с помощью таблицы, которую словесно можно представить в виде набора высказываний типа "если х равно 5, то у равно 10" и т.д. Такой же способ описания применяется и для нечетких переменных. В частности, если х и у - лингвистические переменные, то используются высказывания вида "если А, то В", где А и В - символы нечетких множеств, представляющие собой значения переменных х и у. Например:

если х мало, то у велико;

если х не мало, то у не очень велико и т.д.

Следует заметить, что выражение типа "если А, то В" можно использовать для представления нечеткого графика как объединение нечетких точек, если, например, положить

Аi = близко к хi, Вi = близко к yi, i=1,...,n,

где хi и yi - точки на оси Х и Y соответственно.

Нечеткие высказывания играют основную роль в нечетких алгоритмах. Типичная проблема, с которой сталкиваются при разработке таких алгоритмов, состоит в следующем. Имеется нечеткое отношение R в X* Y, которое определяется нечеткими высказываниями. Проблема состоит в том, чтобы для любого нечеткого подмножества х Х определить нечеткое подмножество y Y, которое х индуцирует в Y. Например, пусть имеются следующие два предложения:

1. х - очень малый,

2. если х - малый, тогда у - большой, иначе у - не очень большой.

Возникает вопрос: какова будет величина у, если х очень мал?

Ответ на этот вопрос дается композиционным правилом вывода: Если R - неопределенное отношение X « Y и х - нечеткое подмножество Х, тогда нечеткое подмножество y Y, которое индуцируется подмножеством х, определяется композицией R и х, т.е.

у = х ° R ,

где х играет роль унарного отношения.

Композиционное правило вывода - это всего лишь обобщение следующей известной процедуры. Предположим, что имеется кривая y = f(x) и задано значение х = a. Тогда из этого мы можем заключить, что y = f(x) = b.

Обобщим теперь этот процесс, предположив, что а - интервал, а f(x) - функция, значения которой суть интервалы (рис.4.9).

Рис.4.9. Композиционное правило вывода в случае интервальных переменных.

В этом случае, чтобы найти интервал y = b, соответствующий интервалу а, построим сначала цилиндрическое множество с основанием а и найдем его пересечение с интервальным графиком. Затем спроектируем это пересечение на ось Y и получим желаемое значение y в виде интервала b.

Пусть теперь А - нечеткое множество оси Х, а F - нечеткое отношение в Х* Y. Образуем цилиндрическое нечеткое множество` А с основанием А:

Пересекаем его с нечетким отношением F и проектируем затем это пересечение на ось Y. Таким образом получаем значение у в виде нечеткого подмножества оси Y:

. (4.41)

Сравнивая это выражение с определением композиции, можно заметить, что

B =A° F, (4.42)

где знак ° - обозначает операцию композиции.

Если нечеткие множества A и F имеют конечные носители, то операция композиции сводится к максиминному произведению матриц.

В качестве иллюстрации приведем простой пример. Допустим, что

X = Y = 1 + 2 + 3 + 4,

А = малый = 1/1 + 0,6/2 + 0,2/3,

F = примерно равны = 1/((1,1) + (2,2) + (3,3) +(4,4)) +

0,5/((1,2) +(2,1)+ (2,3) + (3,2) + (3,4) + (4,3))

Следовательно,

В = малый ° примерно равны =

          1 0,5 0 0          
1 0,6 0,2 0 ° 0,5 1 0,5 0 = 1 0,6 0,5 0,2
          0 0,5 1 0,5          
          0 0 0,5 1          

Полученный результат можно аппроксимировать как более или менее малый.

Пусть, например, матрица отношения "если х - малый, тогда у - большой, иначе у - не большой" имеет вид (13.6). Тогда, полагая х равным

более или менее малый = 1/1 + 0,4/2 + 0,2/3,

получаем

более или менее малый ° (если х - малый, тогда у - большой, иначе у - не большой) =

        0 0,4 1        
1 0,4 0,2 ° 0,6 0,6 0,4 = 0,4 0,4 1
        1 0,6 0        

Грубым приближением результата может быть более или менее большой.

Из-за использования максиминного произведения матриц отношение между х и у не непрерывно, т.е. малое изменение х не произведет изменения в у, пока не будет превышен некоторый порог. Этого не будет в случае, если композиция х и R определена с помощью max-произведения.

Следует заметить также, что когда х = А, мы получим у = А° R = В, что строго выполняется, когда А, В и С - обычные множества, и приближенно, когда А, В и С - нечеткие множества. Чем больше х отличается от А, тем менее четко определен у. Дополнительный источник неточности связан с представлением нечеткого множества как значения лингвистической переменной (см. предыдущий пример).

4.7. Нечеткие алгоритмы

Для описания более сложных зависимостей у от х используются нечеткие алгоритмы. Нечеткий алгоритм есть упорядоченное множество нечетких инструкций, которые при их реализации дают приближенное решение проблемы. Инструкции в нечетких алгоритмах можно разделить на три класса:

1. Назначающие предложения, например,

х = большой.

2. Нечеткие высказывания типа "если А, тогда В". В таких предложениях либо

первое условие, либо второе, либо оба могут быть символами нечетких множеств.

3. Безусловные активные предложения, например,

немного уменьшить х,

печать х,

стоп.

Некоторые из этих инструкций являются нечеткими, другие - нет.

Комбинировать назначающие и нечеткие высказывания нужно в соответствии с композиционным правилом вывода. Например, если в некоторый момент выполнения алгоритма мы встречаем инструкции

1. х - очень малый,

2. если х - малый, тогда у - большой, иначе у - не большой,

где термины маленький и большой определяются согласно (4.37),тогда результатом выполнения этих инструкций будет

очень малый = 1/1 + 0,16/2,

       

0

0,4

1

       

1

0,16

0

°

0,6

0,6

0,6

=

0,16

0,4

1

       

1

1

1

       

Приближением результата может быть терм более или менее большой.

Безусловная нечеткая инструкция выполняется аналогично. Например, выполнение инструкции "умножить х само на себя несколько раз", где термин "несколько" определен следующим образом

несколько = 0,7/1 + 1,0/2 + 1,0/3 + 0,6/4 + 0,2/5,

дает нечеткое множество

у = 0,7/х2 + 1,0/х3 + 1,0/х4 + 0,6/ х5 + 0,2/х6.

Важно отметить, что как в первом, так и во втором случае результатом выполнения инструкции является нечеткое множество, а не единственное число. Однако когда человек дает нечеткую инструкцию, такую, как "сделать несколько шагов", то результат выполнения должен быть единственным числом. Наиболее разумно допустить, что результатом выполнения будет элемент нечеткого множества, имеющий наивысшую степень принадлежности этому множеству. Если такой элемент не единственен, то можно сделать среди них случайный или произвольный выбор. Можно также ввести некоторый критерий, который линейно упорядочивает элементы, имеющие наивысшую степень принадлежности к нечеткому множеству, и, таким образом, образуется единственный наибольший элемент.

Аналогичный вопрос возникает, когда нужно ответить "да" или "нет" на нечеткий вопрос. Например,

"если х - мало, тогда стоп, иначе идти к метке".

Пусть малый = 1/1 + 0,6/2 + 0,2/3.

Предположим, что х = 2, причем это число имеет степень принадлежности множеству малый, равную 0,6. Нужно ли выполнить "стоп" или "идти к метке"? Подобно рассуждениям человека, делается "более истинный" выбор. Например, "х - мало" предпочтительнее "х - не мало", так как степень истинности последнего предложения - 0,4. Такой выбор одной из двух альтернатив называют правилом преобладающей альтернативы.

Рассмотрим, например, такой случай. Допустим, что управляемый параметр х может принимать дискретные целые значения, а термин малый определяется как

малый = 1/1 + 0,9/2 + 0,8/3 + 0,7/4 + 0,6/5+ 0,5/6 + 0,4/7+ 0,3/8 + 0,2/9+ 0,1/10

Нечеткий алгоритм управления состоит из следующих инструкций.

х =1;

М: увеличить х на несколько единиц;

если х - мало, тогда идти к метке М;

печать х;

стоп.

На первой итерации, увеличивая х на несколько единиц, получаем нечеткое множество

0,7/2 + 1,0/3 + 1,0/4 + 0,6/5 + 0,2/6.

Элементами, имеющими наивысшую степень принадлежности, являются числа 3 и 4. Если ввести, например, критерий минимизации числа шагов, то будет выбрано число 3. Используя правило преобладающей альтернативы, определяем, что "х - мало" предпочтительнее "х - не мало", так как степень истинности первого предложения - 0,8.

На второй итерации, снова увеличивая х на несколько единиц, получаем нечеткое множество

0,7/4 + 1,0/5 + 1,0/6 + 0,6/7 + 0,2/8.

Четкое решение будет соответствовать х=5. В этом случае х также "мало", так как степень его истинности - 0,6.

На третьей итерации, увеличивая х на несколько единиц, получаем нечеткое множество

0,7/6 + 1,0/7 + 1,0/8 + 0,6/9 + 0,2/10.

Четкое решение будет соответствовать х=7. В этом случае "х - не мало" предпочтительнее "х - мало", так как степень истинности первого предложения будет 0,6. На этом шаге алгоритм заканчивает свою работу и печатает значение х=7.

Нечеткие алгоритмы обычно классифицируют по областям их применения:

1. алгоритмы определения и идентификации;

2. алгоритмы порождения;

3. алгоритмы описания и моделирования систем;

4. алгоритмы принятия решений и т.д.

Алгоритмы определения и идентификации. Одна из основных областей применения нечетких алгоритмов - определение сложных, плохо определенных понятий в терминах более простых или менее нечетких понятий. Например, определение меры сложности, меры похожести, диагностика болезней.

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

В последнем случае алгоритм определения играет роль алгоритма идентификации, т.е. алгоритма, который устанавливает, принадлежит или нет элемент множеству, или более обще, - устанавливает его степень принадлежности.

Например, рассмотрим нечеткое понятие овал, которое приближенно эквивалентно выражению

овал = замкнутый C не самопересекающийся C выпуклый C более или менее ортогональные оси симметрии C большая ось несколько длиннее малой оси. (4.43)

Данное выражение определяет нечеткое множество овал как пересечение обычных и нечетких множеств, символы которых стоят в правой части. Однако существенное отличие состоит в том, что алгоритм определения не только определяет правую часть (4.43), но также устанавливает порядок, в котором следует совершать эти действия.

Алгоритмы порождения. Нечеткие алгоритмы порождения служат не для определения а порождения нечетких множеств. Возможные приложения этих алгоритмов: получение различного рода образцов, предложений в некотором языке, компьютерная графика, сочинение музыки.

Алгоритмы описания и моделирования систем.

Подобные алгоритмы служат для описания отношений между нечеткими переменными и используются для приближенного описания поведения системы. Рассмотрим пример нечеткого алгоритма отношения F(x,y).

1. Если х - мало и х слабо увеличить, то у слабо увеличится.

2. Если х - мало и х значительно увеличить, то у увеличится значительно.

3. Если х - велико и х слабо увеличить, то у увеличится средне.

4. Если х - велико и х значительно увеличить, то у увеличится очень значительно.

Описание нечетких функций с помощью нечетких алгоритмов. Вместо таблицы обычную функцию можно определить алгоритмически, т.е. с помощью программы. Точно так же с помощью нечеткого алгоритма можно определить нечеткую функцию или отношение.

Такие алгоритмы позволяют приближенно описывать самые разнообразные сложные явления. Важно то, что будучи нечеткими по своей природе, такие описания могут быть полностью адекватны целям поставленной задачи. Нечеткие алгоритмы такого рода могут дать эффективные способы приближенного описания целевых функций, стратегий, ограничений и функционирования системы.

Алгоритмы принятия решений. Это нечеткие алгоритмы, которые служат для получения приближенного описания стратегии или решающего правила. Алгоритмы такого рода могут использоваться в системах поддержки принятия решений, автоматического управления и системах управления роботами.

Простой пример подобного алгоритма:

если у велико, то немного уменьшить х;

если у не очень велико, то очень не намного увеличить х;

если у мало, то стоп.

[К предыдущей главе].....[К содержанию] ......[К следующей главе]