Sie sind auf Seite 1von 6

Lógica Nebulosa – Fuzzy Logic Jogo de Golfe

„ O ser humano é inexato por natureza „ Se a bola está longe do buraco e o terreno
‰ Hoje está mais ou menos quente está levemente inclinado da esquerda para
‰ O show é meio caro direita, bata na bola forte e numa direção um
‰ Aquele cara é baixinho pouco a esquerda da bandeira
‰ Coloque um pouco de sal
‰ Picanha bem passada „ Se a bola está muito perto do buraco e o
terreno é plano, bata na bola gentilmente e
„ Não há incerteza sobre o valor. O problema é diretamente na direção do buraco
como definir “liguisticamente” esse valor

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Jogo de Golfe Lógica Nebulosa


„ Definição de Distância „ 1965 – Lotfi Zadeh
‰ Muito Perto: < 1m ‰ “Fuzzy logic is a means of presenting problems to
‰ Perto: 1 – 3m computers in a way akin to the way humans solve
‰ Médio: 3 – 5m them”
‰ Longe: 5 – 7m
‰ Muito Longe: >7m ‰ “The essence of fuzzy logic is that everything is a
matter of degree”
„ Como classificar a distância 4.99m?
„ Muito perto, perto, médio, longe, muito longe
„ Intuitivamente, sabemos que 4.99 está mais „ 4.99 esta mais para longe do que para médio
para longe do que para médio

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Lógica Nebulosa Lógica Nebulosa


Lógica Booleana Lógica Nebulosa
„ Tradicionalistas em lógica argumentam que
lógica booleana pode ser utilizada para
Quente Quente
representar as mesmas coisas
27o Gray 27o ‰ Vários atributos: T21-24, T24-27, T27-30, T30-33
Area
‰ Fazer os intervalos ficar cada vez menores...
~Quente ~Quente

„ Com isso, o número de regras em um Rule


„ Lógica Nebulosa permite diferentes graus de Based System é muito maior...
verdadeiro e falso ‰ 50% a 80% maior
„ Pensem em um controle de Ar Condicionado...
Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

1
Processo Básico - Inferência Conjuntos Claros (Crisp)
Crisp „ Exemplo
Fuzzification ‰ Universo (U): números inteiros entre 1 e 15
‰ Pares = { 2, 4, 6, 8, 10, 12, 14}
‰ Ímpares = { 1, 3, 5, 7, 9, 11, 13, 15}
Regras „ 2 pertence aos pares, 3 pertence aos ímpares
Nebulosas
„ Operações
‰ União
Crisp
‰ Interseção
Defuzzification
‰ Complemento

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Conjuntos Nebulosos Membership Functions


„ Conjuntos Crisp não são adequados em „ Transformam uma entrada crisp em uma
várias situações práticas entrada nebulosa
‰ Exemplo Teste de QI ‰ As funções vão indicar o grau daquela entrada
„ Burro = { 70, 71, 72, ... , 89} para um determinado conjunto nebuloso
„ Mediano = { 90, 91, 92, ... , 109} ‰ Definem uma transição gradual
„ Inteligente = { 110, 111, ... , 129} ‰ Mapeiam a entrada em valores 0..1
‰ Como comparar os QI’s 89 com 90 e 91 com 109? ‰ Virtualmente qualquer função pode ser usada
„ Os conjuntos nebulosos permitem que os
elementos pertençam à diferentes conjuntos
„ Esse processo é chamado de Fuzzification
‰ Partial Membership

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Membership Functions Funções Típicas


Rampa Triângulo
Lógica Booleana Lógica Nebulosa

1.0 1.0

1.0 1.0 0.0 0.0


0.5 x0 x1 x0 x1 x2
0.0 0.0

27 24 27 30 Rampa Invertida Trapézio


26.9 graus é frio 27 graus é 0.5 quente
27.1 graus é quente (27 graus é meio quente) 1.0 1.0

0.0 0.0

x0 x1 x0 x1 x2 x3

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

2
Membership to Fuzzy Sets Dicas para uma boa escolha
„ De forma a fazer transições suaves a soma
Burro Mediano Inteligente dos DOMs deve ser próxima de 1
1.0
„ Não colocar mais de dois conjuntos para
0.75 cada valor de x
0.25
Contra Burro Mediano Inteligente
0.0 Exemplo 1.0
80 100 120

115

Degree of Membership (DOM): FMediano (115) = 0.25


25% Mediano
FInteligente (115) = 0.75 0.0
75% Inteligente
80 100 120

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Operadores Operadores
„ Mediano AND Inteligente „ Mediano OR Inteligente
Burro Mediano Inteligente Burro Mediano Inteligente
1.0 1.0

0.75

0.25

0.0 0.0
80 100 120 80 100 120
115 115

FMediano∩ Inteligente ( x) = min{FMediano ( x), FInteligente ( x)} FMediano∪ Inteligente ( x) = max{FMediano ( x), FInteligente ( x)}

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Operadores Operadores
„ NOT Inteligente „ Hedge
FVERY ( x) = (F ( x) )
2
‰ Very:
Burro Mediano Inteligente
„ “estreita” o conjunto
1.0
‰ Fairly: FFAIRLY ( x) = F ( x)
„ “alarga” o conjunto
0.25

