The sensations in Chapter 39 were defined with a standard finite-state automaton. This caused problems by defining the sensations as Boolean values. This section extends the emotions with a fuzzy representation, and models sensations from sources other than the environment (for instance, from feelings and emotions).
Although perceptions are often the primary cause of changes in emotions, other aspects of the creature's state also cause mood alterations. The same concept of sensations can be applied to detect patterns in the emotions and feelings as well.
The source of the sensations can be fuzzy as well as crisp values. The stimuli and the feelings are in fact interpreted as Booleans. Emotions are also considered as fuzzy values in the next section. All these types are handled indiscriminately, resulting in fuzzy sensations that change smoothly over time. Note that at least some of the transition values need to be fuzzy; otherwise, the model becomes a particularly inefficient crisp FSA.
In essence, the following sources influence the sensations:
The sensations used in this model are defined in Table 37.1 of Chapter 37. They are surprise, anticipation, disgust, attraction, confusion, discovery, pain, and pleasure. These sensations are modeled as fuzzy states of an automaton, very similar to the crisp counterpart in Figure 39.2 (refer to Chapter 39). Other intermediate states are also fuzzy variables.
The influences—whether from perceptions, emotions, or feelings—are considered as transitions in the fuzzy FSA (FFSA). These are handled indiscriminately by the automata, mostly passed by messages rather than queried.
Preventing Degenerate Automata
The crisp version of this automaton is fully event driven. The active state changes when matching stimuli are observed. When an accepting state is reached, the FSA is automatically reset. There are a few problems with this approach in the fuzzy model that stem from the simulation itself; all the states have degrees of membership, and need to be considered at all times. This implies that all the transitions need to be considered simultaneously, too. We need to take a few precautions with the FFSA version to ensure correct functioning (for instance, that the fuzzy values won't all become 0). It's possible to do the following:
Given these either of these solutions, the FFSA can be updated when a matching event is received. The asynchronous approach can be somewhat inconsistent (because the result depends on the messages received), so a synchronous approach seems a viable alternative. In this case, the transition strengths are determined over a small period of time (using messages), but the FFSA is simulated at regular intervals.