Вы находитесь на странице: 1из 16

Int_00

14.02.07

17:23

Page V

Sumrio

Sobre os Autores, VIII


Prefcio, XI
1 Lgica Fuzzy, 1
1.1 Introduo, 1
1.2 Conjuntos Fuzzy, 1
1.3 Operaes com Conjuntos Fuzzy, 7
1.4 Nmeros Fuzzy, 25
1.5 Fuzzificao, 29
1.6 Defuzzificao, 38
1.7 Relaes Fuzzy, 41
1.8 Operaes com Relaes Fuzzy, 42
1.9 Base de Regras Fuzzy, 43
1.10 Sistemas de Inferncia Fuzzy, 46
Referncias Bibliogrficas, 65

2 Redes Neurais Artificiais, 67


2.1 Introduo, 67
2.2 Tipos de Rede, 71
Referncias Bibliogrficas, 98

3 Sistemas Neurofuzzy, 101


4 Anlise Fuzzy de Agrupamentos (Fuzzy Cluster Analysis), 123
5 Identificao de Modelos Fuzzy, 153
5.1 Objetivos da Identificao de Sistemas, 153

Int_00

14.02.07

VI

17:23

Page VI

Inteligncia Computacional

5.2 Ajustamento de Funes a Dados Experimentais, 154


5.3 Mtodos Usuais de Treinamento, 157
5.4 Identificao de Modelos Lingsticos, 168
5.5 Identificao de Modelos Takagi-Sugeno, 180
5.6 A Maldio Dimensional e a Captura em Domnios
de Atrao de Extremos Locais, 197
Referncias Bibliogrficas, 200

6 Sistemas Neurofuzzy e Identificao por Mtodos de Gradiente, 203


6.1 Introduo, 203
6.2 Algoritmo de Treinamento Aplicado a Sistemas Lingsticos Mamdani, 205
6.3 Algoritmo de Treinamento Aplicado a Sistemas Takagi-Sugeno, 217
Referncias Bibliogrficas, 227

7 Sistemas Fuzzy, 229


7.1 Introduo, 229
7.2 Conjuntos Fuzzy, 230
7.3 Lgica Fuzzy, 243
7.4 Sistema de Inferncia Fuzzy, 254
7.5 Concluso, 261
Referncias Bibliogrficas, 263

8 Sistemas Tutores Inteligentes, 265


8.1 Arquitetura Clssica do STI, 265
8.2 STI Multiagentes, 268
8.3 Lgica Fuzzy, 272
8.4 Resoluo de Problemas, 278
Referncias Bibliogrficas, 279

9 Avaliao de Riscos na Emisso de Propostas


Comerciais Usando Lgica Fuzzy, 281
9.1 O Contexto do Mundo Atual, 282
9.2 O Processo de Aquisio de Sistemas de Informao, 283
9.3 O processo de Avaliao de Solicitaes para Desenvolvimento
de Sistemas de Informao nas Consultorias, 284

Int_00

14.02.07

17:23

Page VII

Sumrio

9.4 Anlise por rvore de Falhas, 290


9.5 Metodologia para Avaliao de Riscos, 293
9.6 Aplicao Prtica da Metodologia para Avaliao de Riscos, 300
Referncias Bibliogrficas, 317
Apndices A, B e C*

10 Utilizando o Matlab para Replicar uma Funo de Resposta


ao Impulso com Lgica Fuzzy, 321
10.1 Introduo, 321
10.2 Lgica Fuzzy, 322
10. 3 O Modelo Macroeconmico, 329
10.4 Metodologia, 333
10.5 Resultados Obtidos, 341
10.6 Concluso, 369
Referncias Bibliogrficas, 370

* Na pgina deste livro no site www.thomsonlearning.com.br.

VII

Int_00

14.02.07

17:23

Page XI

Prefcio

