Lógica e Sistemas Nebulosos (fuzzy) Mêuser Valença Geber Ramalho sor 1 Lógica Nebulosa ou Raciocínio Aproximado (RA) • O conhecimento humano é muitas vezes incompleto, incerto ou impreciso. • IA preocupa-se com formalismos de representação e raciocínio que permitam o tratamento apropriado a cada tipo de problema. • Ex. Voce vai ao cinema hoje? – – – – sor Provavelmente sim. Não sei se vou. Vou de tardezinha. Estou com muita vontade de ir 2 Tipos de Incerteza e seus Modelos Incerteza estocástica: A probabilidade de acertar o alvo é 0.8 Incerteza léxica: "Homens Altos", "Dias Quentes", "Moeda Estável" Nós provavelmente teremos um bom ano de negócios A experiência do especialista A mostra que B está quase para ocorrer, porém, o especialista C está convencido de que não é verdade Muitas palavras e estimativas que nós usamos em nosso raciocínio diário não são facilmente definidas de forma matemática. Isso permite ao homensorraciocinar em um nível abstrato! 3 LÓGICA FUZZY • Objetivos – Modelar a incerteza da linguagem natural adaptando computadores para raciocinarem com informações imprecisas e vagas: “imprecisões lingüisticas”, como “alto”, “baixo”, “muito”, “pouco”, ... – método baseado em subconjuntos nebulosos, em que não ha um continuum entre “pertence” ou “nao pertence” Ex: Classe dos homens altos, a classe de erros significativos, etc. – Esses conceitos, apesar de imprecisos, têm um significado óbvio considerando-se um determinado ambiente sor 4 LÓGICA FUZZY • A lógica nebulosa se diferencia das lógicas tradicionais – conjuntos nebulosos => lógica multivariada que permite conceito de parcialmente verdadeiro. • Os valores verdade podem ser subconjuntos nebulosos de um conjunto base e denotados por termos lingüísticos – verdadeiro, muito verdadeiro, mais ou menos verdadeiro, não muito falso, etc. sor 5 LÓGICA FUZZY • Os predicados podem ser precisos como na lógica clássica (mortal, par, pai_de), ou imprecisos (cansado, grande, muito_mais_ pesado_ que, amigo_de). • Os quantificadores podem ser de vários tipos como a maioria, muitos, vários, freqüentemente, cerca de 10, pelo menos 7. • Os modificadores de predicado tais como não, muito, mais_ou_menos, extremamente, levemente, podem ser também representados. sor 6 Teoria de Conjunto Fuzzy Teoria de Conjunto Convencional (Booleano): 38.7°C 38°C 40.1°C 39.3°C 41.4°C 42°C “Febre Alta” 37.2°C Teoria de Conjunto Fuzzy: 38.7°C 38°C 40.1°C 39.3°C 41.4°C 42°C 37.2°Cou aquilo”! “mais ou menos“ ao invés de “ou isto sor 7 Conjuntos Nebulosos Def. O subconjunto nebuloso A de um universo de discurso X, é definido por uma função de pertinência que associa a cada elemento x de X o grau depertinência mA(x) compreendido entre 0 e 1. mA : X -> [0,1] 1 1 baixo alto baixo X(m) 1,55 alto 1,80 X(m) mALTO(1,70) = 0.6, lêia-se 1,70 pertence à classe alto c/ pertinência de 0.6 Conjunto de Definições Fuzzy Definição discreta: µSF(35°C) = 0 µSF(38°C) = 0.1 µSF(41°C) = 0.9 µSF(36°C) = 0 µSF(39°C) = 0.35 µSF(42°C) = 1 µSF(37°C) = 0 µSF(40°C) = 0.65 µSF(43°C) = 1 Definição contínua: Não mais limiares artificiais ! µ(x) 1 0 36°C sor 37°C 38°C 39°C 40°C 41°C 42°C 9 Lógica Nebulosa • Nova teoria dos conjuntos => nova lógica – rejeita os axiomas da consistência (P P F) e do terceiro excluído (P P T) • Operadores lógicos: – Sendo r, r1 e r2 fórmulas bem formadas r = 1 - r r1 r2 = min (r1,r2) ou r1 r2 (t-norma) r1 r2 = max (r1,r2) ou r1 +r2 (snorma) $ri = min (r1,r2), i U "ri = max (r1,r2), i U r1 r2 = min (r1,r2) INTRODUÇÃO À LÓGICA FUZZY Operações com conjuntos fuzzy conjunto A = {5,8} conjunto B = {4} MÊUSER VALENÇA - E-MAIL : [email protected] INTRODUÇÃO À LÓGICA FUZZY Conjunto União Conjunto Interseção MÊUSER VALENÇA - E-MAIL : [email protected] INTRODUÇÃO À LÓGICA FUZZY Conjunto negação Verdade (não x) = 1.0 - Verdade (x) MÊUSER VALENÇA - E- MAIL : [email protected] Sistemas Especialistas Nebulosos (controladores) • Sistema de regras de produção nebulosas: – SE x1 é A1 e ... e xn é An ENTÃO y é B – Ex. Se a temperatura é baixa e a pressão é média então válvula em posição normal • Características – Sistema reativo (1 passo de inferência, nenhum encadeamento) – Mais de uma regra pode disparar ao mesmo tempo – 4 etapas: Fuzzificação, Inferência, Composição e Defuzzificação sor 14 Etapas Lógica Fuzzy define a estratégia de controle no nível linguístico! Measured Variables (Linguistic Values) Inference + composition Command Variables (Linguistic Values) Linguistic Level Numerical Level Measured Variables (Numerical Values) sor Defuzzification Fuzzification Plant Command Variables (Numerical Values) 15 Etapas • Fuzzificação – applicação das variáveis de entrada às suas funções de pertinência: (xk é Ak), ..., (xp é Ap) • Inferência – Avaliação de cada premissa: conjunções e implicações (MIN ou PROD) • Composição – combinar todos os sub-conjuntos afectados à uma variável (MAX ou SOMA) • Defuzzificação sor – Cálculo do valor nítido da variável (MAX ou CENTROIDE) 16 Exemplo 1: Pêndulo invertido • Exemplo de Controle FUZZY – Equilibrar uma baliza sobre uma plataforma móvel, que pode mover-se em apenas duas direções : esquerda ou direita. – Inicialmente, temos que definir (subjetivamente) as variáveis linguísticas. – Isto é feito pela definição de funções membro para os subconjuntos Fuzzy. sor 17 Exemplo 1: Pêndulo invertido • Plataforma : velocidade neg_alta, velocidade neg_baixa, velocidade zero , etc. sor 18 Exemplo 1: Pêndulo invertido • Estabelecimento de Regras. – Se posição vertical(ângulo zero) e não se move (velocidade angular zero), estamos na situação ideal e portanto não devemos movimentar a plataforma (velocidade zero) – Se ângulo zero e se move com baixa velocidade angular, na direção positiva, devemos movimentar a plataforma na mesma direção com velocidade baixa. – Se ângulo é zero e velocidade angular é negativa_baixa então velocidade deve ser negativa_baixa. sor 19 Exemplo 1: Pêndulo invertido • Sumário das REGRAS. sor 20 Exemplo 1: Pêndulo invertido sor 21 Exemplo 1: Pêndulo invertido sor 22 Exemplo 1: Pêndulo invertido sor 23 Exemplo 1: Pêndulo invertido sor 24 Exemplo 1: Pêndulo invertido sor 25 Exemplo 1: Pêndulo invertido sor 26 Sumário de Desenvolvimento Fuzzy 1. Definição da Estrutura 1.1 1.2 1.3 1.4 Documentação de todas as variáveis de saída Documentação de todas as variáveis de entrada Estruturação de decisão (“muitos blocos de regras pequenos”) Seleção do método de defuzzificação 2. Variáveis Linguísticas 2.1 Número de termos por variável (começar com 3 por entrada e 5 por variável de saída) 2.2 Tipo de funções de pertinência 2.3 Definição de função de pertinência 3. Definição de Regra Fuzzy 3.1 Operador Fuzzy para agregação (começar com MIN) 3.2 Operador Fuzzy para agregação de resultado(começar com MAX) 3.3 Selecionar método de definição de regra dependendo da aplicação 4. Teste Offline 4.1 Validação dos blocos de regra (identificação das regras faltantes e conflitantes) 4.2 Teste usando processo de simulação (se disponível) 4.3 Teste usando processo de dados real (se disponível) 5. Configuração 6. Operação e Manutenção sor O caminho certo para o sucesso! 27 Exemplo 2 Dadas três variáveis x, y e z U , as funções de pertinência e as regras abaixo mBAIXO(t) = 1 - t/10, mALTO(t) = t/10 R1: Se x é baixo e y é baixo então z é alto 1 Baixo R2: Se x é baixo e y é alto então z é baixo R3: Se x é alto e y é baixo então z é baixo R4: Se x é alto e y é alto então z é alto Alto 10 w Exemplo 2 Para x = 0.0, mBAIXO(x) = 1, mALTO(x) = 0 y = 3.2, mBAIXO(y) = 0.68, mALTO(x) = 0.32 FUZZIFICAÇÃO alfa1 = 0.68 (premissas de R1) alfa2 = 0.32 (premissas de R2) alfa3 = 0 (premissas de R3) alfa4 = 0 premissas de R4) INFERÊNCIA (MIN) R1(z) = z/10, se z <= 6.8 0.68, se z > 6.8 R2(z) = 0.32, 1 - z/10, 1 0.68 se z <= 6.8 se z > 6.8 1 0.32 6.8 10 w 6.8 10 w Exemplo 2 fuzzy(z)= 0.32 z/10 0.68 se z <= 3.2 se 3.2 < z <= 6.8 se z > 6.8 COMPOSIÇÃO (max) 1 0.32 3.2 valor nítido = centroide (z) = 5.6 sor 6.8 10 DEFUZZIFICAÇÃO 30 Exemplo 3: Guindaste para container Duas variáveis de medida e uma variável de comando! sor 31 Elementos Básicos de um Sistema de Lógica Fuzzy Loop de controle do Guindaste de Conteiner controlado por Lógica Fuzzy: Angle, Distance (Numerical Values) 2. Fuzzy-Infe re nce Fechando o “loop” com palavras! Power (Linguistic Variable) Linguistic Lev e l Nume rical Lev e l Angle, Distance (Numerical Values) sor 3. De fuzzification 1. Fuzzification Containe r Crane Power (Numerical Values) 32 1. Fuzzificação: Variáveis Linguísticas Definição de termos: Ângulo := {pos_grande, pos_pequeno, zero, neg_pequeno, neg_grande} Definição de função de pertinência: µ neg_big zero neg_small pos_small pos_big 1 0 -90° -45° 0° 45° 90° Angle sor 33 1. Fuzzificação: Variáveis Linguísticas(Cont.) Definição de termos: Distância := {longe, média, perto, zero, neg_perto} Definição de função de pertinência: µ neg_close zero close medium far 1 0 -10 sor 0 10 Distance [yards] 20 30 34 1. Fuzzificação: Variáveis Linguísticas(Cont.) Definição de termos: Potência := {pos_alta, pos_média, zero, neg_média, neg_alta} Definição de função de pertinência: µ neg_high neg_medium zero pos_medium pos_high 1 0 -30 -15 0 15 30 Power [Kilowatts] sor 35 1. Fuzzificação: Variáveis Linguísticas(Cont.) Definição de termos: As Variáveis liguísticas são o “vocabulário“ de um Distância := {longe, média, perto, zero, neg_perto} sistema de Lógica Fuzzy! Ângulo := {pos_grande, pos_pequeno, zero, neg_pequeno, neg_grande} Potência := {pos_alta, pos_média, zero, neg_média, neg_alta} Definição de função de pertinência: µ neg_big zero neg_small pos_small µ pos_big neg_close zero close medium far 1 1 0.9 0.8 0.2 0.1 0 0 -90° -45° 0° 4° Angle sor 45° 90° -10 0 10 12m Distance [yards] 20 30 36 2. Inferência Fuzzy: Regras “IF-THEN” Implementação das regras “IF-THEN”: #1: IF Distância = média AND Ângulo = pos_pequeno THEN Potência = pos_média #2: IF Distância = média AND Ângulo = zero THEN Potência = zero #3: IF Distância = longe AND Ângulo = zero THEN Potência = pos_média #4: IF Distância = longe AND Ângulo = pos_pequeno THEN Potência = pos_média Agregação: Composição: Cálculo da parte do “IF” Cálculo da parte do “THEN” As regras do sistema de Lógica Fuzzy são as “Leis“ que ele executa! sor 37 2. Inferência Fuzzy: Agregação Lógica Boleana somente define operadores para 0/1: Lógica Fuzzy fornece uma extensão contínua: AND: µAvB = min{ µA; µB } OR: µA+B = max{ µA; µB } Agregação da parte do “IF”: NOT: µ-A = 1 - µA #1: min{ 0.9; 0.8 } = 0.8 #2: min{ 0.9; 0.2 } = 0.2 #3: min{ 0.1; 0.2 } = 0.1 #4: min{ 0.1; 0.8 } = 0.1 sor Agregação calcula quão “apropriado“ cada regra é para a situação corrente! 38 2. Inferência Fuzzy: Composição Resultado para a variável linguística Potência: pos_média com grau 0.8 zero com grau 0.2 ( = max{ 0.8; 0.1;0.1 } ) Composição calcula o quanto cada regra influencia as variáveis de saída! sor 39 3. Defuzzificação Encontrando um resultado usando “Centro-de-gravidade”: µ neg_high neg_medium zero pos_medium pos_high 1 “Resultado discreto para a potência” 0 -30 -15 0 Power [Kilowatts] sor 15 30 6.4 KW 40 Lógica Nebulosa • A lógica nebulosa pode ser vista em parte como uma extensão da lógica de valores múltiplos. É a lógica que trata de modelos de raciocínio aproximado. • O poder expressivo da lógica nebulosa deriva do fato de conter como casos especiais não só os sistemas lógicos binários e de valores múltiplos, mas também teoria de probabilidades e lógica probabilística. sor 41 Lógica Nebulosa • As principais características da lógica nebulosa, que a diferencia das lógicas tradicionais são: – Os valores verdade podem ser subconjuntos nebulosos de um conjunto base T, usualmente o intervalo [0,1], e denotados por termos lingüísticos como verdadeiro, muito verdadeiro, mais ou menos verdadeiro, não muito falso, etc. sor 42 História, Estado da Arte e Desenvolvimento Adicional 1965 Seminal paper “Fuzzy Logic” por Prof. Lotfi Zadeh, Faculdade de Engenharia Elétrica, U.C. Berkeley, “Teoria do Conjunto Fuzzy” 1970 Primeira aplicação de Lógica Fuzzy em engenharia de controle (Europa) 1975 Introdução de Lógica Fuzzy no Japão 1980 Verificação empírica de Lógica Fuzzy na Europa 1985 Larga aplicação de Lógica Fuzzy no Japão 1990 Larga aplicação de Lógica Fuzzy na Europa 1995 Larga aplicação de Lógica Fuzzy nos Estados Unidos Hoje, Lógica Fuzzy já se tornou tecnologia 2000 Lógica Fuzzy tornou-se tecnologia padrão e é padrão para controle também aplicada em análise de dados e sinais de múltiplas variáveis! de sensores. Aplicação de Lógia Fuzzy em finanças e negócios sor 43 Estudo de Aplicações de IEEE em 1996 Aproximadamente 1100 aplicações de Lógica Fuzzy bem sucedidas são publicadas (estimado de 5% do total existente) Quase todas as aplicações não envolveram substituição de um controlador tipo padrão (PID,..) e sim um controle de supervisão de múltiplas Variáveis Aplicações variam de controle embutido (28%), automoção industrial (62%) para controle de processo (10%) De 311 autores que responderam um quetionário, aproximadamente 90% afirmam que Lógica Fuzzy cortou o tempo de projeto para menos da metade Neste quetionário, 97.5% dos designers afirmaram que usarão Lógica Fuzzy novamente em futuras aplicações, se Lógica Fuzzy for aplicável Lógica Fuzzy será indispensável em engenharia de controle! sor 44 Exemplos de aplicações • Máquinas fotográficas – auto-focus • Máquina de lavar roupas (Máxima Continental) • Freio ABS • Ar condicionado • Configuração dinâmica de servidores Web • Qualidade de software • etc. sor 45