Você está na página 1de 17

Inteligência Artificial

para Jogos
Lógica Difusa

Prof. MSc. João Ricardo Bittencourt

Update: 20 Set. 2010


joaorb@unisinos.br

“Tome a pílula
vermelha” GT-JEDI – Jogos Digitais
Agradeço e dedico estas Inteligência Artificial para Jogos
aulas ao Prof. Osório
UNISINOS
Sumário
 Conceitos básicos de lógica
 Conjuntos difusos
 Variáveis linguisticas
 Regras difusas
 Métodos de fuzzification/defuzzification
 Considerações Finais

UNISINOS - João Ricardo Bittencourt


Conceitos básicos
 Amplia a lógica booleana. Proposta por Loft
Zadeh em 1965.
 Considera termos do tipo: muito, pouco, alguns,
parcial, estável, fraco, forte, alto, baixo,...
 São termos difíceis de estabelecer um valor fixo
 O termo difuso está relacionado com o conceito
de imprecisão

UNISINOS - João Ricardo Bittencourt


Conceitos básicos
 Um elemento pode estar contido em vários
termos com graus de pertinência diferentes
 Por exemplo:
 Na lógica booleana: Agora é dia OU é noite

 Na lógica difusa: Agora é dia E noite (com


graus diferentes de persistência)

UNISINOS - João Ricardo Bittencourt


Conjuntos difusos
 Define o quanto que um objeto pertence a um
conjunto
 São usadas as funções de pertinência
(membership function)
 Podem ser usadas diferentes funções
 Linear, normal, gaussiana, ascendente,
descedente, sigmóide, constante, triangular,
trapezoidal,...

UNISINOS - João Ricardo Bittencourt


Conjuntos difusos
Triangular Descendente

Trapezoidal
Ascendente

UNISINOS - João Ricardo Bittencourt


Variáveis lingüísticas
 Trata-se de uma associação de um adjetivo à um
conjunto difuso
 Uma determinada variável pode ser adjetivada
com vários termos (funções difusas)
 Idade → Muito jovem, jovem,velho, muito velho

UNISINOS - João Ricardo Bittencourt


Variáveis lingüísticas
 Temperatura → Muito baixa,baixa, normal, alta,
muito alta
Otemperature
very_low low normal high very_high
1

0
27 32 35 36.5 37.5 40 41 43
temperature

UNISINOS - João Ricardo Bittencourt


Variáveis lingüísticas
 Sarampo → Nula, Baixa, Pode ser, Alta

Osarampo
low maybe high
1 null

0
5 10 30 50 70 80 95
sarampo

UNISINOS - João Ricardo Bittencourt


Regras difusas
 São regras do tipo IF ... THEN entretanto utiliza
variáveis linguísticas
 Todas as regras difusas são ativadas na
inferência com graus diferentes

 IF age IS very_young THEN sarampo IS high


 IF age IS old AND febre IS alta THEN sarampo IS
maybe
 IF age IS very_old THEN sarampo IS null
 ...

UNISINOS - João Ricardo Bittencourt


Regras difusas
Temperature
very_low low normal high very_high
very_young null low maybe high high
young null null low maybe high
Age
old null null null low low
very_old null null null null low

Quadro resumo das regras

UNISINOS - João Ricardo Bittencourt


Inferência difusa

UNISINOS - João Ricardo Bittencourt


Inferência difusa
 As variáveis precisas (crisp) são lidas do ambiente
(exemplo, idade = 48 anos)
 Precisam ser “fuzzyficadas” → aplicar o valor sob os
conjuntos difusos da variável linguística
 very_young = 0.0

 young = 0.25

 old = 0.25

 very_old = 0.0

 Todas as variáveis de entrada precisam passar por


este processo de fuzzification

UNISINOS - João Ricardo Bittencourt


Inferência difusa
 Agora para cada regra difusa aplica-se as variáveis
difusas na condicional
 A variável difusa da conseqüência da regra (THEN)
recebe um grau a partir das variáveis
antecedentes
 A operação AND → O menor valor dos conjuntos

 Se o valor do grau da conseqüência for maior que


seu grau atual então o grau é substituído pelo
maior

UNISINOS - João Ricardo Bittencourt


Inferência difusa
 Exemplo
 IF age IS old AND febre IS alta THEN sarampo
IS pode_ser
 Se old é 0.25, alta é 0.1, then poder_ser da
variável sarampo recebe 0.1
 No término da inferência todas as variáveis de
saída possuem seus termos com algum grau de
pertinência
 É feito o processo de defuzzification para tornar as
variáveis precisas novamente

UNISINOS - João Ricardo Bittencourt


Inferência difusa
 Podem ser usados os seguintes métodos:
 Máximo, média dos máximos, média local dos
máximos, centro de gravidade (centróide),
centro da área, centro da média

UNISINOS - João Ricardo Bittencourt


Considerações Finais
 Isto tudo pode ser usado em jogos???
 Claro! Pode ser usado como módulo de controle
dos agentes
 É um sistema especialista só com regras difusas

 Já foram feitos alguns projetos finais no curso


usando Lógica Difusa
 Veja o site do FuzzyF
 Framework desenvolvido em Java distribuído
sob a licença GNU GPL
 http://www.inf.unisinos.br/~jrbitt/fuzzyf

UNISINOS - João Ricardo Bittencourt