Fuzzy no Excel

Page 1


CARLOS PIMENTEL DE SOUSA Departamento de Engenharia de Teleinformรกtica Universidade Federal do Cearรก.

Carlos Pimentel de Sousa .


Nenhuma parte deste texto pode ser reproduzida, por qualquer que seja a forma e meio, sem a expressa autorização do auto. 1ª. Ed 2016. Universidade Federal do Ceará Fortaleza-Ce Brasil.

https://www.amazon.com.br/dp/B07792LGFJ


Sobre o Livro

Este é um livro introdutório sobre "Lógica Fuzzy", também referenciada como lógica nebulosa, no qual são abordados seus princípios e aplicações em sistemas inteligentes e controle inteligente, e contém material adequado para uso em um curso introdutório sobre lógica nebulosa. Seu foco é apresentar uma metodologia simples e acessível para o desenvolvimento de sistemas nebulosos baseados em regras de inferência que captam o conhecimento de um experto. Apesar da simplicidade, aplicações práticas de pequeno porte podem ser desenvolvidas para a vida real. Por exemplo, na seção V.5 nós desenvolvemos um simples sistema para avaliação de um restaurante com o propósito de estimar o índice de satisfação dos clientes. No decorrer do livro vários exemplos enfatizando algum aspecto da lógica nebulosa são apresentados numa linguagem simples, sem rigor matemático. Os exemplos e os exercícios resolvidos usam como ferramenta computacional o Excel. Naturalmente, todas as planilhas desenvolvidas são compatíveis com vários softwares de domínio públicos pertinentes. No apêndice, o leitor encontrará a lista de todas as planilhas utilizadas nos exemplos e exercícios resolvidos, bem como o link onde poderá ser feito o download das mesmas. O principal sucesso da lógica nebulosa é devido ao seu caráter prático, uma vez que possibilita extrair conclusões a partir de preposições não exatas. Hoje, podemos afirmar que a lógica nebulosa já conquistou um lugar de destaque no cenário científico e tecnológico, com aplicações práticas para a vida real cada vez mais bem sucedidas.

O Autor


Sumário

Capítulo I Introdução Capítulo II

6 6 17

Conjuntos Nebulosos

17

II.1 Conceituação Formal

19

II.2 Representação de Conjuntos Nebulosos

21

II.3 Funções de Pertinência

24

II.4 Definições e Operações com Conjuntos Nebulosos

30

II.5 União e Interseção Nebulosa

33

II.6 Interpretação Geométrica para Conjuntos Nebulosos

37

II.7 Medidas de Similaridade Nebulosa

38

II.8 Fuzificação e Desfuzificação

41

II.9 Operações Algébricas

44

II.10 Principio da Extensão

49

II.11 Possibilidade versus Probabilidade

51

II.12 Exercícios Resolvidos

53

Capítulo III

59

Relações Nebulosas

59

III.1 Projeção Cilíndrica

65

III.2 Extensão Cilíndrica

66

III.3 Regra Composicional Max – Min

68

III.4 T-Norm e T-Conorm ou S-Norm

72

III.5 Exercícios Resolvidos

59

III.6 Exercícios Propostos I

84

Capítulo IV

87

Lógica Nebulosa

87

IV.1 Variável Linguística

89

IV.2 Regra Composicional de Inferência

91

Capítulo V Sistema Nebuloso

97 97


V.1 Sistema Nebuloso - Inferência Mamdani

104

V.2 Métodos de Desfuzificação

114

V.3 Etapas de Projeto de um Sistema Nebuloso

119

V.4 Sistema Nebuloso TS (Takagi-Sugeno)

140

V.5 Exercícios Resolvidos

148

V.6 Aplicações

161

V.7 Exercícios Propostos II

166

Capítulo VI Sistema Nebuloso Adaptativo VII Apêndice

170 170 174

VII.1 Simulação: Controle de Nível

178

VII.2 Simulação: Navegação Autônama

182

VIII Bibliografia

184


Capítulo II

Conjuntos Nebulosos

O conceito formal de conjunto nebuloso, fundamento da lógica nebulosa, foi introduzido por Lotfi A. Zadeh em 1965. Na teoria clássica dos conjuntos, os conjuntos são, por assim dizer, "crisp", de tal forma que um dado elemento do universo em discurso (domínio) pertence ou não pertence ao referido conjunto. Na teoria dos conjuntos nebulosos existe um grau de pertinência de cada elemento a um determinado conjunto. Uma consequência direta deste fato é que, ao contrario dos conjuntos clássicos, a fronteira que separa os conjuntos nebulosos não é bem definida.

