Inteligência Artificial para Jogos - Lógica Difusa
-
Upload
joao-ricardo-bittencourt -
Category
Documents
-
view
452 -
download
3
description
Transcript of Inteligência Artificial para Jogos - Lógica Difusa
![Page 1: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/1.jpg)
Inteligência Artificial para Jogos
Lógica Difusa
GT-JEDI – Jogos DigitaisInteligência Artificial para Jogos
UNISINOS
Prof. MSc. João Ricardo Bittencourt
Update: 20 Set. [email protected]
Agradeço e dedico estasaulas ao Prof. Osório
“Tome a pílulavermelha”
![Page 2: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/2.jpg)
UNISINOS - João Ricardo Bittencourt
Sumário Conceitos básicos de lógica Conjuntos difusos Variáveis linguisticas Regras difusas Métodos de fuzzification/defuzzification Considerações Finais
![Page 3: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/3.jpg)
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
![Page 4: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/4.jpg)
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)
![Page 5: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/5.jpg)
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,...
![Page 6: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/6.jpg)
UNISINOS - João Ricardo Bittencourt
Conjuntos difusosTriangular
Trapezoidal
Descendente
Ascendente
![Page 7: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/7.jpg)
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→
![Page 8: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/8.jpg)
UNISINOS - João Ricardo Bittencourt
Variáveis lingüísticas Temperatura Muito baixa,baixa, normal, alta, →
muito alta
temperature
Otemperature
0
1
353227 36.5 37.5 40 41 43
very_highhighnormallowvery_low
![Page 9: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/9.jpg)
UNISINOS - João Ricardo Bittencourt
Variáveis lingüísticas Sarampo Nula, Baixa, Pode ser, Alta→
sarampo
Osarampo
0
1
5
highmaybelownull
10 5030 8070 95
![Page 10: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/10.jpg)
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 ...
![Page 11: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/11.jpg)
UNISINOS - João Ricardo Bittencourt
Regras difusasTemperature
very_low low normal high very_high
Age
very_young null low maybe high highyoung null null low maybe highold null null null low lowvery_old null null null null low
Quadro resumo das regras
![Page 12: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/12.jpg)
UNISINOS - João Ricardo Bittencourt
Inferência difusa
![Page 13: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/13.jpg)
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
![Page 14: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/14.jpg)
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
![Page 15: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/15.jpg)
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
![Page 16: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/16.jpg)
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
![Page 17: Inteligência Artificial para Jogos - Lógica Difusa](https://reader036.fdocumentos.tips/reader036/viewer/2022081821/5571f80349795991698c7488/html5/thumbnails/17.jpg)
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