Universidade Estadual Paulista – UNESP Campus de Ilha Solteira Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica Lógica Nebulosa (Fuzzy Logic) (Introdução) Carlos R. Minussi Anna Diva Plasencia Lotufo Ilha Solteira-SP, junho-2011. Lógica Nebulosa: Resumo • Lotfi Zadeh (1965) desenvolveu o conceito de conjunto nebuloso (fuzzy set) baseado em pesquisas desenvolvidas por Lukasiewisz; • O cérebro humano consegue resolver questões que envolvem imprecisões: • Fuzzy set: modelagem matemática destes eventos; • Mais recentemente surgiu o conceito de Rough Set (FL é um caso particular de RS) Lógica Binária Rough Sets Lógica Nebulosa Conjuntos Rústicos (Lógica Rústica) • Projetos: - entrada / saída; - facilmente implementados (sistemas não lineares; - utilização de declarações if – then - variáveis lingüísticas. 2 • Grau (função) de Pertinência: m ˛ [0, 1] Pertinência nula Pertinência completa • Exemplo: Variável “Temperatura pode ter vários estados: Fria, fresca, moderada, morna, quente, muito quente Variáveis lingüísticas • A mudança de um estado para outro não precisa ser rigorosamente definida; • A idéia de : que é muito frio que é morno ou que é quente está sujeita a diferentes interpretações. • Regras: se <proposição nebulosa>, então, <proposição nebulosa> if then • Exemplo: “X é Y”ou “X não é Y”, X sendo uma variáveis escalar e Y sendo um conjunto nebuloso associado com a variável X. 3 • Formas de Funções de Pertinência: 1) Triangular Exemplo: m(15o )baixo = 0,7 m(15o )moderado = 0,3 m(15o )médio = 0 m(15o )alto = 0 2) Gaussiana 3) Trapezoidal 4). Etc. 4 1. Controlador Nebuloso Figura 1.1. 1.1. Controlador Nebuloso – Exemplo 1 Problema: Determinar o valor da variável de controle (u(tk)) correspondente ao estado medido em um instante tk, considerando-se os dados e ilustrações a seguir relacionados: e(tk) = 0,25 Δe(tk) = 0,5. sendo: e(tk) = erro do processo medido em tk Δe(tk) = variação do erro do processo medido em tk Δ e(tk) – e(tk-1). Figura 1.1.1. 5 Suposição: Considerar as funções de pertinência para o erro, variação do erro e controle iguais. Esta suposição é válida, tendo em vista que as variáveis envolvidas encontram-se normalizadas (X / alguma norma). 6 Figura 1.1.2. Funções de pertinência. Quadro 1.1.1. Conjunto de regras. Regra Sentença 1 IF e = ZE AND Δe = ZE, THEN u = ZE 2 IF e = ZE AND Δe = SP, THEN u = SN 3 IF e = SN AND Δe = SN, THEN u = LP 4 IF e = LP OR Δe = LP, THEN u = LN Quadro 1.1.2. Matriz discreta: Relação entre variáveis (estado ou controle) e os graus de pertinência associados. μ \ Variável -1 -0,75 -0,5 -025 0 0,25 0,5 0,75 1 μLP 0 0 0 0 0 0 0,3 0,7 1 μSP 0 0 0 0 0,3 0,7 1 0,7 0,3 μZE 0 0 0,3 0,7 1 0,7 0,3 0 0 μSN 0,3 0,7 1 0,7 0,3 0 0 0 0 μLN 1 0,7 0,3 0 0 0 0 0 0 ↑ e 7 ↑ Δe Quadro 1.1.3. Valores do grau de pertinência. μ e = 0,25 Δe = 0,5 μLP 0 0,3 μSP 0,7 1 μZE 0,7 0,3 μSN 0 0 μLN 0 0 Quadro 1.1.4. Cálculo da saída (ação de controle). Regra Antecedente U μ μu 1 ZE 0 0,3 0 2 SN -0,5 0,7 -0,35 3 LP 1 0 0 4 LN -1 0,3 -0,3 Total -0,65 u(tk) (Método Centroide) = -0,65 / (0,3 + 0,7 + 0 + 0,3) = -0,5. 1.2. Controlador Nebuloso – Exemplo 2 Turbina à Vapor Entrada : Temperatura (T) e pressão (P) Saída : Abertura da válvula (controle do fluxo de vapor) (V) Regras : 1 Se Pressão é Baixa e Temperatura é Fria, então, Abertura da Válvula é PM 2 Se Pressão é OK e Temperatura é Fria, então, Abertura da Válvula é ZR 8 Figura 2.1.1. sendo: NL = NM = NS = ZR = PS = PM = PL = Negative Large Negative Medium Negative Small ZeRo Positive Small Positive Medium Positive Large. 9 Figura 2.1.2. NB. V corresponde ao valor da projeção do centro inércia na figura gerada pelo conjunto de regras no eixo das abscissas. 3. Modificação das funções de pertinência (Busca da otimização do desempenho do Controlador nebuloso) • Existem vários caminhos para otimizar os controladores nebulosos. Entre eles, destacam-se: 1. modificar as funções de pertinência, aumentando, diminuindo ou modificando as inclinações das funções de pertinência em certas regiões em particular.: ♦ este método é particularmente utilizado quando se trabalha com sistemas não-lineares. Alguns controladores nebulosos possuem algoritmos (baseados em aprendizados) que modificam as funções de pertinência visando obter uma melhor resposta dinâmica do sistema; 2. emprego de dispositivos hedges. 10 4. Modificando as Inclinações das Funções de Pertinência (Para funções de pertinência triangulares) • Do exemplo de controle anterior (Exemplo 1) estreitando-se ZE, por exemplo, aumenta a resolução do controle em torno do set point • A mudança em LP e SP, por outro lado, intensifica a resposta do controle quando e é positivo. Figura 4.1. Funções de pertinência modificadas. 5. Emprego de Dispositivos Hedges • Genericamente é da forma: mA sendo: m = agente modificador (advérbio) A = conjunto nebuloso. • Uso de palavras “muito”, “extremamente”, “mais ou menos”, etc., • Exemplo: = A2 ♦ very A ♦ more or less A = A1/2 ♦ not A = 1 – A. As funções de pertinência para estes casos são: 11 ♦ μ A2 (X) = {μ A(x)} 2 ♦ μ A1/2 (X) = {μ A(x)} 1/2 ♦ μ A - 1(X) = 1 - μ A(x). Figura 5.1. NB: na regra IF e = SP THEN u = LP, usando-se um hedge: IF e = very SP THEN u = LP (very é um operador quadrático da função de pertinência sobre SP) proporciona variações (relativas): - pequenas para valores de μ próximos de 1 - grandes para valores de μ pequenos. Vantagens: 1. ao invés de modificar o conjunto de regras, o hedge modifica somente uma regra, enquanto que a modificação da inclinação da função de pertinência afeta todas as regras. 6. Sistemas Nebulosos Adaptativos • Sistemas capazes de se adaptarem em consequência das mudanças ambientais. • No caso do controle, são dispositivos capazes de se adaptarem em função de mudanças como parâmetros e condições operativas, e.g.: 12 ♦ envelhecimento de componentes (mecânicos, elétricos, eletrônicos) ♦ em sistemas de energia elétrica (modelos não-lineares), o ponto de operação é alterado, ao longo do tempo, visando atender a demanda (consumo de energia); ♦ Exemplo: Durante o governo de Carter (Estados Unidos), por ocasião da tentativa de libertar americanos seqüestrados (em um avião) no Irã, um helicóptero caiu no deserto por motivo de que dispositivos de navegação e de controle falharam causados por condições ambientais adversas (mudança intensa de temperatura, umidade, etc.). • Sistemas nebulosos convencionais apresentam desempenho semelhante aos controladores PID (Proporcional + Integral + Derivativo). Neste caso, podem não se adaptarem às mudanças graduais em seus ambientes de trabalho; • Deste modo, surge a necessidade de desenvolver controladores adaptativos. No caso de controladores nebulosos adaptativos. • O controlador nebuloso adaptativo, contém a mesma estrutura do controlador nebuloso convencional, acrescido de um mecanismo que permite implementar e gerenciar as modificações no conjunto de regras (mudança na inclinação das funções de pertinência (triangulares) e dispositivos hedges). 7. Problemas no Processo de Desnebulização Quando se Utiliza o Método Baricentro (Centro de Gravidade) Figura 7.1. 13 Problemas: 1. tratamento de regras redundantes (cotas g1, g3, g4 e g7) 2. interseções entre conjuntos consequentes (áreas na cor cinza escuro). • Considere o seguinte conjunto de regras nebulosas: X------------------------ Antecedente ----------------------X X- Consequente-X Regra 0: If x0 = A0 and X1 = A1 and x2 = A2, then y = P0 Regra 1: If x0 = B0 x2 = B2, then y = P0 x2 = C2, then y = P1 then y = P2 Regra 2: If and X1 = C1 and Regra 3: If x0 = D0 and X1 = D1 Regra 4: If x0 = E0 and x2 = E2, then y = P2 Regra 5: If x0 = F0 and X1 = F1 and x2 = F2, then y = P2 Regra 6: If x2 = G2, then y = P3 then y = P3 X1 = G1 and Regra 7: If x0 = H0 • a figura gerada pelo conjunto de regras corresponde a figura em com cinza, cuja projeção do baricentro sobre o eixo das abscissas é valor da ação de controle “recomendada”; • as cotas (alturas) (g0, g2, etc.) correspondem aos graus de pertinência, respectivamente das regras 0, 1, 2, etc.; • observa-se que somente g0, g2, g5 e g6 afetam a inferência que são as maiores cotas sobre cada conjunto nebuloso (P0, P1, P2 e P3). Solução: Empregar, por exemplo, o método Centroide Min-Max. Este método não será tratado aqui, visto que ele é habitalmente abordado na literatura especializada. 14 Abordagem Alternativa • o centroide pode ser estimado da seguinte forma: Centroide = n n (μ i ui ) / μ i i =1 i =1 sendo: n = número de regras μi = grau de pertinência da regra i ui = ação de controle recomendada referente à regra i. NB: A ação recomendada (ui) aqui é considerada como sendo o valor da projeção sobre a abscissa, correspondente ao valor máximo do conjunto nebuloso (μ = 1): Figura 7.1. NB.: 1. Os controladores via métodos de desnebulização baseados no centro de gravidade possuem comportamento semelhante ao controladores PI (Proporcional+Integral). 15 Exemplo (já abordado anteriormente): X = 3,9231 (cálculo exato) Figura 7.2. X = (0,4 x 2 + 0,8 x 4) / (0,4 + 0,8) = 3,34. NB.: 1. Contudo este procedimento não elimina regras redundantes. Portanto, há necessidade prévia de estabelecer corretamente o conjunto de regras (isento de redundâncias). 16 8. Granulação • Como já abordado anteriormente, o uso das palavras pode ser visto como uma forma de quantização nebulosa ou, mais genericamente, como granulação. • Basicamente, a granulação envolve a substituição de uma restrição da forma: X=a por uma restrição da forma: XéA sendo: A = um subconjunto de U (conjunto universo de X) Exemplo: X=2 pode ser substituído por: X é pequeno. • Na lógica nebulosa, a declaração X é A é interpretada como a caracterização de possíveis valores de X, em que A representa a distribuição de possibilidades. Assim, a possibilidade que X pode possuir um valor u é dada por: poss{X = u} = μ A(u). • Isto é, no senso em que X é μ A(u), com possibilidade sendo interpretada uma fácil realização, podendo, também, ser interpretada como sendo uma restrição elástica sobre X. 17 X=2 0<X<5 X é pequeno Temp = 85o temp > 85o temp é quente X=a X∈A X é A*. Outras generalidades ⎯⎯⎯⎯→ Figura 8.1 sendo: singular, c granular e f granular = modos de granulação. temp = temperatura c Granular = granulação crisp f Granular = granulação fuzzy (nebulosa). Figura 8.2. 18 9. Principais Conceitos 9.1. União μA∪B(x) = μA(x) ∨ μB(x) 9.2. Interseção μA∩B(x) = μA(x) ∧ μB(x) 9.3. Complemento μ A (x) = 1 − μA(x) 9.4. Relação de Equivalência A = B ↔ μA(x) = μB(x) 9.5. Relação de Inclusão A ⊂ B ↔ μA(x) < μB(x) 9.6. Lei de Negação Dupla = A =A 19 9.7. Leis de Morgan ____ _ _ A ∪B = A ∩ B ____ _ _ A ∩B = A ∪ B Figura 9.1. 10. Operações Com Conjuntos Nebulosos 10.1. Soma Algébrica A [+] B ↔ μA [+] B(x) = μA(x) + μB(x) − μA(x) μB(x) 10.2. Produto Algébrico A • B ↔ μ A • B (x) = μA(x) . μB(x) 10.3. Soma Limitada 20 A ⊕ B ↔ μ A ⊕ B (x) = (μA(x) + μB(x)) ∧ 1 10.4. Diferença Limitada A Θ B↔ μ A Θ B (x) = (μA(x) - μB(x)) ∨ 0 10.5. λ-Complemento _ Aλ _ ↔ μ A λ (x) = (1 - μA(x)) / ( 1+ λ μA(x)) 10.6. As leis de Morgan aplicam-se à soma algébrica, diferença algébrica e complemento: _____ _ _ A [+] B = A • B ____ _ _ A • B = A [+] B 10.7. No caso de λ-complemento, as leis de Morgan são: ____ _ _ (A ∪ B)λ = Aλ ∩ Bλ ____ _ _ λ λ (A ∩ B) = A ∪ Bλ 21 10.8. Lei de Morgan referente à dupla negação: ____ __ (Aλ)λ =A. 10.9. Quando o conjunto suporte é um conjunto finito, torna-se conveniente utilizar as seguintes expressões: Considere: X = { x1, x2, x3, ..., xn}. O subconjunto A de X pode, então, ser expresso por: A= n ∑ μ A ( xi ) / xi i =1 = μA(x1) / x1 + μA(x2) / x2 + ... + μA(xn) / xn 10.10. Os termos de grau zero são eliminados. O símbolo (+) significa or, por exemplo: a / x1+ b /x1 = a ∨ b / x1 ↑ Associado ao operador max. 10.11. Assim, a união de dois conjuntos é encontrada através da conexão com um símbolo (+). Exemplo: Considere um conjunto que pode ser chamado de grande composto por graus de pertinência em uma variação de números inteiros compreendidos entre 1 e 10: 22 grande = 0,2/5 + 0,4/6 + 0,7/7 + 0,9/8 + 1/9 + 1/10 e o conjunto em torno do valor médio é expresso por: em torno do valor médio = 0,4/3 + 0,8/4 + 1/5 + 0,8/6 + 0,4/7 então: grande ∪ em torno do valor médio = (0,2/5 + 0,4/6 + 0,7/7 + 0,9/8 + 1/9 + 1/10) + (0,4/3 + 0,8/4 + 1/5 + 0,8/6 + 0,4/7) = 0,4/3 + 0,8/4 + (0,2 ∨ 1)/5 + (0,4 ∨ 0,8)/6 + (0,7 ∨ 0,4)/7 + 0,9/8 + 1/9 + 1/10 = 0,4/3 + 0,8/4 + 1/5 + 0,8/6 + 0,7/7 + 0,9/8 + 1/9 + 1/10. 11. Regras Básicas de Inferência 1. x é A A⊂B ⎯⎯⎯ xéB 2. Usualmente (x é A) A⊂B ⎯⎯⎯⎯⎯⎯ usualmente (x é B) 3. Idade (Maria) é Jovem 23 sendo: Jovem é interpretada como sendo um conjunto nebuloso ou, equivalentemente, como um predicativo nebuloso. Portanto, podendo ser interpretado como: “Maria não é velha”, Jovem é um subconjunto do complemento de velho, que é: μjovem(u) ⊂ (1 - μvelho(u)), u ∈, e.g., [0, 100]. sendo: μjovem(u) e μvelho(u) são, respectivamente, funções de pertinência de Jovem e de Velho considerando-se o universo de abrangência o intervalo [0,100]. 4. Regra Conjuntiva xéA xéB ⎯⎯⎯ xéA∩B 24 5. Produto Cartesiano xéA yéB ⎯⎯⎯⎯⎯⎯⎯⎯⎯ (x, y) é A x B sendo: (x, y) é uma variável binária e A x B é definida por: μ A x B(u,v) = μA(u) ∧ μB(v) u∈U,v∈V 6. Regra de Projeção (x, y) é R ⎯⎯⎯⎯ x é xR sendo: xR a projeção da relação binária R no domínio de x e definida por: μxR (u) = supv μR (u,v) u∈Uev∈V em que: μR (u,v) = função de pertinência de R sup = supremo sobre v ∈ V. 25 7. Regra Composicional XéA (x,y) é R ⎯⎯⎯⎯ yéAοR sendo: A ο R = composição da relação binária A com a relação binária R defina por: μA ο R (v) 0 supu (μA(u) ∧ (μB(u)) 8. Modus Ponens Proposição 1. Se x é A, então, y é B Proposição 2. x é A’ Conclusão: y é B’ (A e A’), (B e B´) não são necessariamente iguais. 9. Modus Ponens Generalizado Proposição 1. x é A Proposição 2. Se (x for A), então, (y será B) 26 Conclusão: yéB Exemplo: Se tomate é vermelho, então, tomate é maduro Se tomate for muito vermelho, então, tomate será muito maduro. 12. Matrizes e Grafos Nebulosos • Matriz nebulosa: A relação nebulosa R definidade sobre o espaço X sendo: x Y, X = { x1, x2, ..., xn} Y = { y1, y2, ..., yn} pode ser expressa na forma matricial: ⎡ μ R ( x1, y1) μ R ( x1, y 2 ) ⎢μ ( x , y ) μ ( x , x ) R 2 2 ⎢ R 2 2 ⎢ ... ... ⎢ ⎢⎣μ R ( xn, x 2 ) μ R ( xn, x 2 ) ... μ R ( x1, nn ) ⎤ ... μ R ( x 2, xn )⎥ ⎥ ⎥ ... ... ⎥ ... μ R ( xn, xn )⎥⎦ Exemplo 1: A nebulosa relação “x possui forma semelhante a y” pode ser expressa pela matriz: 27 Pera Banana Maçã Bola Pera 1 0,2 0,6 0,6 Banana 0,2 1 0,1 0,1 Maçã 0,6 0,1 1 0,8 Bola 0,6 0,1 0,8 1 Exemplo 2: Quando a relação nebulosa sobre X = {a, b, c} é: R = 0,2/(a,a) + 1/(a,b) + 0,4/(a,c) + 0,6/(b,b) + 0,3/(b,c) + 1/(c,b) + 0,8/(c,c) a b c a 0,2 0 0 b 1 0,6 1 c 0,4 0,3 0,8 (Matriz nebulosa) (Grafo nebuloso) 28 13. Operações com Relações Nebulosas • Se R for uma relação em X x Y e S uma relação em Y x Z, a composição de R e S, R, R ο S, é a relação em X x Z definida por: R ο S ↔ μR ο S(x,z) = ∨ {μR (x,y) ∧ μS (y,z)} y (Composição max-min) • Exemplo: Considere X = {x1, x2}, Y = {y1, y2, y3}, Z = {z1, z2}. Se as relações nebulosas R e S são expressa pelas seguintes matrizes, a composição R pode ser determinada como segue: ⎡0,4 0,6 0 ⎤ R= ⎢ ⎥, S = 0 , 9 1 0 , 1 ⎣ ⎦ ⎡0,5 0,8 ⎤ ⎢ 0,1 1 ⎥ ⎥ ⎢ ⎢⎣ 0 0,6⎥⎦ ⎡0,4 0,6 0 ⎤ R ΟS = ⎢ ⎥Ο 0 , 9 1 0 , 1 ⎣ ⎦ ⎡0,5 0,8 ⎤ ⎢ 0,1 1 ⎥ ⎢ ⎥ ⎢⎣ 0 0,6⎥⎦ = ⎡(0,4 ∧ 0,5) ∨ (0,6 ∧ 0,1) ∨ (0 ∧ 0) (0,4 ∧ 0,8) ∨ (0,6 ∧ 1) ∨ (0 ∧ 0,6)⎤ ⎢ (0,9 ∧ 0,5) ∨ (1 ∧ 0,1) ∨ (0,1∧ 0) (0,9 ∧ 0,8) ∨ (1 ∧ 1) ∨ (0,1 ∧ 0,6) ⎥ ⎣ ⎦ = ⎡(0,4 ) ∨ ( 0,1) ∨ (0 ) (0,4 ) ∨ (0,6 ) ∨ (0 )⎤ ⎢ (0,5) ∨ ( 0,1) ∨ (0) (0,8) ∨ (1) ∨ (0,1) ⎥ ⎣ ⎦ = ⎡0,4 0,6⎤ ⎢0,5 1 ⎥ . ⎣ ⎦ 29 ο S NB.: Outros tipos de composições podem ser considerados, por exemplo: • Composição min-max R S ↔ μR S(x,z) = ∧ {μR (x,y) ∨ μS (y,z)} Y ____ _ _ RS=RΟS 30 14. Conjunto Nebuloso Normal • Um conjunto nebuloso, cuja função de pertinência possui grau 1, é chamada normal, ou seja: A é chamado conjunto “normal” ↔ max μA(x) = 1 x∈X Figura 14.1 Conjuntos nebulosos normal e não-normal. 15. Conjunto nebuloso Convexo • Quando o conjunto suporte é um conjunto de números reais e a seguinte propriedade para todo x ∈ [a,b]: μA(x) > μA(a) ∧ μA(b), então, A é chamado conjunto convexo. 31 Figura 15.1. Conjunto convexo. A é um conjunto convexo em [a,b]. 16. Produto Direto de Conjuntos Nebulosos • Quando A ⊂ X e B ⊂ Y, o subconjunto A x B de X x Y é chamado de produto direto de A x B: A x B ↔ μAxB(x,y) =μA(x) ∧ μB(y). 17. Conceito α - Corte • Para um conjunto nebuloso A: 32 Aα Δ { x ⏐μA(x) > α }; α ∈ [0,1) (α-corte fraco) A α Δ { x ⏐μA(x) > α }; α ∈ (0,1] (α-corte forte) é chamado α-corte fraco e α-corte forte, respectivamente. Figura 17.1. Representação gráfica de um α-Corte fraco. NB.: 1. A diferença entre α-corte fraco e α-corte forte reduz-se apenas no sinal de igualdade 2. se a função de pertinência é contínua, a distinção entre estes α-cortes não se faz necessária. 33 18. Princípio da Resolução • Necessidade: 1. conjunto nebuloso normal 2. conjunto nebuloso convexo. • O princípio da resolução é definido como: μA(x) = sup [α ∧ χAα(x)] α ∈ [0,1) = sup [α ∧ χA α (x)] α ∈ (0,1]. sendo: sup = supremo χE(x) = função característica de E Δ 1, se x ∈ E 0, se x ∉ E. • Usando-se o princípio da resolução, a função de pertinência pode ser expressa via uso do conceito α-corte; 34 • considera-se que χA α (x) é a função característica de A α , então, tem-se: para x ∈ A α , ↔ μA(χ) > α (χA(x) = 1) para x ∉ A α , ↔ μA(χ) < α (χA(x) = 0). • portanto, tem-se: sup [α ∧ χAα(x)] α ∈ [0,1) = sup [α ∧ χA α (x)] α ∈ (0,1] = sup [α ∧ χA α (x)] α ∈ (0, μ A (x)] ∨ sup [α ∧ χA α (x)] α ∈ (μ A(x),1] = sup [α ∧ 1] α ∈ (0,μ A(x)] = sup α α ∈ (0,μ A(x)] = μ A(x). 35 ∨ sup [α ∧ 0] α ∈ (μ A(x),1] • Se definirmos o conjunto α A α como sendo: αA α ↔ μαA α = α ∧ χA α (x), então, o princípio da resolução pode ser expresso por: A= U α ∈ (0,1] αA α . • Ou seja, um conjunto nebulosos A é decomposto em αA α , α ∈ (0,1] e é expresso como uma união destes (αA α ). Este é o significado do princípio da resolução. Figura 18.1. Decomposição de um conjunto nebuloso. • A partir da Figura 18.1, se α1 < α2, então, Aα1 ⊃ Aα2. 36 • Dado os conjuntos nebulosos na forma de Aα1 e Aα2, podese recuperar a função de pertinência original do conjunto nebuloso A: μA(x) ↔ A α , α ∈ (0,1], ou seja, um conjunto nebuloso pode ser expresso em termos do conceito de α-cortes sem recorrer a função de pertinência. 19. Números Nebulosos • Para um conjunto nebuloso normal e convexo, se um αcorte fraco é um intervalo fechado, ele (α-corte fraco) é chamado de número nebuloso; • números nebulosos possuem funções de pertinência semelhantes às mostradas na Figura 19.1; 37 Figura 19.1. Números nebulosos. NB.: x é um número nebuloso com função de pertinência, por exemplo, mostrado na Figura 19.1 (cor azul). f(x) é mostrada na cor vermelha. • se a função de pertinência é contínua, o α-corte fraco será um intervalo fechado. • Considere: f(x) = 2 x +1 • quando x =3, o valor de f(3) é 7; 38 • agora, se x não é um valor único, mas sim que varia entre 2 e 4, o valor de f(x) de 5 até 9: f([2,4]) = 2 . [2,4] +1 = [2 . 2, 2. 4] +1 = [4+1,8+1] = [5,9] • o que acontece com os valores de f(x) se os valores de x são ambíguos, e.g., “em torno de 3” ao invés do intervalo [2,4]? • os números do tipo “em torno de 3” em “em torno de 5” são chamados números nebulosos, com grafia 3 e 5 , ~ ~ respectivamente. • expressar “em torno de 3”: substituir x em f(x) com 3 , ~ obtém-se: f( 3 ) = 2 . 3 +1 ~ ~ =7 ~ 39 • se calcularmos f( 3 ) usando o princípio de extensão (a ~ partir da Figura 19.1), obtém-se: 3α ~ = 3, para α = 1 = [2,5, 3,5], para α = 0,8 = [2,4] para α = 0,3. para α = 1 = [6, 8], para α = 0,8 = [5,9], para α = 0,3. f( 3 ) α = 7, ~ • Se desenharmos a função de pertinência de f(3) usandose estes resultados, obtém-se o número nebuloso 7 como mostrado na curva vermelha (Figura 19.1); • Neste sentido, calculam-se as extensões de funções simples usando o conceito de α-cortes; • quando o conjunto suporte do conjunto nebuloso é finito, os cálculos são sempre mais simples se realizados diretamente pelo uso da definição de função estabelecida pelo princípio da resolução. 40 20. Operações com Números Nebulosos • Considere uma função com duas variáveis: g: X x Y → Z sendo: x ∈ X e y ∈ Y em g(x,y) são substituídos por conjuntos nebulosos A ⊂ X e B ⊂ Y, assim: μg(A,B)(z) = sup [μA(x) ∧ μB(y)] z = g(x,y) • isto expressa o produto direto de A e B (operação entre parênteses); • o operador sup é efetivo em relação a x e y de z = g(x,y) para um dado valor z; • o conjunto nebulosos g(A,B) de Z é representado por: g(A,B) = ∫ [μA(x) ∧ μA(y)] / g(x,y) z • usando-se o conceito de α-corte, torna-se: g(A,B)α = g(Aα,Bα). 41 Exemplo. Supondo-se: g(x,y) = x+ y sendo: x e y são números reais que correspondem à obtenção da soma de números nebulosos A e B. Por exemplo, pode-se usuar: g( 2 , 3 ) = 2 + 3 ~ ~ ~ ~ = 5 ~ isto confirma que o resultado refere-se “em torno de 5”. • Para x e y, g é uma função contínua, assim usando-se o conceito de α-corte fraco, tem-se: (2 + 3)α = 2 α + 3 α . ~ ~ ~ ~ • desde que o α-corte de números nebulosos está em um intervalo, o cálculo corresponde à soma de 2 intervalos [a,b] e [c,d]: [a,b] + [c,d] = {ω⏐ω = u + v; u ∈ [a,b]; v ∈ [c,d]}. 42 • ou seja, se u e v são números que podem variar dentro dos intervalos [a,b] e [c,d], respectivamente, suas somas é, então: [a,b] + [c,d] =[a+ c, b + d]. • O α-corte de 3, como anteriormente abordado, será: 3α ~ = 3, para α = 1 = [2,5, 3,5], para α = 0,8 = [2,4] para α = 0,3. = 2, para α = 1 = [1,5, 2,5], para α = 0,8 = [1,3] para α = 0,3. para α = 1 para α = 0,8 e o α-corte de 2 será: 2α ~ ( 2 α + 3 α ) = 5, ~ ~ = [4,6], 43 = [3,7], para α = 0,3. este é o número nebuloso 5 . ~ Figura 20.1. Adição dos números nebulosos 5 = 2 + 3 . ~ ~ ~ • Em geral, quando pensamos de g(x,y) como uma operação binária de x e y da forma: g(x,y) = x ∗ y • a expressão para números nebulosos A e B é: A∗B= ∫ [μA(x) ∧ μB(x)] / (x∗y) Ou: 44 (A ∗ B)α = Aα ∗ Bα aqui a operação ∗ para ambos os intervalos é: [a,b] ∗ [c,d] = {ω⏐ω = u ∗ v; u ∈ [a,b]; v ∈ [c,d]}. Exemplo: Calcular ( 3 - 2 ), em que: ~ ~ [a,b]-[c,d] = [a - d, b-c] = [p,q] a =2 b =4 c =1 d =3 p = -1 q = 3. 45 Figura 20.2. Número nebuloso 2 , 3 e ( 3 - 2 ). ~ ~ ~ ~ (3 −2) α ~ ~ = 1, para α = 1 = [0,2], para α = 0,8 = [-1,3], para α = 0,3. NB.: A operação com números nebulosos de subtração não é uma operação reversa de adição. Ou seja: (3 – 2) + 2 = 3 é uma relação verdadeira, porém: para α = 1 (( 3 - 2 ) + 2 ) α = 3, ~ ~ ~ = [1,5;4,5], para α = 0,8 para α = 0,3. = [0;6], • Contudo: 46 3α ~ = 3, para α = 1 = [2,5, 3,5], para α = 0,8 = [2,4] para α = 0,3. • Portanto: 3 α ≠ {( 3 - 2 ) + 2 } α . ~ ~ ~ ~ p = -1 q = 3. (intervalos de ( 3 - 2 )) ~ ~ c =1 d = 3 (intervalos de 2 ) ~ Intervalos de {( 3 - 2 )) + 2 } = [p+c, q+d] ~ ~ ~ = [-1+1,3+3] = [0,6] 47 Figura 20.3. Números nebulosos ( 3 - 2 ) e 3 . ~ ~ ~ 48 Universidade Estadual Paulista – UNESP Campus de Ilha Solteira Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica Disciplina: Lógica Nebulosa Aritmética de Intervalos Fuzzy Carlos R. Minussi Ilha Solteira-SP, junho-2010. 21. ARITMÉTICA DE INTERVALOS FUZZY A aritmética de intervalos tenta obter um intervalo resultante de uma operação fuzzy, de tal forma que nele contenha todas as possíveis soluções. Neste caso, estas regras operacionais são definidas num sentido conservativo, no senso em que se obtêm intervalos maiores do que o necessário, evitando, deste modo, perdas de informações em relação às soluções verdadeiras. Por exemplo: [1, 2] [0, 1] = [0, 2] significa que, para parâmetros a [1, 2] e b [0, 1], garante-se que a b [0, 2]. Figura 21.1. Notação de intervalo fuzzy: [s, s ] s s s , sendo: s = limite inferior; s = limite superior. 21.1. Aritmética de Intervalos As operações com intervalos fuzzy mais usuais são: z = x y, sendo x e y dois conjuntos fuzzy e () (+ , , . , /, min, max), ou seja: (1) Adição [s1, s1 ] + [s2, s 2 ] = [s1, + s2, s1 + s 2 ]. (2) Subtração [s1, s1 ] [s2, s 2 ] = [s1, s 2 , s1 s2]. (3) Reciprocidade Se 0 [s, s ], então, [s, s ]1 = [1/ s , 1/s]; 2 Se 0 [s, s ], então, [s, s ]1 é indefinido. (4) Multiplicação [s1, s1 ] . [s2, s 2 ] = [p, p ]. sendo: = min { s1 s2, s1 s 2 , s1 s2, s1 s 2 } p = max{ s1 s2, s1 s 2 , s1 s2, s1 s 2 }. p (5) Divisão [s1, s1 ] / [s2, s 2 ] = [s1, s1 ] . [s2, s 2 ]1 desde que 0 [s2, s 2 ]. (6) Máximo max{ [s1, s1 ], [s2, s 2 ]} = [p, p ] sendo: p = max{ s1, s2 } p = max{ s1 , s 2 }. (7) Mínimo mim{ [s1, s1 ], [s2, s 2 ]} = [p, p ] sendo: p = min{ s1, s2 } p = min{ s1 , s 2 }. 22. Exercícios Ilustrativos: Notação de -Corte e Princípio da Resolução Exercício 1 (Adição). Considerando-se x e y dois conjuntos fuzzy (vide Figura 22.1), tais que: 3 Figura 22.1. Funções de pertinência x e y. X = [-5, 1] e Y = [-5, 12], sendo que as funções de pertinências associadas são assim calculadas: equação da reta X(x) = a x +b (trecho à esquerda) 0 = a(-5) + b 1 = a (-2) + b, assim: a = 1/3 b = 5/3 X(x) = a x +b (trecho à direita) 1 = a(-2) + b 0 = a (1) + b, assim: a = -1/3 b = 1/3. Ou seja: X(x) = Y(y) = a y +b (trecho à esquerda) 0 = a(-3) + b 1 = a (4) + b, assim: a = 1/7 b = 3/7 Y(y) = a y +b (trecho à direita) 1 = a(4) + b 0 = a (12) + b, assim: a = -1/8 b = 12/8. 4 Ou seja: 0, 5 y 3 y 3 , 3 y 4 Y(y) = 7 7 y 12 , 4 y 12 8 8 Então, determine o conjunto Z = X + Y = [-5, 1] + [-5, 12] = [-10,13]. Figura 22.2. Notação de -corte dos conjuntos x e y. Aplicando-se a notação de -corte, os pontos x1, x2 valem: = x1/3 +5/3 x1 = 3 -5 = -x2/3 +1/3 x2 = -3 + 1 Então, o intervalo de projeção de x é: (X) = [x1, x2] = [3 -5, -3 +1] Similarmente, em relação a y1 e y2: (Y) = [y1, y2] = [7-3, -8+12]. O intervalo de projeção de Z é: (Z) = [z1, z2] = [10 - 8, -11 +13]. Variando-se entre 0 e 1, obtém-se a função de pertinência X(z) (vide Figura 22.3): 5 Tabela 22.1. Notação -corte aplicada à construção de Z. z1 z2 0 0,2 0,4 0,6 0,8 1 -8 -6 -4 -2 0 2 13 10,8 8,6 6,4 4,2 2 Figura 22.3. Construção de Z via notação de -corte. 0, 10 z 8 8 z , 8 z 2 Z(z) = 10 10 z 13 , 2 z 13 11 11 Figura 22.4. Função de pertinência de Z = X + Y. Exercício 2. (Subtração). Considerando-se, agora, x e y dois conjuntos fuzzy, conforme é ilustrados na Figura (22.5), obter Z = {z = x-y, x X, y Y, sendo X =[0,20], Y = [0,10]. 6 Figura 22.5. Funções de pertinência de x e de y. NB: X = [p,q], Y = [r,s], X-Y = [p-s, q-r]. X = [0, 20] e Y = [0, 10], sendo que as funções de pertinências associadas são assim calculadas: X(x) = a x +b (trecho à esquerda) 0 = a(7) + b 1 = a (14) + b, assim: a = 1/7 b = -1 X(x) = a x +b (trecho à direita) 1 = a(14) + b 0 = a (19) + b, assim: a = -1/5 b = 19/5. Ou seja: 0, 0x 7 x 1, 7 x 14 X(x) = 7 x 19 , 14 x 19 5 5 0, 19 x 20 Y(y) = a y +b (trecho à esquerda) 0 = a(3) + b 1 = a (5) + b, assim: a = 1/2 b = -3/2 Y(y) = a y +b (trecho à direita) 7 1 = a(5) + b 0 = a (10) + b, assim: a = -1/5 b = 2. Ou seja: 0, 0 y 3 y 3 Y(y) = , 3 y 5 2 2 y 2, 5 y 10 5 Então, determinar o conjunto Z = X - Y = [0, 20] + [0, 10] = [-10,20]. Figura 22.5. Notação de -corte dos conjuntos x e y. Aplicando-se a notação de -corte, os pontos x1, x2 valem: = x1/7 -1 x1 = 7 + 7 = -x2/5 +19/5 x2 = -5 + 19 Então, o intervalo de projeção de x é: (X) = [x1, x2] = [7 +7, -5 +19] Similarmente, em relação a y1 e y2: (Y) = [y1, y2] = [2+3, -5+10]. O intervalo de projeção de Z é: 8 (Z) = [z1, z2] = [x1-y2, x2-y1] = [12 -3, -7 +16]. Variando-se entre 0 e 1, obtém-se a função de pertinência X(z) (vide Figura 22.6): Tabela 22.2. Notação -corte aplicada à construção de Z. z1 z2 0 -3 16 0,2 -0,6 14,6 0,4 1.8 13,2 0,6 4,2 11,8 0,8 6,6 10,40 1 9 9 Figura 22.6. Construção de z via notação de -corte. 0, 10 z 3 z 3 , 3 z 9 Z(z) = 12 12 z 16 , , 9 z 16 7 7 0, 16 z 20 Exercício 3. (Multiplicação). Considerando-se X = [2, 5] e Y = [3, 6] com funções de pertinência ilustradas na Figura 22.7, determine: Z = { z z = x y, x X e y Y}. NB. Z(z) = zxy {X(x) Y(y)} 9 Figura 22.7. Funções de pertinência dos conjuntos x e y. Então, as funções de pertinência de x e de y, a partir da Figura são definidas do seguinte modo: x 2, 2 x 3 X(x) = x 5 2 2 , 3 x 5 y 3 , 3 y 5 Y(y) = 2 2 y 6, 5 y 6 Na notação de -corte: (Z) = (X) . (Y). Fazendo-se: = x1 -2 e = -x2/2 + 5/2, tem-se: x1 = +2 x2 = - + 5. Similarmente: y1 = 2 + 3 y2 = - + 6. Os intervalos das projeções de x e de y valem: (X) = [ + 2, -2 + 5] (Y) = [2 + 3, - + 6] Assim, considerando-se o intervalo de projeção de z pode ser expresso por: 10 (Z) = = = [ + 2, -2 + 5] . [2 + 3, - + 6] zxy {X(x) Y(y)} [p(), p () ] sendo: p() = min[c, d, e, f] p ( ) = max[c, d, e, f] c = ( + 2) (2 + 3) = 22 +7 +6 d = ( + 2) (- + 6) e = (-2 + 5) (2 + 3) = -42 + 4 +15 f = (-2 + 5) (- + 6) = -2 + 4 +12 = 22 - 17 +30. Figura 22.8. Gráficos de c a f em função de . Por conseguinte: p() = 22 +7 +6 p ( ) = 22 - 17 +30. (Z) = [22 +7 +6 , 22 - 17 +30] Fazendo-se z1 = 22 +7 +6 z2 = 22 - 17 +30, obtém-se: 11 = = 7 1 8 z1 4 ou 17 49 8 z 2 4 consequentemente: Z(z) = 7 17 1 8 z 4 49 8 z 4 , 6 z 15 , 15 z 30 Tabela 22.3. Notação -corte aplicada à construção de Z. z1 z2 0 6 30 0,2 7,48 26,68 0,4 9,12 23,52 0,6 10,92 20,52 0,8 12,88 17,68 1 15 15 Figura 22.9. Resultado da função de pertinência de z (operação de multiplicação). Exercício 4. (Divisão). Considerando-se X = [18, 33] e Y = [5, 8] com funções de pertinência ilustradas na Figura 22.10, determine: Z = { z z = x / y, x X e y Y}. 12 Figura 22.10. Funções de pertinência dos conjuntos x e y. Então, as funções de pertinência de x e de y, a partir da Figura são definidas do seguinte modo: x 18 , 18 x 22 X(x) = 4 4 x 3, 22 x 33 11 y 5, 5 y 6 Y(y) = y 2 4, 6 y 8 Fazendo-se: = x1/4 -18/4 e = -x2/11 + 3, tem-se: x1 = 4 + 18 x2 = -11 + 33. Então: (X) = [4 + 18, -11 + 33] Similarmente: (Y) = [ + 18, -11 + 33] Então: (Z) = = (X) [4 18, 11 33] = (Y) [ 5, 2 8] [c, d] [e, f ] propriedade da divisão fuzzy c d =[ , ] f e 13 ou seja: (Z) = [ 4 18 11 33 , ] 2 8 5 Fazendo: z1 = 4 18 2 8 z2 = 11 33 5 obtém-se: = 8z1 18 2z1 4 = 5z 2 33 . z 2 11 e Assim, tem-se: Z(z) = 8z 18 2z 4 , 5z 33 , z 11 9 11 z 4 3 11 33 z 3 5 Tabela 22.4. Notação -corte aplicada à construção de Z. z1 z2 0 2,25 6,6 0,2 2,4737 5,9231 0,4 2,7222 5,2963 0,6 3 4,7143 0,8 3,3125 4,1724 1 11/3 = 3,6667 3,6667 14 Figura 22.11. Resultado da função de pertinência de z (operação de multiplicação). 15 Universidade estadual Paulista – UNESP Campus de Ilha Solteira Programa de Pós-Graduação em Engenharia Elétrica Disciplina: Lógica Nebulosa Programação Matemática Fuzzy Carlos Roberto Minussi Ilha Solteira-SP, agosto-2009. PROGRAMAÇÃO MATEMÁTICA NEBULOSA Problema: Min (max) FO = f(x) s.a. restrições com ambigüidade. sendo: max = min = FO = s.a. = f(x) = maximização minimização função objetivo sujeito a função objetivo (linear ou não-linear) ou seja, determinação de solução ótima minimização) de um problema com restrições. • (maximização ou Funções objetivos e restrições são flexíveis. Conceitos Básicos e Formulação Geral • Funções objetivos e restrições podem ser expressas pelos conjuntos nebulosos G e C, respectivamente. • Funções de pertinência: µG(x) µC (x) • ← Função objetivo ← Restrições. neste caso, o conjunto de decisão nebuloso D pode ser definido por: D = C ∩G µD (x) = µC (x) ∧ µG(x). sendo: ∧ = operador min. D= 1 • Isto significa que deve satisfazer tanto as restrições, assim como as funções objetivos. • A função de pertinência do conjunto de decisão nebulosa D, µD (x), expressa o grau (ou margem) que a solução se encontra em D. • Se µD (x) < µD (x’) (sentido maximização), então, x’ é uma melhor decisão de x. • Deste modo, pode-se selecionar x* tal que: max µD (x) = max µC(x) ∧ µG(x) = µC(x*) ∧ µG(x*) x x (1) sendo: x* = solução ótima (maximização). • A decisão maximizada é definida por operações max e min. • Assume-se que existem dois conjuntos nebulosos µ1(x) e µ2(x), e funções f e g que combinam µ1 e µ2 com AND e OR definidas como f e g: [0,1] x [0,1] → [0,1], mais especificamente: • (µ1 AND µ2) (x) = f(µ1(x), µ2(x)) (associada ao operador min) (µ1 OR µ2) (x) (associada ao operador max) = g(µ1(x), µ2(x)) Por simplicidade de notação, fazem-se µ1(x) = α e µ2(x) = β. Por conseguinte, as funções f e g são expressas como f(α,β) e g(α,β). Axiomas para f e g (Axioma = Premissa imediatamente evidente que se admite como universalmente verdadeira sem exigência de demonstração). (1) f e g são funções contínuas e não-descendentes (2) f e g são simétricas para α e β: f(α,β) = f(β, α) e 2 g(α,β) = g(β, α) (3) f(α,α) e g(β,β) são funções estritamente crescentes (4) f(α,β) < min[α,β] e g(α,β) > max [α,β] (5) f(1,1) = 1 e g(0,0) = 0 (6) {µ1 AND (µ2 OR µ3)}(x) = {(µ1 AND µ2) OR (µ1 AND µ3)}(x). Teorema. As funções f e g que satisfazem os Axiomas (1) − (6) são limitadas para: f(µ1,µ2) =µ1 ∧ µ2, e g(µ1,µ2) = µ1 ∨ µ2, • O problema de maximização (1) pode ser transformado no seguinte problema de maximização, através do uso de conjuntos α-cortes: sup µD (x) = sup [ α ∧ sup µG (x)] x α ∈ [0,1] x ∈ Cα sendo: Cα = {x µC(x) > α} • Se α1 < α2, tem-se: sup µG(x) > sup µG(x) x ∈ Cα1 x ∈ Cα2 isto porque: Cα1 ⊃ Cα2. • Fazendo-se: sup µG(x) = φ(α) x ∈ Cα se a função φ(α) for contínua para α, a função α* é obtida de: α* = φ(α*). 3 (2) se φ(α) é contínua, então, tem-se o seguinte problema de otimização: sup µG(x), µC (x) > µG(x) (3) x para o problema (2). Reduz-se, portanto, a um problema standard de programação matemática que não inclui o operador lógico ∧. • O conjunto nebulosos C é um conjunto nebulosos fortemente convexo, se e somente se a seguinte relação for observada: µC (λ x + (1 - λ) y) > µC (x) ∧ µC (y); ∀ λ ∈ [0,1]. • Se a função φ(α) é contínua, o problema de programação matemática nebulosa pode ser resolvido através da obtenção de α* tal que: α = sup µG(x) x ∈ Cα. Algoritmo (1) ∀ ∂k é estabelecido para k = 1 (2) calcule µGk(x*) = max µG(x) x ∈ Cαk . (3) se ε k = αk - µGk(x*) > ε, vá para o passo (4), e se εk < ε, vá para o passo (5). (4) faça: αk+1 = a k - rk ε k e k = k +1 e vá para o passo (2), sendo: rk é escolhido (arbitrado) tal que: 4 0 < αk+1 < 1 seja observado. (5) faça: α* = αk, encontre x* tal que: max µG(x) = µG(x*) x ∈ Cαk e finalize o processo. • No algoritmo anterior, Passo (2), a solução é encontrada através de programação matemática convencional. Programação Linear Nebulosa • PL (Programação nebulosas. • Um problema de PL pode ser expresso por: min ou max Linear) nebulosa usando desigualdades FO = < c, x > s.a: A x < b X> 0 sendo: <. , . > = produto interno. • Em termos da lógica nebulosa, este problema pode ser formulado do seguinte modo: < c, x > = cT x < z, A x < b, x > 0, ~ ~ sendo: < = é uma desigualdade nebulosa; ~ Exemplos: A x é uma expressão em torno de b ou menor e cT x é uma expressão em torno de z ou menor. 5 Programação Linear Nebulosa Problemas de PL nebulosa usando desigualdades • O problema: Funções objetivos / restrições são dadas pelo seguinte sistema: min z = cT x s.a Ax < b x > 0. ↑ ↓ cT x <z ~ s.a Ax < b ~ PL nebuloso x > 0. sendo: cT x ↔ “em torno de z ou menor (about z or less)” A x ↔ “em torno de b ou menor (about b or less)”. • As funções objetivos e restrições são expressas por inequações da seguinte forma: Bx< b B = matriz A aumentada (inclusão das linhas das funções objetivos). A i-ésima inequação “em torno de bi ou menor” é definida através das seguintes funções de pertinência: 6 µi([Bx]i) = 1, para [Bx] i < bi 0 < µi([Bx]i) < 1, para bi < [Bx]i < bi + di µi([Bx]i) = 0, para [Bx] i > bi + di sendo: µi = função de pertinência da i-ésima inequação di = valor máximo possível do lado direito da desigualdade (constante escolhida considerando-se as violações admissíveis). • O problema de decisão maximizada: max µD (x) = max µC (x) ∧ µG(x) = µC(x*) ∧ µG(x*) x x |_________| associado ao min {µCG(x)} ↔ min{[Bx]} consiste em encontrar x tal que: max min { µi ([Bx]i) } x> 0 i (4) sendo: µi([Bx]i) = 1, para [Bx] i < bi µi([Bx]i) = ri [Bx]i + si = 1 – ([Bx]i - bi ) / di , µi([Bx]i) = 0, para [Bx] i > bi + di NB.: fazendo-se: ri (bi) + si = 1 ri (bi+di) + si = 0 ri (bi) + si = 1 -ri (bi+di) - si = 0 _____________ (+) ri (bi - bi - di) = 1 7 bi < [Bx]i < bi + di ri = - 1/ di si = 1 - ri bi si = 1 + bi / di então: ri [Bx]i + si = - [Bx]i / di + 1 + bi / di = 1 – ([Bx]i – bi) / di • Fazendo-se a normalização das equações: bi’ = bi / di , [B’]ij = [B]ij / di e considerando-se que as restrições são lineares, o problema (4) torna-se: max min {bi’ – [B’ x]i} x> 0 i • (5) Este problema (equação (5)) é equivalente ao seguinte problema de PL padrão (standard): max λ λ < bi’- [B’x]i para i = 1,2,3, ..., m. (6) 8 NB.: fazendo-se: µ = r [Bx] + s r (b) + s = 0 r (b+d) + s = 1 -r (b) - s = 0 r (b + d) + s = 1 _____________ (+) r (b + d - b) = 1 r = 1/ d s =-rb s =-b/d então: µ = ([Bx] – b) / d µi([Bx]i) = 0, para [Bx] i < bi µi([Bx]i) = ri [Bx]i + si = ([Bx]i - bi ) / di , µi([Bx]i) = 1, para [Bx] i > bi + di 9 bi < [Bx] i < bi + di max min { µi ([Bx]i) } x> 0 i sendo: µi([Bx]i) = 1, para [Bx] i < bi µi([Bx]i) = ri [Bx]i + si = 1 – ([Bx]i - bi ) / di , µi([Bx]i) = 0, para [Bx] i > bi + di max λ λ < bi’- [B’x]i para i = 1,2,3, ..., m. bi < [Bx]i < bi + di (6) 10 max min { µi ([Bx]i) } x> 0 i sendo: µi([Bx]i) = 0, para [Bx] i < bi µi([Bx]i) = ri [Bx]i + si = ([Bx]i - bi ) / di , µi([Bx]i) = 1, para [Bx] i > bi + di max λ λ < − bi’+ [B’x]i para i = 1,2,3, ..., m. bi < [Bx] i < bi + di (6) 11 Exemplo: PL standard (Problema de transporte: 4 caminhões trucks) Min z = 41400 x1 + 44300 x2 + 48100 x3 + 49100 x4 x sa: 0,84 x1 + 1, 44 x2 + 2,16 x3 + 2,4 x4 > 170 16 x1 + 16 x2 + 16 x3 + 16 x4 > 1300 x1 > 6 • Solução via PL convencional: x1* x2* x3* x4* z* • = = = = = 6 17,85 0 58,64 3918850 (função objetivo). Considerando-se, agora, a ambigüidade das restrições e os dados apresentados na seguinte tabela: Item FO 1ª restrição 2ª restrição 3ª restrição Restrição não-nebulosa − 170 1300 6 Restrição nebulosa µ= 0 4.200.000 170 1300 6 12 d µ= 1 3.700.000 180 1400 12 +500.000 10 100 6 1a restrição: “about 170 or more”, µ1(170) = 0 2a restrição: “about 1300 or more”, µ1(1300) = 0 3a restrição: “about 6 or more”, µ1(6) =0 λ < − bi’+ [B’x]i ( para ss restrições 1, 2 e 3) 1a restrição: b1 = 170, d1 =10 → b1’ =170 / 10 = 17 λ < -17 + (0,84 x1 + 1,44 x2 + 2,16 x3 + 2,40 x4) / 10 λ < -17 + 0,084 x1 + 0,144 x2 +0,216 x3 + 0,240 x4 2a restrição: b2 = 1300, d2 = 100 →b2’ = 1300 / 100 = 13 λ < -13 + 0,16 x1 + 0,16 x2 +0,16 x3 + 0,16 x4 3a restrição: b3 = 6, d3 = 6 → b3’ = 6 / 6 = 1 λ < -1 + 0,167 x1 Função objetivo: b0 = 4.200.000, d0 = 500.000 → b0’ = 4200.000/500.000 = 8,4 λ < b0’- [B’x]0 (para a função objetivo) λ < 8,4 – 0,083 x1 - 0,0886 x2 - 0,096 x3 – 0,098 x4 x > 0. 13 Solução do Problema PL Solução convencional X1 X2 X3 X4 = = = = Solução nebulosa 6 17,85 0 58,65 X1 X2 X3 X4 Valor para as restrições = = = = 17,41 0 0 66,54 Valor para as restrições 1. 171,5 2. 1300 3. 6 FO = 3.918.850 1. 174,2 2. 1342,4 3. 17,4 FO = 3.988.257 ↑ 1,7% maior do que a solução standard. 14 Universidade estadual Paulista – UNESP Campus de Ilha Solteira Programa de Pós-Graduação em Engenharia Elétrica Disciplina: Lógica Nebulosa Representação do Conjunto de Regras via Matriz Fuzzy Carlos Roberto Minussi Ilha Solteira-SP, agosto-2009. Representação do Conjunto de Regras Via Tabela ou Matriz • Exemplo: Considere o estado de um sistema representado por: . x = [ e e ]T e a variável de controle u. Então, pode-se compor uma tabela / matriz que contemple o conjunto de regras do tipo: . If e é A and e é B, then u é C. Quadro 1. Conjunto de Regras. ← indexador e . e ZE PM PP ME NG ZE PG ZE PG NP PG NG NG NP ZE NG PP PG PG PP ↑ indexador NP PP PP PG PG NG PG PP ↑ variáveis lingüísticas referentes à variável de controle. ou seja, por exemplo: . If ε é PP and e é NP, then u é NG sendo: NG = NP = ZE = PM = PP = ME = PG = PP Negativo Grande; Negativo Pequeno; Próximo de Zero; Positivo Muito pequeno; Positivo Pequeno; Médio; Positivo Grande. Geração Automática de Base de Regras • A base de regra é estabelecida, basicamente, de duas formas: − através da experiência − via métodos automáticos (mais usuais): ♦ simulação numérica (plano de fase dividido em em várias células, sendo que em cada célula tem-se o conhecimento do estado do sistema (informações quantitativas e qualitativas) que permite estabelecer a base de regras; Lmn = sendo: Lmn = E1m e E2m = E1m x E2m região finita no espaço de estado m-ésimo subintervalos de respectivamente. Relações transicionais: (u11 ,u21 ): L11 (u11 ,u22 ): L11 → L12 → L21 . . . (u13 ,u21 ): L11 sendo: u1 e u2 = entradas. → L11 x1 e x2, Exemplo: sistema dinâmico: . x1 = x 2 . x 2 = k1 − k 2 sen ( x1) sendo: k1, k2 > 0. Plano de fase. ♦ redes neurais artificiais - rede retropropagação - rede de Kohonen Grid de Kohonen. ZE PG PG ZE NG NG PG NP ZE PP ZE PG NP NG NP NP PP PP PG PP PG NG ZE PG PP Rede Neural de Kohonen A rede de Kohonen é uma rede neural não-supervisionada de mapeamentos auto-organizável, conforme mostrada na Figura 1. É composta por um reticulado (grade) bi-dimensional e um conjunto de vetores pesos, fixado inicialmente considerando-se valores aleatórios compreendidos entre 0 e 1, wj = [ w1j w2j . . . wnj]T , 1 = 1, . . . , nn, e x = [ x 1 x 2 . . . xn ]T um vetor de entrada, sendo nn o número de neurônios sobre a grade da rede neural. Trata-se, portanto, de um mapeamento de ℜn em ℜ2 . Figura 1. Estrutura da rede neural de Kohonen. Cada neurônio sobre a grade está conectado a entrada da rede, através do vetor de entrada, conforme é mostrado na Figura 2. Figura 2. Conexão do vetor padrão de entrada x com o j- ésimo neurônio da rede de Kohonen. Deste modo, a saída yj (atividade do j- ésimo neurônio) pode ser calculado da seguinte forma: yj = < wj, x> (1) sendo: yj = atividade (saída) do j-ésimo neurônio sobre a grade de Kohonen; wj = [ w1j w2j . . . wnj]T x = [x1 x2 . . . xn ]T NB: • Kohonen propôs esta rede baseada na regra de aprendizado de Hebb (Donald Hebb). Propôs, por conseguinte, um procedimento sistemático e simplificado do método de Hebb; • o aprendizado é similar ao que ocorre no cérebro (neo-cortex cerebral). O treinamento (ou aprendizagem) é um processo através do qual os parâmetros de uma rede neural artificial são ajustados utilizando uma forma contínua de estímulos. No caso do treinamento por competição, dado um estímulo à rede (vetor de entrada), as unidades de saída disputam entre si para serem ativadas. O neurônio vencedor terá seus pesos atualizados no treinamento. A forma mais extrema de competição entre neurônios é chamada o vencedor leva tudo (winner take all). Como o próprio nome sugere, apenas um neurônio terá sua saída ativada. Já o mapeamento autoorganizável, proposto por Kohonen, que organiza os dados de entrada em agrupamentos (clusters), corresponde a um tipo de treinamento competitiva e não-supervisionada. Nesta forma de treinamento, as unidades que atualizam seus pesos, o fazem formando um novo vetor peso que é uma combinação linear dos pesos antigos e o atual vetor de entrada. O método consiste na adaptação de pesos da rede neural como mostrado na Figura 3 em que os vetores x e w encontram-se normalizados (comprimentos unitários). Considera-se um determinado vetor de pesos w(h) correspondente ao tempo discreto h. O novo valor w(h+1) pode ser encontrado da seguinte forma: w(h+1) = w(h) + α (x – w(h) ). sendo: α = taxa de treinamento (0 < α < 1); h = índice de atualização. (2) A taxa de treinamento α pode ser um valor constante ou uma função decrescente. Figura 3. Regra de adaptação de pesos da rede de Kohonen. O comprimento do vetor w, em cada atualização, será menor do que 1. Portanto, após cada adaptação de pesos, há necessidade de uma nova normalização do vetor de pesos. O neurônio vencedor é escolhido como sendo aquele que apresentar maior atividade (y) sobre a grade de Kohonen, ou seja: NV = max {<wi, x>} (3) i = min { || x – wi ||} ou: (4) i sendo: NV = neurônio vencedor; || . || = norma Euclidiana. Ao neurônio vencedor (Equação 3), atribui-se índice k. Deve-se observar que, quando os vetores wi e x encontram-se normalizados (comprimentos unitários), as indicações do neurônio vencedor, através do máximo produto interno (Equação 3), ou através da mínima distância (Equação 4), são rigorosamente as mesmas, ou seja, estes dois procedimentos são equivalentes. Usando-se, então, a regra de adaptação, Kohonen propôs que o ajuste da rede neural em que os pesos são ajustados considerando-se vizinhanças em torno do neurônio vencedor, como mostrado na Figura 4, sendo: NCk (Si) = vizinhança do neurônio vencedor k, referente à região Si, em que S1 ⊂ (contido) S2 ⊂ S3 . Figura 4. Vizinhanças (quadradas) do neurônio vencedor. Na Figura 5 são mostrados alguns tipos mais freqüentes de vizinhanças encontrados na literatura especializada. Figura 5. Tipos de vizinhanças mais utilizadas. Algoritmo (conceitual) Básico Passo 1. Iniciar os pesos da rede de Kohonen entre a entrada e a grade de Kohonen. Estes pesos podem ser gerados randomicamente com valores compreendidos entre 0 e 1. Passo 2. Normalizar os vetores de pesos. Passo 3. Normalizar todos os vetores padrões de entrada. Passo 4. Apresentar um novo vetor padrão de entrada. O conjunto de vetores padrões contém M vetores). Passo 5. Calcular a distância ou o produto interno para todos os neurônios sobre a grade de Kohonen. Passo 6. Encontrar o neurônio vencedor (Equação 3 ou 4). Designe o neurônio vencedor pelo índice k. Passo 7. Adaptar os vetores pesos do neurônio vencedor e dos demais neurônios contidos na vizinhança escolhida (vide Figura 4). wi (h+1) = wi(h)+ α (x – wi (h)), para i ∈ NCk . (5) wi (h+1) = wi(h), para i ∉ NCk . Passo 8. Renormalisar todos os vetores de pesos adaptados no passo 7. Este procedimento se faz necessário tendo em vista que o vetor peso, após a adaptação, não possui comprimento unitário, sendo portanto, necessário torná-lo (com comprimento unitário). Passo 9. Retornar ao Passo 2. Este procedimento deve ser repetido, considerando-se um número fixo de ciclos de adaptação, ou até que as variações (módulos) dos pesos sejam inferiores a uma certa tolerância preestabelecida. NB: • No algoritmo anterior, um ciclo de adaptação é concluído após ter sido apresentado ( p) todos os vetores padrões ( x , p = 1, 2, . . ., M, sendo M = número de vetores padrões). • A ordem de entrada dos vetores pode ser natural (ordem em que são fornecidos para a leitura) ou aleatória. Ressalta-se que a ordem aleatória proporciona melhores resultados, se comparada à ordem natural. • A auto-organização se dá à medida que aumente o número de ciclos de adaptação. • Treinamento lento. • Aumento da velocidade de treinamento: − Uso do conceito de consciência ([1]); − Uso de lógica nebulosa ([4]). Referências Bibliográficas [1] DeSieno, D. “Adding a Conscience to Competitive Learning”, IEEE International Conference Neural Networks, San Diego, CA, 1987, vol. 1, pp. 117-124. [2] Kohonen, T. “Self-organization and Associative Memory”, Springer-Verlag, 2nd Edition, Berling, Germany, 1989. [3] Kohonen, T. “Self-organizing Map”, Proceedings of IEEE, 1990, pp. 1464 – 1480, vol 78, no. 09. [4] Terano, T.; Asai, K. and Sugeno, M. Fuzzy Systems Theory and its Application, Academic Press, New York, USA, 1987. Sistemas Neuro-nebulosos Geração da base de regras nebulosas Interações Redes Neurais Lógica Nebulosa Atuação como técnica (ou auxílio) de ajuste de pesos na fase de treinamento 1 W k+1 = W k + ∆W k 1. Geração de Funções de Pertinência Usando Redes Neurais • Deve-se usar algum método de “clusterização” (formação de clusters) e.g., a rede neural de Kohonen, rede neural ART. clusters • Rede Neural Retropropagação (texto anexo) Exemplo: ℜ2 → ℜ3 ( R1, R2, R3) (saída) ( X1 , X2 ) (entrada) , a, b e c ∈ (0, 1) 2 Método de Desfuzificação • Fases (da rede neural): 1) treinamento 2) testes / análise. Treinamento Entrada: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 X1 0,7 0,8 . . . . . . X2 0,8 0,2 . . . . . . 1 2 3 4 5 12 13 14 R1 0 0 . . . . . . R2 1 0 . . . . . . R3 0 1 Saída: 6 7 3 8 9 10 11 Testes / Análise • Por exemplo o ponto (0,5; 0,5): . . . if X1 AND X2, then, . . . Desfuzificação 4 Lógica Nebulosa para Auxílio do Treinamento da RedeNeural • Técnica Retropropagação: Treinamento supervisionado (estímulos de entrada / de saída) 5 Ajuste de pesos retropropagado (Gradiente descendente) Vk+1 = Vk + (−γ ∇k) sendo: k = índice do processo iterativo; V = vetor de pesos; 6 ∇ = função gradiente; γ = taxa de treinamento. O algoritmo Retropropagação (RP) consiste na adaptação de pesos, tal que, é minimizado o erro quadrático da rede. A soma do erro quadrático instantâneo de cada neurônio alocado na última camada (saída da rede) é dada por: ns ε 2 = ∑ εi 2 i =1 (1) sendo: εi = di − yi ; di = saída desejada do i-ésimo elemento da última camada da rede; y i = saída do i-ésimo elemento da última camada da rede; ns = número de neurônios da última camada da rede. Considerando-se o neurônio de índice i da rede, e utilizando-se o método do gradiente descendente, o ajuste de pesos pode ser formulado como: Vi (h+1) = Vi (h) + θ i (h) (2) sendo: θ i (h) = − γ [∇i (h)] (3) γ = parâmetro de controle da estabilidade ou taxa de treinamento; h = representa o índice de iteração; ∇i (h) = gradiente do erro quadrático com relação aos pesos do neurônio i avaliado em h; Vi = vetor contendo os pesos do neurônio i = [ w0i w1i w2i . . . wni ] T . 7 Na equação (3) a direção adotada para minimizar a função objetivo do erro quadrático corresponde à direção contrária ao gradiente. O parâmetro γ determina o comprimento do vetor [θi(h)]. A função sigmóide é definida por: yi = {1 − exp (− λ si )} / {1 + exp (− λ si )} (4) = 1 / {1 + exp (− λ si )} (5) ou yi sendo: λ = constante que determina a inclinação da curva yi O algoritmo RP é abordado na literatura sob várias formas com o propósito de torná-lo mais rápido computacionalmente. Uma formulação bastante interessante é o algoritmo RP com momento. Então, efetuando-se o cálculo do gradiente como indicado na equação (3), considerando-se a função sigmóide definida pela equação (4) ou (5) e o termo momento, obtém-se o seguinte esquema de adaptação de pesos: v ij (h+1) = v ij (h) + ∆v ij (h) (6) sendo: ∆v ij (h) = 2 γ (1 − η) β j x i + η ∆v ij (h-1); (7) v ij = peso correspondente à interligação entre o i-ésimo e j-ésimo neurônio; γ = taxa de treinamento; 8 η = constante momento (0 ≤ η < 1). Se o elemento j encontrar-se na última camada, então: β j = σj ε j (8) em que: σj = derivada da função sigmóide dada pela equação (4) ou (5), respectivamente, com relação a sj = 0,5 λ (1 − yj 2 ) (9) = λ yj (1 − yj ). (10) Se o elemento j encontrar-se nas demais camadas, tem-se: β j = σj ∑ k ∈ R ( j) wjk β k (11) sendo: R(j) = conjunto dos índices dos elementos que se encontram na fileira seguinte à fileira do elemento j e que estão interligados ao elemento j. O parâmetro γ serve como controle de estabilidade do processo iterativo. Os pesos da rede são iniciados randomicamente considerando-se o intervalo {0,1}. O treinamento, via RP, pode ser efetuado, basicamente, de duas formas: • Procedimento 1. Consiste em ajustar os pesos da rede (considerando- se todas as camadas), fazendo-se com que haja convergência para cada padrão, até que se complete o conjunto de padrões de entrada. O processo deverá ser repetido até a total 9 convergência, i.e., o erro quadrático seja inferior a uma tolerância preestabelecida para os padrões considerados. • Procedimento 2. Este procedimento é idêntico ao primeiro, porém, fazendo-se somente uma iteração (ajuste de pesos) por padrão. O algoritmo retropropagação é considerado, na literatura especializada, um referencial em termos de precisão. Contudo, a sua convergência é bastante lenta. Deste modo, a proposta deste trabalho é o ajuste da taxa de treinamento γ durante o processo de convergência, visando a redução do tempo de execução do treinamento. O ajuste de γ é efetuado via procedimento baseado em um controlador nebuloso. A idéia básica da metodologia consiste na determinação do estado do sistema definido como sendo o erro global εg e a variação do erro global ∆εg, cujo objetivo é a obtenção de uma estrutura de controle que consiga com que o erro tenda para zero em um número reduzido de iterações, se comparado ao RP convencional. O controle, neste trabalho, é formulado usando os conceitos de lógica nebulosa. O erro global εg e sua variação ∆εg são os componentes do estado do sistema, e ∆γ é a ação de controle que deve ser exercida no sistema. Inicialmente, define-se o erro global: np εg = ∑ ns ∑ εi 2 j =1 i =1 (12) sendo: εg = erro global da rede neural; np = número de vetores padrões da rede. O erro global corresponde ao cálculo de erros de todas as saídas (neurônios de saída), considerando-se todos os vetores padrões da rede. O treinamento deve ser executado utilizando o procedimento 2 (uma iteração por padrão). O erro global é calculado em cada iteração e ajustado o parâmetro γ, através de um acréscimo ∆γ determinado via lógica nebulosa. Este parâmetro será utilizado para ajustar o conjunto de pesos da rede referente à iteração subseqüente. O estado do sistema e a ação de controle são assim definidos: 10 Ek = [εgk ∆εgk ] T (13) uk = ∆γ (14) sendo: k = o índice que indica a iteração corrente. O processo deverá, então, ser repetido até que o treinamento seja concluído. Trata-se de um procedimento bastante simples cujo sistema de controle requer um esforço adicional bastante reduzido, tendo em vista que o controlador possui duas variáveis de entrada e uma única de saída. Esta abordagem é uma versão da proposta apresentada na referência Arabshahi et al. (1996), ou seja, utilizando-se as mesmas variáveis εg e ∆εg para efetuar o controle. Contudo, a proposta do controlador nebuloso é original. Lógica Nebulosa Lógica nebulosa é uma forma matemática para representação de definições vagas. Conjuntos nebulosos são generalizações da teoria de conjunto convencional. Contém objetos que contemplam imprecisão no referido conjunto. O grau de pertinência é definido por um valor da função de pertinência a qual tem valores compreendidos entre 0 e +1. Deste modo, a seguir são apresentados os principais conceitos sobre lógica nebulosa. Definição 1. Considere uma coleção de objetos Z. Então, um conjunto nebuloso A em Z é definido como sendo o conjunto de pares ordenados: A = {(z,µA (z))| z ∈ Z} (15) sendo: µA (z) = valor da função de pertinência do conjunto nebuloso A correspondente ao elemento z. 11 Operações semelhantes a AND, OR e NOT são alguns dos mais importantes operadores de conjuntos nebulosos. Supondo-se que A e B são dois conjuntos nebulosos com funções de pertinências designadas por µA (z) e µB (z), respectivamente, então, tem-se Operador AND ou interseção de dois conjuntos. A função de pertinência da interseção destes dois conjuntos nebulosos (C = A ∩ B) é definida por: µC (z) = min {µA (z), µB (z)}, z ∈ Z b) (16) Operador OR ou união entre dois conjuntos. A função de pertinência da união destes conjuntos nebulosos (D = A ∪ B) é definida por: µD (z) = max{µA (z), µB (z)}, z ∈ Z c) (17) Operador NOT ou o complemento de um conjunto nebuloso. A função de pertinência do complemento de A, A’ é definida por: d) µA’ (z) = 1 − µA (z), z ∈ Z 12 (18) d) Relação Nebulosa. A função nebulosa R de A em B pode ser considerada como um grafo nebuloso e é caracterizada pela função de pertinência µR (z,y), a qual satisfaz a seguinte regra de composição: µB (z) = max { min [µR (z,y), µA (z)]} (19) z∈Z O controle nebuloso é um mecanismo constituído, basicamente, de três partes: nebulização que converte variáveis reais em variáveis lingüísticas; inferência que consiste em manipulação de base de regras utilizando declarações if-then e, ainda, operações nebulosas, como definidas anteriormente (equações (15)−(19)) e desnebulização que converte o resultado obtido (variáveis lingüísticas) em variáveis reais, as quais constituem a ação de controle. As funções de pertinência nebulosas podem ter diferentes formas, tais como triangular, trapezoidal e gaussiana, de acordo com a preferência / experiência do projetista. O método mais comum de desnebulização é o método de centro de área (centróide) que encontra o centro da gravidade da solução dos conjuntos nebulosos. Para um conjunto nebuloso discreto tem-se (Arabshahi et al., 1996; Terano et al., 1991): n n i=1 i=1 u = { ∑ µi δ i} / { ∑ µi} sendo: δi = valor do conjunto que possui um valor de pertinência µi; 13 (20) n = número de regras nebulosas. O valor u calculado pela equação (20) corresponde a projeção do centro de inércia da figura definida pelo conjunto de regras sobre o eixo da variável de controle. Cada variável de estado deverá ser representada entre 3 e 7 conjuntos nebulosos. A variável de controle também deverá ser representada com o mesmo número de conjuntos nebulosos. A variável εg deverá ser normalizada, considerando-se como fator de escala o primeiro erro global gerado pela rede, ou seja, de índice k = 0. Com esta representação, o intervalo de variação de εg deverá estar compreendido entre 0 e +1. Se a heurística de adaptação estiver devidamente sintonizada, a convergência do processo deverá ser exponencial decrescente. A variável ∆εg deverá variar entre –1 e +1. Se o processo de convergência for exponencial decrescente os valores de ∆εg deverão ser sempre negativos. Neste caso, embora a escala de ∆εg varie entre –1 e +1, deve-se empregar, no conjunto de regras, um ajuste fino entre –1 e 0. No outro intervalo, o ajuste poderá ser mais relaxado. (a) funções de pertinência para o erro global εg. (b) funções de pertinência para a variação do erro global ∆εg. (c) funções de pertinência para a ação de controle ∆γ. Figura 1. Funções de pertinência para as variáveis εg, ∆εg e ∆γ (ação de controle). em que: NG = Negativo Grande; NP = Negativo Pequeno; ZE = Próximo de Zero; PM = Positivo Muito pequeno; 14 PP = Positivo Pequeno; ME = Médio; PG = Positivo Grande; lu = limite de variação de ∆γ. As funções de pertinência dos conjuntos nebulosos para várias variáveis envolvidas no treinamento da rede neural com RP com controlador nebuloso são mostradas na Figura 1. No controlador nebuloso, as regras são codificadas na forma de uma tabela de decisões. Cada entrada representa o valor da variável nebulosa ∆γ dados os valores do erro global εg e variação do erro global ∆εg. O parâmetro γ deve ser arbitrado inicialmente em função de λ (inclinação da função sigmóide). Da mesma forma, as variações de γ também devem seguir o mesmo procedimento. Deste modo, o parâmetro lu deve ser ajustado para atender as especificações de cada problema e em função de λ. Na Tabela 1 (por exemplo) é apresentado o conjunto de regras nebulosas, totalizando 25 regras. Deste modo, tomando-se como exemplo o caso em que εg = PM e ∆εg = NG (correspondente à coluna 2 e linha 1 da parte da tabela não sombreada), a regra é a seguinte: • If εg é PM and ∆εg é NG, then ∆γ é PG. As demais regras seguem esta convenção. Tabela 1. Regras do controlador nebuloso. ∆εg εg ZE PM PP ME PG NG ZE PG ZE PG ZE NP PG NG NG NP PP ZE ZE NG NP PP PG PP PG NP PP PG NG 15 Se εg é PP e ∆εg é NP, então, ∆γ é NG PG ZE PP PG NG PP O número de regras poderá ser aumentado visando melhorar o desempenho da rede no treinamento. A derivada σ tem forte semelhança com a curva de distribuição normal (de Gauss). Constitui-se de um corpo central e suas laterais designadas, como forma de simplificação, caudas esquerda e direita. Nota-se que a diminuição de λ produz uma suavização na função sigmóide y(s), enquanto que sua derivada σ tende a diminuir a amplitude da curva e alongar as caudas. No algoritmo retropropagação, a adaptação de pesos, que concorrem a cada neurônio, é efetuada utilizando-se, basicamente, o erro propagado no sentido inverso, multiplicado por σ e pela entrada no referido neurônio. Deste modo, os pesos têm efetivo ajuste somente para valores de s situados no corpo central da função σ. À medida que os pesos se tornarem significativos, há desaceleração dos ajustes dos mesmos, tendendo para a completa paralisia, justamente onde se encontram os terminais das caudas tanto direita como esquerda. Em vista disto, no caso específico do problema de determinação de tempos críticos, utiliza-se a função sigmóide com λ relativamente pequeno, proporcionando caudas mais longas. Isto permitirá a escolha de pesos da rede de forma menos restritiva, se comparada às adotadas na bibliografia, que de certo modo diminui a possibilidade da ocorrência de paralisia e aumenta a velocidade de convergência do algoritmo RP. Porém, com a diminuição de λ, a magnitude dos pesos tende a crescer. Por conseguinte, a escolha de λ deve ser feita com critério, levando-se em conta a experiência com treinamento. O parâmetro γ (taxa de treinamento), por conveniência, pode ser redefinido do seguinte modo: γ = (2 γ* / λ) (para sigmóide definida pela equação (4)); (21) ou γ = (γ* / λ) (para sigmóide definida pela equação (5)). 16 (22) Substituindo-se as expressões de γ (equações (21) e (22)) na equação. (7), será “anulada” a dependência da amplitude de σ com relação a λ. A amplitude de σ será mantida constante para qualquer valor de λ. Esta alternativa torna-se mais importante tendo em vista que λ atuará somente nas caudas esquerda e direita de σ. Assim, arbitrando-se um valor inicial para γ*, este parâmetro será ajustado via controlador nebuloso, substituindo-se ∆γ por ∆γ*. Assim, o parâmetro ∆γ* é determinado usando um controlador nebuloso. Podese, ainda, uma estratégia que procure evitar que γ* sature ao longo do processo iterativo, ou seja: ∆γ * k = exp (− α k ) ∆ψ k sendo: α = número arbitrário positivo; ∆ψ q = variação produzida pelo controlador nebuloso no instante discreto k. Obtida via controle nebuloso Por exemplo: ∆γ * k = exp (− α k ) ∆ψk (∆ψ , ∆γ* ) ∆γ* parâmetro nebuloso amortecido ∆ψ Prioridade (primeiras iterações) Figura 2. Comportamento de ∆ψ e ∆γ *. 17 (23) Referências Arabshahi, P.; Choi, J. J.; Marks II, R. J. and Caudell, T.P. (1996). “Fuzzy parameter adaptation in optimization”, IEEE Computational Science & Engineering, Spring, pp. 57-65. Fine, T.L. (1999). “Feedforward neural network methodology”, Springer-Verlag, 1999, USA. Lopes, M. L. M. e Minussi, C. R. “Treinamento de redes neurais via Retropropagação com controlador nebuloso”, XIII Congresso Brasileiro de Automática, Setembro-200, Florianópolis-SC, pp. 1616-1621. Terano, T.; Asai, K. and Sugeno, M. (1991). “Fuzzy systems theory and its applications”, Academic Press, USA. Werbos, P. J. (1974). "Beyond regression: New tools for prediction and analysis in the behavioral sciences”, Master Thesis, Harvard University. Widrow, B.; Lehr, M.A. (1990). “30 years of adaptive neural networks: perceptron, madaline, and backpropagation”, Proceedings of the IEEE, pp. 1415-1442, Vol. 78, no 9. 18 Universidade estadual Paulista – UNESP Campus de Ilha Solteira Programa de Pós-Graduação em Engenharia Elétrica Disciplina: Lógica Nebulosa Controlador Takagi-Sugeno Carlos Roberto Minussi Ilha Solteira-SP, agosto-2009. Controlador Takagi-Sugeno A concepção de controle nebuloso, anteriormente apresentada, é comumente conhecida como controlador Mamdani [5] (em homenagem à primeira publicação na literatura sobre o controlador fuzzy); Existem concepções mais modernas, e.g., os controladores Takagi-Sugeno (T-S) [1], [4]; Os controladores T-S apresentam duas principais vantagens sobre os controladores Mamdani: 1. o processo de defuzzificação é mais fácil e mais rápido. Portanto, os controladores T-S são mais apropriados para aplicações em tempo real; 2. os controladores T-S envolvem somente aprendizado paramétrico, enquanto que os controladores Mamdani necessitam, também, do aprendizado estrutural. Este processo consiste na obtenção de uma função complexa, via técnica de aprendizado, baseada em regras nebulosas (e.g., redes neurais, mais especificamente, os sistemas neuro-fuzzy); Um sistema complexo (representado por equação não-linear) pode ser dividido por um conjunto de modelos matemáticos locais (aproximações locais). Trata-se, por conseguinte, de um algoritmo que cria modelos matemáticos que aproximam, localmente, a função a ser aprendida; Tais aproximações podem ser: (1) não-lineares e (2) lineares. As aproximações lineares (vide Figura 1) são as mais empregadas na literatura especializada; Deve-se ressaltar que estas aproximações lineares não devem ser confundidas com tangentes à curva a ser determinada. Tratam-se de aproximações que buscam garantir uma melhor representação da função, considerando-se a estabilidade do controlador. 1 Figura 1. O problema consiste no ajuste dos parâmetros de cada seguimento linear que minimize a distância entre a reta e a curva a ser aprendida; O modelo de T-S pode ser implementado via uso de redes neuro-nebulosas, e.g., rede neural retropropagação, etc.; Técnica alternativa de T-S: T-S-K (Takagi_Sugeno_Kang) [2] generalização do controlador T-S; Os controladores de T-S consistem de regras da forma (representação linear): Figura 2. Ri : se x1 é A1i e x2 é A2i . . . e xn é Ani, então, y i = p0 i + p 1 i x 1 + p 2 i x 2 + ... (1) pni xn 2 sendo: Ri = i-ésima regra nebulosa; xj = j-ésima variável de entrada; Aji = i-ésimo conjunto fuzzy associado à variável xj. Os Aji são conjuntos caracterizados, e.g., por triângulos, tais como abordados anteriormente funções de pertinência; yi = variável de saída da i-ésima regra; pji = valor (ganho) real. Estes parâmetros deverão ser identificados. Se yi = p0i (pj0i = 0, para j > 1), o sistema (1) corresponde ao controlador ordem-zero. Formato baseado na equação de estado: Ri : se x1 é A1i e x2 é A2i . . . e xn é Ani, então, . x = [P] x + [Q] u y = [M] x + [N] u sendo: M, N, P e Q são matrizes; y = saída; x = estado; u = controle. Se as funções de pertinência forem triangulares, então: Aji 2 x j a ji = Máx 1 , 0 b ji ou seja, cada termo lingüístico, para cada variável Aji, é descrita por dois parâmetros aji e bji; 3 sendo: aji e bji = coeficientes que devem ser determinados por algum método, e.g., via redes neurais (formulação por um problema de otimização), LMI (Linear Matrix Inequality) [3], [4]. Se i = A ji , a saída final y é dada por: j y= m i i μ y i 1 m i μ i 1 (processo de defuzzificação). A saída de cada regra é um valor real; O número de regras é determinado pelo usuário. Um exemplo (aproximação “linear”) é mostrado na Figura 3. Tratam-se de trechos superpostos relacionados à transferência de entrada e saída, e os conseqüentes (partes ENTÃO) definem aproximações lineares para estes trechos. 4 Figura 3. Representação esquemática do modelo de Takagi-Sugeno. Exemplo [6] Regra 1: se largura (W) é média e altura (H) é baixa, então, is é A01 + A11 L + A21 H Regra 2: se largura (W) é baixa e altura (H) é média, então, is é A02 + A12 L + A22 H 5 Figura 4. Referências [1] Takagi, T. and Sugeno, M. “Fuzzy Identification of Systems and Its Applications to Modeling and Control”, IEEE Transactions on SMC, Vol. 15, No. 1, pp. 116-132, 1985. [2] Sugeno, M. and Kang, K.T. “Structure Identification of Fuzzy Model”, Fuzzy Sets Systems, Vol. 28, pp. 15-33, 1988. [3] Van Antwerp J. G. and. Braatz R. D “A Tutorial on Linear and Bilinear Matrix Inequalities, Journal of Process Control, Volume 10, Issue 4, August 2000, Pages 363385. [4] Sala, A.; Guerra T. M. and Babuška, R. “Perspectives of Fuzzy Systems and Control”, Fuzzy Sets and Systems, Volume 156, Issue 3, 16 December 2005, Pages 432-444. [5] Mamdani, E. H. “Application of Fuzzy Algorithms For Control of Simple Dynamic Plant”, Proceedings of IEE, 121, Vol. 12, pp. 1585-1588, 1974. [6] Shaw, I. Simões, M.G. “Controle e Modelagem Fuzzy”, Editora Edgard Blücher Ltda., São Paulo-SP, 1999. 6 Jerry M. Mendel University of Southern California, USA 20 IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE | FEBRUARY 2007 © 1994 DIGITALSTOCK CORP. Abstract: This paper provides an introduction to and an overview of type-2 fuzzy sets (T2 FS) and systems. It does this by answering the following questions: What is a T2 FS and how is it different from a T1 FS? Is there new terminology for a T2 FS? Are there important representations of a T2 FS and, if so, why are they important? How and why are T2 FSs used in a rule-based system? What are the detailed computations for an interval T2 fuzzy logic system (IT2 FLS) and are they easy to understand? Is it possible to have an IT2 FLS without type reduction? How do we wrap this up and where can we go to learn more? 1556-603X/07/$25.00©2007IEEE Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. Introduction A T2 FS and How It is Different From a T1 FS was recently asked “What’s the difference between the popular term fuzzy set (FS) and a type-1 fuzzy set (T1 FS)”? Before I answer this question, let’s recall that Zadeh introduced FSs in 1965 and type-2 fuzzy sets (T2 FSs) in 1975 [12]. So, after 1975, it became necessary to distinguish between pre-existing FSs and T2 FSs; hence, it became common to refer to the pre-existing FSs as “T1 FSs.” So, the answer to the question is “There are different kinds of FSs, and they need to be distinguished, e.g. T1 and T2.” I will do this throughout this overview article about T2 FSs and T2 fuzzy systems. Not only have T1 FSs been around since 1965, they have also been successfully used in many applications. However, such FSs have limited capabilities to directly handle data uncertainties, where handle means to model and minimize the effect of. That a T1 FS cannot do this sounds paradoxical because the word fuzzy has the connotation of uncertainty. This paradox has been known for a long time, but it is questionable who first referred to "fuzzy" being paradoxical, e.g. [3], p. [12]. Of course, uncertainty comes in many guises and is independent of the kind of FS or methodology one uses to handle it. Two important kinds of uncertainties are linguistic and random. The former is associated with words, and the fact that words can mean different things to different people, and the latter is associated with unpredictability. Probability theory is used to handle random uncertainty and FSs are used to handle linguistic uncertainty, and sometimes FSs can also be used to handle both kinds of uncertainty, because a fuzzy system may use noisy measurements or operate under random disturbances. Within probability theory, one begins with a probability density function (pdf) that embodies total information about random uncertainties. However, in most practical applications, it is impossible to know or determine the pdf; so, the fact that a pdf is completely characterized by all of its moments is used. For most pdfs, an infinite number of moments are required. Unfortunately, it is not possible, in practice, to determine an infinite number of moments; so, instead, enough moments are computed to extract as much information as possible from the data. At the very least, two moments are used—the mean and variance. To just use firstorder moments would not be very useful because random uncertainty requires an understanding of dispersion about the mean, and this information is provided by the variance. So, the accepted probabilistic modeling of random uncertainty focuses, to a large extent, on methods that use at least the first two moments of a pdf. This is, for example, why designs based on minimizing mean-squared errors are so popular. Just as variance provides a measure of dispersion about the mean, an FS also needs some measure of dispersion to capture more about linguistic uncertainties than just a single membership function (MF), which is all that is obtained when a T1 FS is used. A T2 FS provides this measure of dispersion. What is a T2 FS and how is it different from a T1 FS? A T1 FS has a grade of membership that is crisp, whereas a T2 FS has grades of membership that are fuzzy, so it could be called a “fuzzy-fuzzy set.” Such a set is useful in circumstances where it is difficult to determine the exact MF for an FS, as in modeling a word by an FS. As an example [6], suppose the variable of interest is eye contact, denoted x, where x ∈[0, 10] and this is an intensity range in which 0 denotes no eye contact and 10 denotes maximum amount of eye contact. One of the terms that might characterize the amount of perceived eye contact (e.g., during an airport security check) is “some eye contact.” Suppose that 50 men and women are surveyed, and are asked to locate the ends of an interval for some eye contact on the scale 0–10. Surely, the same results will not be obtained from all of them because words mean different things to different people. One approach for using the 50 sets of two end points is to average the end-point data and to then use the average values to construct an interval associated with some eye contact. A triangular (other shapes could be used) MF, M F(x), could then be constructed, one whose base end points (on the x-axis) are at the two end-point average values and whose apex is midway between the two end points. This T1 triangular MF can be displayed in two dimensions, e.g. the dashed MF in Figure 1. Unfortunately, it has completely ignored the uncertainties associated with the two end points. A second approach is to make use of the average end-point values and the standard deviation of each end point to establish an uncertainty interval about each average end-point value. By doing this, we can think of the locations of the two end points along the x-axis as blurred. Triangles can then be located so that their base end points can be anywhere in the intervals along the x-axis associated with the blurred average end points. Doing this leads to a continuum of triangular MFs sitting on the x-axis, as in Figure1. For purposes of this discussion, suppose there are exactly N such triangles. Then at each value of x, there can be up to N MF values (grades), M F1 (x), M F2 (x), …, M FN (x) . Each of the possible MF grades has a weight assigned to it, say w x1 , w x2 , …, w xN (see the top insert in Figure 1). These weights can be thought of as the possibilities associated with each triangle’s grade at this value of x. Consequently, at each x, the collection of grades is a function {(M F i (x), w x i ), i = 1, …, N } (called secondary MF). The resulting T2 MF is 3-D. If all uncertainty disappears, then a T2 FS reduces to a T1 FS, as can be seen in Figure 1, e.g. if the uncertainties about the left- and right-end points disappear, then only the dashed triangle survives. This is similar to what happens in probability, when randomness degenerates to determinism, in which case the pdf collapses to a single point. In brief, a T1 FS is embedded in a T2 FS, just as determinism is embedded in randomness. It is not as easy to sketch 3-D figures of a T2 MF as it is to sketch 2-D figures of a T1 MF. Another way to visualize a T2 FS is to sketch (plot) its footprint of uncertainty (FOU) on I FEBRUARY 2007 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE 21 Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. FIGURE 1 Triangular MFs when base end points (l and r) have uncertainty intervals associated with them. The top insert depicts the secondary MF (vertical slice) at x , and the lower insert depicts embedded T1 and T2 FSs, the latter called a wavy slice. the 2-D domain of the T2 FS, and this is easy to do. The heights of a T2 MF (its secondary grades) sit atop its FOU. In Figure 1, if the continuum of triangular MFs is filled in (as implied by the shading), then the FOU is obtained. Another example of an FOU is shown in Figure 2. It is for a Gaussian primary MF whose standard deviation is known with perfect certainty, but whose mean, m, is uncertain and varies anywhere in the interval from m1 to m2 . The uniform shading over the entire FOU means that uniform weighting (possibilities) is assumed. Because of the uniform weighting, this T2 FS is called an interval type-2 FS (IT2 FS). Almost all applications use IT2 FSs because, to date, it is only for such sets (and systems that use them) that all calculations are easy to perform. Additionally, although general T2 FSs have more design degrees of freedom (parameters) than IT2 FSs, no one knows yet how to best choose their secondary MFs. So, at this time there has been a logical progression from T1 to IT2. Although most applications use IT2 FSs, there is research underway about general T2 FSs and systems, e.g. [1] and [10]. New Terminology for a T2 FS FIGURE 2 FOU for a Gaussian primary MF whose mean varies in the interval [m1 , m2 ] and whose standard deviation is a constant. 22 Is there new terminology for a T2 FS? Just as probability has much new terminology and definitions that must be learned in order to use it as a model of unpredictability, a T2 FS has new terminology and definitions that must be learned in order to use it as a model of linguistic uncertainty. New terms (some of which have already been used above) and definitions are summarized in Box 1. Note that in order to distinguish a T2 FS from a T1 FS, a tilde is used over the former, e.g. à . Note, also, that an IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE | FEBRUARY 2007 Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. BOX 1. New Terms for T2 FSs Term Literal Definition (see Figure 1 for many of the examples) Primary variable— x ∈ X Primary membership— J x The main variable of interest, e.g. pressure, temperature, angle Each value of the primary variable x has a band (i.e., an interval) of MF values, e.g. J x = [MF1 (x ), MFN (x )] An element of the primary membership, J x , e.g. u1 , . . . , uN The weight (possibility) assigned to each secondary variable, e.g. f x (u1 ) = wx 1 A three-dimensional MF with point-value (x, u, μà (x, u)), where x ∈ X, u ∈ J x , and 0 ≤ μà (x, u) ≤ 1. Note that f x (u) ≡ μà (x, u) A T1 FS at x, also called a vertical slice, e.g. top insert in Figure 1 The union of all primary memberships; the 2-D domain of Ã; the area between UMF (Ã) and LMF (Ã), e.g. lavender shaded regions in Figure 1 The lower bound of FOU(Ã) (see Figure 1) The upper bound of FOU(Ã) (see Figure 1) Secondary variable— u ∈ J x Secondary grade— f x (u) Type-2 FS— à Secondary MF at x Footprint of Uncertainty of à − FOU(Ã) Lower MF of à − LMF(Ã) or μà (x) Upper MF of à − UMF(Ã) or μà (x) Interval T2 FS Embedded T1 FS— Ae (x) Embedded T2 FS— Ãe (x) Primary MF A T2 FS whose secondary grades all equal 1, described completely by its FOU, e.g. Figure 3; à = 1/FOU(Ã) where this notation means that the secondary grade equals 1 for all elements of FOU(Ã) Any T1 FS contained within à that spans ∀x ∈ X; also, the domain for an embedded T2 FS, e.g. the wavy curve in Figure 3, LMF(Ã) and UMF(Ã) Begin with an embedded T1 FS and attach a secondary grade to each of its elements, e.g. see lower insert in Figure 1 Given a T1 FS with at least one parameter that has a range of values. A primary MF is any one of the T1 FSs whose parameters fall within the ranges of those variable parameters, e.g. the dashed MF in Figure 1 IT2 FS is completely characterized by its 2-D FOU that is bound by a lower MF (LMF) and an upper MF (UMF) (Figure 3), and, its embedded FSs are T1 FSs. Important Representations of a T2 FS Are there important representations of a T2FS and, if so, why are they important? There are two very important representations for a T2 FS; they are summarized in Box 2. The vertical-slice representation is the basis for most computations, whereas the wavyslice representation is the basis for most theoretical derivations. The latter is also known as the Mendel-John Representation Theorem (RT) [8]. For an IT2 FS, both representations can also be interpreted as covering theorems because the union of all vertical slices and the union of all embedded T1 FSs cover the entire FOU. FIGURE 3 Interval T2 FS and associated quantities. BOX 2. Two Very Important Representations of a T2 FS Name of Representation Vertical-Slice Representation Statement Vertical slices (x) à = Comments Very useful for computation ∀x∈X Wavy-Slice Representation à = ∀j Embedded T2 FS ( j) Very useful for theoretical derivations; also known as the Mendel-John Representation Theorem [8] FEBRUARY 2007 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. 23 Although the RT is extremely useful for theoretical developments, it is not yet useful for computation because the number of embedded sets in the union can be astronomical. Typically, the RT is used to arrive at the structure of a theoretical result (e.g., the union of two IT2 FSs), after which practical computational algorithms are found to compute the structure. For an IT2 FS, the RT states that an IT2 FS is the union of all of the embedded T1 FSs that cover its FOU. The importance of this result is that it lets us derive everything about IT2 FSs or systems using T1 FS mathematics [9]. This results in a tremendous savings in learning time for everyone. FIGURE 4 Type-2 FLS. Type-2 Fuzzy Logic Systems (FLS) How and why are T2 FSs used in a rule-based system? A rulebased FLS [5, Ch. 1] contains four components—rules, fuzzifier, inference engine, and output processor—that are inter-connected, as shown in Figure 4. Once the rules have been established, a FLS can be viewed as a mapping from inputs to outputs (the solid path in Figure 4, from “Crisp inputs” to “Crisp outputs”), and this mapping can be expressed quantitatively as y = f (x). This kind of FLS is widely used in many engineering applications of fuzzy logic (FL), such as in FL controllers and signal processors, and is also known as a fuzzy controller or fuzzy system. Rules are the heart of an FLS. They may be provided by experts or extracted from numerical data. In either case, the rules can be expressed as a collection of IF–THEN statements, e.g. IF the total average input rate of real-time voice and video traffic is a moderate amount, and the total average input rate of the non-realtime data traffic is some, THEN the confidence of accepting the telephone call is a large amount. The IF-part of a rule is its antecedent, and the THEN-part of a rule is its consequent. FSs are associated with terms that appear in the antecedents or consequents of rules, and with the inputs to and output of the FLS. MFs are used to describe these FSs, and they can be BOX 3. How T1 FS Mathematics Can Be Used to Derive IT2 FS Fired-Rule Outputs [9] In order to see the forest from the trees, focus on the single rule “IF x is F̃ 1 THEN y is G̃1 .” It has one antecedent and one consequent and is activated by a crisp number (i.e., singleton fuzzification). The key to using T1 FS mathematics to derive an IT2 FS fired-rule output is a graph like the one in Figure 5. Observe that the antecedent is decomposed into its nF T1 embedded FSs and the consequent is decomposed into its nG T1 embedded FSs. Each of the nF × nG paths (e.g., the one in lavender) acts like a T1 inference. When the union is taken of all of the T1 firedrule sets, the result is the T2 firedrule set. The latter is lower and upper bound, because each of the T1 fired-rule sets is bound. How to actually obtain a formula for B(y) is explained very carefully in [9], and just requires computing these lower and upper bounds—and they only involve lower and upper MFs of the antecedent and consequent FOUs. How this kind of graph and its associated analyses are extended to rules that have more than one antecedent, more than one rule, and other kinds of fuzzificaFIGURE 5 Graph of T1 fired-rule sets for all possible nB = nF × nG combinations of embedded tions is also explained in [9]. T1 antecedent and consequent FSs, for a single antecedent rule. 24 IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE | FEBRUARY 2007 Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. Box 4. Pictorial Descriptions for T1 and T2 Inferences Figure 6 depicts input and antecedent operations for a two-antecedent single-consequent rule, singleton fuzzification, and minimum tnorm. When x1 = x1 , μF1 (x1 ) occurs at the intersection of the vertical line at x1 with μF1 (x1 ); and, when x2 = x2 , μF2 (x2 ) occurs at the intersection of the vertical line at x2 with μF2 (x2 ). The firing level is a number equal to min [μF1 (x1 ), μF2 (x2 )]. The main thing to observe from this figure is that the result of input and antecedent operations is a number—the firing level f (x ). This firing level is then t-normed with the entire consequent set, G. When μG (y) is a triangle and the t-norm is minimum, the resulting fired-rule FS is the trapezoid shown in red. Figure 7 shows the comparable calculations for an IT2 FLS. Now when x1 = x1 , the vertical line at x1 intersects FOU(F̃1 ) everywhere in the interval [μF̃ (x1 ), μ̄F̃1 (x1 )]; and, when x2 = x2 , the vertical line at x2 intersects FOU(F̃2 ) everywhere in the interval 1 ¯ ), where [μF̃ (x2 ), μ̄F̃2 (x2 )]. Two firing levels are then computed, a lower firing level, f(x ), and an upper firing level, f(x 2 ¯ ) = min[μ̄ (x ), μ̄ (x )]. The main thing to observe from this figure is that the result of input f(x ) = min[μF̃ (x1 ), μF̃ (x2 )] and f(x 1 2 F̃ F̃ 1 2 1 2 ¯ )]. f(x ) is then t-normed with LMF(G̃) and antecedent operations is an interval—the firing interval F(x ), where F(x ) = [f(x ), f(x ¯ and f(x ) is t-normed with UMF(G̃). When FOU(G̃) is triangular, and the t-norm is minimum, the resulting fired-rule FOU is the yellow trapezoidal FOU. FIGURE 6 T1 FLS inference: from firing level to rule output. x1 x1 FOU (B ) x2 x2 FIGURE 7 IT2 FLS inference: from firing interval to rule output FOU. FEBRUARY 2007 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. 25 BOX 5. A comparison of COS defuzzification and TR Center-of-Sets (COS) Defuzzification, ycos (x) 1. Compute the centroid of each rule's consequent T1 FS. Call it c l (l = 1, ..., M) 2. Compute the firing level for each (fired) rule. Call it f l (l = 1, ..., M) M M cl f l fl 3. Compute ycos (x) = l=1 l=1 Center-of-Sets (COS) TR, Ycos (x) l l 1. Compute the centroid of each rule's consequent IT2 FS, using the KM algorithms (see Box 6). Call it [yl , yr ] (l = 1, ..., M) l 2. Compute the firing interval for each (fired) rule. Call it f , f¯l (l = 1, ..., M) 3. Compute Ycos (x) = [yl (x), yr (x)], where yl (x) is the solution to the following minimization problem, yl (x) = M M min yll f l f l , that is solved using a KM Algorithm (Box 6), and yr (x) is the solution to the following maximization problem, l ∀f l ∈[f ,f¯l ] l=1 l=1 M M yr (x) = max yrl f l f l , that is solved using the other KM Algorithm (Box 6). l ∀f l ∈[f ,f¯l ] l=1 l=1 BOX 6. Centroid of an IT2 FS and its computation Consider the FOU shown in Figure 8. Using the RT, compute the centroids of all of its embedded T1 FSs, examples of which are shown as the colored functions. Because each of the centroids is a finite number, this set of calculations leads to a set of centroids that is called the centroid of B̃, C(B̃). C(B̃) has a smallest value c l and a largest value cr , i.e. C(B̃) = [c l (B̃), cr (B̃)]. So, to compute C(B̃) it is only necessary to compute c l and cr . It is not possible to do this in closed form. Instead, it is possible to compute c l and cr using two iterative algorithms that are called the Karnik-Mendel (KM) algorithms. Note that c l = min (centroid of all embedded T1 FSs in FOU(B̃)). Analysis shows that: L c l = c l (L) = i=1 L yi UMF(B̃|yi )+ i=1 UMF(B̃|yi ) + N i=L+1 N yi LMF(B̃|yi ) i=L+1 LMF(B̃|yi ) One of the KM algorithms computes switch point L (see Figure 9). Note also that cr = max (centroid of all embedded T1 FSs in FOU(B̃)). Analysis shows that: R cr = cr (R) = i=1 yi LMF(B̃|yi ) + R i=1 LMF(B̃|yi ) + N i=R+1 N yi UMF(B̃|yi ) i=R+1 UMF(B̃|yi ) The other KM algorithm computes switch point R (see Figure 10). Derivations and statements of the KM algorithms are found, e.g., in [2, pp. 204–207] and [5, pp. 258–259 or pp. 308–311]. FIGURE 8 FOU and some embedded T1 FSs. FIGURE 9 The red embedded T1 FS is used to compute c l (L). 26 FIGURE 10 The red embedded T1 FS is used to compute cr (R). IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE | FEBRUARY 2007 Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. either T1 or T2. The latter lets us quantify different kinds of uncertainties that can occur in an FLS. Four ways in which uncertainty can occur in an FLS are: (1) the words that are used in antecedents and consequents of rules can mean different things to different people; (2) consequents obtained by polling a group of experts will often be different for the same rule, because the experts will not necessarily be in agreement; (3) only noisy training data are available for tuning (optimizing) the parameters of an IT2 FLS; and (4) noisy measurements activate the FLS. An FLS that is described completely in terms of T1 FSs is called a T1 FLS, whereas an FLS that is described using at least one T2 FS is called a T2 FLS. T1 FLSs are unable to directly handle these uncertainties because they use T1 FSs that are certain. T2 FLSs, on the other hand, are very useful in circumstances where it is difficult to determine an exact MF for an FS; hence, they can be used to handle these uncertainties. Almost all applications use IT2 FSs because all calculations are easy to perform. Returning to the Figure 4 FLS, the fuzzifier maps crisp numbers into FSs. It is needed to activate rules that are in terms of linguistic variables, which have FSs associated with them. The inputs to the FLS prior to fuzzification may be certain (e.g., perfect measurements) or uncertain (e.g., noisy measurements). The MF for a T2 FS lets us handle either kind of measurement. The inference block of the Figure 4 FLS maps FSs into FSs. The most commonly used inferential procedures for a FLS use minimum and product implication models. The resulting T2 FLSs are then called Mamdani T2 FLSs. TSK T2 FLSs are also available [5]. BOX 7. Uncertainty Bounds and Related Computations 1. Compute Centroids of M Consequent IT2 FSs yli and yri (i = 1, ..., M), the end points of the centroids of the M consequent IT2 FSs, are computed using the KM algorithms (Box 6). These computations can be performed after the design of the IT2 FLS has been completed and they only have to be done once. 2. Compute Four Boundary Type-1 FLS Centroids M M i i f yli f yl(0) (x) = i=1 yl(M) (x) = M yr(()) (x) = i=1 f¯i yli f¯i yri M i=1 M i=1 M f¯i yr(M) (x) = i=1 M f¯i i=1 i f yri M i=1 f i i=1 3. Compute Four Uncertainty Bounds y (x) ≤ yl (x) ≤ ȳl(x) y (x) ≤ yr (x) ≤ ȳr (x) ȳl(x) = min yl(0) (x), yl(M) (x) y (x) = max yr()) (x), yr(M) (x) l r r ⎡ M i ¯i ⎢ (f − f ) ⎢ i=1 y (x) = ȳl(x) − ⎢ l M M ⎣ i f f¯i i=1 M i ¯i ⎢ (f − f ) ⎢ i=1 ȳr (x) = y (x) + ⎢ r M M ⎣ i f f¯i i=1 i=1 ⎤ M f yli − yl1 f¯i ylM − yli ⎥ ⎥ i=1 i=1 × ⎥ M M M ⎦ i i 1 i ¯ i f yl − yl f yl − yl + M i=1 ⎡ i=1 ⎤ M M i f yrM − yri ⎥ f¯i yri − yr1 ⎥ i=1 i=1 × ⎥ M M ⎦ i M ¯ i i 1 i f yr − yr + f yr − yr i i=1 i=1 i=1 Note: The pair ȳt (x), yr (x) are called inner (uncertainty) bounds, whereas the pair yl (x), ȳr (x) are called outer (uncertainty) bounds. 4. Compute Approximate TR Set [yl (x), yr (x)] ≈ [ŷl(x), ŷr (x)] = [(y (x) + ȳl(x))/2, (y (x) + ȳr (x))/2] l r 5. ComputeApproximate Defuzzified Output y(x) ≈ ŷ(x) = 12 [ŷl(x) + ŷr (x)] FEBRUARY 2007 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. 27 trol action. In a signal processing application, such a number could correspond to a financial forecast or the location of a target. The output processor for a T1 FLS is just a defuzzifier; however, the output processor of a T2 FLS contains two components: the first maps a T2 FS into a T1 FS and is called a type-reducer [that performs type-reduction (TR)], and the second performs defuzzification on the type-reduced set. To date, practical computations for a T2 FLS are only possible when all T2 FSs are IT2 FSs, i.e. for an IT2 FLS. There are two very important representations for a T2 FS vertical-slice and wavy-slice representations. In many applications of an FLS, crisp numbers must be obtained at its output. This is accomplished by the output processor, and is known as defuzzification. In a control-system application, for example, such a number corresponds to a con- Computations in an IT2 FLS Firing Level (FL) Type-Reduction (TR) −j Upper f (x) FL Input x Lower FL f j (x) − Up to M Fired Rules (j = 1,..., M) yl (x) Center-of Sets TR (Uses KM Consequent IT2 FS Centroids Algorithms) yj l Left End Associated Consequent UMFs and LMFs Right End y rj Defuzzification y(x) AVG yr (x) with Fired Rules (j = 1,..., M) Memory FIGURE 11 Computations in an IT2 FLS that use center-of-sets TR. Input x Firing Level (FL) Uncertainty Bounds −j Upper f (x) FL yl Left − LB j Lower f− (x) FL Left UB y−l Defuzzification ∧ yl (x) AVG ∧ y (x) AVG Consequent IT2 FS Centroids Consequent UMFs and LMFs Left End Right End yj l Right LB yr − ∧ AVG y rj Right UB yr (x) y−r Memory FIGURE 12 Computations in an IT2 FLS that use uncertainty bounds instead of TR. LB = lower bound, and UB = upper bound. 28 What are the detailed computations for an IT2 FLS and are they easy to understand? As mentioned above, the RT can be used to derive the input-output formulas for an IT2 FLS. How the formulas are derived from the (see Figure 4) input of the Inference block to its output is explained in Box 3. Because practitioners of T1 FLSs are familiar with a graphical interpretation of the inference engine computation, T1 computations are contrasted with T2 computations in Box 4. Comparing Figures. 6 and 7, it is easy to see how the uncertainties about the antecedents flow through the T2 calculations. The more (less) the uncertainties are, then the larger (smaller) the firing interval is and the larger (smaller) the fired-rule FOU is. Referring to Figure 4, observe that the output of the Inference block is processed next by the Output Processor that consists of two stages, Type-reduction (TR) and Defuzzification. All TR methods are T2 extensions of T1 defuzzification methods, each of which is based on some sort of centroid calculation. For example, in a T1 FLS, all fired-rule output sets can first be combined by a union operation after which the centroid of the resulting T1 FS can be computed. This is called centroid defuzzification. Alternatively, since the union operation is computationally costly, each firing level can be combined with the centroid of its consequent set, by means of a different centroid calculation, called center-of-sets defuzzification (see top portion of Box 5). The T2 analogs of these two kinds of defuzzification are called centroid TR and center-of-sets TR (see bottom portion of Box 5 and also [5] for three other kinds of TR). The result of TR for IT2 FSs is an interval set [y l (x), y r (x)]. IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE | FEBRUARY 2007 Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. Regardless of the kind of TR, they all require computing the centroid of an IT2 FS. Box 6 explains what this is and how the centroid is computed. The two iterative algorithms for doing this are known as the Karnik-Mendel (KM) algorithms [2], and they have the following properties: 1) they are very simple, 2) they converge to the exact solutions monotonically and super-exponentially fast, and 3) they can be run in parallel, since they are independent. Defuzzification, the last computation in the Figure 4 IT2 FLS, is performed by taking the average of y l (x) and y r (x). The entire chain of computations is summarized in Fig. 11. Firing intervals are computed for all rules, and they depend explicitly on the input x. For center-of-sets TR (see Box 5), off-line computations of the centroids are performed for each of the M consequent IT2 FSs using KM algorithms, and are then stored in memory. Center-of-sets TR combines the firing intervals and pre-computed consequent centroids and uses the KM algorithms to perform the actual calculations. An IT2 FLS for Real-Time Computations Is it possible to have an IT2 FLS without TR? TR is a bottleneck for real-time applications of an IT2 FLS because it uses the iterative KM algorithms for its computations. Even though the algorithms are very fast, there is a time delay associated with any iterative algorithm. The good news is that TR can be replaced by using minimax uncertainty bounds for both y l (x) and y r (x). These bounds are also known as the Wu-Mendel uncertainty bounds [11]. Four bounds are computed, namely lower and upper bounds for both y l (x) and y r (x). Formulas for these bounds are only dependent upon lower and upper firing levels for each rule and the centroid of each rule’s consequent set, and, because they are needed in two of the other articles in this issue, are given in Box 7. Figure 12 summarizes the computations in an IT2 FLS that uses uncertainty bounds. The front end of the calculations is identical to the front end using TR (see Figure 11). After the uncertainty bounds are computed, the actual values of y l (x ) and y r (x ) (that would have been computed using TR, as in Figure 11) are approximated by averaging their respective uncertainty bounds, the results being ŷ l (x ) and ŷ r (x ). Defuzzification is then achieved by averaging these two approximations, the result being ŷ(x), which is an approximation to y(x). Remarkably, very little accuracy is lost when the uncertainty bounds are used. This is proven in [11] and has been demonstrated in [4]. See [7] for additional discussions on IT2 FLSs without TR. In summary, IT2 FLSs are pretty simple to understand and they can be implemented in two ways, one that uses TR and one that uses uncertainty bounds. Conclusions How do we wrap this up and where can we go to learn more? In school, we learn about determinism before randomness. Learning about T1 FSs before T2 FSs fits a similar learning model (Figure 13). IT2 FSs and FLSs let us capture first-order uncer- FIGURE 13 Educational perspective of T2 FSs and FLSs. tainties about words. It is anticipated that by using more general T2 FSs and FLSs it will be possible to capture higher-order uncertainties about words. Much remains to be done. For readers who want to learn more about IT2 FSs and FLSs, the easiest way to do this is to read [9]; for readers who want a very complete treatment about general and interval T2 FSs and FLSs, see [5]; and, for readers who may already be familiar with T2 FSs and want to know what has happened since the 2001 publication of [5], see [7]. Acknowledgements The author acknowledges the following people who read the draft of this article and made very useful suggestions on how to improve it: Simon Coupland, Sarah Greenfield, Hani Hagras, Feilong Liu, Robert I. John and Dongrui Wu. References Note: This is a minimalist list of references. For many more references about T2 FSs and FLSs, see [5] and [7]. Additionally, the T2 Web site http://www.type2fuzzylogic.org/ is loaded with references and is being continually updated with new ones. [1] S. Coupland and R.I. John, “Towards more efficient type-2 fuzzy logic systems,” Proc. IEEE FUZZ Conf., pp. 236–241, Reno, NV, May 2005. [2] N.N. Karnik and J.M. Mendel, “Centroid of a type-2 fuzzy set,” Information Sciences, vol. 132, pp. 195–220, 2001. [3] G.J. Klir and T.A. Folger, “Fuzzy Sets, Uncertainty, and Information,” Prentice Hall, Englewood Cliffs, NJ, 1988. [4] C. Lynch, H. Hagras and V. Callaghan, “Using uncertainty bounds in the design of an embedded real-time type-2 neuro-fuzzy speed controller for marine diesel engines,” Proc. IEEE-FUZZ 2006, pp. 7217–7224, Vancouver, CA, July 2006. [5] J.M. Mendel, “Uncertain Rule-Based Fuzzy Logic Systems: Introduction and New Directions,” Prentice-Hall, Upper-Saddle River, NJ, 2001. [6] J.M. Mendel, “Type-2 fuzzy sets: some questions and answers,” IEEE Connections, Newsletter of the IEEE Neural Networks Society, vol. 1, pp. 10–13, 2003. [7] J.M. Mendel, “Advances in type-2 fuzzy sets and systems,” Information Sciences, vol. 177, pp. 84–110, 2007. [8] J.M. Mendel and R.I. John, “Type-2 fuzzy sets made simple,” IEEE Trans. on Fuzzy Systems, vol. 10, pp. 117–127, April 2002. [9] J.M. Mendel, R.I. John, and F. Liu, “Interval type-2 fuzzy logic systems made simple,” IEEE Trans. on Fuzzy Systems, vol. 14, pp. 808–821, Dec. 2006. [10] J.T. Starczewski, “A triangular type-2 fuzzy logic system,” Proc. IEEE-FUZZ 2006, pp. 7231–7238, Vancouver, CA, July 2006. [11] H. Wu and J.M. Mendel, “Uncertainty bounds and their use in the design of interval type-2 fuzzy logic systems,” IEEE Trans. on Fuzzy Systems, vol. 10, pp. 622–639, Oct. 2002. [12] L.A. Zadeh, “The concept of a linguistic variable and its application to approximate reasoning–1,” Information Sciences, vol. 8, pp. 199–249, 1975. FEBRUARY 2007 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE Authorized licensed use limited to: UNIV ESTADUAL PAULISTA JULIO DE MESQUITA FILHO. Downloaded on August 20, 2009 at 12:27 from IEEE Xplore. Restrictions apply. 29