Sob

este

ponto

vista,

este

conceito

pode

ser

representado

geometricamente como mostrado na fig.2.1.

b) Conjuntos Clássicos

a) Conjuntos Nebulosos

Fig. 2.1: Conjuntos Clássicos versus Conjuntos Nebulosos

Aqui, o termo universo de discurso refere-se ao domínio do conjunto. Esta terminologia auto se justificará no capítulo IV.


Este conceito parece ser bastante natural e facilmente assimilado ao examinarmos a lista de conjuntos abaixo:

 Conjunto dos números naturais ( c )  Conjunto dos caracteres ascii ( c )  Conjuntos dos números naturais muito maiores do que dez ( f )  Conjunto dos homens altos ( f )  Conjunto das mulheres simpáticas ( f ) Existe claramente uma diferença fundamental entre os conjuntos marcados com "c" e os conjuntos marcados com "f". Por exemplo, apresentado um caractere podemos afirmar sem nenhuma discussão ou dúvida se esse caractere pertence ou não pertence ao conjunto dos caracteres ascii. Esta questão não é tão simples quando lidamos, por exemplo, com o conjunto dos homens altos. Uma pessoa que tenha 1,75 metros de altura seria considerada como pertencente a esse conjunto? E aquela que tem 1,74 metros? Vemos claramente que não existe uma fronteira bem definida que separe os elementos do conjunto dos homens altos dos elementos do conjunto dos homens não altos. É muito importante, contudo, notar que a ausência de uma fronteira que estritamente separe os elementos dos dois conjuntos, não se deve a uma possível imprecisão na tomada da medida da altura dos elementos dos conjuntos, mas sim, devido à natureza intrínseca do próprio conceito "homens altos".


II.1 Conceituação Formal

Na teoria clássica dos conjuntos, dado qualquer subconjunto A de um universo de discurso U, e qualquer elemento x função que:

 f A ( x)  1   f A ( x)  0

pertencente a U, podemos definir uma

se x  A se x  A

(2.1)

Esta função é chamada de função característica, pois define os elementos de A, sendo única para cada conjunto. A definição de um conjunto clássico como exposto acima torna fácil o entendimento da formulação matemática para um conjunto nebuloso. Note que a função característica é discreta e digital, pois seu conjunto imagem é formado unicamente pelos valores 1 e 0. No caso dos conjuntos nebulosos esta função toma um valor real no intervalo fechado [0, 1], passando-se a ser chamada de função de pertinência (membership function). Definição: Um conjunto nebuloso A definido num universo de discurso U é caracterizado por uma função de pertinência A, a qual mapeia os elementos de U para o intervalo real [0 ,1], cuja notação é representada pela equação (2.2).

A

: U  0 , 1

(2.2)

Desta forma, a função de pertinência associa com cada elemento xi U um número real  A ( xi ) no intervalo [0 , 1], que representa o grau de possibilidade de que o elemento xi venha a pertencer ao conjunto A, isto é, o quanto é possível para o elemento xi pertencer ao conjunto A. Ou seja, o quanto o elemento xi é pertinente ao conjunto A. Para exemplificar este conceito, vamos tomar em consideração o conjunto dos homens de meia idade, que é sem dúvida alguma, um conjunto nebuloso. Uma possível função de pertinência para a representação desse conceito "homens de


meia idade" ĂŠ mostrada na Fig.2.2. Observe que neste caso, a função de pertinĂŞncia para os homens com idade em torno dos 50 anos tem valor prĂłximo de 1, indicando que os homens com esta idade definitivamente pertencem ao conjunto dos homens de meia idade. Enquanto que para os valores de x menores do que 30 ou maiores do que 70 anos indicam o contrĂĄrio. JĂĄ uma afirmativa questionĂĄvel de que os homens com idades prĂłximas dos 40 ou dos 60 anos venham a pertencer a este conjunto, ĂŠ traduzida por um valor da função de pertinĂŞncia em torno de 0,5. Do ponto de vista da informação, este valor representa uma completa falta de conhecimento sobre o assunto em questĂŁo: "homens de meia idade", quando se tratar dos homens com idades em torno de 40 ou 60 anos. Uma equação 2] đ?œ‡đ??ť (đ?‘Ľ) =deđ??¸đ?‘Ľđ?‘?[−đ?œƒ(đ?‘Ľ − 50) matemĂĄtica para gerar essa função pertinĂŞncia poderia ser:

Fig.2.2: Função de pertinência para o conjunto dos homens de meia idade


II.2 Representação de Conjuntos Nebulosos

