Inteligência Artificial
Escola de Verão 2008
Laboratório Associado de
Computação e Matemática
Aplicada – LAC
www.lac.inpe.br/~demisio/ia_lac.htmlLógica Nebulosa
• A Lógica Nebulosa (ou Lógica
Difusa – “Fuzzy Logic”) introduzida
formalmente por Lotfi Zadeh em
1965 para tratar do aspecto vago
da informação
• Lida com conceitos com verdade
parcial (imprecisão).
• Lógica clássica - declarações são
verdadeiras (V) ou falsas (F).
•No sentido mais restrito - a lógica nebulosa é um sistema lógico, sendo uma extensão dos sistemas lógicos binários.
•No sentido mais amplo - a lógica nebulosa é a lógica baseada na teoria dos conjuntos nebulosos.
•O conceito básico na lógica nebulosa é o de uma variável lingüística, ou seja, uma variável cujos valores são palavras ou sentenças ao invés de números.
•Representação de valores de pertinência intermediários entre os valores de verdade e falso da lógica clássica
•Possibilita a representação de conceitos imprecisos
•Aproxima o raciocínio humano ao da lógica executada pela máquina.
• Em Lógica Nebulosa, a verdade de uma declaração é um grau de pertencimento (pertinência).
– a declaração pode ser verdadeira e falsa ao mesmo tempo, mas com graus diferentes.
• O conceito de grau de pertencimento aplicado no problema do conjunto de pessoas altas anterior.
– Considerando 1,72 metros como limiar para o conjunto,
– Uma pessoa com 1,71 m é alta (verdade) com grau de 90% e como falsa com grau de 10%, por exemplo.
Exemplo:
• Considerando o universo de todas as
pessoas que trabalham em uma empresa,
deseja-se selecionar todas as pessoas
altas.
• Sejam as alturas de 3 pessoas A, B, C
dadas por:
A: 1,79 m B: 1,68 m C: 1,81 m
Conjunto Crisp de Altura Conjunto Nebuloso de Altura
Altura [m] 1
0
Baixo Médio Alto
1,7 0 1,8 0 (Altura)
µ
1,6 0 1,7 9 0.8 0.2 [m] Altur a 1 0Baixo Médio Alto
1,70 1,80 (Altura)
µ
1,6 0 1,79Altura Baixo Médio Alto
A 1,79 m 0 1 0
B 1,75 m 0 1 0
C 1,64 m 1 0 0
Altura Baixo Médio Alto
A 1,79 m 0 0.2 0.8
B 1,75 m 0 0.4 0.6
C 1,64 m 0.7 0.3 0
Valor da função Característica no Conjunto Crisp
• O grau de pertencimento de um objeto a um conjunto nebuloso é declarado por funções de pertencimento (ou de pertinência) que definem curvas em que cada ponto no espaço de entrada é mapeado em um valor de pertinência (ou grau de pertinência) que varia entre 0 e 1.
• As funções podem ser de diversas naturezas e estão associadas à semântica desejada para um conceito.
• A implementação das funções pode ser realizada através de equações que definem triângulos, trapézios, Gaussianas, forma de S, sinos, etc.
• Exemplos: Definição de conjuntos
nebulosos usando funções trapezoidais
Conjunto Nebuloso de Altura
Altura
[m] 1
0
Baixo Médio Alto
1,7 0 1,8 0 (Altura)
µ
1,6 0 1,7 9 0.8 0.2 Meia-idade Idoso Idade Jovem• Lógica Nebulosa pode ser aplicada, na construção de sistemas especialistas para descrever conceitos imprecisos:
• ALTURA (alto, baixo);
• VELOCIDADE (rápido, lento);
•TAMANHO (grande, médio, pequeno);
•QUANTIDADE (muito, razoável, pouco);
•IDADE (jovem, velho).
• Considerando um conjunto nebuloso A, sua função de pertinência é definida como:
• X é o Universo de Discurso de todos os elementos, ou seja, o
escopo da variável.
• O processo de atribuição de um grau de pertinência à variável é denominado de “fuzificação” (“fuzzyfication”).
X
x
X
x
A(
)
:
→
[
0
,
1
],
∈
µ
• Conjunto nebuloso discreto é representado
associando-se cada elemento ao seu grau
de pertinência.
• Conjunto nebuloso contínuo
∑
==
+
+
+
=
n i i i A n n A A Ax
x
x
x
A
, 1 2 2 1 1µ
µ
µ
µ
L
∫
=
X Ax
x
A
µ
(
)
• Os operadores lógicos “E” (&), “OU” () e “NÃO” (¬) também se aplicam à lógica nebulosa.
• Os graus de pertinência nos extremos (1 ou 0)
– os operadores lógicos padrão se aplicam diretamente,
• a lógica nebulosa é considerada como um superconjunto da lógica clássica.
• Normalmente, o operador “E” é implementado através de uma função de cálculo de valor mínimo;
• O operador “OU” é implementado por uma função de cálculo de valor máximo;
• O operador “NÃO” usa o complemento aditivo.
Os três operadores também podem ser definidos de outras formas usando T-normas, para uma classe geral de operadores de intersecção, ou T-conormas, para uma classe geral de operadores de agregação para a união de conjuntos nebulosos.
• Os operadores também podem ser definidos de outras formas usando T-normas (classe geral de operadores de interseção), ou T-conormas (classe geral de operadores de agregação para a união)
T-norma T-conorma Nome
) ,
min(x y max(x,y) Zadeh
y
x. x+y−xy Probabilistica
) ,
max(x+ y−10 min(x+y,1) Lukasiewicz
) )( ( x y xy xy − + − + γ γ 1 xy xy xy y x ) ( ) ( γ γ − − − − − + 1 1 1 Hamacher ( γ >0) x se y y se x , , 1 1 = = x se y y se x , , 0 0 = = Weber
Regras Nebulosas
Regras Nebulosas
Se (
premissa) então (
conclusão
)
As regras nebulosas:
Regra j: Se x1éA1je ... e xnéAnjentão yéBj
Anj e Bjsão conjuntos nebulosos.
Entrada Nebulosa fuzificador fuzificador Base Base de Regras de Regras defuzificador defuzificador M Mááquina quina de Inferência de Inferência Conj. Conj. nebulosos nebulosos Valores Num
Valores Numééricosricos AAççãoão Conj.
nebulosos
• Sistemas baseados em regras utilizando a lógica nebulosa.
• A interpretação das regras estabelecidas envolve:
a) “Fuzificação” das entradas. São atribuídos valores de pertinência no intervalo [0,1] a todas as declarações nebulosas nos antecedentes das regras.
– Caso haja um único antecedente, seu grau de pertinência é considerado também como o grau de certeza (suporte) da regra.
b) Aplicação de operadores nebulosos aos múltiplos antecedentes, o que resultará em um antecedente único com valor de pertinência no intervalo [0,1], que também será considerado como o grau de suporte da regra.
c) Aplicação do método de implicação, que usa o grau de suporte de toda regra para obter o conjunto nebuloso de saída, ou seja, realiza a dedução.
O conseqüente de uma regra nebulosa atribui um
conjunto nebuloso à saída, representado por uma função de pertinência escolhida para indicar as qualidades do conseqüente.
Se o antecedente é apenas parcialmente verdade (grau de pertinência < 1), então o conjunto nebuloso de saída é truncado de acordo com o método de implicação.
• Na lógica nebulosa a implicação faz uso de uma versão nebulosa de modus ponens, originalmente usado para obter B a partir de A & (A →B).
• Tomando-se o fato de que
A & (A→B) ↔(A & B)
a versão nebulosa poderia ser:
µR(x,y) = min(µA(x),µB(y)),
• Conhecida como a Regra de Mamdani.
• Inferência nebulosa (ou modus ponens
generalizado):
Se x é A Então y é B
Tem-se A*
---Então B*
• Quando existem várias regras que envolvem a mesma variável, é necessário usar um método de agregação das conclusões implicadas por cada regra.
Se x é A1 Então y é B1
Se x é A2 Então y é B2
...
Se x é An Então y é Bn
• Diferentes técnicas de agregação (Mamdani, Larsen, Lukasiewics etc.) produzem resultados ligeiramente diferentes.
• A escolha do método depende do comportamento desejado no sistema.
• Após o processo de agregação, cada variável de saída é representada por um conjunto nebuloso.
Mamdani
Mamdani
•O operador de implicação nebuloso de Mamdani proposto nos anos 1970, é uma versão simplificada de Zadeh max-min.
Modelo de inferência de Mamdani
• Um sistema que usa o modelo de inferência de Mamdani utiliza um defuzificador para gerar a saída do sistema.
União Interseção
φ
( ) ( ) [ A x B y ] A( )x B( )y c µ µ µ µ φ , ≡ ∧Larsen
Larsen
•O operador de implicação nebuloso de Larsen usa o produto aritmético.
•O modelo de Larsen utiliza o defuzificador para gerar a saída do sistema.
União Produto
Takagi
Takagi
e
e
Sugeno
Sugeno
•Takagi e Sugeno usa as seguintes regras nebulosas se/então: Se x1é Fl
1e ... e xné Fln, então yl=cl0+cl1x1+ ... + clnxn
•Fl
i→conjuntos nebulosos;
•ci →parâmetros reais estimados;
•yl→sistema de saída
• Esse modelo não precisa de defuzificador porque os valores de saída são crisp.
Modelo de inferência de Takagi e Sugeno (Modelo de Interpolação )
• As aplicações necessitam de uma saída na forma de um escalar, através da “desfuzificação” (adaptado do inglês “Defuzzification”).
• Diferentes técnicas podem ser usadas para a “desfuzificação” de um conjunto nebuloso
– As mais usadas são o “centro de gravidade”, “o centro de possibilidade máxima” e “o maior máximo”.
• Este processo sempre implica em perda de informação.
• Operadores de implicação Mamdani-Min 0 135 180 1 0 Leste 0 45 90 esquerda 1 0
IF direção is sul THEN trajetória is frente
.
90 135 270 1 0 sul frente 1 0 -45 0 45 -45 0 45 -45 22,5 90 1 0 22,5° min min max Entrada Nebulosa fuzificador fuzificador Base Base de Regras de Regras desfuzificador desfuzificador M Mááquina quina de Inferência de Inferência Controlador Controlador Nebuloso Nebuloso sensor
sensor processoprocesso atuadoratuador
Conj. Conj. nebulosos nebulosos Valores Valores Num
Numééricosricos AAçção de Controleão de Controle
Conj. nebulosos
•
•ObjetivoObjetivo: Manter um veículo em movimento em :
uma trajetória desejada, sem intervenção de operadores externos.
?
- Obter informações do ambiente durante o movimento.
Problema de Navega
Problema de Navega
ç
ç
ão Autônoma
ão Autônoma
•
•Necessidades:Necessidades:
- Replanejar a trajetória.
Extra
Extra
ç
ç
ão das Caracter
ão das Caracter
í
í
sticas
sticas
(l,p) (l,p+1) (l,p-1) (l,p-2) (l,p+2)
Operador gradiente usado em uma só direção (horizontal):
Faixa da Esquerda
Faixa da Esquerda
Variável faixa da esquerda:
•o Range foi ajustado para o vetor [-30 30];
•foram adicionadas sete funções gaussianas;
•Faixa da esquerda muito a esquerda, parâmetros [2.251 -30];
•Faixa da esquerda médio a esquerda, parâmetros [2.25 -20];
•Faixa da esquerda pouco a esquerda, parâmetros [2.25 -10];
•Faixa da esquerda zero a esquerda, parâmetros [2.25 0];
•Faixa da esquerda pouco a direita, parâmetros [2.25 10];
•Faixa da esquerda médio a direita, parâmetros [2.251 20];
Variável faixa da direita:
•o Range foi ajustado para o vetor [-30 30];
•foram adicionadas sete funções gaussianas;
•Faixa da direita muito a esquerda, parâmetros [2.251 -30];
•Faixa da direita médio a esquerda, parâmetros [2.25 -20];
•Faixa da direita pouco a esquerda, parâmetros [2.25 -10];
•Faixa da direita zero, parâmetros [2.25 0];
•Faixa da direita pouco a direita, parâmetros [2.25 10];
•Faixa da direita médio a direita, parâmetros [2.251 20];
•Faixa da direita muito a direita, parâmetros [2.25 30]; Faixa da Direita
Faixa da Direita
Variável Saída:
•o Range foi ajustado para o vetor [-30 30];
•foram adicionadas sete funções gaussianas;
•Saída muito a esquerda, parâmetros [-39 -31 -29 -21];
•Saída médio a esquerda, parâmetros [-29 -21 -19 -11];
•Saída pouco a esquerda, parâmetros [-19 -11 -9 -0.9997];
•Saída zero, parâmetros [-9 -0.9997 0.9998 9];
•Saída pouco a direita, parâmetros [0.9998 9 11 19];
• Exemplos de regras para o sistema real:
-Se (faixa da esquerda está muito a esquerda) e (faixa da direita está muito a esquerda) então (saída é muito a esquerda);
-Se (faixa da esquerda está médio a esquerda) e (faixa da direita está médio a esquerda) então (saída é médio a esquerda);
-Se (faixa da esquerda está pouco a esquerda) e (faixa da direita está pouco a esquerda) então (saída é pouco a esquerda);
Faixa da Esquerda
Faixa da Direita