Решение задач нечёткой логики в среде mathcad

Евсюкова Елена Александровна
доцент,

Лиепайский филиал
Рижского технического университета,

ул. Ванес, 4, г. Лиепая, LV-3405, Латвия, (371)29417395
jelena.jevsjukova@rtu.lv

Аннотация

В данной статье описан метод, который можно использовать для решения задач нечёткой логики и теории нечётких множеств в рамках спецкурсов по математике. Метод можно применять в ситуациях, когда на изучение основ теории нечётких множеств и нечёткой логики выделяется небольшое количество контактных часов. Предлагаемое для решения этих задач программное обеспечение (MATHCAD) не требует дополнительного времени на изучение интерфейса и освоение основных принципов работы, что позволяет уделить больше учебного времени на изучение основного материала. В статье описаны способы определения нечётких множеств с помощью матриц, что позволяет успешно решать названные выше задачи в среде MATHCAD. Описанный метод является разработкой автора статьи.

The paper describes the technique which can be used for solving tasks of the fuzzy sets theory and fuzzy logic in special courses of mathematics, if these courses provide studying of basics of the theory of fuzzy sets and fuzzy logic. The technique may be used in cases where the curriculum does not include the large number of lessons for the study of the above-mentioned topics. The offered software for solving of tasks (MATHCAD) does not demand additional time for mastering of its interface and working methods. This allows devoting of more time for studying the basic material. The paper describes methods for definition of fuzzy sets using arrays. It allows successful solving of the above-mentioned tasks in the environment MATHCAD. The described method is developed by the author of paper.

 

Ключевые слова

нечёткое множество, операции нечёткой логики, отношения нечёткой логики, лингвистические переменные

fuzzy set, fuzzy logic operations, fuzzy logic relations, linguistic variables

Введение

Нечёткая логика является обобщением традиционной Аристотелевой логики для случая, когда истинность рассматривается как лингвистическая переменная, которая может принимать значения такого типа, как «очень истинно», «более-менее истинно», «не очень ложно» и т.п. [1]. Такие лингвистические значения интерпретируются в виде нечётких множеств [2].

Проблема, выдвинутая автором статьи, связана с выбором средств для решения задач практического характера. Для решения названных задач достаточно широко и успешно используются такие среды, как MATLAB и fuzzyTECH, позволяющие строить нечёткие модели систем в технике и экономике [3]. Но в рамках небольших спецкурсов по математике их использование становится нецелесообразным, т.к. требуется дополнительное время для изучения и освоения самих этих средств.

В качестве решения указанной проблемы автор статьи предлагает такие методы решения задач нечёткой логики, которые позволяют использовать распространённый и популярный программный продукт MATHCAD [4].

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

Операции нечёткой логики

В теории нечёткой логики особое место занимает лингвистическая переменная «истинность». В традиционной логике переменная этого типа может принимать только одно из двух значений: «истина» или «ложь». В нечёткой логике истинность определяют аксиоматически, причём различные авторы делают это по-разному. Для определения лингвистической переменной «истинность» в качестве универсального множества используется интервал [0, 1]. Например, Балдвин [5] предлагает для определения значений переменных «истина» и «ложь» использовать следующие функции принадлежности:  

m „истина”(u) = u,    m„ложь” (u) = 1-u,  где  uÎ[0,1]                                              (1)

 

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

            m”очень ложно”(u) = (m”ложно”(u))2

            mболее-менее ложно(u) = (m”ложно”(u))1/2                                                   (2)

            mболее-менее истинно(u) = (m”истинно”(u))1/2

            m”очень-очень истинно”(u) = (m”очень истинно”(u))2 = (m”истинно”(u))4

 

Функции принадлежности термов, определённые по формулам (2), изображены на рисунке 1.

Рис. 1. Лингвистическая переменная «истинность» по определению Балдвина