Este livro tem por objetivo apresentar alguns aspectos fundamentais e aplicaes da Inteligncia Computacional, que compreende diversas reas do
conhecimento, em particular Lgica Fuzzy, Redes Neurais Artificiais e diversos sistemas hbridos.
Como quase toda concepo revolucionria, a Inteligncia Computacional
(em particular, a Lgica Fuzzy) enfrentou resistncias das mais variadas, principalmente das correntes mais conservadoras. Mas, apesar dessa cristalizao,
os nmeros da indstria mundial comprovam a eficcia e eficincia dos produtos inteligentes. As aplicaes so cada vez mais numerosas e incluem
sistemas de todos os portes. Sendo assim, importante publicar material
didtico que exponha com clareza e conciso o assunto, exemplificando de
modo simples e objetivo as tcnicas mais usadas. Com a finalidade de contribuir para a divulgao da Inteligncia Computacional entre os leitores de lngua portuguesa, surgiu a idia de construir um livro de carter predominantemente prtico, que expusesse tanto aspectos tericos essenciais como material indutor da experimentao individual, sugerindo ao leitor algumas idias
para reflexo.
Outra meta ilustrar o fato de que o uso da Inteligncia Computacional
no se restringe s chamadas Cincias Exatas. Seu alcance ultrapassa fronteiras e pode auxiliar na modelagem de questes encontradas nas mais
variadas reas do conhecimento. Para manter o texto acessvel a um nmero
maior de pessoas, os pr-requisitos para leitura desta obra so mnimos.
importante ressaltar o seguinte: o conjunto de tcnicas e modelos conhecido como Inteligncia Computacional no a soluo para todos os problemas, e no invalida nem antagoniza quaisquer reas consideradas j sedimentadas. Trata-se simplesmente de poderosa ferramenta que, aliada a resultados
de outras reas (como Pesquisa Operacional, por exemplo), obtm solues
viveis para problemas de difcil tratamento por tcnicas convencionais.
O livro expe conceitos de Lgica Fuzzy, Redes Neurais Artificiais,
Sistemas Neurofuzzy e Fuzzy Clustering, acompanhados de exposies mais
detalhadas de tpicos especficos. O material sempre orientado no sentido

Int_00

14.02.07

XII

17:23

Page XII

Inteligncia Computacional

de oferecer alguma utilidade ao leitor, para que este possa aplic-lo em problemas reais, obtendo resultados em prazos considerados satisfatrios.
Entre muitos outros tpicos, tratamos do problema de identificao sistemtica de modelos fuzzy, tendo em vista que, embora a abordagem fuzzy
seja extremamente simples e de fcil aplicao, em sistemas multivariveis
com alto grau de acoplamento torna-se invivel a obteno heurstica de
modelos eficazes. Sendo assim, necessrio que disponhamos de tcnicas
efetivas para gerao de parmetros com base em dados experimentais.
A principal motivao para o projeto heurstico decorre do fato de que
muitos processos industriais e organizacionais ainda so controlados de
modo manual ou semimanual (em que o ajuste de certos parmetros de controle feito manualmente, durante a operao da planta). Em ambos os
casos, basta traduzir as estratgias do operador e gerar bases de regras
semanticamente equivalentes para se obter sistemas de controle satisfatrios
e com a vantagem de apresentarem alto grau de automao.
O problema que essa abordagem pressupe a existncia de estratgias
bem-sucedidas no que tange ao desempenho final do sistema estudado.
Infelizmente, muitas vezes no temos qualquer nvel de informao a respeito de dada planta, a no ser dados numricos correspondentes a pares
(entrada, sada), obtidos pelos ensaios com a caixa preta. Alm disso, a anlise de vrias caractersticas vitais como estabilidade e desempenho se mostram extremamente difceis, exigindo exaustivas simulaes.
Para tais situaes, nada mais natural que a aplicao de mtodos que permitam (mediante a apresentao de pares <entrada, sada>) a obteno de
parmetros que definam o sistema correspondente caixa preta em estudo.
Existem atualmente vrios mtodos efetivos para atingir esse objetivo,
destacando-se aqueles que utilizam abordagens neurais, genticas, de
regresso no-linear e Simulated Annealing. Nosso objetivo expor de modo
inteligvel e pragmtico alguns algoritmos que materializam sua implementao. Outro ponto importante a construo de sistemas fuzzy adaptativos,
pois uma significativa parcela dos problemas prticos apresenta plantas com
parmetros e/ou estrutura variveis, o que demanda elevado grau de flexibilidade de controladores que se proponham a atingir alto nvel de automao.
Assim, no basta somente identificar um sistema de controle inicial,
sendo necessria sua adaptao dinmica s alteraes nos parmetros e/ou
estrutura da planta. Outro caso bastante comum envolve a ocorrncia de
perturbaes que, sendo tipicamente imprevisveis, podem exigir algum

