You are on page 1of 50

# AI CS364

Fuzzy Logic

Fuzzy Tutorial

## 10th October 2006

Dr Bogdan L. Vrusias
b.vrusias@surrey.ac.uk
AI CS364
Fuzzy Logic

Contents
Recap
Example: Air Conditioner
Example: Cart Pole Problem
Case Study: Building a Fuzzy Expert System
Summary

## 10th October 2006 Bogdan L. Vrusias 2006 2

AI CS364
Fuzzy Logic

Recap
Process of developing a fuzzy expert system:

## Specify the problem; define linguistic variables.

Determine fuzzy sets.
Elicit/deduce and construct fuzzy rules.
Encode the fuzzy sets, fuzzy rules and procedures to perform
fuzzy inference into the expert system.
Evaluate and tune the system.

## 10th October 2006 Bogdan L. Vrusias 2006 3

AI CS364
Fuzzy Logic

Recap
Operation of a fuzzy expert system:

## Fuzzification: definition of fuzzy sets, and determination of the

degree of membership of crisp inputs in appropriate fuzzy sets.

rule.

rules.

AI CS364
Fuzzy Logic

## Example: Air Conditioner

1a. Specify the problem
Air-conditioning involves the delivery of air, which can be warmed or cooled
and have its humidity raised or lowered.
An air-conditioner is an apparatus for controlling, especially lowering, the
temperature and humidity of an enclosed space. An air-conditioner typically
has a fan which blows/cools/circulates fresh air and has a cooler. The cooler
is controlled by a thermostat. Generally, the amount of air being compressed
is proportional to the ambient/close temperature.

## 1b. Define linguistic variables

- Ambient Temperature
- Air-conditioner Fan Speed

AI CS364
Fuzzy Logic

## Example: Air Conditioner

2. Determine Fuzzy Sets: Temperature
Temp (0C). COLD COOL PLEASANT WARM HOT

0< (T)<1 0 Y* N N N N
5 Y Y N N N
10 N Y N N N
12.5 N Y* N N N
15 N Y N N N (T)=1
17.5 N N Y* N N
20 N N N Y N
22.5 N N N Y* N
25 N N N Y N
27.5 N N N N Y
30 N N N N Y*

(T)=0

AI CS364
Fuzzy Logic

## Example: Air Conditioner

2. Determine Fuzzy Sets: Temperature

## Temperature Fuzzy Sets

Temperature Fuzzy Sets

1 1
0.9 0.9
0.8 0.8 Cold
Cold
Truth Value
Truth Value

0.7 0.7
0.6 0.6 Cool
Cool
0.4 0.4
0.3 0.3
Warm
Warm
0.2 0.2 Hot
Hot
0.1 0.1
0 0
0 0 5 5 1010 15
15 20
20 2525 3030

Temperature
Temperature Degrees
Degrees CC
10th October 2006 Bogdan L. Vrusias 2006 7
AI CS364
Fuzzy Logic

## Example: Air Conditioner

2. Determine Fuzzy Sets: Fan Speed
Rev/sec MINIMAL SLOW MEDIUM FAST BLAST
(RPM)
0 Y* N N N N

10 Y N N N N

20 Y Y N N N

30 N Y* N N N

40 N Y N N N

50 N N Y* N N

60 N N N Y N

70 N N N Y* N

80 N N N Y Y

90 N N N N Y

100 N N N N Y*

AI CS364
Fuzzy Logic

## Example: Air Conditioner

2. Determine Fuzzy Sets: Fan Speed

## Speed Fuzzy Sets

1
0.8 MINIMAL
Truth Value

0.6 SLOW
MEDIUM
0.4
FAST
0.2 BLAST
0
0 10 20 30 40 50 60 70 80 90 100
Speed

AI CS364
Fuzzy Logic

## Example: Air Conditioner

3. Elicit and construct fuzzy rules

## RULE 1: IF temp is cold THEN speed is minimal

RULE 2: IF temp is cool THEN speed is slow
RULE 3: IF temp is pleasant THEN speed is medium
RULE 4: IF temp is warm THEN speed is fast
RULE 5: IF temp is hot THEN speed is blast

AI CS364
Fuzzy Logic

## Example: Air Conditioner

4. Encode into an Expert System

## 5. Evaluate and tune the system

Consider a temperature of 16oC, use the system to compute the optimal fan
speed.

Fuzzification
Inference
Composition
Defuzzification

AI CS364
Fuzzy Logic

## Example: Air Conditioner

Fuzzification
Affected Temperature (T) fuzzy sets: COOL and PLEASANT

## COOL(T) = T / 5 + 3.5 PLSNT(T) = T /2.5 - 6