0.0
80 100 120
115

F¬Inteligente ( x) = 1 − FInteligente ( x)

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

3
Regras Nebulosas Regras Nebulosas
„ If A then B „ As regras são disparadas com um certo grau!
‰ A é chamado antecedente ou premissa „ Após a aplicação de todas as regras, pode-se
‰ B é chamado conseqüente ou conclusão ter diferentes graus para as conclusões
„ Exemplos: „ Inferência Nebulosa
‰ If Perto and Tem_Munição then Atira ‰ Para cada regra
‰ If Longe then Faz_Nada „ Para cada Antecedente, calcular o seu grau
„ Calcular a Conclusão
„ Diferentemente da lógica booleana, A vai ter
valores entre 0 e 1. B vai receber o mesmo ‰ Combinar os resultados para determinar o conjunto
nebuloso (Fuzzy Association Matrix – FAM)
valor de A
‰ Se desejada uma saída crisp fazer a defuzzificação

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Exemplo Exemplo
„ Temos um lançador de granadas, e „ Distância
queremos saber quando ele é útil, de forma a ‰ pixels
escolhê-lo e usá-lo na hora certa
„ Munição
„ Variáveis (FLVs – Fuzzy Linguistic Variables) ‰ # granadas
‰ Antecedentes
„ Distância para o alvo
„ Quantidade de munição
‰ Conclusão „ Utilidade
„ Utilidade ‰ %

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Exemplo: Regras Exemplo: Inferência


„ Lançador de granadas é mais útil a média „ 200 pixels de distância com 8 granadas...
distância. Perto pode me matar „ Uso o lançador de granadas?
‰ If longe AND Carregada THEN serve
„ Inferência
‰ If longe AND OK THEN inutil
‰ If longe AND Baixa THEN inutil
‰ Regra 1: If longe AND Carregada THEN serve

‰ If medio AND Carregada THEN util


„ Longe = 0.33, Carregada = 0 : (0.33 AND 0) = 0
‰ If medio AND OK THEN util „ Portanto, Serve = 0
‰ If medio AND Baixa THEN serve ‰ Regra 2: If longe AND OK THEN inutil
‰ If perto AND Carregada THEN inutil „ Longe = 0.33, Ok = 0.78 : (0.33 AND 0.78) = 0.33
‰ If perto AND OK THEN inutil „ Portanto, Inutil = 0.33
‰ If perto AND Baixa THEN inutil ‰ ...

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

4
Exemplo: FAM Exemplo: agregação
„ Fuzzy Association Matrix (FAM) „ Considera-se apenas as regras “disparadas”
Perto Médio Longe
„ O valor obtido pode ser considerado como
Inútil Serve Inútil um nível de confidência daquele resultado
Baixo
0 0.2 0.2 ‰ Útil = 0.67
‰ Serve = 0.2
OK
Inútil Útil Inútil ‰ Inútil = 0.33
0 0.67 0.33 „ Max das duas que dispararam. Pode usar o mínimo, a
soma ou alguma média.
Inútil Útil Serve
Carregada
0 0 0

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Exemplo: resultados graficamente Exemplo: Combinando Conclusões


Inútil Inútil Inútil
1.0 1.0 1.0
Utilidade
0.33 para distância 200 e
0.0 0.0 0.0 Munição 8
50 50 50 +
Serve Serve Serve
1.0 1.0 1.0 1.0

0.20
0.0 0.0 0.0 0.0
50 50 50 50
Util
+
Util Util 1.0
1.0 1.0
0.67

0.0 0.0 0.0


50 50 50
Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

Exemplo: Defuzzificação Exemplo: Defuzzificação


„ Processo de obter um resultado crisp partir „ Centróide
do conjunto nebuloso ‰ O método mais preciso mas também o mais
complexo de calcular
‰ Computa-se o centróide (centro de massa) do
„ Vários Métodos:
conjunto
‰ MOM – Meam of Maximum
1.0 Util
‰ Centróide max
⎛ ⎞
‰ MaxAv (Mediana)
∑ ⎜⎝ x × ∑ f ( x) ⎟
m
⎠ Inútil
Valor = x = min m
max
⎛ ⎞ Serve
‰ Etc... ∑ ∑ m ⎠⎜
x = min ⎝ m
f ( x ) ⎟
0.0
50
No exemplo, centróide = 58.9

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG

5
Exemplo: Resultado Final Aplicações em Jogos
„ Controle de Movimento
‰ Para onde virar o NPC?
„ Tomada de Decisões / Inferência
‰ Qual decisão tomar frente ao estado atual?
„ Exército Inimigo: pequeno, médio, grande, ...
„ Distância: muito longe, longe, perto, ...
„ Conclusão: pouca ameaça, média ameaça, ...
„ Ação: número de exércitos enviar para defesa
„ Classificação
‰ Ex. Determinar um ranking para seus NPCs

Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG Agentes Inteligentes Prof. Luiz Chaimowicz - DCC - UFMG