Содержательный пример на нечеткий логический вывод. Нечеткие множества

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

Люди не всегда могут ответить на вопросы точно. Можно ли узнать, какая у человека температура, если он говорит, что слегка заболел? Скорее всего, нет. Такие слова, как высокий, горячий и легкий, представляют собой лингвистические переменные , которые нельзя определить одним значением.

Лингвистическая переменная состоит из названия переменной , например, ПРОЦЕНТНАЯ СТАВКА и ее значений, например, РАСТЕТ, ПАДАЕТ.

Использование этих понятий при формулировании правил называется нечеткой логикой.

Нечеткий логический вывод может рассматриваться как расширение обычного логического вывода. В обычном логическом выводе производится применение некоторых правил логического вывода (которые считаются истинными) к некоторым посылкам (которые также считаются истинными), что в результате дает выводы, считающиеся достоверными. В нечетком же логическом выводе и исходные посылки, и правила вывода могут иметь произвольный уровень истинности в промежутке от 0 до 1, соответственно и получаемые результаты также могут быть более или менее достоверны.

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

1. ЕСЛИ К_П незначительно растет, ТО У_Ж_1 незначительно падает. (m = 0.9)

2. ЕСЛИ К_П незначительно растет, ТО У_Ж_1 не падает. (m = 0.1)(Если перестают платить)

3. ЕСЛИ К_П значительно растет, ТО У_Ж_1 значительно падает. (m = 0.5)

4. ЕСЛИ К_П значительно растет, ТО У_Ж_1 не падает. (m = 0.5)

5. ЕСЛИ Ц_П незначительно растут, ТО У_Ж_2 незначительно падает. (m = 1)

6. ЕСЛИ Ц_П значительно растут, ТО У_Ж_2 значительно падает. (m = 1)

7. ЕСЛИ У_Ж_1 незначительно падает И У_Ж_2 незначительно падает, ТО У_Ж незначительно падает. (m = 1)

8. ЕСЛИ У_Ж_1 незначительно падает И У_Ж_2 значительно падает ИЛИ У_Ж_1 значительно падает И У_Ж_2 значительно падает, ТО У_Ж значительно падает. (m =1)

9. ЕСЛИ У_Ж_1 значительно падает И У_Ж_2 значительно падает, ТО У_Ж очень значительно падает. (m = 1)

Условия К_П НЕЗНАЧИТЕЛЬНО РАСТЕТ и К_П ЗНАЧИТЕЛЬНО РАСТЕТ являются размытыми и выражаются в зависимости от количества процентов роста p следующими формулами.

При 0 < p < 2 m (К_П НЕЗНАЧИТЕЛЬНО РАСТЕТ) = p / 2.

При 2 < p < 4 m

При 4 < p < 10 m (К_П НЕЗНАЧИТЕЛЬНО РАСТЕТ) = (10 - p ) / 6.

При p > 10 m (К_П НЕЗНАЧИТЕЛЬНО РАСТЕТ) = 1.

При p < 5 m (К_П ЗНАЧИТЕЛЬНО РАСТЕТ) = 0.

При 5 < p < 15 m (К_П ЗНАЧИТЕЛЬНО РАСТЕТ) = (p - 5) / 10.

При p > 15 m (К_П ЗНАЧИТЕЛЬНО РАСТЕТ) = 1.


Условия Ц_П НЕЗНАЧИТЕЛЬНО РАСТУТ и Ц_П ЗНАЧИТЕЛЬНО РАСТУТ также являются размытыми и выражаются формулами

При 0 < p < 1 m (Ц_П НЕЗНАЧИТЕЛЬНО РАСТУТ) = p .

При 1 < p < 5 m (Ц_П НЕЗНАЧИТЕЛЬНО РАСТУТ) = (5 - p ) / 4.

При 0 < p < 10 m (Ц_П ЗНАЧИТЕЛЬНО РАСТУТ) = p / 10.

При p > 10 m (Ц_П ЗНАЧИТЕЛЬНО РАСТУТ) = 1.

При использовании нечеткой логики для каждой формулы вводятся целый спектр возможных значений, лежащих между 0 (ЛОЖНО) и 1 (ИСТИННО), и правила вычисления этих значений. Вычисленные таким образом значения определяют степень истинности формул. Рассмотрим основополагающие понятия нечеткого множества и функции принадлежности.

Рассмотрим такие понятия, как «растет» и «падает». Отнесем эти понятия к переменным ПРОЦЕНТНАЯ СТАВКА и РУБЛЬ. Применительно к переменной ПРОЦЕНТНАЯ СТАВКА понятие роста может означать повышение уровня цен на бирже на 10 – 30 пунктов по индексу Доу-Джонса, а применительно к переменной РУБЛЬ означает повышение курса рубля по сравнению с какой-либо другой валютой в 20 – 30 раз. В таком контексте слово «растет» называется значением лингвистической переменной . Лингвистическая переменная может принимать различные значения из некоторого интервала, границы которого могут меняться в зависимости от обстоятельств. Например, границы интервала для лингвистической переменной «холодный» могут меняться в зависимости от того, идет ли речь о зиме или весне.