= 16 / 5 + 3.5 = 16 /2.5 - 6
= 0.3 = 0.4

0 0.3 0.4 0 0

AI CS364
Fuzzy Logic

## Example: Air Conditioner

Fuzzification
Affected Speed (S) fuzzy sets: SLOW and
MEDIUM

## SLOW(S) = S / 20 - 0.5 MEDIUM(S) = -S / 10 + 6

= 12.5 / 20 - 0.5 = -57.5 / 10 + 6
= 0.125 = 0.25

0 0.125 0 0 0

AI CS364
Fuzzy Logic

Inference

## RULE 1: IF temp is cold THEN speed is minimal

RULE 2: IF temp is cool THEN speed is slow
RULE 3: IF temp is pleasant THEN speed is medium
RULE 4: IF temp is warm THEN speed is fast
RULE 5: IF temp is hot THEN speed is blast

AI CS364
Fuzzy Logic

Inference

AI CS364
Fuzzy Logic

Composition

AI CS364
Fuzzy Logic

Defuzzification

## COG = 0.125(12.5) + 0.25(15) + 0.3(17.5+20++40+42.5) + 0.4(45+47.5++52.5+55) + 0.25(57.5)

0.125 + 0.25 + 0.3(11) + 0.4(5) + 0.25

= 45.54rpm

AI CS364
Fuzzy Logic

m

w
g

## The problem is to balance an upright pole, with a mass m at its head

and mass M at its base. A weightless shaft/rod connects these two
masses. The base can be moved on a horizontal axis. The task is to
determine the force (F) necessary to balance the pole. The calculation
of the force F involves the measurement of the angle and the
angular velocity of the pole.
10th October 2006 Bogdan L. Vrusias 2006 18
AI CS364
Fuzzy Logic

## Example: Cart Pole Problem

nb nm ns az ps pm pb
nb ps pb
nm pm

w ns nm ns ps
az nb nm ns az ps pm pb
ps ns ps pm
pm nm
pb nb ns
nb: negative big, nm: negative medium, ns: negative small az: approximately zero
ps: positive small, pm: positive medium, pb: positive big

IF is negative medium
AND w is approximately zero
THEN F is negative medium
10th October 2006 Bogdan L. Vrusias 2006 19
AI CS364
Fuzzy Logic

## Example: Cart Pole Problem

The fuzzy sets for , and F are based on the linear equation
(x)=ax + b, and are defined based on the following table:

(w)=1 if
w
w (w)=1 if
w
w=
(w)=0 if
w

AI CS364
Fuzzy Logic

## Example: Cart Pole Problem

Based on the fuzzy sets table draw three graphs showing the fuzzy
sets (nb, nm, ns, az, ps, pm, pb) for each , , and F individually.

Consider the case when the input variables are: = 50, = -5.

Use the rule base, execute each of the four tasks to compute the force
F necessary to balance the pole using the Centre of Gravity in the

AI CS364
Fuzzy Logic

Fuzzification

: pm, pb
: az

## ii) Formulate possible rules from linguistic values obtained

IF is pm AND is az THEN F is pm
IF is pb AND is az THEN F is pb

AI CS364
Fuzzy Logic

## Example: Cart Pole Problem

Fuzzification
iii) Compute membership functions

1

1
1/22.5 = /17.5

: pm = 0.78
22.5 45 50 67.5 45 50 67.5

1
1/22.5 = /5
: pb
= 0.22
45 50 67.5

1
w: az 1/11.25 = /6.25

-11.25 -5 0 10
= 0.56

AI CS364
Fuzzy Logic

## Example: Cart Pole Problem

Inference

1. IF is pm AND is az THEN F is pm

## The two premises in rule are conjunctive

minimum of the two: min{0.78, 0.56} = 0.56

2. IF is pb AND is az THEN F is pb
The two premises in RULE 2 are conjunctive
minimum of the two: min{0.22, 0.56} = 0.22

AI CS364
Fuzzy Logic

## Example: Cart Pole Problem

Composition

ps

pb

Defuzzification
3 0.2 (4 5 6) 0.56 (7 8) 0.22
SoG =
CoG = 5.30
0.2 0.56 0.56 0.56 0.22 0.22

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Step 1: Specify the problem and define linguistic variables

A service centre keeps spare parts and repairs failed ones. A customer
brings a failed item and receives a spare of the same type. Failed
parts are repaired, placed on the shelf, and thus become spares.

## The objective is to advise a manager of the service centre on certain

decision policies to keep the customers satisfied.

There are four main linguistic variables: average waiting time (mean
delay) m, repair utilisation factor of the service centre p, number of
servers s, and initial number of spare parts n.

