
For over a year now, this column has focused on the rule base, currently the dominant system architecture that uses fuzzy logic. We will be expanding our repertoire by looking at a number of important but less-used fuzzy architectures. Before doing so, however, well return to the classroom for two more tutorial sessionsthis month on fuzzy operators and next month on hedges.
To start in what should be comfortable territory, consider (x>3) as a Boolean expression. The expression is TRUE for all x greater than 3 and FALSE for all x less than or equal to 3. In software, having evaluated this expression for a given value of x, you can use the resulting Boolean value to, for example, control the flow of a program, as in if x is greater than 3, do this; otherwise, do that.
An example of a fuzzy (as opposed to Boolean) expression is
speed IS fast
The principal operator is the fuzzy equality operator, IS. In most fuzzy systems, speed will be a crisp value that is often measuredfor example, 55 mph. The term fast is a fuzzy value or set, represented by a membership function. And while evaluating a Boolean expression results in one of two values,TRUE or FALSE, the value of a fuzzy expression is the degree to which the relationship is true. This is called the truth value, and it ranges in value from 0 to 1.
Although seemingly straightforward, this concept bears repeating. Just as an evaluated Boolean expression results in a Boolean truth value, either TRUE or FALSE, an evaluated fuzzy expression results in a fuzzy truth value, µ, which ranges 0[is less than or equal to]µ[is less than or equal to]1. This truth value is obtained by solving the membership function (in the example, the function that represents fast) for the specific input value (in the example, a specific crisp value of speed). This step is often called fuzzification and is shown in Figure 1.
Whereas a Boolean value is used either to perform or not perform an action, the fuzzy truth value (the degree to which the fuzzy relational expression is true) indicates the strength with which some action is executedranging from not at all for µ=0 to fully for µ=1. In a rule base, this is done by using fuzzy expressions as the antecedents (conditions) of the rules, as Ive shown in previous columns.
Although single fuzzy expressions are used in system design, we must also be able to combine expressions using logic operators. For example, we might want to expand the single-termed expression speed IS fast into the multiple-termed expression:
[(speed IS fast) AND (acceleration IS low)] OR (road IS NOT rough)
Doing this is not comparing apples and oranges! An often-asked question is, How can you logically combine expressions containing dissimilar variables? The answer: You are not combining the variables; you are combining the degrees to which each individual expression is true. Just as Boolean variables can be combined using Boolean combinatorial operators, fuzzy truth values are combined using fuzzy combinatorial operators.
Lotfi Zadeh proposed the original fuzzy operator set as follows (although not combinatorial, I will also throw in Zadehs NOT operator):
The Zadeh operators are easy to implement and are widely used. However, AND and OR suffer from a shortcoming: At any given point in the input space, the result of the operation depends on only one of potentially many operands. For example, in a three-input system, if µA= 0.2, the expression (µA AND µB AND µC) has the same result (0.2) for all µB and µC in the range 0.2[is less than or equal to] (µB, µC) [is less than or equal to] 1. While in this range, neither µB nor µC has any effect on the result.
Largely to provide for an effect on the result by nonparticipating operands, a number of other AND and OR operators have been proposed. Well discuss two pairs. (I have also seen other NOT operator definitions, but, except for a few philosophers, most users are completely satisfied by the 1 µ definition.)
One pair of operators is the same one used for combining probabilities and is therefore called the probability-product and probability-sum operators (or just the product and sum operators, for short) for AND and OR, respectively. These are defined as
These operators are also easy to implement, although, in some small processors, the multiply may be prohibitive.
Another operator pair suggested by Ron Yager, a professor at Iona College, is given by
For both expressions,
0 < w < [infinity]I have a special attachment for the Yager operators, actually the Yager-2 operators (where w=2 in the above expressions). I discovered them on my own when, before reading Yagers work, I figured that an rss (root-sum-square) approach to the AND function might be valid and then determined what the complementary OR function must be.
Figure 2 shows how these three operator setsZadeh, product/sum, and Yagerrelate to each other.
When do you use one operator set in place of another? This depends entirely on your personal style and system requirements. In a future column, Ill discuss using fuzzy logic in combining evidence, and will use both the Zadeh and the Yager operators. In most systems, I use either Zadeh operators or, if multiplies are not important (which they often are in embedded systems), the product/sum operators.
There are two more single-operand operator sets to present. These are unique to fuzzy logic and are called concentration and dilation operators. A concentration operator concentrates or compresses a membership function, and a dilation operator dilates or expands the function. In most texts, the principal concentration and dilation operators are defined as
Figure 3 shows a rather standard membership function, having been concentrated and dilated both once and twice.
When would you use either dilation or concentration? Watch for the next column when we discuss fuzzy hedges.
As always, your comments and questions are welcome.
| Dr David Brubaker is a consultant in fuzzy-system design. You can reach him at Huntington Advanced Technology, 883 Santa Cruz Ave, Suite 31, Menlo Park, CA 94025-4608 or on the Internet at: brubaker@cup.portal.com. |