Обозначим через Ã и  две нечёткие логические переменные, а их функции (или степени) принадлежности –  и  соответственно, где uÎ[0,1]. Операции нечёткой конъюнкции  (ANDÙ), дизъюнкции (ORÚ), отрицания (NOT) и импликации (Þ) выполняются по следующим правилам:

 

                               

                                                                                           (3)

                               

                               

 

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

 

Пример 1.               Даны две переменные нечёткой логики:

 

  и     

 

 

                                Найти .

 

Примечание: здесь и далее для упрощения ввода данных в среде MATHCAD символ тильда (~) в обозначениях нечётких переменных будет опущен.

 

Матрицы, определяющие значения A un B, показаны на рисунке 2.


Рис. 2. Матрицы, определяющие нечёткие логические переменные A и B

 


Далее, используя формулы (1) и (3), можно определить значения   (рис.3) и  (рис. 4). Затем следует вычисление значений конечного результата (рис. 5), которые, в случае необходимости, можно интерполировать (рис. 6).

Рис. 3. Определение значения

Рис. 4. Определение значения

 


Рис. 5. Вычисление значений конечного результата


 

Рис. 6. Интерполяция конечного результата

 

Нечёткая база знаний

Нечёткой базой знаний называют совокупность нечётких правил «Если – то», определяющих взаимосвязи между входами и выходами изучаемого объекта. Обобщённый формат таких нечётких правил выглядит следующим образом:

 

если <посылка правила>, то <заключение правила>

 

Посылка правилa (или антецедент) задаётся выражением типа «Х есть <значение>, где <значение> является термом (лингвистической переменной), заданной в виде нечёткого множества на универсальном множестве лингвистической переменной Х. Для модификации термов антецедента используют квантификаторы «очень», «почти», «более-менее» и т.п. Заключение правила или следствие задаётся выражением типа «Y есть <значение>, где значение выходной переменной может быть задано в виде терма, класса решений, чёткой константы или функции от входной переменной.

Если значение входной переменной правила задано в виде нечёткого множества, то само правило можно представить в виде нечёткого отношения. Для нечёткого правила «Если Х есть Ã, то Y есть» нечёткое отношение  задаётся на декартовом произведении Ux´Uy, где Ux (Uy) – универсальное множество входной (выходной) переменной.

Для расчёта нечёткого отношения могут быть применены импликация и t-норма. Если, например, в качестве t-нормы использовать операцию нахождения минимума, то нечёткое отношение  рассчитывается следующим образом:

 

                                                (4)

 

Пример 2. Нечёткая база знаний описывает зависимость между возрастом человека (V1) и возможностью устроиться на работу в условиях кризиса (V2):

                                Если V1 = молодой, то V2 = низкая

                                Если V1 = средний, то V2 = высокая

                                Если V1 = старый или молодой, то V2 = не очень высокая

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

Рис. 7. Функции принадлежности термов возраста

 

Рис. 8. Функции принадлежности термов возможности устройства на работу

 


Рис. 9. Отношение «Если V1 = молодой, то V2 = низкая»

Рис. 10. Отношение «Если V1 = средний, то V2 = высокая»

 

 

 

 

 

 

 

 

 


Рис. 11. Отношение «Если V1 = старый или молодой, то V2 = не очень высокая»

Заключение

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

Литература

1.       Zadeh L. A. The concept of a linguistic variable and its application to approximate reasoning III. // Information Sciences, vol. 9. 1976, - pp. 43-80.

2.       Klir G.J., St Clair U.H., Yuan B. Fuzzy set theory: foundations and applications. - Englewood Cliffs, NJ, Prentice Hall, 1997.

3.       Baldwin J.F.. Fuzzy logic and fuzzy reasoning. - London, Academic Press, 1981.

4.       Леоненков А.В. Нечеткое моделирование в среде MATLAB и fuzzyTECH. - СПб., БХВ-Петербург, 2005. - 736 с.

5.       Евсюкова Е. Использование MATHCAD для решения фазилогических задач // Проблемы современного образования. Труды межвузовской научно-практической и учебно-методической конференции. Rīga: TSI, 2009. – с. 19-24 (на латышском языке)