## 10th October 2006 Bogdan L. Vrusias 2006 26

AI CS364
Fuzzy Logic
Linguistic Variable: Mean Delay, m
Linguistic Value Notation Numerical Range (normalised)
Very Short VS [0, 0.3]
Short S [0.1, 0.5]
Medium M [0.4, 0.7]
Linguistic Variable: Number of Servers, s
Linguistic Value Notation Numerical Range (normalised)
Small S [0, 0.35]
Medium M [0.30, 0.70]
Large L [0.60, 1]
Linguistic
Linguistic Variable:
Variable: Repair
Repair Utilisation Factor,
Utilisation Factor,
Linguistic Value Notation Numerical Range
Low L [0, 0.6]
Medium M [0.4, 0.8]
High H [0.6, 1]
Linguistic Variable: Number of Spares, n
Linguistic Value Notation Numerical Range (normalised)
Very Small VS [0, 0.30]
Small S [0, 0.40]
Rather Small RS [0.25, 0.45]
Medium M [0.30, 0.70]
Rather Large RL [0.55, 0.75]
Large L [0.60, 1]
Very Large VL [0.70, 1]
10th October 2006 Bogdan L. Vrusias 2006 27
AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Step 2: Determine fuzzy sets

## Fuzzy sets can have a variety of shapes. However, a triangle or a

trapezoid can often provide an adequate representation of the expert
knowledge, and at the same time, significantly simplifies the process
of computation.

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Fuzzy sets of Mean Delay m

Degree of
Membership
1.0
0.8 VS S M
0.6
0.4
0.2
0.0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Mean Delay (normalised)

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Fuzzy sets of Number of Servers s

Degree of
Membership
1.0
0.8 S M L
0.6
0.4
0.2
0.0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Number of Servers (normalised)

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Fuzzy sets of Repair Utilisation Factor p

Degree of
Membership
1.0
0.8 L M H
0.6
0.4
0.2
0.0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Repair Utilisation Factor

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Fuzzy sets of Number of Spares n

Degree of
Membership
1.0
0.8 VS S RS M RL L VL
0.6
0.4
0.2
0.0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Number of Spares (normalised)

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Step 3: Elicit/deduce and construct fuzzy rules

To accomplish this task, we might ask the expert to describe how the
problem can be solved using the fuzzy linguistic variables defined
previously.

## Required knowledge also can be collected from other sources such as

books, computer databases, flow diagrams and observed human
behaviour.

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

The square FAM (Fuzzy Associative Memory) representation of n
(number of spares)

s = number
of servers

m = delay
10th October 2006 Bogdan L. Vrusias 2006 34
AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

The rule table Rule Base 2 (slide 37 )

## Rule m s p n Rule m s p n Rule m s p n

1 VS S L VS 10 VS S M S 19 VS S H VL
2 S S L VS 11 S S M VS 20 S S H L
3 M S L VS 12 M S M VS 21 M S H M
4 VS M L VS 13 VS M M RS 22 VS M H M
5 S M L VS 14 S M M S 23 S M H M
6 M M L VS 15 M M M VS 24 M M H S
7 VS L L S 16 VS L M M 25 VS L H RL
8 S L L S 17 S L M RS 26 S L H M
9 M L L VS 18 M L M S 27 M L H RS

AI CS364
Fuzzy Logic

Rule Base 2

## 1. If (mean_delay is VS) and (no_of_servers is S) and (util_fact is L) then (no_of_spares is VS)

2. If (mean_delay is S) and (no_of_servers is S) and (util_fact is L) then (no_of_spares is VS)
3. If (mean_delay is M) and (no_of_servers is S) and (util_fact is L) then (no_of_spares is VS)

## 4. If (mean_delay is VS) and (no_of_servers is M) and (util_fact is L) then (no_of_spares is VS)

5. If (mean_delay is S) and (no_of_servers is M) and (util_fact is L) then (no_of_spares is VS)
6. If (mean_delay is M) and (no_of_servers is M) and (util_fact is L) then (no_of_spares is VS)

## 7. If (mean_delay is VS) and (no_of_servers is L) and (util_fact is L) then (no_of_spares is S)

8. If (mean_delay is S) and (no_of_servers is L) and (util_fact is L) then (no_of_spares is S)
9. If (mean_delay is M) and (no_of_servers is L) and (util_fact is L) then (no_of_spares is VS)

## 10. If (mean_delay is VS) and (no_of_servers is S) and (util_fact is M) then (no_of_spares is S)

