﻿ Game Development

Free JavaScript Editor     Ajax Editor ﻿

Main Page

Fuzzy Logic

We've seen that fuzzy sets can be used to convert crisp values to fuzzy values, and vice versa, but we don't need sets to manipulate fuzzy values together. So how do we perform operations on fuzzy values? Cue fuzzy logic.

Operators

The concepts of fuzzy logic are similar to those used in fuzzy set theory—but much simpler. Once again, min/max are used as operators to replace the logical operands AND/OR. The basic operators in fuzzy predicate logic are defined in Table 30.3.

Table 30.3. Fuzzy Operators with Their Corresponding Notation from Boolean Logic, and the Equations Used to Compute the Resulting Fuzzy Value

Operator

Notation

Equation

NOT

¬

1-x

AND

MIN(x,y)

OR

MAX(x,y)

IMPLIES

MAX(1-x,y)

MAX(0,x+y-1)

Fuzzy implication has been defined in different ways, because each alternative has analogies with its Boolean counterpart. All these operators can naturally be combined with each other to produce compound expressions.

Linguistic Expressions

In fuzzy logic, compound expressions correspond to intuitive statements in natural languages (such as English). This is one of the reasons why it's relatively easy for experts to translate their knowledge into fuzzy form, as shown in Table 30.4.

Linguistic expressions can be seen as a set of fuzzy values combined with fuzzy operators. Linguistic modifiers can also be used to change the meaning of fuzzy values (for instance, extremely, slightly), as discussed for fuzzy set theory.

Table 30.4. Some English Statements and Their Corresponding Fuzzy Expressions Using Fuzzy Values, Operators, and Modifiers

Statement

Expression

Dead or alive

d a

Extremely nasty and more or less dead

Shot and bleeding badly implies dying

s b2 d

Converting plain English to fuzzy linguistic expressions can present its challenges. It's obvious that most adjectives correspond to fuzzy values. However, assigning a meaning to the adverbs can be tricky; how do we define bleeding badly in terms of bleeding? In this case, badly is clearly a modifier. Finding an equation to match the meaning of a modifier is not as intuitive as writing English, so this often requires a knowledge engineer.

Objections to Fuzzy Logic

The set theory behind fuzzy logic is still somewhat controversial—especially within the classical logic community. It may seem obvious why we need fuzzy values with degrees of membership, but couldn't this be modeled using "standard" mathematical concepts?

For this reason, fuzzy researches have put a lot of effort into justifying the difference between fuzziness and probability. They are indeed similar, but there are conceptual differences. Fuzziness is in fact deterministic uncertainty. A fuzzy value measures the degree to which a statement is true. Probability expresses the likelihood of it being either true or false.

Another major problem with fuzzy theory is the apparent inconsistency. For example, given a smooth membership function for skilled gamers, the fuzzy set of gamers that are skilled and not skilled is not empty! There are formal explanations for this; it's because of assumptions from Boolean logic that do not apply to fuzzy logic. The nature of the fuzzy operators is to blame, but choosing anything else but MIN/MAX raises other consistency problems.

Regardless, it seems somewhat ironical for a theory that prides itself on intuitiveness (and similarities with human reasoning) to be logically inconsistent on such simple examples. Despite these flaws, however, fuzzy logic does appear to model human knowledge and reasoning better.

Luckily for fuzzy researchers, fuzzy logic has proven itself extremely successful as a control mechanism (somewhat unexpectedly). Practical applications span numerous domains, from pattern recognition to data mining, including regression and control systems, or even function approximation.

However, some systems use some important simplifications of the "fuzzy" theory (for instance, using Boolean outputs directly). This implies that the entire reasoning just collapses to standard logic. This happens regularly in game AI engines; fuzziness is used as a concept, but the fuzzy logic is simplified to crisp levels for efficiency [Alexander02].

﻿

Ajax Editor     JavaScript Editor