Понятие «падает» – также лингвистическая переменная, использующаяся в правилах, описывающих фондовую биржу. Применяя лингвистические переменные, можно вычислить значения некоторых вероятностей, не обременяя пользователя лишними вопросами. Для этого необходимо несколько конкретизировать лингвистические переменные. Пользователю экспертной системы нужно позволить добавлять к этим переменным определения, например маленький или средний. Пользователь может задать маленькое повышение курса рубля, и экспертная система должна точно знать, что под этим подразумевается.

Рассмотрим правило:

ЕСЛИ ПРОЦЕНТНЫЕ СТАВКИ – ПАДАЮТ И НАЛОГИ УМЕНЬШАЮТСЯ, ТО УРОВЕНЬ ЦЕН НА БИРЖЕ – РАСТЕТ.

Это правило верно не всегда, поэтому можно ему приписать значение некоторого числа m, изменяющегося от 0 до 1. Такое число называют функцией принадлежности μ .

Пусть функция принадлежности данного правила равна 0,9, т.е. вероятность того, что при падении процентных ставок и уменьшении налогов уровень цен на бирже будет падать равна 0.9.

Но выполнение правила зависит от выполнения условий ПРОЦЕНТНЫЕ СТАВКИ ПАДАЮТ и НАЛОГИ УМЕНЬШАЮТСЯ, что происходит не всегда.

Пусть функция принадлежности лингвистической переменной ПРОЦЕНТНЫЕ СТАВКИ ПАДАЮТ равна 0.6, а функция принадлежности лингвистической переменной НАЛОГИ УМЕНЬШАЮТСЯ равна 0.8.

Тогда правило можно записать так:

ЕСЛИ ПРОЦЕНТНЫЕ СТАВКИ ПАДАЮТ (μ - 0.6) И

НАЛОГИ УМЕНЬШАЮТСЯ (μ - 0.8), ТО УРОВЕНЬ ЦЕН НА БИРЖЕ - РАСТЕТ (μ правила - 0.9)

Функция принадлежности того, что уровень цен на бирже будет действительно расти может быть подсчитан следующим образом: выбирается минимальная функция принадлежности для условий части ЕСЛИ правила, разделенных логическим оператором И, и умножается на функцию принадлежности для всего правила. Для приведенного примера: (minimum (0.6, 0.8))*0.9=0.54

Следовательно, при μ - 0,54 можно сказать, что уровень цен на бирже будет падать.

Если в условной части правила имеется логический оператор ИЛИ, то μ для этого вывода нужно выбрать максимальной из μ для вывода первого правила и μ для вывода второго правила. На первый взгляд все это кажется очень сложным, поэтому разберем пример. Прежде всего сформулируем общие принципы.

1.Выбрать максимальное значение μ из μ для условий правила, разделенных логическим оператором И.

2.Если в правиле есть оператор ИЛИ, выбрать максимальное значение из μ для всех условий правила, разделенных оператором И для всех условий, связанных оператором ИЛИ.

3.Умножить выбранный μ на μ правила.

4.Если существует несколько правил с одинаковым логическим выводом, выбрать из всех полученных μ максимальный.

Рассмотрим два правила с одним и тем же логическим выводом С:

ЕСЛИ А (μ =0,3) И В (μ =0.6), ТО С (μ=0.5)

ЕСЛИ D (μ =0.4) И Е (μ =0,7), ТО С (μ=0.9)

В приведенных правилах μ для логического вывода С подсчитывается следующим образом:

maximum ((minimum(0.3,0.6)*0.5), (minimum (0.4,0.7) *0.9)) =

Maximum (03*0.5),(0.4*0.9)) = maximum (0.15,0.36) = 0.36

Возьмем пример с использованием логического оператора ИЛИ:

ЕСЛИ А (μ=0.3) И В (μ=0.6) ИЛИ D (μ=0.5), ТО С (μ=0.4)

В этом примере μ для логического вывода С считается так:

maximum (minimum (0.3,0.6), 0.5)*0.4)= maximum (0.3,0.5)*0.4=0.5*0.4=0.2.