Para os conjuntos clássicos "crisp", uma lista contendo seus elementos é suficiente para sua definição.

A  {x1 , x2 , x3 ...xn }

n

ou

A   xi

(2.3)

i 1

No caso do conjunto representar um intervalo contínuo, por exemplo, o conjunto dos números reais menores ou iguais a quinze e maiores ou iguais a cinco, teríamos: 15

A x

(2.4)

5

Note que aqui, os símbolos  e  são usados para representar a operação de união lógica, e portanto não representam os operadores de somatório e de integração no senso do uso comum. Para conjuntos nebulosos a definição só estará completa com o conhecimento do grau de pertinência de cada elemento. O grau de pertinência

 A ( xi ) indica o quanto o elemento x i pertence ao conjunto nebuloso A. Assim, temos:

A   A ( x1 ) /x1 ,  A ( x2 ) / x2 ,  A ( x3 ) /x3   A ( xn ) /xn  n

A    A ( xi ) x i

ou

(2.5)

i 1

onde "/" é apenas um separador. De forma similar, quando o universo de discurso U for contínuo, o conjunto nebuloso A é frequentemente descrito como:

A   A (x ) / x U

(2.6)


Exemplo 2.1: exemplos de conjuntos nebulosos

 Conjunto das temperaturas mornas: TM =

{ 0,1/20; 0,3/25; 0,6/30; 0,8/35; 1/40; 0,8/45; 0,6/50; 0,3/55; 0,1/60 }

Que graficamente pode ser representado como a seguir:

1,0

ÂľTM(x)

0,8 0,6 0,4 0,2

0,0 0

10

20

30

40

50

60

70

80

TEMPERATURA [°C]

 Conjunto dos homens nĂŁo muito jovens e nem muito velhos: đ?œ‡đ?‘ đ??˝đ?‘‰ (đ?‘Ľ) = đ??¸đ?‘Ľđ?‘?[−0,000008(đ?‘Ľ − 50)4 ]

1,0

ÂľNJV(x)

0,8 0,6 0,4

0,2 0,0 0

10

20

30

40

50

60

70

80

90

100

IDADE EM ANOS

Uma questão que inquieta o leitor neste instante, Ê sem dúvida com relação à obtenção da função de pertinência. Qual deve ser sua expressão analítica? Que


valor deve ser atribuído como grau de pertinência a um determinado elemento do universo de discurso? E com que exatidão deve ser representado esse valor? Existem muitos cenários em que o valor da pertinência entre os elementos do conjunto nebuloso não é preciso, ou seja, não podemos definir com exatidão o valor da pertinência. O mais plausível é afirmar que um determinado elemento deva ter um grau de pertinência maior ou menor do que outro, conforme o caso. De fato, quando projetamos um sistema nebuloso, nós desejamos que ele seja o mais robusto possível, de forma que em muitas aplicações, se vamos atribuir o valor 0,645 ou 0,650 para expressar um determinado grau de pertinência, isto não é determinante no desempenho do sistema nebuloso desde que seja preservada uma coerência lógica com relação a todos os elementos que diz respeito ao referido conjunto. Por exemplo, se quisermos modelar o conceito de velocidade média por um conjunto nebuloso, devemos fazê-lo buscando uma função de pertinência que apresente três regiões: uma região inicial que seja monotonicamente crescente, seguida por uma região de saturação, e por fim uma região monotonicamente decrescente. Isto sim é o que é mais importante. A informação do conceito está modelada ou representada muito mais na envoltória da função de pertinência do que na exatidão de um específico valor de um grau de pertinência.


II.3 Funções de Pertinência

Na maioria das aplicações práticas, as funções de pertinência são do tipo gaussiana, triangular, trapezoidal, crescente ou decrescente. A Fig.2.3 mostra estes cinco tipos básicos de funções de pertinência, onde a, b, c e d são parâmetros que definem uma particular característica.

1,0

1,0

Gaussiana

0,5

Triangular

0,5

a 0,0

1,0

0,0

c

0

100

0

a

b

c

100

c

100

1,0

Trapezoidal

Sigmoide

0,5

0,5

0,0 0

1,0

a

b

d

c

0,0 100

a

0

1,0

Crescente

0,5

Decrescente

0,5

0,0

0,0 0

a

c

100

0

a

Fig.2.3: Tipos básicos de funções de pertinência.

c

100


As funçþes triangulares, trapezoidais, crescentes e decrescentes, pseudolineares, podem facilmente ser implementadas pelo uso das funçþes max( ) e min( ). Estas representaçþes são bastante úteis quando utilizamos uma linguagem de script, como o matalab, octave ou scilab, para modelar um conjunto nebuloso. Aqui, no entanto, utilizaremos como ferramenta o Excel. Ver seção VII

