Fuzzy Logic

From GICL Wiki
Revision as of 17:53, 2 September 2007 by J Dobies (Talk | contribs)

Jump to: navigation, search

Fuzzy Logic is a term that is used in tow different senses, a narrow sense and a broad sense. The Narrow sense is a logical system that generalizes classic binary, true and false or zero and one, logic into uncertainty. The broad sense of the term is all the technologies that employ classes with unsharp boundaries, or fuzzy sets.

Fuzzy sets can be best represented as a real world problem. If a person were to mathematically represent what "room temperature" is it would be expressed as an interval between two numbers, say from 68 degrees to 75 degrees. This would result in a hard-edged line between what is room temperature and what is not. However, in the human interpretation of room temperature, there is a gradation between not room temperature and room temperature. So certain temperatures would be considered to be around room temperature. A fuzzy set allows for this by having gradated boundaries rather than harsh boundaries. This can be represented on a graph by a line sloping up from the value of 0(false) to 1(true) over a period of time before 68. Remaining at 1(true) from 68 to 75 and the sloping back down from 1(true) to 0(false) for another set of numbers.

Examples of Fuzzy Logic used for movie A.I. includes Massive Software which was used in the Lord of the Rings Movies as well as The Chronicles of Narnia


Brief History

Theory about Fuzzy Logic can be traced back to ancient times. Before Aristotle came up with the theory of binary logic, Buddha suggested that everything contained some of its opposite. Meaning good contained some evil, dry contained some wetness, hot contained some cold, etc. This is a theory behind fuzzy logic; nothing is completely true or completely false.

In 1964 Dr. Lofti Zadeh, a professor of Computer Science and Electrical Engineering at University of California Berkeley, was attempting to find a new and more efficient method of programming Air Conditioning units over the then used method. Traditional systems were too precise for such complex real world problems. He proposed that it would be simpler to tell the conditioner to work harder when it got warmer and to work less when it was cooler then to set a series of rules for each temperature. In 1965 his paper on fuzzy sets, a gradient membership, was published and met with sharp criticism.

Even through the resistance to fuzzy logic, many researchers and scholars began to adopt Zadeh's system. Scholars and scientist from fields ranging from psychology to engineering were exploring the uses of this system. In the decade that followed Zadeh himself introduced many new theories attached to his first paper on fuzzy sets including fuzzy multi-stage decision making, fuzzy restrictions and linguistics. Other contributors continued Zadeh's work including R.E Bellman, G. Lakoff, J.A. Goguen and a host of other researchers. Many mathematic practices adopted fuzzy practices which ranged from logic and relations to algorithms and programs.

Industrial Applications

The first industrial application of fuzzy logic was developed over a decade after Zadeh introduced his system. In 1976 Blue Circle Cement and SIRA in Denmark developed a new cement kiln. It used fuzzy logic to incorporate the knowledge of an experienced operator to enhance efficiency of a clinker through a smoother grinder. This system first became operational in 1982.

In the mid 1980s in Japan, fuzzy logic was used to control trains. Trains were programmed to apply breaks at upon reaching markers set at even distances away from the station. However these trains would apply breaks the same traveling downhill as they would traveling uphill. This would result in the trains coming to a jerky stop in certain situations. However by harnessing fuzzy logic engineers at Hitachi were able to make the breaking process much smoother. This and other uses of fuzzy logic to increase the performance of trains in Japan fueled for a boom in the use of fuzzy logic overseas.

How It Works

Fuzzy Logic is used to determine a conclusion based on vague and noisy information that would be indeterminable by traditional problem solving methods. It is used to mimic human control of an application. By using a descriptive yet imprecise language it deals with the data much the way a human controller would. Though it is imprecise it is still forgiving of data input and rarely needs much fine tuning.

Fuzzy Logics core technique is based in 4 concepts:
(1) fuzzy sets: sets with smooth boundaries ;
(2) linguistic variables: variables whose values are both qualitative and quantitatively described by a fuzzy set ;
(3) possibility distributions: constraints in the value of a linguistic variable imposed by assigning it a fuzzy set; and
(4) fuzzy if-then rules: a knowledge representation scheme for describing a functional mapping or a logic formula that generalizes an implication in two-valued logic
The first 3 concepts are important in all areas of fuzzy logic. The fourth is the basis for most industrial applications of fuzzy logic to date.

If you had a group of 50 individuals and you wanted to classify them as old or young you can see how the two approaches differ. In the Boolean approach anyone over a defined age, say 45, would be classified as old and everyone else would be young. So someone with the age 44.9 would be classified as young but at 45.0 they would become old.

Fuzzy Logic works on a sloping line. So it could say that everyone up to 40 would be considered absolutely young but from ages to 40 to 50 they would increasingly be considered more ‘old’. This comes out to define people as somewhat old or somewhat young in those years in which their age/oldness is fuzzy. These sets are known as fuzzy sets.

Fuzzy Sets

A fuzzy set is a set of values with a smooth boundary that allows for partial membership. This means that one number can be a member of two or more sets. The classic approach for number sets is black-and-white, allowing an object to either be completely part of the set or not part of the set at all. Though many sets have sharp boundaries (e.g. the set of schools with graduate programs) even more do not have sharp boundaries (e.g. the set of schools with good graduate programs). These non-sharp sets are addressed by fuzzy set theory and its use of degrees of membership.

Myths of Fuzzy Logic

Fuzzy logic is a clever disguise of the probability theory
Probability theory measures the likelihood of an event happening, fuzzy logic measures the degree to which an outcome belongs to an event that does not have a exact boundary.

Fuzzy Logic and probability are competing techniques and only one can be used to solve a given problem.
No. Fuzzy logic and probability can be used to compliment each other.

The behavior of a fuzzy logic system is nondeterministic.
This is a confusion caused by the use of the word "fuzzy". The behavior of a fuzzy system is deterministic. There is nothing ambiguous about it.

Fuzzy logic control is ill-founded, not rigorous and may lead to potential disaster.
Fuzzy logic control systems so far developed in industry have been subjected to rigorous testing and validation. The control of fuzzy logic has been confirmed with each of these successful systems

Fuzzy Logic in Animation

One of the biggest developments in large scale character interaction was the AI system created for use in the Lord of the Rings films, Massive Software. It has been used in feature films (Lord of the Rings, King Kong, Chronicles of Narnia) and commercials to simulate lifelike crowds that are able to be controlled. This system allows for the creation of agents that respond to thier environment and eachother. These responses are determined through the proggramming of the 'brain'. This 'brain' is created through the definition of parameters using fuzzy logic. Through the evaluation of these parameters the brain is able to determine and action (or blending of actions) for each agent. An action is an animation (keyframed or motion captured). These actions are all created by digital artists and then brought into the system for use. Action trees are created to establish connections between animations to allow for the transition from one action to another. These transitions can range from change from one animation to another, to traveling through several short animations to arrive at a final goal. The action tree also is responsible for creating loops within the action or defining branching points for changes mid animation. Because of the direct connection between animation and programming it is important for the digital artists and the computer programmers to work closely to develop both the brain and the action tree in order to ensure an accurate final product.