Во многих случаях изначально заданы граничные значения функции принадлежности. Логический вывод считается верным только в том случае, если его μ превышает заранее заданные граничные значения. Работа с базой знаний продолжается до тех пор, пока значение функции принадлежности логического вывода больше граничного значения. В процессе работы выполняются определенные вычисления. Предположим, для частного логического вывода μ равно 0,4. Это значение запоминается. Затем оно сравнивается с граничным значением μ (допустим, что оно равно 0,8). Запомненное значение оказалось меньше граничного, и, значит, работа с базой знаний продолжается. Если при работе с базой знаний встретился тот же самый логический вывод, μ для новой μ и результат прибавляется к запомненному ранее μ. Значение μ , равное 1, свидетельствует об абсолютной уверенности в правильности вывода. Затем вновь запомненное значение μ сравнивается с граничным, и если оно больше, выполняется логический вывод, в противном случае, работа с базой знаний продолжается. Вышесказанное можно записать с помощью равенства:

Запомненный μ = Ранее запомненный μ + (1-Ранее запомненный μ)*μ нового правила.

Например:

Граничное значение μ=0,8

Правило: ЕСЛИ А, ТО В (μ=0,6)

Запомненный μ: 0,6

Новое правило: ЕСЛИ С, ТО В (μ=0,7)

Запомненный μ=0.6+(1-0,6)*0,7=0,88 (граничные значения превышены, и выполняется вывод).

Вопросы для самопроверки к главе 3:

1.Может ли быть в задачах рассуждений в пространстве состояний среды несколько целевых состояний?

2.Можно ли решить задачу рассуждений в пространстве состояний среды, рассматривая на каждом шаге два действия из четырех возможных?

3.Могут ли возможные действия меняться в процессе решения задачи в пространстве состояний среды?

4.При решении нечеткой задачи рассуждений в пространстве состояний среды ответ получаем детерминированный или вероятностный?

5.Может ли функция принадлежности принимать значение, большее единицы?

Тесты к главе 3.

1. Цель поиска:

А) нахождение целевого состояния, Б) нахождение промежуточного состояния, В) нахождение очередного состояния.

2.Поиск, вывод и рассуждение – это

А) одно и то же действие, Б) различные действия, В) ничего общего с действиями не имеют.

3. При нечеткой логике лингвистическая переменная может принимать

А) одно из двух значений «истинно» или «ложно», Б) множество значений внутри заданного интервала, В) одно значение.

4.Постановкой задачи называют

А) Задание всех возможных состояний, Б) задание всех возможных действий, В) задание всех возможных действий и состояний.

5. Если в условной части правила имеется логический оператор ИЛИ, то функцию принадлежности μ для вывода нужно выбрать

А) максимальной из μ для вывода первого правила и μ для вывода второго правила, Б) минимальной, В) функция принадлежности вывода не зависит от функций принадлежности от функций первого и второго правила

В 1965 г. в журнале «Information and Control» была опубликована работа Л.Заде под названием «Fuzzy sets». Это название переведено на русский язык как нечеткие множества . Побудительным мотивом стала необходимость описания таких явлений и понятий, которые имеют многозначным и неточный характер. Известные до этого математические методы, использовавшие классическую теорию множеств и двузначную логику, не позволяли решать проблемы этого типа.

При помощи нечетких множеств можно формально определить неточные и многозначные понятия, такие как «высокая температура» или «большой город». Для формулирования определения нечеткого множества необходимо задать так называемую област рассуждений. Например, когда мы оцениваем скорость автомобиля, мы ограничимся диапазоном X = , где Vmax - максимальная скорость, которую может развить автомобиль. Необходимо помнить, что X - четкое множество.

Основные понятия

Нечетким множеством A в некотором непустом пространстве X называется множество пар

Где

- функция принадлежности нечеткого множества A. Эта функция приписывает каждому элементу x степень его принадлежности нечеткому множеству A.

Продолжив предыдущий пример, рассмотрим три неточные формулировки:
- «Малая скорость автомобиля»;
- «Средняя скорость автомобиля»;
- «Большая скорость автомобиля».
На рисунке представлены нечеткие множества, соответствующие приведенным формулировкам, с помощью функций принадлежности.


В фиксированной точке X=40км/ч. функция принадлежности нечеткого множества «малая скорость автомобиля» принимает значением 0,5. Такое же значение принимает функция принадлежностинечеткого множества «средняя скорость автомобиля», тогда как для множества «большая скорость автомобиля» значение функции в этой точке равно 0.

Функция T двух переменных T: x -> называется T-нормой , если:
- является не возрастающей относительно обоих аргументов: T(a, c) < T(b, d) для a < b, c < d;
- является коммутативной: T(a, b) = T(b, a);
- удовлетворяет условию связности: T(T(a, b), c) = T(a, T(b, c));
- удовлетворяет граничным условиям: T(a, 0) = 0, T(a, 1) = a.

Прямой нечеткий вывод

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

Основным правилом вывода в традиционной логике является правило modus ponens, согласно которому мы судим об истинности высказывания B по истинности высказываний A и A -> B. Например, если A - высказывание «Степан - космонавт», B - высказывание «Степан летает в космос», то если истинны высказывания «Степан - космонавт» и «Если Степан - космнавт, то он летает в космос», то истинно и высказывание «Степан летает в космос».

