Number 22 February 17,1992 The Huntington Technical Brief By David Brubaker Ph.D. Dynamic Extent of Fuzzy Variables --------------------------------- INTRODUCTION Largely because fuzzy rule-based systems are in their infancy, those active in the field are still discovering new and powerful variations on the basic structure. On two projects in the past few months I have had need of a capability not yet found in the available fuzzy tools, being able to dynamically modify the extent associated with a given fuzzy variable. A fuzzy variable's extent is the range over which it can vary. Extent modification falls into two categories: a one-time only modification during system initialization, called DEFINED EXTENT; and ongoing repetitive modification during system operation - CONTROLLED EXTENT. EXTENT The extent of a fuzzy variable is described by three parameters: a minimum value, a maximum value, and a density function. These are the crisp boundary values of the variable. The density function is a little more complex and will be discussed later in this brief. A fuzzy variable's extent can be operated upon. Three operations provide a basic set: SHIFT, EXPANSION, and COMPRESSION. An extent is SHIFTED when the positions of its minimum and maximum values change, but the distance between them does not. An extent is EXPANDED when the distance between minimum and maximum values is greater than that of the original function. The expansion can be about any point within the extent, although will typically be defined either about the center point or one of the end points. An extent is COMPRESSED when the distance between minimum and maximum is less than that of the original function. Either expansion or compression can be combined with shifting. An extent's density function has to do with expansion and compression. If density is uniform, when either expansion or compression occurs, the lateral dimensions of all features within the extent (that is, the membership functions) will change in proportion to the change in the extent. If the density function is non-uniform, the lateral dimensions of some regions of the extent will change differently than those of others. Using a non-uniform density function allows emphasizing portions of the fuzzy variable, for example around a crisp value of importance. The extent of a fuzzy variable is implicitly defined as part of the system design process, during membership function definition, and is therefore static. Static extent definition can be thought of as occurring at compile time. The need can arise, however, for dynamic extent definition, and this can occur either once, during initialization (DEFINED EXTENT) or on an ongoing basis, during runtime (CONTROLLED EXTENT). DEFINED EXTENT - Defined extent occurs when minimum and maximum values are defined during the initialization sequence. The resulting fuzzy variable and its membership functions can potentially be both shifted and expanded or compressed. In its simplest form, and with definition of minimum and maximum values only, a uniform extent density is assumed. Defined extent will typically have as a basis a statistically defined extent in the form of a fuzzy variable and associated membership functions defined as part of the design. This default definition is used to provide the number and relative widths of the membership functions. The initialization process will then modify this default extent, based on calculated or measured minimum and maximum values. As an example of defined extent, consider a fuzzy database and analysis program used in anthropology, with an input variable HEIGHT. If the default extent of HEIGHT is based on American men it would range (arbitrarily) from a minimum of 60" to a maximum of 84". Now consider using the program to gather and process data on non-American cultures. Looking at extremes, we might be interested in members of a pygmy tribe, where both minimum and maximum would drop by a foot or more, or a Watusi tribe, where both minimum and maximum would increase on the order of six inches or more. In both cases, the initialization sequence would take statistics on the population and derive appropriate minimum and maximum values. The extent of the variable HEIGHT would be shifted (and possibly expanded or compressed) appropriately. Once in place, the newly defined extent, with its corresponding membership functions, would be used to more accurately perform the analysis functions of the program. CONTROLLED EXTENT Controlled extent is quite similar to defined extent, except that it occurs on an ongoing basis during system operation. Its justification is that the meaning of values (membership functions) assigned to a given fuzzy variable may change with context - here changing context is loosely defined as changing input values. As an example, consider a train deceleration controller that has DISTANCE_TO_DESTINATION as a fuzzy variable, and NEAR as one of its values. What constitutes being NEAR the destination tends to be a function of the actual distance left to travel, the distance thus far traveled, and the velocity of the train. For example, on a 2000 km trip, with 10 km left to go and traveling at 100 km/hr, the train could be considered NEAR its destination. (If it were traveling at 2 km/hr this would not be the case.) Similarly, with 50 meters to go, and traveling at 5km/hr, the train is still NEAR, and with 5 meters left and traveling at 1 km/hr, it is still NEAR, although both times with different connotations. In each case, the actual distance to destination is quite different, but in the context of the other inputs, NEAR ( to some degree of membership) is a valid value of DISTANCE_TO_DESTINATION. Controlled extent, like defined extent, is most easily based on a default. The new extent is then defined as a function of one or more inputs/outputs. At each system time increment, this function is calculated, and the new extent determined. Membership functions associated with this extent are then used as part of the normal, ongoing fuzzy inference process. This control function might take a number of forms. It may be a simple proportional relationship between one or more of the system inputs/outputs and the extent. It also might be more complex, involving derivatives and integrals of input/output values - in effect a linear system. Or it might take the form of a fuzzy system in of itself, with the inputs being a (potentially) reduced set of the system's inputs/outputs, and the outputs being the extent parameters for the given variable. SUMMARY This issue has been a brief investigation of dynamic fuzzy variable extents, resulting in modifiable membership functions. Although many possible techniques may be used, we have discussed DEFINED (at initialization) and CONTROLLED (run-time) EXTENTS, allowing shift and expansion/compression operations. ---------------------------------------------------------------- The Huntington Technical Brief is published, monthly and free of charge, as part of the marketing effort of Dr. David Brubaker of The Huntington Group. A full collection of past issues (starting with number 5 -- issues 1 through 4 are unrelated to fuzzy logic and are unavailable) may be obtained for $10.00. The 42-page report "Introduction to Fuzzy Logic Systems" is available for $35.00. For the past fifteen years Dr. Brubaker has provided technical consulting services in the design of complex systems, real-time, embedded processor systems, and for the past four years, fuzzy logic systems. If you need out-of-house expertise in any of these, please call 415-325-7554. ---------------------------------------------------------------- Copyright 1992 by The Huntington Group 883 Santa Cruz Avenue, Suite 27 Menlo Park, CA 94025-4608 This information is provided by Aptronix FuzzyNet 408-428-1883 Data USR V.32bis