0% found this document useful (0 votes)
39 views33 pages

GameAI FuzzyLogic

Fuzzy logic allows for problems to be presented to computers in a way that is similar to how humans solve problems, accounting for uncertainty and imprecision. Fuzzy logic uses degrees of truth rather than binary logic, and everything can be a matter of degrees. It involves three basic steps: fuzzification where crisp inputs are mapped to fuzzy membership functions, fuzzy rules that combine inputs logically and produce outputs to varying degrees, and defuzzification where outputs are converted back to crisp values. Fuzzy logic can be used in games for control, threat assessment, and character classification by representing inputs and outputs as fuzzy sets and evaluating rules in parallel to varying degrees.

Uploaded by

Dhananjay Limaye
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views33 pages

GameAI FuzzyLogic

Fuzzy logic allows for problems to be presented to computers in a way that is similar to how humans solve problems, accounting for uncertainty and imprecision. Fuzzy logic uses degrees of truth rather than binary logic, and everything can be a matter of degrees. It involves three basic steps: fuzzification where crisp inputs are mapped to fuzzy membership functions, fuzzy rules that combine inputs logically and produce outputs to varying degrees, and defuzzification where outputs are converted back to crisp values. Fuzzy logic can be used in games for control, threat assessment, and character classification by representing inputs and outputs as fuzzy sets and evaluating rules in parallel to varying degrees.

Uploaded by

Dhananjay Limaye
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

FUZZY LOGIC

Fuzzy Logic
 Lotfi Zadeh (professor at UC Berkeley)
wrote his original paper on fuzzy set
theory. In various occasions, this is what
he said…
 “Fuzzy logic is a means of presenting
problems to computers in a way akin to the
way humans solve them”
 “The essence of fuzzy logic is that
everything is a matter of degree”
 What do these statements really mean?
Fuzzy Logic
 Very often, we humans analyze situations and solve
problems in a rather imprecise manner
 Do not have all the facts
 Facts might be uncertain

 Maybe we only generalize facts without having the


precise data or measurements…

 Real-life example: Playing a game of basketball


Everything is a matter of degree?
 Is your basketball opponent tall, or average or
short? (use of linguistic terms to measure degree)
 Is 7 feet tall? Is 6 feet 10 inches tall? Are they both
considered tall? (overlapping degrees)

 Problem with traditional Boolean logic


 You are forced to define a point above which we will
consider the guy to be tall or just average, e.g. > 7 ft
 Fuzzy Logic  allows gray areas or degrees of being
considered “tall”
The degree of truth
 So…you can think of fuzzy logic as classifying
something as being TRUE, but to varying degrees

 Real-life control applications (air-conditioning,


household appliances):
 Traditional Boolean logic will result in abrupt switching
of response functions
 Fuzzy logic alleviates this problem  Responses will
vary smoothly given the degree of truth or strength of
the input conditions
Fuzzy logic for games
 A previous game AI example…
 An AI character makes his decision to chase (using FSM
or DT) based on traditional Boolean logic, e.g. distance
of player < 20 units, and player health < 50%
 In fuzzy logic, we can represent these input conditions
using a few “membership” degrees of measure
 Distance: (“Far”, “Average”, “Near”)
 Health: (“Good”, “Normal”, “Poor”)

 The output actions can also be represented with


different membership degrees (“Chase Fast”, “Chase
Slow”)
How to use Fuzzy Logic in Games?
 3 possible ways how fuzzy logic can be used in
games
 Control
 Modulating steering forces, travelling/moving towards
target
 Threat Assessment
 Assessing
player’s strengths/weaknesses for deploying units
and making moves
 Classification
 Identifying
the combat prowess of characters in the game
based on a variety of factors in order to choose opponent
 There are many other possibilities…
Fuzzy Logic Basics
 Fuzzy control or fuzzy inference process – 3 basic
steps
Step 1: Fuzzification
 Fuzzification: Process of mapping/converting crisp
data (real numbers) to fuzzy data
 Find degree of membership of the crisp input in
predefined fuzzy sets
 E.g. given a character’s health, determine the degree to
which it is “Good”, “Fair” or “Poor”.
 Mapping is achieved using membership functions
Membership Functions
 Membership Functions
 Map input variables to a degree of membership, in a
fuzzy set, between 0 and 1. Degree 1  absolutely
true, degree 0  absolutely false, any degree in
between  true or false to a certain extent
 “Boolean logic membership function”
Membership Functions
 Fuzzy Membership Functions
 Enables us to transition gradually from false to true
 Grade membership function
Membership Functions
 Triangular m/f  Reverse grade m/f

 Equations are just the


inverse of the grade
m/f
Membership Functions
 Trapezoid m/f  Other nonlinear m/f
 Gaussian or Sigmoid
‘S’-shaped curves
Membership Functions
 Typically, we are interested in the degree of which
an input variable falls within a number of
qualitative sets
Membership Functions

 Setting up collections of fuzzy sets for an input variable


is a matter of judgment and trial-and-error  not
uncommon to “tune” the sets
 While tuning, one can try different membership
functions, increase or decrease number of sets
 Some fuzzy practitioners recommend 7 fuzzy sets to
fully define a practical working range (?!?!?)
Membership Functions

 One rule of thumb for ensuring smooth transitions (in


later steps) is to enforce overlapping between
neighboring sets
Hedge Functions
 Hedge functions are sometimes used to modify the