Однако, в отличие от традиционной логики, главным инструментом нечеткой логики будет не правило modus ponens, а так называемое композиционное правило вывода, весьма частным случаем которого является правило modus ponens.

Предположим, что имеется кривая y=f(x) и задано значение x=a. Тогда из того, что y=f(x) и x=a, мы можем заключить, что y=b=f(a).


Обобщим теперь этот процесс, предположив, что a - интервал, а f(x) - функция, значения которой суть интервалы. В этом случае, чтобы найти интервал y=b, соответствующий интервалу a, мы сначала построим множество a" с основанием a и найдем его пересечение I с кривой, значения которой суть интервалы. Затем спроектируем это пересечение на ось OY и получим желаемое значение y в виде интервала b. Таким образом, из того, что y=f(x) и x=A - нечеткое подмножество оси OX, мы получаем значение y в виде нечеткого подмножества B оси OY.

Пусть U и V - два универсальных множества с базовыми переменными u и v, соответственно. Пусть A и F - нечеткие подмножества множеств U и U x V. Тогда композиционное правило вывода утверждает, что из нечетких множеств A и F следует нечеткое множество B = A * F.

Пусть A и B - нечеткие высказывания и m(A), m(B) - соответствующие им функции принадлежности. Тогда импликации A -> B будет соответствовать некоторая функция принадлежности m(A -> B). По аналогии с традиционной логикой, можно предположить, что

Тогда

Однако, это не единственное обобщение оператора импликации, существуют и другие.

Реализация

Для реализации метода прямого нечеткого логического вывода нам понадобится выбрать оператор импликации и T-норму.
Пуская T-норма будет функция минимума:

а оператором импликации будет функция Гёделя:


Входные данные будут содержать знания (нечеткие множества) и правила (импликации), например:
A = {(x1, 0.0), (x2, 0.2), (x3, 0.7), (x4, 1.0)}.
B = {(x1, 0.7), (x2, 0.4), (x3, 1.0), (x4, 0.1)}.
A => B.

Импликация будет представлена в виде декартовой матрицы, каждый элемент которой рассчитывается с помощью выбранного оператора импликации (в данном примере - функции Гёделя):

  1. def compute_impl (set1, set2):
  2. """
    Computing implication
    """
  3. relation = {}
  4. for i in set1.items():
  5. relation[i] = {}
  6. for j in set2.items():
  7. v1 = set1.value(i)
  8. v2 = set2.value(j)
  9. relation[i][j] = impl(v1, v2)
  10. return relation

Для данных выше это будет:
Conclusion:
A => B.
x1 x2 x3 x4
x1 1.0 1.0 1.0 1.0
x2 1.0 1.0 1.0 0.1
x3 1.0 0.4 1.0 0.1
x4 0.7 0.4 1.0 0.1
  1. def conclusion (set, relation):
  2. """
    Conclusion
    """
  3. conl_set =
  4. for i in relation:
  5. l =
  6. for j in relation[i]:
  7. v_set = set .value(i)
  8. v_impl = relation[i][j]
  9. l.append(t_norm(v_set, v_impl))
  10. value = max (l)
  11. conl_set.append((i, value))
  12. return conl_set

Результат:
B" = {(x1, 1.0), (x2, 0.7), (x3, 1.0), (x4, 0.7)}.

Источники

  • Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И. Д. Рудинского. - М.: Горячая линия - Телеком, 2006. - 452 с.: ил.
  • Zadeh L. A. Fuzzy Sets, Information and Control, 1965, vol. 8, s. 338-353

Понятие нечеткого вывода занимает важнейшее место в нечеткой логике Алгоритм Mamdani, Алгоритм Tsukamoto, Алгоритм Sugeno, Алгоритм Larsen, Упрощенный алгоритм нечеткого вывода, Методы приведения к четкости.

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

П1: если х есть A 1 , тогда у есть B 1 ,

П2: если х есть А 2 , тогда у есть В 2 ,

·················································

П n : если х есть А n , тогда у есть В n , где х — входная переменная (имя для известных значений дан-ных), у — переменная вывода (имя для значения данных, которое будет вычислено); А и В — функции принадлежности, определен-ные соответственно на x и у .

Пример подобного правила

Если х — низко, то у — высоко.

Приведем более детальное пояснение. Знание эксперта А → В отражает нечеткое причинное отношение предпосылки и заключе-ния, поэтому его можно назвать нечетким отношением и обозна-чить через R :

R = А → В,

где «→» называют нечеткой импликацией.

Отношение R можно рассматривать как нечеткое подмножество прямого произведения Х×У полного множества предпосылок X и заключений Y . Таким образом, процесс получения (нечеткого) результата вывода В" с использованием данного наблюдения А" и знания А → В можно представить в виде формулы