Int_00

14.02.07

17:23

Page XIII

Lgica Fuzzy

XIII

nvel de intelignciado controlador para realizar contramedidas automticas a fim de neutralizar eventuais efeitos adversos.
Enfim, esperamos que o texto seja til e sirva como motivao para estudos mais detalhados do tema.
Vale lembrar o seguinte:
Sistemas no-lineares so, tipicamente, atpicos.
Lester Ingber
Quando a complexidade aumenta, as afirmaes precisas
perdem significado e as significativas perdem preciso.
Lotfi Zadeh
Fuzzy engineering is fuzzy function approximation.
Bart Kosko

Int_01

14.02.07

16:41

Page 1

1
Lgica Fuzzy

1.1 Introduo
Lgica a cincia que tem por objetivo o estudo das leis do raciocnio. A lgica fuzzy tem por finalidade o estudo dos princpios formais do raciocnio
aproximado. Este captulo introduz conceitos e propriedades de conjuntos
fuzzy e da lgica fuzzy.

1.2 Conjuntos Fuzzy


Na teoria clssica dos conjuntos, um subconjunto C de um conjunto S definido como um mapeamento dos elementos de S nos elementos do conjunto {0,1}. Esse mapeamento pode ser expresso por pares ordenados, em que o
primeiro elemento do par representativo de um dos elementos do conjunto S, e o segundo, um elemento do conjunto {0,1}. Esses valores 1 e 0 representam, respectivamente, a pertinncia e a no-pertinncia de um elemento
de S em C (ou a verdade e a falsidade da afirmao de que um elemento de
S pertence a C).
Analogamente, um subconjunto fuzzy F de um conjunto S pode ser definido como um conjunto de pares ordenados, em que o primeiro elemento do
par pertence a S e o segundo elemento, ao intervalo [0,1]. Essa unio de
valores define um mapeamento entre os elementos do conjunto S e os valores no intervalo [0,1]. O valor 0 usado para representar a completa nopertinncia; j o valor 1 utilizado para representar a completa pertinncia.
Os valores entre 0 e 1 so usados para representar graus de pertinncia intermedirios dos elementos do conjunto S em F.

Int_01

14.02.07

16:41

Page 2

Inteligncia Computacional

Freqentemente, o mapeamento descrito como uma funo a funo


de pertinncia de F. O grau pelo qual a afirmao x  F verdadeira determinado pelo par ordenado do qual o primeiro elemento x. O grau de veracidade da afirmao determinado pelo segundo elemento do par; e poder ser completamente falso, se o valor for 0; ou completamente verdadeiro, se o
valor for 1; admitidos, tambm, valores intermedirios.
Um conjunto fuzzy A caracterizado pelo par (x, A (x)), no qual x a
varivel, contnua ou discreta, do universo em estudo, e A uma funo
cuja imagem est contida em [0,1].
Um conjunto fuzzy A contnuo representado por sua funo de pertinncia, que uma expresso ou conjunto de expresses. Por exemplo:

0 para x < 0
(x)
=
x/a para 0 x < a
A
1 para x a
No caso de o conjunto fuzzy A ser discreto, uma representao consiste na
unio (representada por +) de todos os elementos (discretos) do universo,
associados aos seus graus de pertinncia no conjunto:
A = {1/0 . 3 + 2/0 . 6 + 3/0 . 7 + 4/0 . 8 + 5/0};
Outros tipos de representao so:
A = {1/0 . 3, 2/0 . 6, 3/0 . 7, 4/0 . 8, 5/0} = {(1, 0.3), (2, 0.6), (3, 0.7), (4, 0.8), (5, 0)}