degree of membership
 Provide additional linguistic constructs that you can
use in conjunction with other logical operations.
 Two common hedges:
 VERY(Truth(A)) = Truth(A)2
 NOT_VERY(Truth(A)) = Truth(A)0.5

(Truth(A) is the degree of membership of A in some fuzzy


set)
Step 2: Fuzzy Rules
 Next, construct a set of rules, combining the input in
some logical manner, to yield some output
 If-then style rules (if A then B) – A being the
antecedent/premise and B being the
consequent/conclusion
 Fuzzy input variables are combined logically to
form premise
 Conclusion will be the degree of membership of
some output fuzzy set
Fuzzy Axioms
 Since we are writing “logical” rules with fuzzy input,
we need a way to apply logical operators to fuzzy
input (just like with Boolean input)
 Logical OR (disjunction)
 Truth(A OR B) = MAX(Truth(A), Truth(B))
 Logical AND (conjunction)
 Truth(A AND B) = MIN(Truth(A), Truth(B))
 Logical NOT (negation)
 Truth(NOT A) = 1 – Truth(A)
Fuzzy Axioms
 Example, given a person is overweight to the
degree of 0.7 and tall to the degree of 0.3:
 Overweight AND tall = MIN(0.7, 0.3) = 0.3
 Overweight OR tall = MAX(0.7, 0.3) = 0.7

 NOT overweight = 1 – 0.7 = 0.3

 NOT tall = 1 – 0.3 = 0.7

 NOT(overweight AND tall) = 1 – MIN(0.7, 0.3) = 0.7

 There are other definitions for these logical


operators…
Rule Evaluation
 Unlike traditional Boolean logic,
 Rules in fuzzy logic can evaluate into any number
between 0 and 1 (not just 0 or 1)
 All rules are evaluated in parallel (not in series that the
first one that is true gets fired). Each rule always fires,
to various degrees
 The strength of each rule represents the degree of
membership in the output fuzzy set
Rule Evaluation
 Example: Evaluating
whether an AI should
attack player
 Rules can be written like:
 If(in melee range AND
uninjured) AND NOT hard
then attack
 Set up as many rules to
handle all possibilities in
the game
Rule Evaluation
 Given specific degrees for the input variables, you
might get outputs (conclusions of the rules) that look
something like this:
Attack to degree: 0.2
Do nothing to degree: 0.4
Flee to degree: 0.7
 The most straightforward way to interpret these
outputs is to take the action associated with the
highest degree (in this case, the action will be flee)
Step 3: Defuzzification
 In some cases, you might want to use the fuzzy
output degree to determine a crisp value (real
number), which can be useful for further calculations
 Defuzzification: Process of converting the results
from the fuzzy rules to get a crisp number as an
output
 Opposite of fuzzification (you can say that,
although the purpose and methods are different!)
Step 3: Defuzzification
 Previous example: Instead of determining some
finite action (do nothing, flee, attack), we also want
to use the output to determine the speed to take the
action
 To get a crisp number, aggregate the output
strengths on the predefined output membership
functions
Step 3: Defuzzification

 With the numerical output from the earlier example


(0.2 degree attack, 0.4 degree do nothing, 0.7
degree flee), we have the composite membership
function below
Defuzzifying composite m/f

 Truncate each output set to the output degree of


membership for that set. Then combine all output sets
by disjunction
 A crisp number can be arrived from such an output
fuzzy set in many ways
 Geometric centroid of the area under the output fuzzy set,
taking its horizontal axis coordinate as the crisp output
Using “predefuzzified” output
 A less computationally expensive method is the use
of singleton output membership function or a
“predefuzzified” output function
 Instead of doing lots of calculation, assign speeds to
each output action (-10 for flee, 1 for do nothing,
10 for attack).
 E.g. The resulting speed for flee is simply the preset
value of -10 times the degree to which the output
action flee is true (-10 x 0.7 = -7)
Using “predefuzzified” output
 Aggregate of all outputs with a simple weighted
average
 In our example, we might have:
Output = [(0.7)(-10) + (0.4)(1) + (0.3)(10)] /
(0.7+0.4+0.3)
= -2.5
 This output would result in the creature fleeing, but
not earnestly in full extent
 Naturally, we can obtain various output (crisp)
values depending on the different input conditions
Further Examples
 There are 2 good examples in the textbook,
showing the full process of using fuzzy logic to
model game AI characters
Using Fuzzy Logic in FSMs?
 If we want to add some fuzzy logic into FSMs, how
can that be accomplish? Is it possible?
 Remember: Each state defines a behavior or action, and
each state is reached by transition from another state
on the basis of fulfilling some input conditions…
 Conditions for transition are normally in Boolean logic,
how do we accommodate fuzzy logic?
Fuzzy State Machines
 Different AI developers regard Fuzzy State
Machines differently
 State machine with fuzzy states
 State transitions that use fuzzy logic to trigger

 Both

 Find out more about how these different variations


can be worked out and implemented (refer to
Millington book)

 Next up
 Homework 2 (due in Week 10, submission via mail)
 Milestone #2 (due in Week 11, 11.00am 23/8, Thurs)

 Upcoming lectures
 Probabilitiesand Uncertainty Techniques
 Tactical and Strategic AI

You might also like