В" = А" ᵒ R = А" ᵒ (А → В),

где «о» — введенная выше операция свертки.

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

1. Нечеткость (введение нечеткости, фазификация, fuzzifica-tion). Функции принадлежности, определенные на входных пере-менных применяются к их фактическим значениям для определе-ния степени истинности каждой предпосылки каждого правила.

2. Логический вывод. Вычисленное значение истинности для предпосылок каждого правила применяется к заключениям каж-дого правила. Это приводит к одному нечеткому подмножеству, которое будет назначено каждой переменной вывода для каждого правила. В качестве правил логического вывода обычно исполь-зуются только операции min(МИНИМУМ) или prod(УМНОЖЕ-НИЕ). В логическом выводе МИНИМУМА функция принадлежно-сти вывода «отсекается» по высоте, соответствующей вычислен-ной степени истинности предпосылки правила (нечеткая логика «И»). В логическом выводе УМНОЖЕНИЯ функция принадлеж-ности вывода масштабируется при помощи вычисленной степени истинности предпосылки правила.

3. Композиция. Все нечеткие подмножества, назначенные к каждой переменной вывода (во всех правилах), объединяются вме-сте, чтобы формировать одно нечеткое подмножество для каждой переменной вывода. При подобном объединении обычно использу-ются операции max(МАКСИМУМ) или sum(СУММА). При ком-позиции МАКСИМУМА комбинированный вывод нечеткого под-множества конструируется как поточечный максимум по всем не-четким подмножествам (нечеткая логика «ИЛИ»). При композиции СУММЫ комбинированный вывод нечеткого подмножества кон-струируется как поточечная сумма по всем нечетким подмноже-ствам, назначенным переменной вывода правилами логического вывода.

4. В заключение (дополнительно) — приведение к четкости (дефазификация, defuzzification), которое используется, когда по-лезно преобразовать нечеткий набор выводов в четкое число. Име-ется большое количество методов приведения к четкости, некото-рые из которых рассмотрены ниже.

Пример .Пусть некоторая система описывается следующими нечет-кими правилами:

П1: если х есть А, тогда ω есть D,

П2: если у есть В, тогда ω есть Е,

П3: если z есть С, тогда ω есть F, где х, у и z — имена входных переменных, ω — имя переменной вывода, а А, В, С, D, Е, F— заданные функции принадлежности (треугольной формы).

Процедура получения логического вывода иллюстрируется рис. 1.9.

Предполагается, что входные переменные приняли некоторые кон-кретные (четкие) значения — х о, y о и z о.

