EDN logo


Columnist: April 25, 1996

More on fuzzy cognitive maps

David Brubaker,
fuzzy-logic contributing editor


Last week, I was helping my 11-year old daughter, Margaret, with some science homework. One assignment was to make a "concept map" of a simple process. She checked her class notes, I checked the text, and neither of us could find "concept map" defined. Lacking any other direction, I gave her a two-minute introduction to fuzzy cognitive maps (FCMs), and together we modeled the system using one. The next day, she told me she was the only one in her class who had come close to what her teacher wanted. However, her teacher had been confused by the labels "a lot," "a little," and "sort of" on the connecting arrows. Margaret told her teacher that these were fuzzy terms, and that her father would be happy to come in and explain fuzzy logic to the class. The teacher declined, but gave Margaret an "A" on the homework. Ah, the hurdles we still must overcome!

In my last column, I promised a more detailed example of how an FCM can model a system. Figure 1 is an example of this, taken from the chapter "Fuzzy Associative Memory Systems," that Bart Kosko wrote for Abraham Kandel's book Fuzzy Expert Systems. It is a simple, six-concept model for determining one's speed when driving on a California freeway. The concepts, or the FCM's nodes, are bad weather, freeway congestion, auto accidents, patrol frequency, and own risk aversion, and the system output is own driving speed. Fuzzy values weight the causal edges.

I simulated this FCM with a spreadsheet to see how it ran. Kosko defines the concept bad weather to be the only system input, although all other concepts necessarily have biases that depend on many factors not included in the model. For example, patrol frequency, in addition to being driven by accidents, is also based on some patrol- scheduling algorithm that could itself be the output of another FCM.

When first running the model, I discovered I could never get my own driving speed above its midpoint, which was zero, because I set the concept values between —1 (zero driving speed) and +1 (the maximum speed I would ever drive). This midpoint value of own driving speed, which would map to half of my maximum driving speed, occurred when the FCM was running with no congestion and zero risk aversion.

Considering possible solutions, if I define own driving speed to be a differential value added to some reference value (for example, a commanded change in speed, positive or negative, added to the speed limit), then own driving speed would not be stuck at its midpoint. However, during operation own driving speed value could only grow smaller. This fact is because, based on Kosko's model (Figure 1), there are no other FCM concepts positively affecting own driving speed.

We need to re-examine initial assumptions. Why do we drive fast on the freeway? A principal reason is to promptly get to one's destination; let's call that schedule. For some drivers, other possible reasons would be impatience and attitude; an example of attitude would be the feeling of machismo associated with driving fast. Ignoring these last two, but adding the concept schedule and also adding what I feel are a number of legitimate edges to the original, I came up with a revised FCM (Figure 2). This implementation more accurately models my own decision-making process.

At this point, I had planned to show plots of the FCM's operations. I unsuccessfully worked with a number of ways to do this. I have concluded that, because FCMs are dynamic, changing systems, it would be difficult or impossible to adequately demonstrate their operation in still figures. This bothers me, because I feel a sense of responsibility, now that I have introduced FCMs, to be thorough in describing how they work.

I have an out—for me, but not for you. My "out" is that you implement the FCM and see how it works yourself; if you are interested, of course. This column and the last one give the necessary basics. If these basics are insufficient, look through the fuzzy literature for papers on the subject by Kosko and Rod Taber. Kosko also covers FCMs in both of his books, Neural Networks and Fuzzy Systems for technical readers and Fuzzy Thinking for nontechnical readers.

You may use a spreadsheet as a tool, as I have, or one of two commercially available FCM tools: Fuzzy Thought Amplifier from Fuzzy Systems Engineering (Poway, CA) or RTFCM (Version 2), developed by Taber and Ring Technology, (Lavale, MD). Martin McNeil wrote Fuzzy Thought Amplifier and two other fuzzy-logic products—one for rule-base development and the other for decision making.

Kosko suggests that the structure of an FCM lends itself well to representing an expert's opinion. Recognizing that experts structure their thinking differently from that of other experts and that they also disagree, he has demonstrated a method of combining smaller FCMs into larger FCMs.

Second, in Kosko's driving-speed example, he used linguistically expressed constraint weights. In my simulation, because it is cumbersome to manipulate fuzzy variables in my spreadsheet application, I translate these variables into singleton values. This approach is a common practice. The resulting FCM is still fuzzy, because both edge and concept values are continuous. However, the example demonstrates that, if you can handle fuzzy outputs and can live with the additional computation involved in manipulating fuzzy numbers, FCM designers can express both edge and concept values as fuzzy values, represented with membership functions.

Doing this representation would, at least in part, resolve another problem. As Kosko points out, experts tend to express causality in trivalent terms: A concept positively affects, negatively affects, or does not at all affect a next concept. Fuzzy edge values would allow modeling expressions of causality in linguistic terms, such as a little positive or very negative.

Finally, as currently defined, the FCM represents causality of concepts: how concepts impact each other. Connections among concepts include weights, representing strength of causality, which are summed and normalized. Although there are likely good reasons for maintaining the purity of the structure, there is nothing to prohibit the use of additional connection operators. For example, a concept may depend on the (fuzzy) logical AND of the current values of two or more other concepts. In physical systems, both integral and derivative functions would be of value. I recently designed a system that, had I implemented it using an FCM, the arithmetic-multiply operator would have been a necessary operator.

Armed with this information and my encouragement, go to! I will answer questions and requests for clarification sent to me. However, as I have often stated the best way to learn a new technology is not to read or listen to what someone else is doing, but rather to dig in and do it ourselves. I learn far more from my mistakes than from someone else's successes. Good luck!

(If you are interested in either of the two FCM tools mentions in this column, contact Fuzzy Systems Engineering (Poway, CA) at (619) 748-7384 or Ring Technology, (Lavale, MD), e-mail taberrod@delphi.com.)


David Brubaker is a consultant in fuzzy-system design. You can reach him at Huntington Advanced Technology, 883 Santa Cruz Ave., Suite 31, Meleno Park, CA 94025-4608 or on the internet at: brubaker@cup.portal.com

References

  1. Kandel, Abraham. Fuzzy Expert Systems, Boca Raton, FL, CRC Press, 1992. ISBN 0-8493-4297-X.
  2. Kosko, Bart. Neural Networks and Fuzzy Systems, Prentice-Hall, Englewood Cliffs, NJ, 1992. ISBN 0-13-611435-0.
  3. Kosko, Bart. Fuzzy Thinking, Hyperion, New York, NY, 1993. ISBN 1-56282-839-8.




| EDN Access | feedback | subscribe to EDN! |
| design features | out in front | design ideas | columnist | departments | products|


Copyright © 1996 EDN Magazine. EDN is a registered trademark of Reed Properties Inc., used under license.