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”
Agradeço e dedico estas aulas ao Prof. Osório

GT-JEDI – Jogos Digitais Inteligência Artificial para Jogos 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 1 very_low low normal high very_high

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

low

maybe

high

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
very_young young old very_old very_low null null null null low low null null null Temperature normal high very_high maybe high high low maybe high null low low null null low

Age

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.