В соответствии с приведенными этапами, на этапе 1 для данных зна-чений и исходя из функций принадлежности А, В, С, находятся степени истинности α (х о ), α (у о α (z o )для предпосылок каждого из трех при-веденных правил (см. рис. 1.9).

На этапе 2 происходит «отсекание» функций принадлежности за-ключений правил (т.е. D, Е, F) на уровнях α (х о ), α (у о ) и α (z o ).

На этапе 3 рассматриваются усеченные на втором этапе функции при-надлежности и производится их объединение с использованием операции max, в результате чего получается комбинированное нечеткое подмноже-ство, описываемое функцией принадлежности μ ∑ (ω) и соответствующее логическому выводу для выходной переменной ω .

Наконец, на 4-м этапе — при необходимости — находится четкое значение выходной переменной, например, с применением центроидного метода: четкое значение выходной переменной определяется как центр тяжести для кривой μ ∑ (ω), т.е.

Рассмотрим следующие наиболее часто используемые модифи-кации алгоритма нечеткого вывода, полагая, для простоты, что базу знаний организуют два нечетких правила вида:

П1: если х есть A 1 и у есть B 1 , тогда z есть C 1 ,

П2: если х есть А 2 и у есть В 2 , тогда z есть С 2 , где x и у — имена входных переменных, z — имя переменной вы-вода, A 1 , А 2 , B 1 , В 2 , C 1 , С 2 — некоторые заданные функции при-надлежности, при этом четкое значение z 0 необходимо определить на основе приведенной информации и четких значений x 0 и у 0 .

Рис. 1.9. Иллюстрация к процедуре логического вывода

Алгоритм Mamdani

Данный алгоритм соответствует рассмотренному примеру и рис. 1.9. В рассматриваемой ситуации он математически может быть описан следующим образом.

1. Нечеткость: находятся степени истинности для предпосылок каждого правила: А 1 (x 0), А 2 (x 0), B 1 (y 0), В 2 (y 0).

2. Нечеткий вывод: находятся уровни «отсечения» для пред-посылок каждого из правил (с использованием операции МИНИМУМ)

α 1 = A 1 (x 0) ˄ B 1 (y 0)

α 2 = A 2 (x 0) ˄ B 2 (y 0)

где через «˄» обозначена операция логического минимума (min), затем находятся «усеченные» функции принадлежности

3. Композиция: с использование операции МАКСИМУМ (max, далее обозначаемой как «˅») производится объединение найден-ных усеченных функций, что приводит к получению итогового не-четкого подмножества для переменной выхода с функцией принад-лежности

4. Наконец, приведение к четкости (для нахождения z 0 ) прово-дится, например, центроидным методом.

Алгоритм Tsukamoto

Исходные посылки — как у пре-дыдущего алгоритма, но в данном случае предполагается, что функ-ции C 1 (z ), С 2 (z ) являются монотонными.

1. Первый этап — такой же, как в алгоритме Mamdani.

2. На втором этапе сначала находятся (как в алгоритме Mam-dani) уровни «отсечения» α 1 и α 2 , а затем — посредством решения уравнений

α 1 = C 1 (z 1), α 2 = C 2 (z 2)

— четкие значения (z 1 и z 2 )для каждого из исходных правил.

3. Определяется четкое значение переменной вывода (как взве-шенное среднее z 1 и z 2 ):

в общем случае (дискретный вариант центроидного метода)

Пример. Пусть имеем A 1 (x 0) = 0,7, A 2 (x 0) = 0,6, B 1 (y 0) = 0,3, В 2 (y 0) = 0,8, соответствующие уровни отсечения

a 1 = min (A 1 (x 0), B 1 (y 0)) = min(0,7; 0,3) = 0,3,

a 2 = min (А 2 (x 0), В 2 (y 0)) = min (0,6; 0,8) = 0,6

и значения z 1 = 8 и z 2 = 4, найденные в результате решения уравнений

C 1 (z 1) = 0,3 , C 2 (z 2) = 0,6.


Рис. 1.10. Иллюстрации к алгоритму Tsukamoto

При этом четкое значение переменной вывода (см. рис. 1.10)

z 0 = (8·0,3 + 4·0,6) / (0,3 + 0,6) = 6.

Алгоритм Sugeno

Sugeno и Takagi использовали набор правил в следующей форме (как и раньше, приводим пример двух правил):

П 1: если х есть A 1 и у есть B 1 , тогда z 1 = а 1 х + b 1 у,

П 2: если х есть A 2 и у есть В 2 , тогда z 2 = a 2 x + b 2 y .

Представление алгоритма

2. На втором этапе находятся α 1 = A 1 (x 0) ˄ B 1 (y 0), α 2 = А 2 (x 0) ˄ В 2 (у 0) и индивидуальные выходы правил:

З. На третьем этапе определяется четкое значение переменной вывода:

Иллюстрирует алгоритм рис. 1.11.

Рис. 1.11. Иллюстрация к алгоритму Sugeno

Алгоритм Larsen

В алгоритме Larsen нечеткая импли-кация моделируется с использованием оператора умножения.

Описание алгоритма

1. Первый этап — как в алгоритме Mamdani.

2. На втором этапе, как в алгоритме Mamdani вначале нахо-дятся значения

α 1 = A 1 (x 0) ˄ B 1 (y 0),

α 2 = А 2 (x 0) ˄ В 2 (y 0),

а затем — частные нечеткие подмножества

α 1 C 1 (z ), a 2 C 2 (z ).

3. Находится итоговое нечеткое подмножество с функцией при-надлежности

μ s (z )= С (z )= (a 1 C 1 (z )) ˅ (a 2 C 2 (z ))

(в общем случае n правил).

4. При необходимости производится приведение к четкости (как в ранее рассмотренных алгоритмах).

Алгоритм Larsen иллюстрируется рис. 1.12.


Рис. 1.12. Иллюстрация алгоритма Larsen

Упрощенный алгоритм нечеткого вывода

Исходные пра-вила в данном случае задаются в виде:

П 1: если х есть A 1 и у есть B 1 , тогда z 1 = c 1 ,

П 2: если х есть А 2 и у есть В 2 , тогда z 2 = с 2 , где c 1 и с 2 — некоторые обычные (четкие) числа.

Описание алгоритма

1. Первый этап — как в алгоритме Mamdani.

2. На втором этапе находятся числа α 1 = A 1 (x 0) ˄ B 1 (y 0), α 2 = A 2 (x 0) ˄ B 2 (y 0).

3. На третьем этапе находится четкое значение выходной пе-ременной по формуле

или — в общем случае наличия n правил — по формуле

Иллюстрация алгоритма приведена на рис. 1.13.


Рис. 1.13. Иллюстрация упрощенного алгоритма нечеткого вывода

Методы приведения к четкости

1. Выше уже был рассмотрен один из данных методов — троидный. Приведем соответствующие формулы еще раз.

Для непрерывного варианта:

для дискретного варианта:

2. Первый максимум (First-of-Maxima). Четкая величина пере-менной вывода находится как наименьшее значение, при котором достигается максимум итогового нечеткого множества, т.е. (см. рис. 1.14а)


Рис. 1.14. Иллюстрация к методам приведения к четкости: α — первый максимум; б — средний максимум

3. Средний максимум (Middle-of-Maxima). Четкое значение находится по формуле

где G — подмножество элементов, максимизирующих С (см. рис. 1.14 б).

Дискретный вариант (если С — дискретно):

4. Критерий максимума (Max-Criterion). Четкое значение вы-бирается произвольно среди множества элементов, доставляющих максимум С, т. е.

5. Высотная дефазификация (Heightdefuzzification). Элементы области определения Ω для которых значения функции принад-лежности меньше, чем некоторый уровень α в расчет не принима-ются, и четкое значение рассчитывается по формуле

где Сα — нечеткое множество α -уровня (см. выше).

Нисходящие нечеткие выводы

Рассмотренные до сих пор нечеткие выводы представляют собой восходящие выводы от предпосылок к заключению. В последние годы в диагностических нечетких системах начинают применяться нисходящие выводы. Рассмотрим механизм подобного вывода на примере.

Возьмем упрощенную модель диагностики неисправности ав-томобиля с именами переменных:

х 1 — неисправность аккумулятора;

x 2 — отработка машинного масла;

y 1 — затруднения при запуске;

y 2 — ухудшение цвета выхлопных газов;

y 3 — недостаток мощности.

Между x i и y j существуют нечеткие причинные отношения r ij = x i y j , которые можно представить в виде некоторой ма-трицы R с элементами r ij ϵ . Конкретные входы (предпо-сылки) и выходы (заключения) можно рассматривать как нечет-кие множества А и В на пространствах X и Y . Отношения этих множеств можно обозначить как

В = А R ,

где, как и раньше, знак «о» обозначает правило композиции не-четких выводов.

В данном случае направление выводов является обратным к направлению выводов для правил, т.е. в случае диагностики име-ется (задана) матрица R (знания эксперта), наблюдаются выходы В (или симптомы) и определяются входы А (или факторы).

Пусть знания эксперта-автомеханика имеют вид

а в результате осмотра автомобиля его состояние можно оценить как

В = 0,9/y 1 + 0,1/у 2 + 0,2/у 3 .

Требуется определить причину такого состояния:

А = a 1 /x 1 + a 2 /x 2 .

Отношение введенных нечетких множеств можно представить в виде

либо, транспонируя, в виде нечетких векторов-столбцов:

При использовании (max-mix)-композиции последнее соотно-шение преобразуется к виду

0,9 = (0,9 ˄ α 1) ˅ (0,6 ˄ α 2),

0,1 = (0,1 ˄ α 1) ˅ (0,5 ˄ α 2),

0,2 = (0,2 ˄ α 1) ˅ (0,5 ˄ α 2).

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

0,9 = 0,9 ˄ α 1 , α 1 ≥ 0,9.

Из второго уравнения получим:

0,1 ≥ 0,5 ˄ α 2 , α 2 ≤ 0,1.

Полученное решение удовлетворяет третьему уравнению, та-ким образом имеем:

0,9 ≤ α 1 ≤ 1,0, 0 ≤ α 2 ≤ 0,1,

т.е. лучше заменить аккумулятор (α 1 — параметр неисправности аккумулятора, α 2 — параметр отработки машинного масла).

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

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

  • 1) существует хотя бы одно правило для каждого лингвистического терма выходной переменной;
  • 2) для любого терма входной переменной имеется хотя бы одно правило, в котором этот терм используется в качестве предпосылки (левая часть правила).