Exerccio 1
Seja o conjunto fuzzy discreto A = {(1, 0.3), (2, 0.4), (3, 0.7), (4, 0.8)}
Faa o grfico desse conjunto no ambiente Matlab, escrevendo um ttulo e o nome dos eixos.
Soluo:
% Seja o conjunto fuzzy discreto A = {(1,0.3),(2,0.4),(3,0.7),(4,0.8)}
% fazer o grfico de A escrevendo um ttulo e o nome dos eixos e denominar figura1
x=[1 2 3 4 ];
mi=[0.3 0.4 0.7 0.8];
figure(1)
plot(x,mi, 'b*')

14.02.07

16:41

Page 3

Lgica Fuzzy

title('conjunto fuzzy discreto')


xlabel('universo')
ylabel('pertinncia')

Sada do programa:
Conjunto fuzzy discreto
0.8
0.75
0.7
0.65
0.6
Pertinncia

Int_01

0.55
0.5
0.45
0.4
0.35
0.3
1

1.5

2.5
Universo

3.5

Figura 1.1 Exerccio 1.

Exerccio 2
Sejam os conjuntos fuzzy discretos
A = {(1, 0.3), (2, 0.4), (3, 0.7), (4, 0.8)}
B = {(1, 0.9), (2, 0.5), (3, 0.7), (4, 0.2)}
Faa o grfico de A e B no mesmo sistema de eixos, usando uma cor para
cada conjunto, escrevendo um ttulo e o nome dos eixos.
Soluo:
% Sejam os conjuntos fuzzy discretos A(x)={(1,0.3),(2,0.4),(3,0.7),(4,0.8)}
% e B={(1,0.9),(2,0.5),(3,0.7),(4,0.2)}
% fazer o grfico de A(x) e B(x) no mesmo sistema de eixos usando uma cor para cada conjunto
% fuzzy escrevendo um ttulo e o nome dos eixos e denominar figura 2

14.02.07

16:41

Page 4

Inteligncia Computacional

x=[1 2 3 4 ];
mi1=[0.3 0.4 0.7 0.8];
mi2=[0.9 0.5 0.7 0.2];
figure(2)
plot(x,mi1,'g*')
hold on
plot(x,mi2,'r*')
title('conjuntos fuzzy discretos')
xlabel('universo')
ylabel('pertinncia')
hold off

Sada do programa:
Conjuntos fuzzy discretos
1
0.9

0.8
0.7
Pertinncia

Int_01

0.6
0.5
0.4
0.3
0.2
1

1.5

2.5
Universo

3.5

Figura 1.2 Exerccio 2.

Exerccio 3
Seja o conjunto fuzzy contnuo A = {0 < x <2; (x) = 1/(x +9)}.
Faa o grfico de A escrevendo um ttulo e o nome dos eixos.

14.02.07

16:41

Page 5

Lgica Fuzzy

Soluo:
% Seja o conjunto fuzzy contnuo A(x)={ 0<x<2 mi = 1/(x+9)}
% fazer o grfico de A(x) escrevendo um ttulo e o nome dos eixos e denominar figura 3
x = [0:0.1:2];
% size(x) (1 X 21)
% mi= zeros (1,21)
mi3=1./(x+9);
figure(3)
plot(x,mi3,'b')
title('conjunto fuzzy contnuo')
xlabel('universo')
ylabel('pertinncia')

Sada do programa:
Conjunto fuzzy contnuo
0.115

0.11

0.105
Pertinncia

Int_01

0.1

0.095

0.09
0

0.2

0.4

0.6

0.8

1.2

1.4

1.6

Universo

Figura 1.3 Exerccio 3.

Exerccio 4
Sejam os conjuntos fuzzy contnuos
A = {0 < x < 3; (x) = 1/(x +9)}
B = {0 < x < 3; (x) = 1/(x -5)}

1.8

14.02.07

16:41

Page 6

Inteligncia Computacional

Faa o grfico de A e B no mesmo sistema de eixos escrevendo um ttulo e o


