Inteligência Artificial para Jogos - Lógica Difusa

Post on 23-Jun-2015

452 views 3 download

description

Aula 7 - Inteligência Artificial para Jogos Curso de Jogos Digitais - UNISINOS www.unisinos.br/jogos (Aula criada com apoio do Prof.Dr. Fernando Osório) Licença: Creative Commons - Atribuição-Uso não-comercial-Compartilhamento (BY-NC-SA) http://creativecommons.org/licenses/by-nc-sa/2.5/br/

Transcript of Inteligência Artificial para Jogos - Lógica Difusa

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. 2010joaorb@unisinos.br

Agradeço e dedico estasaulas ao Prof. Osório

“Tome a pílulavermelha”

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

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 difusosTriangular

Trapezoidal

Descendente

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

temperature

Otemperature

0

1

353227 36.5 37.5 40 41 43

very_highhighnormallowvery_low

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

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 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

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