para maiores

detalhes.

Função triangular: đ?‘Ľâˆ’đ?‘Ž

đ?‘?−đ?‘Ľ

đ?‘“đ?‘šđ?‘Ąđ?‘&#x;(đ?‘Ľ, đ?‘Ž, đ?‘?, đ?‘?) = đ?‘šđ?‘–đ?‘› (đ?‘šđ?‘Žđ?‘Ľ (0, (đ?‘?−đ?‘Ž)) , đ?‘šđ?‘Žđ?‘Ľ (0, (đ?‘?−đ?‘?)))

(2.7)

Função trapezoidal: đ?‘“đ?‘šđ?‘Ąđ?‘&#x;đ?‘Ž(đ?‘Ľ, đ?‘Ž, đ?‘?, đ?‘?, đ?‘‘) = đ?‘šđ?‘–đ?‘›(đ?‘Ąđ?‘&#x;đ?‘Ž1 , đ?‘Ąđ?‘&#x;đ?‘Ž2 )

(2.8)

onde: đ?‘Ľâˆ’đ?‘Ž đ?‘Ąđ?‘&#x;đ?‘Ž1 = đ?‘šđ?‘Žđ?‘Ľ (0, đ?‘šđ?‘–đ?‘› (1, ( ))) đ?‘?−đ?‘Ž

đ?‘’ đ?‘Ąđ?‘&#x;đ?‘Ž2 = đ?‘šđ?‘Žđ?‘Ľ (0, đ?‘šđ?‘–đ?‘› (1, (

đ?‘‘−đ?‘Ľ ))) đ?‘‘−đ?‘?

Função crescente: đ?‘Ľâˆ’đ?‘Ž ))) đ?‘?−đ?‘Ž

(2.9)

đ?‘?−đ?‘Ľ ))) đ?‘?−đ?‘Ž

(2.10)

