Нечёткие рассуждения

В ортодоксальной двухзначной логике рассуждения базируются на операции классической импликации A?B = ¬A+B (из предпосылки А следует утверждение В), откуда можно наплодить множество правил логического вывода (тавтологий), популярных среди средневековых схоластов:

A?B = В, если A истинно, модус поненс,

A?B = ¬A, если В ложно, модус толленс,

(A?B)&(B) = A?С, силлогизм,

и т.д.

 

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

Прямой метод нечёткого вывода основан на использовании нечёткого обобщения правила модус поненс – fuzzy modus ponens (FMP). Согласно Лотфи Заде суть FMP состоит в том, что если известно нечёткое отношение R между входной (x) и выходной (y) переменными, то при нечётком значении входной переменной x=A нечёткое значение выходной переменной (y) определяется как y = A°R, где ° – максминная композиция.

Мудрено? Поэтому давайте сначала разберёмся, что собой представляет нечёткое отношение множеств.

Что такое функция соответствия мы уже знаем: это степени соответствия элементов множества некоторому терму (понятию, высказыванию, утверждению). Точно так же можно определить и функцию соответствия терму, оговаривающему некое приблизительное отношение между элементами множеств. Совокупность этих поэлементных функций соответствия и есть нечёткое отношение. Кстати, рассматриваемые множества не обязаны быть чёткими.

Например, имеем два множества X={4,5,6} и Y={5,5,4}. Или другими словами x1=4,x2=5,x3=6, y1=5,y2=5,y3=4.

Нечёткое отношение R – это тоже нечёткое множество. Функция соответствия нечёткого отношения R терму «приблизительно равны»:

1, при расстоянии 0,

µR(x,y) = 0,8 при расстоянии 1,

0,6 при расстоянии 2.

Тогда нечёткое отношение R можно представить, как набор соответствий между парами элементов xi yj:

R = {0,8/4,5+0,8/4,5+1/4,4+1/5,5+1/5,5+0,8/5,4+0,8/6,5+0,8/6,5+0,6/6,4}

Или записать в матричной форме:

     0,8   0,8    1

R = 1      1    0,8

     0,8   0,8   0,6

Максминную композицию разберём на примере. Рассмотрим модель неудачно сложившегося дня программиста, исходя из следующих элементов:

A – элементы состояния:

x1 – у программиста вчера была вечеринка,

x2 – у программиста плохое настроение.

B – элементы причины состояния:

y1 – программист забыл дома флэшку,

y2 – программист поссорился со своей девушкой,

y3 – программисту не подняли зарплату.

При этом между элементами множеств A и B существуют скрытые нечёткие отношения, заданные следующими импликациями xi?yj:

  • из-за вчерашней вечеринки забыл флэшку – 0,9;

  • на вечеринке поссорился с девушкой – 0,1;

  • на вечеринке повздорил с шефом, поэтому не подняли зарплату – 0,2;

  • плохое настроение, поэтому забыл флэшку – 0,6;

  • плохое настроение, поэтому поссорился с девушкой – 0,5;

  • из-за настроения дерзил, оттого не подняли зарплату – 0,5.

Получаем матрицу R отношений между множествами A и B:

0,9    0,1    0,2

0,6    0,5    0,5

Зная программиста, можно оценить его, как человека рассеянного (b1=0,8), не агрессивного по отношению к своей девушке (b2=0,2), но ещё не очень опытного, так что повышение зарплаты пока под вопросом (b3=0,4):

B = {0,8/y1, 0,2/y2, 0,4/y3}

Требуется выяснить состояние программиста, т.е. найти наиболее значимый элемент множества A:

А= а11 + а22

Формулу B = A ? R можно представить в матричном виде:

[0,8 0,2 0,4] = [а1 а2] ? [ 0,9 0,1 0,2; 0,6 0,5 0,5]

Формулу B = A ? R можно подвергнуть максминной декомпозиции в систему нечётких логических уравнений:

0,8 = max[min(0,9; а1), min(0,6; а2)];

0,2 = max[min(0,1; а1), min(0,5; а2)];

0,4 = max[min(0,2; а1), min(0,5; а2)].

Из первого уравнения следует, что a1>=0,8.

Из второго уравнения следует, что a2>=0,2.

Из третьего уравнения следует, что a2<=0,4.

Таким образом, получаем решение:

0,8 <= а1<=1 и 0,2<= а2<=0,4

То есть, скорее всего, программист в этот день плохо себя чувствовал из-за вчерашней вечеринки. :)

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

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 1
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя mike

Не убирайте форматирование.  Трудно же читать!

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

mike, что, кроме отступов, потерялось?

Аватар пользователя mike

...что, кроме отступов, потерялось?

Без абзацев тоже бы не потерялось. Шутка. А если серьёзно, то без отступов матрицы плохо читаются. Картинками их, что ли, постить...

Аватар пользователя mike

Так лучше, спасибо.

Ортодоксальная логика?! - хм, возможно влияние пасхальных дней при написании автором этой статьи. Имхо, конечно, имхо. 

Аватар пользователя Petro42

Отлично!

Аватар пользователя savely

> Отлично! 

Согласен. Тут (со статьями по нечеткой логике) Майк молодец однозначно. Для меня - это как раз "популярное изложение того, чем я не занимаюсь (и не буду) для общего развития".