11. If (mean_delay is S) and (no_of_servers is S) and (util_fact is M) then (no_of_spares is VS)
12. If (mean_delay is M) and (no_of_servers is S) and (util_fact is M) then (no_of_spares is VS)

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Cube FAM of Rule Base 2 (number of spares = n)
s
s
VS VS VS L RL M RS
VS VS VS
L S S VS
VS VS VS M M M S
VS VS VS
M VS VS VS
VS VS VS S VL L M
VS VS VS
S VS VS VS H VS S M H
M
L s
VS S M m
L M RS S
m
M RS S VS

S S VS VS
M
VS S M
s
m
L S S VS

M VS VS VS

S VS VS VS
L
VS S M
m
10th October 2006 Bogdan L. Vrusias 2006 37
AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Step 4: Encode the fuzzy sets, fuzzy rules and procedures to perform
fuzzy inference into the expert system

## To accomplish this task, we may choose one of two options: to build

our system using a programming language such as C/C++ or Pascal,
or to apply a fuzzy logic development tool such as MATLAB Fuzzy
Logic Toolbox or Fuzzy Knowledge Builder.

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Step 5: Evaluate and tune the system

The last, and the most laborious, task is to evaluate and tune the
system. We want to see whether our fuzzy system meets the
requirements specified at the beginning.

## Several test situations depend on the mean delay, number of servers

and repair utilisation factor.

The Fuzzy Logic Toolbox can generate surface to help us analyse the
systems performance.

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Three-dimensional plots for Rule Base 1

0.6
number_of_spares

0.5

0.4

0.3

0.2
0

0.2 1
0.8
0.4 0.6
0.4
0.6 0.2
mean_delay 0 utilisation_factor

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Three-dimensional plots for Rule Base 2

0.35
number_of_spares

0.3

0.25

0.2

0.15

0.2 1
0.8
0.4 0.6
0.4
0.6 0.2
mean_delay 0 number_of_servers

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Three-dimensional plots for Rule Base 2

0.5

0.4
number_of_spares

0.3

0.2

0.2 1
0.8
0.4 0.6
0.4
0.6 0.2
mean_delay 0 utilisation_factor

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Tune the system

However, even now, the expert might not be satisfied with the system
performance.

## To improve the system performance, we may use additional sets

Rather Small and Rather Large on the universe of discourse Number
of Servers, and then extend the rule base.

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Modified fuzzy sets of Number of Servers s

Degree of
Membership
1.0
0.8 S RS M RL L
0.6
0.4
0.2
0.0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Number of Servers (normalised)

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Cube FAM of Rule Base 3
s
s
VS VS VS L L M RS
VS VS VS
L S S VS
VS VS VS RL RL M RS
VS VS VS
RL S S VS
VS VS VS M M M S
VS VS VS
M VS VS VS
VS VS VS s RS VL RL RS
VS VS VS
RS VS VS VS
VS VS VS L M RS S S VL L M
VS VS VS
S VS VS VS H VS S M H
M RL M RS S
L m
VS S M
m M RS S VS

s RS S VS VS

L S S VS S S VS VS
M
VS S M
RL S S VS
m
M VS VS VS

RS VS VS VS

S VS VS VS
L
VS S M
m
10th October 2006 Bogdan L. Vrusias 2006 45
AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Three-dimensional plots for Rule Base 3

0.35

0.3
number_of_spares

0.25

0.2

0.15

0.2 1
0.8
0.4 0.6
0.4
0.6 0.2
mean_delay 0 number_of_servers

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Three-dimensional plots for Rule Base 3

0.5

0.4
number_of_spares

0.3

0.2

0.2 1
0.8
0.4 0.6
0.4
0.6 0.2
mean_delay 0 utilisation_factor

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

Tuning fuzzy systems

## 1. Review model input and output variables, and if required redefine

their ranges.

2. Review the fuzzy sets, and if required define additional sets on the
universe of discourse. The use of wide fuzzy sets may cause the fuzzy
system to perform roughly.

## 3. Provide sufficient overlap between neighbouring sets. It is suggested

that triangle-to-triangle and trapezoid-to-triangle fuzzy sets should
overlap between 25% to 50% of their bases.

AI CS364
Fuzzy Logic

## Case Study: Building a Fuzzy System

4. Review the existing rules, and if required add new rules to the rule
base.

## 5. Examine the rule base for opportunities to write hedge rules to

capture the pathological/diseased behaviour of the system.

6. Adjust the rule execution weights. Most fuzzy logic tools allow
control of the importance of rules by changing a weight multiplier.

7. Revise shapes of the fuzzy sets. In most cases, fuzzy systems are
highly tolerant of a shape approximation.

## 10th October 2006 Bogdan L. Vrusias 2006 49

AI CS364
Fuzzy Logic

Summary
Process of developing a fuzzy expert system