В противном случае имеет место неполная база нечетких правил.

Результатом нечеткого вывода является четкое значение переменной у* на основе заданных четких значений x k , k = 1,..., п.

В общем случае механизм логического вывода включает четыре этапа : введение нечеткости (фазификация), нечеткий вывод, композиция и приведение к четкости, или дефазификация (рис. 6.19).

Рис. 6.19.

Алгоритмы нечеткого вывода различаются главным образом видом используемых правил, логических операций и разновидностью метода дефазификации. Разработаны модели нечеткого вывода Мамдани, Сугено, Ларсена, Цукамото .

База правил имеет следующий вид:


Рис. 6.23.


Рис. 6.24.

Рис. 6.25.

Открытие клапана

  • Круглое В. В., Дли М. И. Интеллектуальные информационные системы: компьютернаяподдержка систем нечеткой логики и нечеткого вывода. М.: Физматлит, 2002.
  • Прикладные нечеткие системы: пер. с япон. / К. Асам [и др.) ; под ред. Т. Тэрано. М. :Мир, 1993.

Практические занятия по дисциплине «Экспертные системы»

Учебный год, осенний семестр

Занятие 1. Логический вывод в продукционных системах

Пример 1 . Имеется фрагмент базы знаний из двух правил:

П1: Если (отдых – летом) и (человек – активный)

