Что такое нечеткая логика
Date: 15-APR-93
Fuzzy logic is a superset of conventional (Boolean) logic that has been extended to handle the concept of partial truth -- truth values between "completely true" and "completely false". It was introduced by Dr. Lotfi Zadeh of UC/Berkeley in the 1960's as a means to model the uncertainty of natural language. (Note: Lotfi, not Lofti, is the correct spelling of his name.)
Нечеткая логика - надмножество стандартной (Булевой) логики, которая была расширена до понятия частичной правды - значения истинности между "полностью истинный" и "полностью ложный". Это было представлено доктором Лотфи Заде из UC/Berkeley в 1960-ых как способ моделирования неопределенность естественного языка. (Примечание: Lotfi, не Lofti, является правильным правописанием его имени.)
Zadeh says that rather than regarding fuzzy theory as a single theory, we should regard the process of ``fuzzification'' as a methodology to generalize ANY specific theory from a crisp (discrete) to a continuous (fuzzy) form (see "extension principle" in [2]). Thus recently researchers have also introduced "fuzzy calculus", "fuzzy differential equations", and so on (see [7]).
Заде говорит, что не надо оценивать нечеткую теорию как одиночную теория. Мы должны расценить процесс "нечеткости" как методологию. Чтобы обобщить ЛЮБУЮ специфическую теорию из четкого(дискретного) к непрерывной (нечеткой) форме (см. " принцип расширения " в [2]). Таким образом недавно исследователи также представили "нечеткое вычисление", "нечеткие дифференциально-разностные уравнения", и так далее (см. [7]).
Fuzzy Subsets:
Just as there is a strong relationship between Boolean logic and the concept of a subset, there is a similar strong relationship between fuzzy logic and fuzzy subset theory.
Нечеткие Подмножества:
Точно как имеется сильная связь между Булевой логикой и понятием подмножества, имеется подобная сильная связь между нечеткой логикой и нечеткой теорией подмножеств.
In classical set theory, a subset U of a set S can be defined as amapping from the elements of S to the elements of the set {0, 1},
В классической теории множеств, подмножество U множества S
может быть определено как отображение элементов S в элементы множества {0, 1},
U: S --> {0, 1}
This mapping may be represented as a set of ordered pairs, with exactly one ordered pair present for each element of S. The first element of the ordered pair is an element of the set S, and the second element is an element of the set {0, 1}. The value zero is used to represent non-membership, and the value one is used to represent membership. The truth or falsity of the statement
Это отображение может представляться как множество упорядоченных пар, где каждая упорядоченная пара, представленна для каждого элемента S. Первый элемент упорядоченной пары - элемент множества S, и второй элемент - элемент множества {0, 1}. Нулевое значение используется, чтобы представить не-принадлежность, и значение один используется, чтобы представить принадлежность. Правду или ложность утверждения
x is in U
is determined by finding the ordered pair whose first element is x. The statement is true if the second element of the ordered pair is 1, and the statement is false if it is 0.
определяется, находя упорядоченную пару, чьей первый элемент является x. Утверждение истинно, если второй элемент упорядоченной пары 1, и утверждение ложно, если он 0.
Similarly, a fuzzy subset F of a set S can be defined as a set of ordered pairs, each with the first element from S, and the second element from the interval [0,1], with exactly one ordered pair present for each element of S. This defines a mapping between elements of the set S and values in the interval [0,1]. The value zero is used to represent complete non-membership, the value one is used to represent complete membership, and values in between are used to represent intermediate DEGREES OF MEMBERSHIP. The set S is referred to as the UNIVERSE OF DISCOURSE for the fuzzy subset F. Frequently, the mapping is described as a function, the MEMBERSHIP FUNCTION of F.
The degree to which the statement
Точно так же, нечеткое подмножество F множества S может быть определено как набор упорядоченных пар, с первым элементом из S, и вторым элементом из интервала [0,1], и точно одна упорядоченная пара, представленна для каждого элемента S. Это определяет отображение между элементами множества S и оценивает в интервале [0,1]. Нуль значение используется, чтобы представить полную не-принадлежность, значение один используется, чтобы представить полную принадлежность, и значения между ними используются, чтобы представить промежуточные СТЕПЕНИ ПРИНАДЛЕЖНОСТИ. Множество S упоминается как ОБЛАСТЬ ИССЛЕДОВАНИЯ для нечеткого подмножества F. Часто, отображение описывается как функция, ФУНКЦИЯ ПРИНАДЛЕЖНОСТИ F. Степень, с которой утверждение
x is in F
is true is determined by finding the ordered pair whose first element is x. The DEGREE OF TRUTH of the statement is the second element of the ordered pair.
является истинным, определяется, находя упорядоченную пару, чьим первым элементом является x. СТЕПЕНЬ ПРАВДЫ утверждения - второй элемент упорядоченной пары.
In practice, the terms "membership function" and fuzzy subset get used interchangeably.
Практически, термины "функция принадлежности" и нечеткое подмножество становят взаимозаменяемы.
That's a lot of mathematical baggage, so here's an example. Let's talk about people and "tallness". In this case the set S (the universe of discourse) is the set of people. Let's define a fuzzy subset TALL, which will answer the question "to what degree is person x tall?" Zadeh describes TALL as a LINGUISTIC VARIABLE, which represents our cognitive category of "tallness". To each person in the universe of discourse, we have to assign a degree of membership in the fuzzy subset TALL. The easiest way to do this is with a membership function based on the person's height.
Достаточно математики, рассмотрим пример.
Поговорим относительно людей и из "роста". В этом случае множество S (область исследования) - множество людей. Давайте, определим нечеткое подмножество РОСТ (TALL), которое отвечает на вопрос "в какой степени персона x высока?" Заде описывает РОСТ как ЛИНГВИСТИЧЕСКУЮ ПЕРЕМЕННУЮ, которая представляет наш класс распознавания "роста". Каждому человеку в области исследования, мы должны назначить степень принадлежности в нечетком подмножестве РОСТА. Самый простой способ сделать это - функция принадлежности, основанная на росте человека.
рост(x) = { 0, если высота(x) < 150 см.,
(высота(x)-5ft.)/2ft., если 150 см <= высота (x) <= 210 см,
1, если высота(x) > 210 см. }
На диаграмме:
1.0 + +-------------------
| /
| /
0.5 + /
| /
| /
0.0 +-------------+-----+-------------------
| |
150 210
высота, см. ->
Для примера несколько значений:
Человек Высота степень роста
--------------------------------------
Billy 95 0.00 [Я думаю]
Yoke 163 0.21
Drew 173 0.38
Erik 175 0.42
Mark 182 0.54
Kareem 215 1.00 [зависит от того кого вы спрашивате]
Expressions like "A is X" can be interpreted as degrees of truth, e.g., "Drew is TALL" = 0.38.
Выражения подобно "А из X" может интерпретироваться как степень правды, например, "Drew, ВЫСОК" = 0.38.
Note: Membership functions used in most applications almost never have as simple a shape as tall(x). At minimum, they tend to be triangles pointing up, and they can be much more complex than that. Also, the discussion characterizes membership functions as if they always are based on a single criterion, but this isn't always the case, although it is quite common. One could, for example, want to have the membership function for TALL depend on both a person's height and their age (he's tall for his age). This is perfectly legitimate, and occasionally used in practice.
It's referred to as a two-dimensional membership function, or a "fuzzy relation". It' s also possible to have even more criteria, or to have the membership function depend on elements from two completely different universes of discourse.
Обратите внимание: функции принадлежности, используемые в большинстве приложений почти никогда не имеют такую простою форму, как рост(x). Минимум, они имеют тенденцию, чтобы быть треугольниками, и они могут быть намного более комплексными, чем в примере ( прим. перев. вообще-то и в примере не все верно, так понятие "высокости" человека зависит от множества факторов и точно не линейно, примером могут служить топ - модели). Также, обсуждение символических функций принадлежности, как будто они всегда основаны на одиночном критерии, но это не всегда имеет место, хотя это совершенно общее. Можно было, например, хотеть иметь функцию принадлежности для РОСТА, в зависимости, и от высоты человека, и от его возраста (он высок для его возраста). Это совершенно законно, и иногда использовано практически. Это упоминается как двумерная функция принадлежности, или "нечеткое соотношение". Также возможно иметь даже большее количество критериев, или иметь функцию принадлежности зависящую от элементов из двух полностью различных областей исследования.
Logic Operations:
Now that we know what a statement like "X is LOW" means in fuzzy logic, how do we interpret a statement like
Логические Операции:
Теперь, когда мы знаем то, что утверждение подобно "X - НИЗКИЙ" обозначает в нечеткой логике, как мы интерпретируем утверждение подобно
X is LOW and Y is HIGH or (not Z is MEDIUM)
X НИЗКИЙ, и Y ВЫСОКИЙ, или (не Z - СРЕДНИЙ)
The standard definitions in fuzzy logic are:
Стандартные определения в нечеткой логике:
truth (not x) = 1.0 - truth (x)
truth (x and y) = minimum (truth(x), truth(y))
truth (x or y) = maximum (truth(x), truth(y))
правда (не x) = 1.0 - правда(x)
правда (x и y) = minimum (правда(x), правда(y))
правда (x или y) = maximum (правда(x), правда(y))
Some researchers in fuzzy logic have explored the use of other interpretations of the AND and OR operations, but the definition for the NOT operation seems to be safe.
Некоторые исследователи по нечеткой логике ииследовали использование других интерпретаций операций AND и OR, но определение для операции NOT, кажется, безопасное.
Note that if you plug just the values zero and one into these definitions, you get the same truth tables as you would expect from conventional Boolean logic. This is known as the EXTENSION PRINCIPLE, which states that the classical results of Boolean logic are recovered from fuzzy logic operations when all fuzzy membership grades are restricted to the traditional set {0, 1}. This effectively establishes fuzzy subsets and logic as a true generalization of classical set theory and logic. In fact, by this reasoning all crisp (traditional) subsets ARE fuzzy subsets of this very special type; and there is no conflict between fuzzy and crisp methods.
Обратите внимание, что, если Вы используете только значения нуля и единицы в этих определениях, Вы получаете те же самые таблицы истинности, какие Вы ожидали бы от стандартной Булевой логики. Это известно как ПРИНЦИП РАСШИРЕНИЯ, который заявляет, что классические результаты Булевой логики повторяют нечеткие логические операции, когда все нечеткие степени принадлежности ограничены традиционным множеством {0, 1}. Это действительно устанавливает нечеткие подмножества и логику как истинное обобщение классической теории множеств и логики. Фактически, с этим рассуждением все четкие (традиционные) подмножества это нечеткие подмножества, но очень специального типа; и не имеется никакого конфликта между нечеткими и четкими методами.
Some examples -- assume the same definition of TALL as above, and in addition, assume that we have a fuzzy subset OLD defined by the membership function:
В некоторых примерах имеется то же самое определение РОСТА как выше, и кроме того, принимается, что имеется нечеткое подмножество СТАРОСТЬ определенное функцией принадлежности:
old (x) = { 0, if age(x) < 18 yr.
(age(x)-18 yr.)/42 yr., if 18 yr. <= age(x) <= 60 yr.
1, if age(x) > 60 yr. }
старость(x)={ 0, если возраст(x) < 18 лет
возраст(x)-18лет)/42 , если 18 <= возраст(x) <= 60
1, если возраст(x) > 60 }
And for compactness, let
И для компактности
a = X is TALL and X is OLD
b = X is TALL or X is OLD
c = not (X is TALL)
a = X - ВЫСОКИЙ и X - СТАРЫЙ
b = X - ВЫСОКИЙ или X - СТАРЫЙ
c = не (X - ВЫСОКИЙ)
Then we can compute the following values.
Затем мы можем вычислять следующие значения.
рост возраст X - ВЫСОКИЙ X - СТАРЫЙ a b c
------------------------------------------------------------------------
95 65 0.00 1.00 0.00 1.00 1.00
163 30 0.21 0.29 0.21 0.29 0.79
173 27 0.38 0.21 0.21 0.38 0.62
175 32 0.42 0.33 0.33 0.42 0.58
182 31 0.54 0.31 0.31 0.54 0.46
215 45 1.00 0.64 0.64 1.00 0.00
100 4 0.00 0.00 0.00 0.00 1.00
An excellent introductory article is:
Превосходная вводная статья:
Bezdek, James C, "Fuzzy Models --- What Are They, and Why?", IEEE
Transactions on Fuzzy Systems, 1:1, pp. 1-6, 1993.
For more information on fuzzy logic operators, see:
Для подробной информации относительно нечетких логических операторов, см.:
Bandler, W., and Kohout, L.J., "Fuzzy Power Sets and Fuzzy Implication
Operators", Fuzzy Sets and Systems 4:13-30, 1980.
Dubois, Didier, and Prade, H., "A Class of Fuzzy Measures Based on
Triangle Inequalities", Int. J. Gen. Sys. 8.
The original papers on fuzzy logic include:
Первоначальные статьи по нечеткой логике:
Zadeh, Lotfi, "Fuzzy Sets," Information and Control 8:338-353, 1965.
Zadeh, Lotfi, "Outline of a New Approach to the Analysis of Complex
Systems", IEEE Trans. on Sys., Man and Cyb. 3, 1973.
Zadeh, Lotfi, "The Calculus of Fuzzy Restrictions", in Fuzzy Sets and
Applications to Cognitive and Decision Making Processes, edited
by L. A. Zadeh et. al., Academic Press, New York, 1975, pages 1-39.