nome dos eixos.
Soluo:
% Sejam os conjuntos fuzzy contnuos A(x)={ 0<x<3 mi = 1/(x+9)}e
% B(x)={ 0<x<3 mi = 1/(x-5)}
% fazer o grfico de A(x) e B(x) no mesmo sistema de eixos escrevendo um ttulo,
% o nome dos eixos e denominar figura 4
x = [0:0.1:3];
mi3=1./(x+9);
mi4=1./(x5);
figure(4)
plot(x,mi3,'b.')
hold on
plot(x,mi4,' ')
title('conjuntos fuzzy contnuos')
xlabel('universo')
ylabel('pertinncia')
hold off

Sada do programa:
Conjuntos fuzzy contnuos
0.2

0.1

Pertinncia

Int_01

0.1

0.2

0.3

0.4

0.5

0.5

1.5
Universo

Figura 1.4 Exerccio 4.

2.5

Int_01

14.02.07

16:41

Page 7

Lgica Fuzzy

1.3 Operaes com Conjuntos Fuzzy


Sejam A, B e C trs conjuntos fuzzy no universo X. Para dado elemento x do
universo, as seguintes operaes so definidas:

Norma-T (T-norm)
Mnimo
Tmin (A, B) = min (A, B); ou seja, para cada elemento x do par ordenado,
o valor de ser a menor pertinncia entre A e B. Veja o exemplo:
Conjuntos discretos
A(X) = {(0, 0), (1, 0.5), (2, 0.3), (3, 0.5), (4, 0.8), (5, 0.6)}
B(X) = {(0, 0.5), (1, 0.3), (2, 0.3); (3, 0.2), (4, 0.7),(5, 0.3)}
Tmin (A,B) = {(0, 0), (1, 0.3), (2, 0.3), (3, 0.2), (4, 0.7), (5, 0.3)}
Conjuntos contnuos
A(x) = {= 0 se x 0; = 0.2 se 0 < x < 2; = 1 se x 2}
B(x) = {= 0 se x 0; = 0.6 se 0 < x < 6; = 1 se x 6}
Tmin (A,B) = {= 0 se x 0; = 0.2 se 0 < x < 2; = 0.6 se 2 x < 6
e = 1 se x 6}.

Produto algbrico
Tpa (A, B) = A B; ou seja, para cada elemento x do par ordenado, o valor
de ser a multiplicao entre as pertinncias de A e B.Veja o exemplo:
Conjuntos discretos
A(X) = {(0, 0), (1, 0.5), (2, 0.3), (3, 0.5), (4, 0.8), (5, 0.6)}
B(X) = {(0, 0.5), (1, 0.3), (2, 0.3), (3, 0.2), (4, 0.7), (5, 0.3)}
Tpa (A,B) = {(0, 0), (1, 0.15), (2, 0.09), (3, 0.1), (4, 0.56), (5, 0.18)}
Conjuntos contnuos
A(x) = {x/ A = 0 se x 0; A = 0.2 se 0 < x < 2; A = 1 se x 2}
B(x) = {x/ B = 0 se x 0; B = 0.6 se 0 < x < 6; B = 1 se x 6}
Tpa (A,B) = {= 0 se x 0; = 0.12 se 0 < x < 2; = 0.6 se 2 x < 6
e = 1 se x 6}.

Int_01

14.02.07

16:41

Page 8

Inteligncia Computacional

Produto limitado
a) Tpl (A,B) = 1 se A + B > 1
b) Tpl (A,B) = A + B; ou seja, para cada elemento x do par ordenado, o
valor de ser a soma entre as pertinncias de A e B. Veja o exemplo:
Conjuntos discretos
A(X) = {(0, 0), (1, 0.5), (2, 0.3), (3, 0.5), (4, 0.8), (5, 0.6)}
B(X) = {(0, 0.5), (1, 0.3), (2, 0.3), (3, 0.2), (4, 0.7), (5, 0.3)}
Tpl (A,B) = {(0, 0.5), (1, 0.8), (2, 0.6), (3, 0.7), (4, 1), (5, 0.9)}