то (ехать в горы)

П2: Если (любит – солнце)

то (отдых – летом)

Предположим, в систему поступили данные - (человек­ – активный) и (любит – солнце).

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

1-й проход.

Шаг 1. Пробуем П1, не работает (не хватает данных (отдых–летом)).

Шаг 2. Пробуем П2, работает, в базу поступает факт (отдых–летом).

2-й проход.

Шаг 3. Пробуем П1, работает, активируется цель (ехать в горы), которая и выступает как вывод.

Обратный вывод - подтвердить выбранную цель при помощи имеющихся правил и данных.

1-й проход.

Шаг 1. Цель - (ехать в горы): пробуем П1 - данных (отдых– летом) нет, они становятся новой целью, и ищется правило, где она в правой части.

Шаг 2. Цель (отдых – летом): правило П2 подтверждает цель и активирует ее.

2-й проход.

Шаг 3. Пробуем П1, подтверждается искомая цель.

Пример 2. БЗ ЭС, характеризующей состояние на бирже.

· ЕСЛИ Процентные ставки падают , ТО Уровень цен на бирже растет .

· ЕСЛИ Процентные ставки растут , ТО Уровень цен на бирже падает .



· ЕСЛИ Валютный курс доллара падает , ТО Процентные ставки растут .

· ЕСЛИ Валютный курс доллара растет , ТО Процентные ставки падают .

· ЕСЛИ Процентные ставки федерального резерва падают И Средства федерального резерва добавлены , ТО Процентные ставки падают .

Валютный курс доллара падает. Определить уровень цен на бирже.

Пример 3. Разработать правила для базы знаний экспертной системы, консультирующей директора при приеме на работу нового сотрудника, используя показанную на рис. 1 семантическую сеть. В вершинах сети указаны коэффициенты уверенности в наступлении события.

Пример 4. Разработать правила для базы знаний экспертной системы, консультирующей клиента при покупке квартиры, используя указанные критерии и цели.

Критерии: дата постройки дома; состояние жилья (необходимость ремонта); район, где находится квартира; экологическая обстановка в районе; расстояние от остановки общественного транспорта; стоимость квартиры.

Цели: квартира хорошая и полностью вас удовлетворяет; квартира удовлетворительная, хотя и имеет целый ряд недостатков; квартира вам не подходит.

Пример 5. Разработать дерево решений для базы знаний экспертной системы, консультирующей клиента при покупке автомобиля, используя указанные критерии и цели.

Критерии: марка автомобиля (напр., ВАЗ, Audi, BMW, Renault, Subaru, Honda), год выпуска, цена, кол-во передач, объем двигателя, кол-во дверей, расход топлива.

Цели: выбор автомобиля.


Занятие 2. Обработка знаний с применением теории нечетких множеств

Вариант 1

Пример 1. Разработка системы нечеткого вывода (СНВ)

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

Этап 1. Создадим структуру СНВ: два входа, механизм нечеткого вывода по Мамдани, один выход. Объявляем первую переменную как discont, а вторую - period, которые соответственно будут представлять ставку дисконтирования и период окупаемости бизнес-проекта. Наименование выходной переменной, на основании которой принимается решение о степени инвестиционной привлекательности бизнес-проекта, задается как rate.

Этап 2. Каждой входной и выходной переменной поставим в соответствие набор функций принадлежности (ФП). Для discont определяем диапазон базовой переменной от 5 до 50 (единица измерения - проценты). Такой же диапазон выбираем для ее отображения. Добавим три ФП, тип которых - треугольные нечеткие числа (trimf). Для лингвистической переменной "ставка дисконтирования» discont определим значениятермов: “небольшая”, “средняя” и “большая” (small, middle, large ).

Для лингвистической переменной period диапазон базовой переменной определен равным (единица измерения - месяцы), термам переменной снаименованиями: “короткий”, “обычный”, “длительный” срок окупаемости (short, normal, long) поставлены в соответствие три ФП типа гауссиан (gaussmf) . Для выходной переменной rate определяем: диапазон базовой переменной равен , термины “плохой”, “обычный”, “хороший” (bad, normal, good) описываются тремя ФП типа trimf

Этап 3 . Определим набор правил вида ЕСЛИ…ТО, которые задают связь входных переменных с выходными (сделать самостоятельно). Например, правило

ЕСЛИ discont=small И period-short ТО rate=good

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

Задание : определить степень инвестиционной привлекательности проектас даннымиоставке дисконтирования discont=15%, периодеокупаемости бизнес-проекта period= 10месяцев.