đ?‘“đ?‘šđ?‘?(đ?‘Ľ, đ?‘Ž, đ?‘?) = đ?‘šđ?‘–đ?‘› (1, đ?‘šđ?‘Žđ?‘Ľ (0, ( Função decrescente:

đ?‘“đ?‘šđ?‘‘(đ?‘Ľ, đ?‘Ž, đ?‘?) = đ?‘šđ?‘–đ?‘› (1, đ?‘šđ?‘Žđ?‘Ľ (0, (

É comum tambĂŠm, implementar as funçþes crescente e decrescente como:

0

đ?‘Ľâ‰¤đ?‘Ž đ?‘Ľâˆ’đ?‘Ž 2

đ?‘“đ?‘šđ?‘?(đ?‘Ľ, đ?‘Ž, đ?‘?) =

2(

đ?‘?−đ?‘Ž

)

đ?‘?−đ?‘Ľ 2

1 − 2 (đ?‘?−đ?‘Ž)

{1

đ?‘Ž<đ?‘Ľâ‰¤ đ?‘Ž+đ?‘? 2

đ?‘Ž+đ?‘? 2

<đ?‘Ľâ‰¤đ?‘? đ?‘Ľ>đ?‘?

(2.11)


đ?‘“đ?‘šđ?‘‘(đ?‘Ľ, đ?‘Ž, đ?‘?) = 1 − đ?‘“đ?‘šđ?‘?(đ?‘Ľ, đ?‘Ž, đ?‘?)

(2.12)

Função sigmoide: Esta função muito utilizada na implementação de redes neuronais artificiais, que dependendo dos parâmetros sintetiza uma função monotônica crescente ou decrescente, Ê a função sigmoide definida como: 1

đ?‘“đ?‘ đ?‘–đ?‘” = 1+đ?‘’ −đ?›ź(đ?‘Ľâˆ’đ?›˝)

(2.13)

Na sua aplicação em lĂłgica nebulosa, ĂŠ muitas vezes, mais conveniente expressar a função sigmoide como dependendo de outros parâmetros (a e c), tal que: đ?‘“đ?‘ đ?‘–đ?‘” = {

1−đ?›ž

đ?‘ đ?‘’

đ?‘Ľ=đ?‘Ž

�

đ?‘ đ?‘’

đ?‘Ľ=đ?‘?

com 0 < � < 1

(2.14)

Assim temos: 1

đ?‘“đ?‘šđ?‘ đ?‘–đ?‘”(đ?‘Ľ, đ?‘Ž, đ?‘?) = 1+đ?‘’ −đ?›ź(đ?‘Ľâˆ’đ?›˝) 2

1−đ?›ž ) đ?›ž

onde: đ?›ź = đ?‘Žâˆ’đ?‘? đ?‘™đ?‘› (

e

(2.15)

đ?›˝=

đ?‘Ž+đ?‘? 2

Função gaussiana: A função gaussiana de centro c e variância a , ĂŠ expressa pela equação: đ?‘“đ?‘šđ?‘”đ?‘Žđ?‘˘(đ?‘Ľ, đ?‘?, đ?‘Ž) = đ?‘’đ?‘Ľđ?‘? (−

(đ?‘Ľâˆ’đ?‘?)2 đ?‘Ž

)

(2.16)

Uma forma alternativa Ă função gaussiana ĂŠ a função pi, definida como: đ?‘“đ?‘šđ?‘?đ?‘–(đ?‘Ľ, đ?‘?, đ?‘Ž) = {

đ?‘“đ?‘šđ?‘?(đ?‘Ľ, đ?‘? − đ?‘Ž, đ?‘?) đ?‘ đ?‘’ đ?‘Ľ ≤ đ?‘? đ?‘“đ?‘šđ?‘‘(đ?‘Ľ, đ?‘?, đ?‘? + đ?‘Ž) đ?‘ đ?‘’ đ?‘Ľ > đ?‘?

(2.17)

Para maiores detalhes sobre a implementação das funçþes de pertinência numa planilha de cålculo, consulte o apêndice I.


Exemplo 2.2: Represente atravÊs de conjuntos nebulosos os conceitos: a) homens altos; b) temperatura confortåvel. Use o Excel como ferramenta de implementação. a) Homens Altos: A primeira coisa a fazer Ê definir o universo de discurso. Neste caso, usaremos um vetor coluna variando entre 0,5 a 2,5 com incremento de 0,1 metros. Para isso, fazemos a cÊlula A4 igual a 0,5; a cÊlula A5 = 0,1+A4, e a parti desse ponto fazemos o arraste atÊ obtermos o valor 2,50 correspondente a cÊlula A24. Ver planilha: Homens Altos & Temperatura Confortåvel - Exemplo 2.2

Para a função de pertinência usaremos a função sigmoide, cuja expressão Ê: 1

đ?‘“đ?‘šđ?‘ đ?‘–đ?‘”(đ?‘Ľ, đ?‘Ž, đ?‘?) = 1+đ?‘’ −đ?›ź(đ?‘Ľâˆ’đ?›˝)

2

onde: đ?›ź = đ?‘Žâˆ’đ?‘? đ?‘™đ?‘› (

1−đ?›ž ) đ?›ž

e

đ?›˝=

đ?‘Ž+đ?‘? 2

No caso em questĂŁo, faremos os parâmetros a e c iguais a 1,2 e 2, respectivamente. Adotando o valo de gama (ď §) igual a 0,99 garantimos que đ?‘“đ?‘šđ?‘ đ?‘–đ?‘”(đ?‘Ľ; 1,2; 2,0) seja igual 0,01 em x = 1,2 e 0,99 em x = 2,0. No Excel implementamos esta função de acordo com a expressĂŁo abaixo: m1=2*log(99)/(c-a); m2=(a+c)/2; ÂľSIG(u)=1 /(1+exp(-m1*(u-m2)));

Isto ĂŠ, fazemos a cĂŠlula B4=1/(1+EXP(-(2*LN(99)/(2-1,2))*(A4-(1,2+2)/2))), como pode ser visto na figura abaixo.


b) Temperatura confortĂĄvel: Como no item anterior, usaremos um vetor coluna variando entre -10 a 50 graus Celsius, com incremento de 1oC. Para isso, fazemos a cĂŠlula A4 igual a -10; a cĂŠlula A5=1+A4, e a parti desse ponto fazemos o arraste atĂŠ obtermos o valor 50 correspondente a cĂŠlula A64. Para a função de pertinĂŞncia usaremos a função exponencial, cuja expressĂŁo, neste caso ĂŠ: đ?‘“đ?‘šđ?‘’đ?‘Ľđ?‘?(đ?‘Ľ, đ?‘?, đ?‘Ž) = đ?‘’đ?‘Ľđ?‘?[−đ?‘Ž(đ?‘Ľ − đ?‘?)4 ] Os parâmetros a e c foram iguais a -0,0005 e 25, respectivamente. No Excel implementamos esta função fazemos a cĂŠlula B4=EXP(-0,0005*(A4-25)^4). O resultado final pode ser visto na figura abaixo.



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.