Exerccio 5
Sejam os conjuntos fuzzy
A(X) = {(0, 0.2), (1, 0.5), (2, 0.7), (3, 0.3), (4, 0.9), (5, 0.8)
B(x) = {(0, 0.6), (1, 0.7), (2, 0.9), (3, 0.5), (4, 0.2), (5, 0.1)}.
Calcule a norma-t usando o mnimo, faa o grfico dos conjuntos A(x),
B(x) e do conjunto fuzzy resultante da norma-t no mesmo sistema de eixos
e denomine Figura 5; coloque ttulo e nome nos eixos em Matlab.
Soluo:
% sejam os conjuntos fuzzy A(X) = {(0,0.2);(1,0.5);(2,0.7);(3,0.3);(4,0.9);(5,0.8)
% B(x) = {(0,0.6);(1,0.7);(2,0.9);(3,0.5);(4,0.2);(5,0.1)}
% calcular a norma-t usando o mnimo, fazer o grfico dos conjuntos
A(x),B(x) e do conjunto fuzzy
resultante da norma-t no mesmo sistema de eixos e denominar figura 5
% colocar ttulo e nome nos eixos
x=[0:1:5];
mi1=[0.2 0.5 0.7 0.3 0.9 0.8];
mi2=[0.6 0.7 0.9 0.5 0.2 0.1];
mi3=min(mi1,mi2);
figure(5)
plot(x,mi1,'*b',x,mi2,'ob',x,mi3,'x')
axis([2 6 1 1])
title('norma-t usando min para conjuntos fuzzy discretos')
xlabel('universo')
ylabel('pertinncia')

14.02.07

16:41

Page 9

Lgica Fuzzy

Sada do programa:
Norma-t usando mnimo para conjuntos fuzzy contnuos
1
0.8
0.6
0.4
0.2
Pertinncia

Int_01

0
0.2
0.4
0.6
0.8
1
2

Universo

Figura 1.5 Exerccio 5.

Exerccio 6
Sejam os conjuntos fuzzy
A = {(0, 0.2), (1, 0.5), (2, 0.7), (3, 0.3), (4, 0.9), (5, 0.8)
B = {(0, 0.6), (1, 0.7), (2, 0.9), (3, 0.5), (4, 0.2), (5, 0.1)}.
Calcule a norma-t usando o produto, faa o grfico dos conjuntos A, B e do
conjunto fuzzy resultante da norma-t no mesmo sistema de eixos e denomine Figura 6; coloque ttulo e nome nos eixos em Matlab.
Soluo:
% sejam os conjuntos fuzzy A = {(0,0.2),(1,0.5,(2,0.7),(3,0.3),(4,0.9),(5,0.8)
B = {(0,0.6),(1,0.7),(2,0.9),(3,0.5),(4,0.2),(5,0.1)}
% calcular a norma-t usando o produto, fazer o grfico dos conjuntos
% A, B e do conjunto fuzzy
% resultante da norma-t no mesmo sistema de eixos e chamar figura 6
% colocar ttulo e nome nos eixos
x=[0:1:5];

14.02.07

10

16:41

Page 10

Inteligncia Computacional

mi1=[0.2 0.5 0.7 0.3 0.9 0.8];


mi2=[0.6 0.7 0.9 0.5 0.2 0.1];
for k=1:6
mi3=[mi1(k)* mi2(k)];
end
figure(6)
plot(x,mi1,'*b',x,mi2,'ob',x,mi3,'xb')
axis([2 6 1 1])
title('norma-t usando produto para conjuntos fuzzy discretos')
xlabel('universo')
ylabel('pertinncia')

Sada do programa:
1

Norma-t usando mximo para conjuntos fuzzy discretos

0.8
0.6
0.4
0.2
Pertinncia

Int_01

0
0.2
0.4
0.6
0.8
1
2

Universo

Figura 1.6 Exerccio 6.

Conjuntos contnuos
A(x) = {= 0 se x 0; = 0.2 se 0 < x < 2; = 1 se x 2}
B(x) = {= 0 se x 0; = 0.6 se 0 < x < 6; = 1 se x 6}
Tpe (A,B) = {A,B = 0 se x 0 ; A,B = 0.8 se 0 < x < 2; A,B = 1.0
se 2 x < 6 e A,B = 1,0 se x 6}.

Вам также может понравиться