Anda di halaman 1dari 143

1

2



Governo do Estado do Rio de Janeiro
Fundao de Apoio Escola Tcnica
Instituto Superior de Tecnologia do Rio de Janeiro


Srie Livros Didticos Digitais Gratuitos



Uma Introduo Inteligncia Computacional:
fundamentos, ferramentas e aplicaes





Ronaldo Ribeiro Goldschmidt



Rio de Janeiro
2010

3


2010 ao autor

Direitos para essa edio reservados ao autor





Projeto grfico e editorao eletrnica: Alexander Daltio Vialli
Capa: Alexander Daltio Vialli
Reviso Textual:
Normalizao Tcnica: Edirlane Carvalho de Souza

G623i Goldschmidt, Ronaldo Ribeiro. Inteligncia Computacional / Ronaldo Ribeiro
Goldschmidt. Rio de Janeiro: IST-Rio, 2010.
143p. ; 29cm.
ISBN 978-85-98931-08-1
1. Inteligncia Artificial. 2. Sistemas Inteligentes. 3. Sistemas de Apoio Deciso. 4. Sistemas
de Informao. 5. Redes Neurais. 6. Lgica Nebulosa. 7. Algoritmos Genticos. 8. Sistemas
Especialistas.
I. Ttulo.
CDD 621.399


4


SUMRIO:

Introduo ......................................................................................................................... 7
Conceitos Bsicos ........................................................................................................... 16
Sistemas Especialistas .................................................................................................... 39
Lgica Nebulosa ............................................................................................................. 57
Redes Neurais Artificiais ................................................................................................ 73
Algoritmos Genticos ..................................................................................................... 94
Consideraes Finais .................................................................................................... 113
Referncias: .................................................................................................................. 116
Apndice A ................................................................................................................... 118
Exemplos de Ferramentas de Inteligncia Computacional Dicas de Utilizao ... 118


5


PREFCIO 1
Conheo o Professor Ronaldo Goldschmidt h muitos anos, desde o tempo de seu
mestrado no IME- Instituto Militar de Engenharia, na rea de Inteligncia Artificial,
como orientador da monografia e Professor de disciplinas. Nesta poca j surpreendia
pela sua tenacidade em conseguir seu objetivo final. O Professor Ronaldo, formado em
matemtica, e com muita vontade em aprender, logo nas primeiras aulas mostrava
facilidade em escrever bem. Escrevia claro e conciso sobre os temas que lhe eram
solicitados. J era uma promessa de excelente professor e escritor. Sua monografia flua
com facilidade, sem erros, mesmo com um tema indito no Brasil: Reconhecimento de
Palavras Isoladas por Computador. Em seguida foi para a PUC-Rio para o incio de seu
doutorado, na rea de Inteligncia Computacional. A tese fluiu com rapidez derivando
da, pela sua facilidade de escrever, um livro publicado pela Editora Campus chamado
Minerao de Dados - Guia Prtico.O contedo desse livro reflete parte das aulas de
seu doutorado.
Agora, o Professor Ronaldo, nos mostra um outro livro, este eletrnico: Inteligncia
Computacional, composto de sete captulos com ampla teoria e prtica. Um com
conceitos bsicos em Sistemas Especialistas, cuja prtica ele adquiriu em empresas.
Outro sobre Lgica Nebulosa. Um captulo bem claro sobre Redes Neurais e outro sobre
Algoritmos Genticos. O Professor Ronaldo conseguiu escrev-los de forma didtica
til para alunos de graduao e de pos graduao que queiram um primeiro contato com
essa rea.
Trata-se de um livro til que preencher lacuna no Brasil nesta rea de Inteligncia
Computacional.
Espero que outros livros surjam escritos pelo autor, como, por exemplo, sobre
Minerao de Textos.
Que venham mais livros bem escritos e claros como este!
No poderia deixar de finalizar este prefcio sem declarar a minha admirao pela
energia positiva que o PROFESSOR IRRADIA e pela sua dignidade de grande ser
humano que .

Emmanuel Passos, D.Sc.
Professor da PUC-Rio


6


PREFCIO 2
Adam um garoto de treze anos que passou boa parte de sua infncia rodeado de
computadores e aparelhos eletrnicos. Naquele dia ele estava sentado no Grand
Auditorium cercado dos maiores cientistas e engenheiros da computao e pronto para
presenciar, com seus prprios olhos, o que seria um das maiores avanos dos ltimos
anos: o computador Ultronic. Proclamava o engenheiro chefe ...um computador com
mais de 10
17
unidades lgicas. Isto mais do que o nmero de neurnios existentes em
todos os crebros de nosso pas! Sua inteligncia ser inimaginvel! Felizmente no
precisaremos imagin-la. Em alguns momentos teremos o privilgio de constatar sua
inteligncia. O computador foi ligado e imediatamente o engenheiro chefe desafiou:
Algum gostaria de inaugurar o Ultronic Computer Systems fazendo uma primeira
pergunta?. Todos se sentiam intimidados... Ficaram em silncio. Adam, entretanto,
estava irrequieto. Levantou a mo. O engenheiro chefe lhe deu a palavra e ele
perguntou: Como ele se sente sendo um computador?.
Esta a histria de abertura do livro The Emperor New Mind, de Roger Penrose, e
ilustra com sabedoria os conflitos e desafios da rea de inteligncia artificial (IA). A
rea de Inteligncia Artificial pode ser definida como uma rea de estudo preocupada
em construir ou programar computadores de forma a capacit-los a fazer um conjunto de
aes que requerem inteligncia para realiz-las. Esta definio assume que o
computador realmente capaz de entender, inferir e aconselhar! Outra definio mais
suave, talvez considerasse a rea de Inteligncia Artificial como aquela capaz de
construir programas e computadores cujos comportamentos pudessem ser comparados
ao processo mental de um ser humano. Por fim poder-se-ia considerar tambm como a
cincia que estuda a inteligncia em geral. Estas definies ilustram um problema
filosfico essencial da rea: a capacidade de imitar, simular ou recriar o pensamento
humano em uma mquina. Seria este um empreendimento meramente ambicioso ou
radicalmente infundado? Talvez, por tudo isso, denominada recentemente e de forma
mais abrangente de Inteligncia Computacional.
Entretanto, qualquer que seja a resposta, o livro Inteligncia Computacional do Prof.
Ronaldo Ribeiro Goldschmidt nos convida a mergulhar na rea, entender suas
caractersticas, sua linguagem sua tcnica e sua tecnologia. Sistemas Especialistas,
Lgica Nebulosa, Redes Neurais Artificiais e Algoritmos Genticos so os temas
tratados neste livro, permitindo ao leitor um entendimento amplo da rea, assim como
de suas limitaes. O estudante interessado na rea encontrar neste excelente livro uma
bela introduo ao assunto.
Continuando a histria acima... O engenheiro chefe encaminhou a pergunta de Adam
para o computador Ultronic. O computador respondeu... Respondeu que no a entendia
e que no possua a mnima ideia de seu sentido.
De qualquer forma, de nossa parte, vamos continuar tentando! Boa leitura!

Mrcio Francisco Campos, Msc.
Diretor do IST-Rio


7


Captulo
1

Introduo

1.1. Viso Geral

A sobrevivncia da espcie humana deve-se principalmente pelas capacidades mentais
que o ser humano vem desenvolvendo ao longo de sua existncia. Em funo disso, o
entendimento sobre como o Homem pensa tem sido objeto de estudo durante milhares
de anos, ou seja, como uma pequena poro de matria pode perceber, compreender,
prever e manipular um mundo muito maior e mais complexo que ela prpria (Russell e
Norvig, 2004).
A Inteligncia Computacional (IC), denominada originalmente de Inteligncia Artificial
(IA), uma das cincias mais recentes, tendo surgido logo aps a Segunda Guerra
Mundial e tendo seu nome original cunhado em 1956. Por razes de simplificao, ao
longo deste livro, consideraremos indistintas as denominaes Inteligncia
Computacional e Inteligncia Artificial.
A Inteligncia Computacional vai alm da perspectiva de compreenso do pensamento
humano, pois tambm procura construir entidades artificiais inteligentes.
Para conhecer o que vem, ento, a ser a rea da Inteligncia Computacional faz-se
necessria uma reflexo sobre o conceito de inteligncia. Na realidade, h diversas
definies e inmeras discusses filosficas sobre o que vem a ser este conceito que
fogem do escopo deste livro. No entanto, algumas habilidades que necessariamente
envolvem inteligncia podem ser citadas:
Capacidade de raciocnio / deduo / inferncia
Capacidade de aprendizado
Capacidade de percepo
Capacidade de evoluo e adaptao
Por outro lado, podemos facilmente listar alguns exemplos de tarefas que requerem
inteligncia para serem realizadas:
Jogar xadrez
Entender a linguagem humana
Decidir diante de incertezas

8


Resolver problemas complexos (de difcil formulao matemtica envolvendo
muitas variveis)
Reconhecer objetos pela imagem
As definies de Inteligncia Artificial variam ao longo de duas dimenses principais
(Russell e Norvig, 2004):
A que se baseiam em pensamento e raciocnio onde o objetivo desenvolver
sistemas que pensam como seres humanos ou que pensam racionalmente.
A que se baseia em comportamento onde o objetivo desenvolver sistemas que
atuam como seres humanos ou que atuam racionalmente.
A seguir esto algumas das definies de Inteligncia Compuacional que podem ser
encontradas na literatura especializada. As quatro primeiras definies se enquadram
melhor na primeira dimenso. As demais na segunda.
O novo e interessante esforo para fazer os computadores pensarem... mquinas
com mentes, no sentido total e literal. (Haugeland, 1985)
[Automatizao de] atividades que associamos ao pensamento humano,
atividades como a tomada de decises, a resoluo de problemas, o
aprendizado... (Bellman, 1956)
O estudo das faculdades mentais pelo uso de modelos computacionais
(Charniak e McDermott, 1985)
O estudo das computaes que tornam possvel perceber, raciocinar e agir.
(Winston, 1992)
O estudo sobre como fazer computadores realizarem coisas nas quais, no
momento, as pessoas sejam melhores. (Rich e Knight, 1992)
A Inteligncia Artificial pode ser definida como o ramo da Cincia da
Computao que se ocupa da automao do comportamento inteligente. (Luger,
2004)
No contexto deste livro, adotamos a seguinte definio para Inteligncia
Computacional: Cincia multidisciplar que busca desenvolver e aplicar tcnicas
computacionais que simulem o comportamento humano em atividades especficas.
Como mencionado na definio acima, a Inteligncia Computacional envolve idias,
pontos de vista, conceitos e tcnicas de diversas reas, dentre as quais podemos citar:
Filosofia
Matemtica
Economia
Neurocincia
Psicologia
Cincia da Computao

9


Lingustica

A figura 1.1 apresenta uma taxonomia com os principais paradigmas da Inteligncia
Computacional. Pode-se perceber que a IC envolve estudos e aplicaes de tcnicas
inspiradas na natureza. Abaixo apresentada uma viso geral e introdutria sobre cada
elemento da taxonomia.


Figura 1.1: Inteligncia Computacional uma taxonomia

Lgica Nebulosa Do ingls Fuzzy Logic, este paradigma tem por objetivo
modelar o modo aproximado de raciocnio humano, visando criar mtodos
computacionais capazes de tomar decises racionais em ambientes de incerteza,
subjetividade e impreciso. A Lgica Nebulosa fornece mecanismos para
manipular informaes imprecisas e subjetivas, tais como os conceitos: muito,
pouco, pequeno, alto, bom, quente, frio, etc, fornecendo uma resposta
aproximada para questes baseada em conhecimentos inexatos, incompletos ou
no totalmente confiveis.
Redes Neurais So modelos computacionais no lineares, inspirados na
estrutura e no funcionamento do crebro, que procuram reproduzir
caractersticas humanas, tais como: aprendizado, associao, generalizao e
abstrao. Devido sua estrutura, as Redes Neurais so bastante efetivas no
aprendizado de padres a partir de dados histricos no lineares, incompletos,
com rudo e at compostos de exemplos contraditrios.
Computao Evolucionria uma rea de pesquisa interdisciplinar que
compreende diversos paradigmas inspirados no princpio da evoluo natural das
espcies proposto por Charles Darwin e na recombinao gentica. Desdobra-se
nas seguintes especialidades:
o Algoritmos Genticos Fornecem um mecanismo de busca adaptativa
que se baseia no princpio da sobrevivncia dos mais aptos. Isto obtido
a partir de uma populao de indivduos (solues), representados por
cromossomas (palavras binrias), cada um associado a uma aptido
(avaliao da soluo frente ao problema), que so submetidos a um
processo de evoluo (seleo e reproduo) por vrios ciclos.

10


o Programao Gentica uma tcnica automtica de programao que
propicia a evoluo de programas de computadores que resolvem
problemas de maneira exata ou aproximada.
o Hardware Evolucionrio uma extenso do modelo gentico de
aprendizado no espao de estruturas complexas como circuitos
eletrnicos. Utiliza conceitos dos sistemas evolucionrios naturais no
projeto automtico de circuitos, hardware auto-reparveis, projeto de
robs e projeto de circuitos VLSI. Esta rea vem ganhando cada vez mais
aplicabilidade em funo dos avanos em nanotecnologia,
Inteligncia Artificial Nome original da rea de estudo do presente texto,
restringe-se ao processamento simblico do conhecimento, criando programas
que fazem os computadores parecerem inteligentes. As solues dos problemas
so heursticas e respostas satisfatrias so aceitas. A IA constituda de
tcnicas prprias para a soluo de problemas, com destaque para os chamados
sistemas especialistas, que so programas computacionais destinados a
solucionar problemas em campos especializados do conhecimento humano.
Usam tcnicas de IA, bases de conhecimento e raciocnio inferencial.
Convm mencionar que muitos esforos na rea de IC buscam integrar vrias das
tcnicas dos paradigmas mencionados acima procurando construir os chamados
Sistemas Hbridos. Espera-se que, por meio da combinao de tcnicas, deficincias
individuais destas tcnicas possam ser supridas, obtendo modelos mais robustos e
completos.
importante mencionar que a taxonomia acima pode ser interpretada segundo dois
paradigmas: clssico e distribudo. No paradigma clssico, modelos inteligentes so
projetados e aplicados individual e isoladamente. Por outro lado, no paradigma
distribudo, busca-se explorar as potencialidades da inteligncia grupal, voltada para a
interao social e o comportamento cognitivo dela emergente. Alguns autores utilizam
as denominaes IA Clssica e IA Distribuda para distinguir entre os dois paradigmas.
Diante do exposto anteriormente, pode-se dizer que a Inteligncia Computacional possui
entre seus propsitos o suprimento de meios para a construo dos chamados mtodos
de apoio deciso. Um mtodo de apoio deciso considerado qualquer instrumento
que auxilie o Homem no processo de tomada de deciso em alguma rea do
conhecimento humano. Diversos exemplos de mtodos de apoio deciso sero
apresentados ao longo do texto, mas a ttulo ilustrativo neste primeiro momento, a figura
1.2 relaciona exemplos de mtodos de apoio deciso, identificando algumas de suas
entradas e sadas:



Atributos:
Renda
Despesa
Residncia
etc...
Parecer:
Aprovado
Analista
Negado
etc...

11


(a) - rea Financeira Anlise e Concesso (CRED Anlise)




(b) - rea Financeira Cobrana de Clientes em Atraso (CRED
Cobrana)




(c) - rea de Seguros Deteco de Fraudes (SAF Sistema de Anlise
de Fraudes)




(d) Sistema Especialista na rea Mdica Clnico Geral (SEAM)
Figura 1.2 - Exemplos de mtodos de apoio deciso (com algums entradas e sadas)
Embora existam algumas divergncias procedentes na literatura, para fins de
simplificao, sero tratados como sinnimos e de forma indistinta ao longo deste livro
as expresses indicadas a seguir. Cada uma delas segue acompanhada de uma definio
a ttulo meramente ilustrativo.
Mtodo de Apoio Deciso (MAD) - qualquer instrumento que auxilie o
Homem no processo de tomada de deciso em alguma rea do conhecimento
humano.
Sistema de Apoio Deciso (SAD) - Ferramentas computacionais que auxiliam
na conjugao de diversas informaes de forma direcionada tomada de
deciso em alguma rea do conhecimento
Sistema Inteligente (SI) - SADs que incorporam conhecimento sobre alguma
rea e que procuram simular o comportamento humano na tomada de deciso,
sugerindo alternativas de ao.
Atributos:
Mdia Dias Atraso
Qtde Parc. Atraso
Qtde Parc. Dia
etc...
Parecer:
Risco Baixo
Risco Mdio
Risco Alto
etc...
Atributos:
Valor Prmio
Situao Veculo
Antecedentes
etc...
Sinistro:
No Fraude
Fraude
Sintomas:
Febre
Vmito
Diarria
etc...
Doenas:
Dengue
Gripe
Catapora
etc...
Tratamento
+

12


Sistema Baseado em Conhecimento (SBC) - So programas de computador que
usam o conhecimento representado explicitamente para resolver problemas
(Rezende, 2003).

1.2. Um Breve Histrico

No atualmente reconhecido como primeiro trabalho pertencente rea da Inteligncia
Artificial, Warren McCulloch e Walter Pitts propuseram em 1943 um modelo de
neurnios artificiais de dois estados (ligado ou desligado) no qual a troca de estados em
um neurnio ocorre em funo dos estados de neurnios suficientemente prximos.
McCulloch e Pitts tambm sugeriram que redes de neurnios artificiais adeqadamente
compostas seriam capazes de aprender.
Em 1949, Donald Hebb demonstrou a chamada regra de aprendizagem de hebb,
segundo a qual ocorrem modificaes nas intensidades das conexes entre neurnios
artificiais em uma mesma rede.
Nos anos seguintes surgiram diversos trabalhos que hoje podem ser caracterizados como
sendo de IA, mas foi Alan Turing quem primeiro apresentou uma viso mais concreta e
completa da IA em seu artigo de 1950 intitulado Computing Machinery and
Intelligency. Neste trabalho, Turing apresentou o chamado Teste de Turing cuja idia
consiste basicamente em:
Introduzir um juiz humano que dever conversar via terminal de computador
com outro ser humano e com uma mquina, sem saber quem quem. A mquina
ser considerada inteligente se aps toda a conversa, o juiz no puder
identificar com certeza quem mquina e quem o humano.
Em 1951, Marvin Minsky e Dean Edmonds construram o SNARC, primeiro
computador de rede neural artificial. Mais tarde, Minsky acabou provando teoremas
importantes que mostravam limitaes dos modelos de redes neurais existentes at ento
e que foram os responsveis pelo esmorecimento das pesquisas na rea.
Em 1955 ocorreu o seminrio de Dartmouth, onde pesquisadores como John McCarthy,
Allen Newell e Herbert Simon apresentaram idias e aplicaes de IA na rea de jogos.
A partir deste seminrio foi cunhado o nome Inteligncia Artificial.
Os primeiros anos da IA foram repletos de sucessos, muitos ainda limitados por
restries computacionais de processamento e de memria, caractersticas da poca.
Newell e Simon propuseram o General Problem Solver (GPS), ou solucionador de
problemas gerais, programa projetado para reproduzir regras humanas na soluo de
problemas. Embora tenha tido sucesso com uma classe restrita de problemas, o GPS
veio mais tarde a enfrentar suas limitaes diante de novos problemas.
Pesquisas em Prova Automtica de Teoremas e em Compreenso de Linguagem Natural
surgiram em instituies de renome como IBM, MIT e Stanford. Entre elas, surgiu a
primeira linguagem de programao da IA: LISP.

13


Durante os anos subseqentes, muitos pesquisadores da IA eram ousados nos
prognsticos otimistas sobre os avanos na rea. Um exemplo disso pode ser ilustrado
pela declarao de 1957 de Herbert Simon:
No meu objetivo surpreend-los ou choc-los mas o modo simples de
resumir tudo isso dizer que agora existem no mundo mquinas que pensam,
aprendem e criam. Alm disso, sua capacidade de realizar essas atividades est
crescendo rapidamente at o ponto em um futuro visvel no qual a variedade
de problemas com que elas podero lidar ser correspondente variedade de
problemas com os quais lida a mente humana.
O entusiamo exacerbado dos pesquisadores em IA e iluso de poder computacional
ilimitado da IA foram, aos poucos, sendo dominados pela razo e sensatez, essenciais ao
pensamento cientfico.
Umas dificuldades enfrentadas foi o fato de que a maioria dos programas desenvolvidos
poca continha pouco ou nenhum conhecimento sobre o domnio da aplicao. Eram
dependentes ou limitados a situaes especficas.
Em 1966, a publicao de um relatrio elaborado por um comit consultivo
evidenciando a inexistncia de um sistema genrico de traduo automtica para textos
cientficos levou o governo americano cancelar todas as subvenes a projetos de
traduo automtica (Russell e Norvig, 2004). Atualmente, sabe-se que a traduao
automtica ainda imperfeita, mas amplamente utilizada em diversos tipos de
documentos.
Outro problema encontrado foi a dificuldade de operacionalizar programas em
aplicaes reais onde o volume de dados, variveis, parmetros e fatos a serem
considerados ou experimentados era muito grande. Espaos de busca extensos, muitas
vezes infinitos, representavam uma sria limitao aos programas de IA. Antes do
desenvolvimento das teorias da complexidade e computabilidade computacionais,
acreditava-se que para lidar com o aumento da escala do volume a ser processado era
apenas uma questo de disponibilidade de memria e velocidade de processamento.
A incapacidade de lidar com a exploso combinatria de grande parte dos problemas
reais foi uma dos principais crticas relacionadas IA dos anos 60. Novas subvenes
foram canceladas.
Uma terceira dificuldade enfrentada pela IA foi a limitao de representao das
estruturas que vinham sendo utilizadas para reproduzir comportamento inteligente.
Minsky e Papert demonstraram no livro Perceptrons (1969) as limitaes das redes
neurais da poca em representar problemas no lineares. Como a maioria dos problemas
reais relevantes no linear, tal publicao teve forte impacto na comunidade cientfica
da poca, reduzindo drasticamente os esforos de pesquisa na rea da IA.
O sistema DENDRAL, divulgado por Bruce Buchanan e sua equipe em 1969, foi um
dos primeiros exemplos de mtodos de apoio deciso que procuravam incorporar
conhecimento especfico do domnio da aplicao. Este sistema tinha como objetivo
resolver o problema de inferir a estrutura molecular a partir das informas fornecidas
por um espectrmetro de massa.

14


O MYCIN tambm foi considerado um marco no desenvolvimento dos chamados
Sistemas Especialistas, pois, assim como o DENDRAL, tambm incorporava
conhecimento especfico do contexto do problema. No caso do MYCIN, o propsito era
diagnosticas infeces sangneas. Com cerca de 450 regras, o MYCIN apresentava
desempenho comparvel ao de especialistas sobre o assunto. Para o seu
desenvolvimento, foram necessrias diversas e extensas entrevistas com especialistas na
rea. Consultas a livros didticos e estudos de casos anteriores tambm foram
necessrios.
Com o surgimento do DENDRAL e do MYCIN, houve uma retomada da IA com forte
crescimento da demanda por aplicaes para resoluo de problemas reais. Foram,
ento, desenvolvidas linguagens e ambientes de programao voltadas representao
do conhecimento e raciocnio. Dentre elas, surgiu a linguagem PROLOG (Programao
em Lgica), muito utilizada na poca para a construo de Sistemas Especialistas e
aplicaes de Processamento de Linguagem Natural. Em 1975, Minsky props a
utilizao de quadros e roteiros (frames e scripts) como forma de representao do
conhecimento sobre tipos especficos de objetos e eventos, organizados em estruturas
tononmicas.
O primeiro sistema especialista comercial bem sucedido, o RI comeou a ser utilizado
pela Digital Equipament Corporation em 1982 no apoio configurao de novos
sistemas de computadores. Em 1986, o RI proporcionava Digital uma economia anual
de cerca de 40 milhes de dlares (Russell e Norvig, 2004).
A indstria da IA viveu na dcada de 80 seus anos de glria, chegando a movimentar em
1988 alguns bilhes de dlares da economia mundial. No entanto, em funo do no
cumprimento de promessas ambiciosas, a rea da IA viveu nos anos subseqentes um
encolhimento em suas pesquisas e atividades.
No final da dcada de 80 houve uma retomada das pesquisas em Redes Neurais com a
criao de sistemas conexionistas e o algoritmo de retropropagao de erro capazes de
lidar de forma bem sucedida com problemas no lineares. Rumelhart e McClelland, dois
dos responsveis por esta retomada, publicaram em 1986 diversos trabalhos afins em
uma coletnea denominada Parallel Distributed Processing. Nesta poca, alguns
pesquisadores comearam a utilizar a expresso Inteligncia Computacional como uma
extenso Inteligncia Artificial.
Desde ento a IA, ou IC, vem se consolidando como cincia, tanto no contedo quanto
na metodologia. Atualmente muito comum as pesquisas em IA utilizarem teorias
existentes como base, ao invs de propor teorias inteiramente novas. Adicionalmente, o
progresso recente na compreenso das bases tericas da Inteligncia Artificial caminha
lado a lado com o avano na capacidade dos sistemas reais. As subreas da IA se
tornaram mais integradas, assim como a prpria IA vem se integrando a outras reas e
disciplinas do conhecimento humano na formulao de diversas aplicaes. Um
exemplo disso a aplicao de recursos de IA na indstria da chamada minerao de
dados. Na minerao de dados, o objetivo identificar conhecimento til a partir de
grandes bases de dados. Para tanto, tcnicas de IA so conjugadas a diversas tecnologias
de outras reas tais como estatstica, banco de dados, reconhecimento de padres,
interface humano-mquina.

15



1.3. Organizao do Texto

O presente texto est organizado em mais seis captulos que procuram apresentar de
forma introdutria os principais conceitos, recursos e tcnicas da IC em seus diversos
paradigmas. A inspirao na natureza em que se baseia cada paradigma da IC tambm
oportunamente comentada em cada captulo.
O captulo 2 apresenta alguns dos principais conceitos bsicos da rea preparando o
leitor para uma melhor compreenso dos captulos subseqentes.
Um detalhamento dos chamados sistemas especialistas pode ser obtido no captulo 3.
Tcnicas de aquisio e representao simblica de conhecimento tambm so descritas
neste captulo.
A Lgica Nebulosa que introduz flexibilidade aos sistemas especialistas est descrita no
captulo 4. Orientaes sobre como construir os chamados sistemas de inferncia
nebulosa tambm so fornecidas.
As Redes Neurais e os Algoritmos Genticos so apresentados nos captulos 5 e 6,
respectivamente. Exemplos sobre aplicaes destas tecnologias tambm foram
incorporados ao longo do texto.
As consideraes finais no captulo 7 compreendem alguns exemplos de desafios e
problemas em aberto tanto na prpria IC quanto em reas em que a IC pode ser utilizada
como ferramenta de aplicao.
Em todos os captulos, o texto traz uma reflexo sobre as vantagens e desvantagens de
cada tecnologia apresentada. Espera-se que, desta forma, o leitor desenvolva um senso
crtico voltado identificao de possibilidades de aplicao de recursos da IA diante
dos mais diversificados tipos de problemas.
Um apndice ilustrando o funcionamento de algumas ferramentas de IC pode ser
consultado como uma espcie de manual para usurios iniciantes. Alm das dicas de
utilizao, o apndica indica sites de onde as ferramentas podem ser gratuitamente
obtidas.



16


Captulo
2

Conceitos Bsicos

2.1. Consideraes Iniciais
Conforme j comentado, este captulo tem como objetivo apresentar alguns conceitos
bsicos teis e necessrios ao entendimento do restante do texto. Assim sendo, ele foi
estruturado em diversas sees, cada uma delas tratando de um conceito especfico.
Procurou-se apresentar os conceitos em uma sequncia dedutiva e incremental, de forma
que cada conceito apresentado utilize somente conceitos apresentados anteriormente.

2.2. Estrutura Genrica de um Sistema Baseado em Conhecimento
Os chamados sistemas baseados em conhecimento (SBCs) apresentam uma estrutura
geral baseada em mdulos, como mostra a figura 2.1 retirada de (Rezende, 2003):

Figura 2.1 Estrutura de um Sistema Baseado em Conhecimento
Ncleo do Sistema Baseado em Conhecimento ou Shell: Parte do SBC que
desempenha as principais funes do sistema, entre elas a interao com o
usurio e a execuo dos mecanismos de inferncia.
Base de Conhecimento: Parte responsvel por armazenar o conhecimento do
SBC sobre o domnio da aplicao. As informaes contidas neste mdulo do
sistema devem estar em um formato reconhecido pelo Ncleo do SBC.
Memria de Trabalho: Local onde so armazenadas as respostas do usurio e as
concluses intermedirias em um processo de raciocnio (Rezende, 2003).

17


Base de Dados: Alguns SBCs podem se comunicar com um repositrio de onde
os dados possam ser obtidos e onde possam ser guardados de forma persistente.
Interface com o usurio: Meio de contato direto do sistema com o usurio,
realiza interaes com o utilizador por meio de perguntas e da apresentao de
resultados.
2.2.1. Ncleo do Sistema Baseado em Conhecimento
O Ncleo parte fundamental em SBC. nele que so realizadas as principais
atividades do sistema. O ncleo dividido em trs sub-mdulos interdependentes. Estes
mdulos podem funcionar em conjunto ou separados, dependendo apenas da
implementao do sistema.
Mdulo Coletor de Dados: responsvel pela interao com o usurio, obtendo
informaes do problema em questo, atravs da formulao de sucessivas perguntas
ao usurio. Quando ativado pelo motor de Inferncia, o Coletor de Dados faz as
perguntas necessrias e valida as respostas do usurio baseando-se em crticas
preestabelecidas. Tais funes verificam a validade das respostas (Rezende, 2003).
Motor de Inferncia: Mdulo responsvel pelo desenvolvimento do raciocnio a partir
das informaes obtidas pelo Coletor de Dados e do conhecimento representado e
disponibilizado na Base de Conhecimento (Rezende, 2003).
Mdulo de Explicaes: Responsvel pela explicao, ou justificativa, das
concluses obtidas e dos motivos pelos quais o SBC fez determinadas perguntas e
chegou a determinados resultados (Rezende, 2003).
Durante a execuo de suas atividades o Ncleo do SBC interage com a Memria de
Trabalho, que manipula os dados temporrios utilizados no processo. Alm de acessar a
Base de Conhecimento a fim de obter o conhecimento necessrio ao processamento das
informaes coletadas.
Um shell pode ser visto como um ambiente para facilitar a construo e a execuo de
um SBC. Por trazer embutidos o motor de inferncia e a interface com o usurio, o
custo de produo do SBC se torna relativamente baixo.
Os shells so destinados a permitir que pessoas sem conhecimento em programao
possam criar SBCs se aproveitando do esforo j realizado por outros que tiveram
problemas semelhantes. Um exemplo de Shell o ambiente SINTA desenvolvido pela
Universidade Federal do Cear. O apndice apresenta algumas dicas para a sua
utilizao.
2.2.2. Base de Conhecimento
A Base de Conhecimento a parte do SBC responsvel por armazenar o conhecimento
necessrio para resoluo do problema abordado pela aplicao. Ela pode conter
asseres sobre o domnio de conhecimento, regras que descrevem relaes nesse
domnio, heursticas e mtodos de resoluo de problemas.
Uma Base de Conhecimento um conjunto de representaes de aes e
acontecimentos do mundo. As representaes individuais so conhecidas como
sentenas. As sentenas so expressas em uma linguagem especifica, chamada

18


linguagem de Representao do Conhecimento (RUSSEL e NORVIG, 2004). As
linguagens de representao de conhecimento baseiam-se em diferentes tcnicas de
representao, como: regras de produo, redes semnticas, frames e lgica. Os SBCs
tambm podem usar combinaes entre essas tcnicas. Sistemas que se utilizam dessa
metodologia so conhecidos como Sistemas Hbridos.
2.2.3. Memria de Trabalho
A Memria de Trabalho representa a rea de trabalho de um SBC, na qual so
registradas todas as respostas fornecidas pelo usurio durante as interaes realizadas
com o sistema, evitando que o usurio responda mesma questo mais de uma vez.
Nela tambm podem ser registradas as concluses intermedirias e seqncias de passos
de raciocnio realizados durante a execuo dos programas (Rezende, 2003).
2.2.4. Interface
A interface realiza a comunicao entre o SBC e o usurio. Pode ser elaborada
genericamente ou pode ser construda em funo do domnio da aplicao. A linguagem
de programao utilizada na construo das interfaces pode ser diferente das linguagens
utilizadas na representao do conhecimento.
2.3. Como resolver um problema utilizando Inteligncia Computacional?
Para decisar se a IC pode ser utilizada para resolver um determinado problema, algumas
questes precisam ser consideradas:
Primeiro importante estar clara a necessidade de que a soluo para o problema
em questo requer a incorporao de conhecimento especializado sobre o
domnio da aplicao.
Em seguida, deve-se investigar qual o tipo de conhecimento envolvido e quais as
principais idias a serem consideradas.
Simultaneamente ao item anterior, deve-se procurar idenficar as fontes do
conhecimento a ser utilizado. E como essas fontes podem ser acessadas.
A partir de ento, deve-se refletir sobre a melhor forma de representar do
conhecimento e sobre como poderia ser realizado processo de aquisio e
representao. Mais a frente sero apresentadas algumas formas de representao
do conhecimento.
Em geral, problemas cuja soluo demanda uma sequencia de passos rgida, bem
definida no so adequados para serem resolvidos com recursos de IC. Nestes casos
deve-se pensar na possibilidade de codificao da soluo utilizando alguma tcnica
tradicional e alguma linguagem de programao orientada a objetos ou mesmo
estruturada.

19


2.4. Hierarquia do Dado Informao Conhecimento
Uma vez que a IC lida com conhecimento, informao e dados, faz-se necessria uma
distino entre estes conceitos. A figura 2.2 apresenta um exemplo mostrando a
hierarquia entre eles.


Figura 2.2 Hierarquia do Dado Informao Conhecimento
Dados: representaes sintticas sobre fatos, mas sem semntica ou significado
atribudo. Por exemplo, os valores 5.000, Silva, 10101990. Na figura 2.2, os
valores 5.300 e 3.247 so exemplos de dados.
Informaes: So dados munidos de significado, possivelmente processados.
Envolve interpretao de um contedo a partir do estabelecimento de um
contexto. No exemplo da figura 2.2 uma informao (capacidade de
endividamento) foi calculada a partir de outras (Renda e Despesa Mensais).
Conhecimento: Inclui, mas no est limitado, s descries, hipteses, conceitos,
teorias, princpios e procedimentos que so ou teis ou verdadeiros. Possui
diversas definies cujo debate foge ao escopo deste livro. Na figura 2.2, segue o
exemplo de um conhecimento representado como uma regra da forma SE-
ENTO. Envolve a relao entre informaes.

Plato, em sua definio clssica, estabelece que conhecimento um conjunto de
crenas verdadeiras e justificadas, conforme ilustra a figura 2.3. A epistemologia a
cincia que estuda o conhecimento.
O conhecimento pode ser dividido em duas categorias:
Conhecimento explcito Aquele formal, claro, regrado, fcil de ser descrito e
comunicado a outras pessoas. o conhecimento que est registrado em livros,
revistas, artigos, diagramas, desenhos, figuras e documentos, dentre outros. Esse
conhecimento de fcil articulao, manipulao e transmisso. A palavra explcito
vem do latim explicitus que significa formal, explicado, declarado"

20


Conhecimento tcito o conhecimento que existe na cabea das pessoas,
formulado a partir de experincias que cada um adquiriu ao longo de sua vida.
Geralmente difcil de ser formalizado ou explicado a outra pessoa, pois subjetivo
e inerente s habilidades de um indivduo, como "know-how". A palavra tcito vem
do latim tacitus que significa "no expresso por palavras".
Conforme comentado, o conhecimento tcito o mais difcil de se capturar e transmitir.
J o conhecimento explcito pode ser facilmente adquirido e at mesmo confundido com
informao pura e simples.
Portanto, , em geral, um desafio adquirir o conhecimento tcito, visto que este est na
mente das pessoas. Como este conhecimento est vinculado a uma pessoa em particular,
as grandes organizaes possuem a dificuldade de transmitir a outros este tipo de
conhecimento. Devido importncia desta forma de conhecimento, as grandes
organizaes deveriam investir fortemente em maneiras de manter seus funcionrios,
tentando encontrar formas de diminuir a rotatividade de pessoal e de aumentar a
interao, facilitando assim a disseminao de conhecimento e da informao.
Organizaes ocidentais, principalmente americanas e europias, tm investido esforos
em converter conhecimento tcito em explcito em documentos, processos, bases de
dados, etc. Esse esforo freqentemente chamado de transformao do capital
humano no capital estrutural de uma organizao.


Figura 2.3 Ilustrao grfica da definio de conhecimento, segundo Plato


21


2.5. O que Representao do Conhecimento?
Davis et al. (1993) apud (Rezende, 2003) definem representao do conhecimento (RC)
como algo que substitui o objeto ou fenmeno real, de modo a permitir a uma entidade
determinar as conseqncias de um ato pelo pensamento ao invs de sua realizao.
Representao de Conhecimento (RC) pode ser interpretada como a aplicao de
linguagens formais usadas para expressar os conhecimentos de especialistas em algum
campo, de forma eficiente, e coloc-los prontos para serem acessados pelo usurio de
um sistema inteligente. Uma representao um conjunto de combinaes sintticas e
semnticas que nos possibilitam descrever uma determinada aplicao.
A representao sinttica especifica os smbolos que podem ser usados na representao
do conhecimento e as maneiras como estes smbolos podem ser conseguidos.
A representao semntica, por outro lado, especifica que significado est incorporado
naqueles smbolos representados pela sintaxe.
Qualquer que seja a forma de representao do conhecimento, esta deve dispor de algum
mecanismo computacional que possa processar o conhecimento representado.
2.5.1. Exemplos de Formas de Representao do Conhecimento:
2.5.1.1. Lgica Matemtica (Clculo de Predicados)
A Lgica Matemtica uma linguagem formal, sendo o estudo matemtivo mais antigo
sobre a natureza do raciocnio e do conhecimento. Foi um dos primeiros esquemas de
representao usados em Inteligncia Artificial.
A lgica matemtica possui diversas regras de deduo, que so formas de se realizar
inferncias dedutivas a partir das expresses da linguagem, sem influncia de idias
extras ou intuies. Existem vrios tipos de lgicas que so utilizadas para realizar
dedues automticas. No entanto, o presente texto compreende apenas o clculo de
predicados (ou lgica de primeira ordem). Neste clculo, as proposies so formadas
por predicados, argumentos, quantificadores e variveis. A lgica de primeira ordem
de grande importncia para a representao do conhecimento e tem sido o instrumento
mais utilizado para a formalizao do conhecimento no desenvolvimento de um SBC.
Consideremos o exemplo de sentena que estabelece que: Todo amigo de Paulo amigo
de Pedro.
Em sua representao no Clculo de Predicados, temos:
X(amigo(X, Paulo) amigo(X, Pedro))
Onde:
Predicado: amigo(X,Y)
Variveis: X, Y
Constantes: Paulo, Pedro
A Lgica de Predicados envolve sentenas cujo valor lgico deve ser apurado aps a
instanciao de variveis. No exemplo, os predicados amigo(X, Paulo) e amigo(X,

22

Pedro) s assumem valor lgico (verdadeiro ou falso) aps a varivel X ter recebido
algum valor (instanciada).
2.5.1.2. Regras de Produo
Muitos sistemas se inspiram na idia de que a tomada de deciso humana pode ser
moldada por meio de regras de condio do tipo SE condio ENTO concluso e
aes. Portanto, as regras podem expressar relacionamentos lgicos e equivalentes de
definies para simular o raciocnio humano. Um exemplo simples pode ser ilustrado
pela afirmativa: SE est chovendo ENTO carregue uma sombrinha. Assim, dado o
fato de estar chovendo pode-se inferir ou derivar que se deve carregar uma
sombrinha.
Portanto, como comentado anteriormente, regras de produo so estruturas no seguinte
tipo:
SE <condies> ENTO <concluses> FAA <aes>
Onde:
SE uma lista de condies a serem satisfeitas (chamado de antecendente ou LHS
Left Hand Side, lado esquerdo da regra; ENTO uma lista de concluses; e FAA
so as aes a serem executadas. Concluses e aes so chamadas de conseqente ou
RHS - Right Hand Side, lado direito da regra.
Em um processo de inferncia, cada uma das condies da lista de condies deve ser
verificada. Caso todas sejam satisfeitas, as concluses sero consideradas verdadeiras e
as aes sero executadas.
2.5.1.3. Redes Semnticas
Uma rede semntica um grafo rotulado e direcionado formado por um conjunto de ns
representando os objetos (indivduos, coisas, conceitos, situaes em um domnio) e por
um conjunto de arcos representando as relaes entre os objetos (Rezende, 2003) apud
(Rich e Knight, 1993; Branchman, 1983). Um arco classificado de acordo com o nome
da relao representada por ele. Os diversos arcos podem possuir o mesmo rtulo,
contudo, cada objeto relacionado representado por um nico n.
Os objetos podem ser classificados como complexos ou simples. Os objetos complexos
muitas vezes podem ser decompostos em objetos mais simples e atravs dessas
composies produzirem dois tipos de relaes:
Classe-de (is-a) as relaes entre os objetos esto em uma taxonomia
hierrquica;
Faz-parte (part-of) as relaes entre os objetos satisfazer a um tipo de
composio, ou seja, o objeto um elemento de outro, no havendo uma relao
de herana.
Uma propriedade muito importante dessa relao a transitividade, que permite declarar
de forma concisa a propriedade nos objetos mais gerais. Mecanismos de inferncia
podem ser utilizados para derivar essas propriedades para os objetos mais especficos. A
esse procedimento denominado herana de propriedades. A principal razo das redes
semnticas serem bem aceitas na representao do conhecimento a possibilidade de

23

visualizao grfica das estruturas de conhecimento, porm essas possuem limitaes
expressivas que restringem o uso deste tipo de linguagem.


Figura 2.4 (a) Exemplo de uma rede semntica

Figura 2.4 (b) Outro exemplo de uma rede semntica
2.5.1.4. Quadros (frames) e Roteiros (scripts)
O modelo de frames e scripts foi introduzido em 1975 na representao do
conhecimento por Marvin Minsky. Quadros e Roteiros so usualmente aplicados para
modelar situaes estereotipadas (Quadros) para as quais podem ser definidas aes
padronizadas (Scripts).
Um frame um termo usado para designar um agrupamento de conhecimentos
relevantes a uma coisa, um indivduo, uma situao ou um conceito (Rezende, 2003)
apud (Maida, 1987; Minsky, 1975). Os frames integram conhecimento declarativo sobre
objetos e eventos e conhecimento procedimental sobre como recuperar informaes ou
calcular valores. Um frame possui um nome que identifica o conceito por ele definido e
consiste de um conjunto de atributos, chamados slots. So estruturas de dados
complexas e anlogas a registros em bases de dados que modelam objetos do mundo
real de forma mais poderosa e expressiva. Cada frame possui um nome que o referencia
e detalhes da herana por ele submetida por seus frames-pai, junto com uma coleo de
slots que contm valores ou ponteiros para valores. A figura 2.5 apresenta um exemplo
contendo alguns quadros.
Cada slot possui um nome que o identifica e um conjunto de atributos que apresentam
propriedades que dizem respeito ao tipo de valores e s restries de nmero que podem
ser associadas a cada atributo. Essas propriedades so chamadas facetas.

24

As facetas contm informaes que descrevem os slots. Essas informaes definem os
valores que o slot pode assumir, ou indicam a maneira de calcular ou deduzir o seu valor
(procedimentos). Exemplos de facetas so: tipo, domnio, valor default, etc.
Os valores dos slots podem ser definidos explicitamente ou herdados de um de seus
ancestrais. J os valores default so associados a objetos ou a classes gerais, enquanto os
valores correntes so associados a instncias especficas. Observao: Os valores default
so usados somente quando o valor corrente no est disponvel. A principal
caracterstica desse tipo de modelo a relao de herana de propriedades, na qual uma
classe especifica chamada de frame-filho pode herdar propriedades da classe mais geral
(frame-pai).
Um frame-filho pode herdar valores (default ou correntes) de qualquer um de seus
frames-pai, que por sua vez, herdaram de seus pais, e assim por diante, o que permite
que no ocorra a duplicao de informao.
Instncias aparecem com ns-folhas na hierarquia de frames e podem ter apenas um pai.
Elas podem conter apenas valores correntes em seus slots. Em geral, a informao flui
na hierarquia de frames a partir dos frames do topo para os frames das extremidades, o
que caracteriza a relao de herana. Sempre que ocorrer um pedido de algum valor de
um slot, o algoritmo de herana automaticamente chamado. O valor primeiramente
procurado no frame original, e apenas se tal valor no existir localmente ser necessrio
procurar em outros lugares, para isso ser necessrio saber onde procurar e quando parar
a procura.
A caracterstica de herana permite que os dados sejam armazenados de forma abstrata e
aninhados com propriedades comuns herdadas. Desta forma, se evita a duplicao de
informao, simplifica o cdigo e proporciona a criao de sistemas de fcil leitura e
manuteno.

Figura 2.5 Exemplo de Quadros (Frames)
Os scripts so estruturas de informao que auxiliam na compreenso de situaes de
comportamento padronizado. Eles inspiraram o estudo de sistemas de Raciocnio

25

Baseado em Casos em que a busca por situaes anlogas fundamental para solucionar
um novo problema. Os scripts so teis porque, no mundo real h padres para a
ocorrncia de eventos. Entretanto, a definio de um script no necessariamente
compartilhada por todos, j que cada memria compreende um script sobre uma
experincia, a partir do prprio ponto de vista. Os scripts possuem o conhecimento
normativo, mas no o conhecimento da experincia. A figura 2.6 ilustra um exemplo de
roteiros, definidos em funo de cenrios.

Figura 2.6 Exemplo de Roteiros (Scripts)
2.5.1.5. Grafos Conceituais
De forma anloga s Redes Semnticas e conforme o pprio nome sugere, os grafos
conceituais modelam graficamente o conhecimento como um grafo: vrtices so itens
(no necessariamente nomeados) e arestas expressam a relao entre os itens.
Os componentes de um grafo conceitual podem ser descritos como:
a) os conceitos, representados por retngulos ou por colchetes [CONCEITO], expressam
aes, estados ou entidades em um domnio especfico de conhecimento;
b) as relaes conceituais podem ser abreviadas como relaes, sendo divididas em dois
tipos:

26

1. Representada por crculo ou parnteses (RELAO) identificando as
ligaes existentes entre dois conceitos, caracterizando o relacionamento
entre eles;
2. Representada por losango ou entre os smbolos de maior e menor
RELAO>, identifica a hierarquia ou a precedncia entre os conceitos.
As ligaes entre os conceitos so expressas por meio das relaes e formam pares
ordenados. Os arcos que constituem as ligaes tm a finalidade de definir o sentido da
leitura. Este sentido identificado pela seta presente no arco pertencente relao.
Caso uma relao entre conceitos seja desfeita, o arco que a representa no grafo
conceitual precisa ser removido.
A representao grfica contribui para o melhor entendimento das relaes entre os
conceitos. A fim de ilustrar as definies acima, a figura 2.7 mostra um grafo conceitual
que representa a frase Brasil produz acar e vende Argentina.

Figura 2.7 Grafo Conceitual da frase Brasil produz acar e vende Argentina
O grafo da figura 2.7 lido respeitando os sentidos das setas e observando a precedncia
colocada pela relao <precede>. Seguindo estas orientaes, possvel obter duas
interpretaes do exemplo proposto:
1 O Brasil produz acar e vende Argentina
2 O Brasil vende Argentina acar que produz
A relao <precede> possui funo ressaltar qual o conceito principal e quais dependem
dele. Neste exemplo, os conceitos acar e Argentina so diretamente dependentes do
conceito Brasil.
O grafo conceitual da figura 2.8 elimina a ambigidade da sentena original O co coa
a sua orelha com a sua pata ao indicar por meio de uma varivel que a orelha e a pata
pertencem ao mesmo co responsvel pela ao de coar. Alm disso, o grafo explicita
que o instrumento para a ao de coa a pata e que o objeto coado a orelha.


27


Figura 2.8: Grafo Conceitual da sentence O co coa a sua orelha com sua pata.

2.5.1.6. Ontologias
O acentuado e constante crescimento do volume de dados disponveis nas empresas e no
cotidiando tem se tornado um grande problema, em funo da dificuldade natural de
encontrar, organizar, associar, acessar e manter as mais variadas informaes solicitadas
pelos usurios. As ontologias proporcionam um meio de lidar com este tipo de
problema, fornecendo meios de representao de conhecimento que contm informaes
a cerca de itens e sobre como estes se relacionam entre si. Como conseqncia, as
ontologias vm conquistando cada vez mais o seu espao e promovendo um
entendimento comum e compartilhado sobre o domnio onde as informaes se
encontram organizadas.
Embora existam diversas definies para ontologia, aquela mais amplamente utilizada
pela rea da Computao estabelece que: Uma especificao formal e explcita de uma
conceitualizao compartilhada. (Gruber, 1993).
Pode-se dizer, a grosso modo, que ontologias so modelos de dados que permitem definir
categorias para as conceitos que existem em um mesmo domnio e que possuem o objetivo
de promover um entendimento comum e compartilhado sobre um propsito especfico. Ou
ainda, em outras palavras: uma ontologia um corpo de conhecimento que contm
informaes a cerca de itens e sobre como estes itens se relacionam entre si.
A figura 2.9 apresenta um exemplo clssico de ontologia onde as associaes entre os
conceitos representam especializao entre eles.
Ontologias so utilizadas para a recuperao de informaes, gesto de conhecimento,
processamento de linguagem natural e outros, trabalhando de forma a definir um
vocabulrio especfico usado para descrever uma certa realidade e um conjunto de
decises explcitas, fixando de forma rigorosa, o significado pretendido para o
vocabulrio, procurando reduzir assim, as ambigidades, melhorando a preciso das
busca e reduzindo o tempo gasto. Normalmente as ontologias procuram descrever
indivduos, classes, atributos e relacionamentos.
So exemplos de linguagens para definio de ontologias: OIL, RDF, OWL, entre
outras...

28


Figura 2.9 Exemplo de Ontologia rvore de Porfrio
2.6. Como escolher qual modelo de Representao do Conhecimento deve ser
utilizado?
Uma das perguntas mais difceis de serem respondidas que tipo de Representao do
Conhecimento utilizar, visto que no existe uma teoria geral sobre o assunto. Sabe-se
que toda forma de representao do conhecimento deve dispor de algum mecanismo
computacional que possa processar o conhecimento representado e que essa
representao deve obedecer alguns princpios bsicos, como os j mencionados nas
sees acima. Sendo assim, a melhor representao do conhecimento a ser escolhida
depender do contexto no qual esta ser aplicada, levando-se em conta as suas
caractersticas para se definir bem a representao que atender as necessidades
envolvidas. No entanto, algumas questes devem ser consideradas:
(i) No problema a ser tratado, h a necessidade de se adquirir mais conhecimento?
Em caso positivo, modelos conexionistas (envolvendo redes neurais) podem ser
necessrios. Caso seja utilizada alguma forma de representao de conhecimento
simblica (conforme as apresentadas nas sees anteriores), a incorporao de
novos conhecimentos poder no ser automtica, requerendo, portanto, a
interveno humana no processo.
(ii) Caso a recuperao de conhecimento seja necessria, representaes simblicas
se mostram bastante interessantes, uma vez que facilitam o entendimento e
compreenso do homem.
(iii)Nos casos em que haja necessidade de processar o conhecimento para obter
solues para situaes que se apresentem, mecanismos de inferncia que
permitam a deduo de novos fatos a partir de fatos existentes so necessrios.

29

2.7. Etapas do Processo de Desenvolvimento de um SBC
Segundo (Rezende, 2003), o processo de desenvolvimento de um SBC est dividido em
quatro fases, conforme mostra a figura 2.10. A fase 1 realizada apenas uma vez, e as
fases 2, 3, 4 compem uma etapa contnua de melhoramento do sistema.

Figura 2.10 Fases do desenvolvimento de um SBC. Fonte: (Rezende, 2003)

Fase 1 Planejamento do SBC: Tem como objetivo descreve o domnio de
conhecimento, termos chaves e referncias. Tambm identifica um resumo simplificado
dos conceitos relacionados ao domnio de conhecimento, para que as pessoas que
interagirem com o processo de desenvolvimento do SBC possam compreend-lo
melhor. Nessa fase, realizada a anlise funcional, responsvel por identificar mdulos,
entradas e sadas necessrios. Ainda nesta fase, so selecionadas a equipe de
desenvolvimento do SBC e a ferramenta a ser utilizada no desenvolvimento do sistema.
Compreende tambm a especificao da linguagem a ser usada na representao do
conhecimento do domnio.
Fase 2 Aquisio do Conhecimento: Esta fase tem como objetivo adquirir os
conhecimentos que sero armazenados na Base de Conhecimento, ou seja, a fase de
execuo do planejamento realizado na fase anterior. Esta fase refere-se identificao,
conceitualizao e formalizao do conhecimento.
Fase 3 Implementao do SBC: Nesta fase, o conhecimento adquirido deve ser
implementado. Para isso, utiliza-se a estrutura de Representao do Conhecimento
selecionada na Fase 1 deste processo. Ainda nesta fase realizada a codificao do
sistema por meio de linguagens ou ferramentas adequadas. Compreende tambm a
documentao do sistema, gerao de manuais e implementao da interface.
Fase 4 Validao e Refinamento do SBC: Esta fase envolve a validao e
verificao do sistema e considerada um processo contnuo, pois necessrio

30

assegurar que o sistema funcione corretamente, fornea resultados verdadeiros (corretos)
e satisfaa os requisitos do cliente. Alm disso, realiza eventuais mudanas nos
requisitos do sistema, enfatizando a aquisio contnua do conhecimento e a avaliao
do sistema em andamento.
Um dos estgios mais complexos no desenvolvimento de um Sistema Baseado em
Conhecimento a Aquisio de Conhecimento, que visa identificar e modelar o
conhecimento que ser utilizado na soluo genrica de problemas em um domnio de
aplicao.
2.8. Tcnicas para Aquisio de Conhecimento (AC) e Esforos na Sistematizao
do Processo de AC
2.8.1. O que ?
Aquisio de conhecimento o processo utilizado para se obter conhecimento, de
fontes diversas. Buchanan et al. (1983) apud (Rezende, 2003) definem AC como a
transferncia e transformao do conhecimento especializado com potencial para a
resoluo de problemas de alguma fonte de conhecimento para um programa. Aquisio
de conhecimento um processo feito geralmente por um especialista, ou seja, aquele
que tem o conhecimento tcnico acerca do assunto no qual o Sistema Inteligente (SI)
ser baseado e um engenheiro de conhecimento responsvel por codificar as
informaes extradas do especialista para a construo das Bases de Conhecimento
(BC). As bases de conhecimento tm por finalidade servir de apoio ao (SI) fornecendo o
conhecimento apropriado sempre que necessrio.
Em funo da complexidade do processo de aquisio de conhecimento, alguns
especialistas chegam at a cham-lo de gargalo da construo dos Sistemas Inteligentes.
Essa dificuldade advem do fato da inexistncia de uma metodologia padronizada e
confivel para a extrao do conhecimento. No raro o processo de aquisio de
conhecimento feito de maneira artesanal, e se d por meio de brainstorms,
entrevistas estruturadas com o(s) especialista(s), e com a observncia do(s) mesmo(s)
trabalhando.
Na maioria dos casos, o engenheiro de conhecimento no consegue extrair do
especialista todas as informaes de que ele precisa, e s vezes as informaes perdidas
so realmente necessrias para a construo de um Sistema Inteligente confivel. Esse
problema se d devido ao fato de alguns conhecimentos estarem to naturalmente
solidificados na mente do especialista que eles s so ativados em uma situao real de
trabalho. Alguns conhecimentos so to naturais para o especialista que eles
permanecem escondidos em um ponto da memria e s so recuperados com
estmulos. Como j mencionado, so situaes reias de trabalho que requerem o uso
desse conhecimento especfico.
Outro problema que ocorre com freqncia a dificuldade de verbalizao de uma
resoluo de problema por parte do especialista, ou seja, ele sabe resolver determinada
questo, mas no sabe explicar para o engenheiro de conhecimento como realmente ele
faz isso. H ainda a questo de alguns profissionais da empresa serem to importantes e
requisitados que difcil conseguir um tempo com eles para a realizao das entrevistas
e aplicao dos questionrios.

31

2.8.2. Tcnicas de Aquisio de conhecimento
Devido necessidade de fazer a aquisio de conhecimento de forma clara e efetiva,
vrias tcnicas tm sido desenvolvidas para ajudar nesse processo. Elas so classificadas
em manuais, semi-automticas e automticas. As tcnicas manuais so as mais
utilizadas, sendo comandadas inteiramente pelo engenheiro de conhecimento. As semi-
automticas so realizadas junto com as manuais. Elas proporcionam ao especialista,
ferramentas para ajudar na tarefa da criao dos sistemas diminuindo a participao do
engenheiro de conhecimento. As automticas visam minimizar ao mximo a
participao humana. Elas utilizam aprendizado de mquina para fazer a minerao de
conhecimento a partir de grandes fontes de informao, sendo, por esse motivo, mais
complexas.
2.8.2.1. Tcnicas Manuais
2.8.2.1.1. Baseadas em Descries ou em Literaturas
Nesta tcnica, o engenheiro de conhecimento realiza um estudo sobre o assunto que o
sistema se prope a auxiliar com o intuito de adquirir um conhecimento sobre o
domnio. Fazer esse estudo prvio importante para que as entrevistas com o
especialista possam ocorrer dar de forma mais natural, sem que o especialista precise
explicar tudo sobre o assunto em questo. O engenheiro que estudou previamente o
assunto pode ir levantando questionamentos, por exemplo, sobre termos tcnicos. Isso
faz com que a conversa flua de forma mais natural e em um nvel mais adiantado. Desta
forma, o nmero de entrevistas pode ser reduzido, o que demanda uma despesa menor
para a empresa, visto que ela ceder menos vezes o funcionrio para as entrevistas.
Convm mencionar, no entanto, que nem sempre existem referncias homologadas
sobre o assunto em questo. Alm disso, muitos assuntos demandam um conhecimento
prvio para entendimento dos textos disponveis para estudos.
2.8.2.1.2. Baseadas em Entrevistas
Nesta tcnica so realizadas entrevistas com o especialista. As informaes podem ser
coletadas com o auxlio de gravadores ou filmadoras. Essas informaes so depois
estudadas para se extrair delas o conhecimento desejado. No entanto, o uso de quaisquer
destes recursos deve ser previamente acordado junto ao especialista, evitando possveis
constrangimentos.
Recomenda-se que pelo menos dois engenheiros de conhecimento participem do
processo. Um questiona e o outro toma nota dos pontos principais de forma a facilitar o
posterior levantamento dos assuntos discutidos.
Outro procedimento desejvel a elaborao prvia de questionrios que auxiliem a
conduo do processo de entrevista. Neste caso, diz-se que a entrevista est estruturada.
Recomenda-se opcionalmente a divulgao prvia do questionrio. Entrevistas
estruturadas so, em geral, mais produtivas. Baseiam-se em um processo sistemtico
orientado a objetivo, facilitando a comunicao entre os envolvidos. Ajudam a evitar
distores decorrentes da subjetividade.
Nos casos em que as perguntas surgem em decorrncia da evoluo da conversa, as
entrevistas so denominadas de entrevistas no estruturadas. Este tipo de abordagem

32

pode ser til para realizar prospeco de detalhes sobre o assunto que no tenham sido
mencionados anteriormente. Por outro lado, pode trazer as seguintes desvantagens:
Especialistas podem no se preparar para a entrevista
Engenheiros de conhecimento com pouca experincia podem se desorientar
Ocorrncia de dificuldades para o especialista organizar idias
Demanda de preparao prvia dos envolvidos (complexidade)
Dificuldades para interpretao e integrao da informao

2.8.2.1.3. Baseadas em Acompanhamento
Esta tcnica visa acompanhar o processo de raciocnio do especialista em casos reais, ou
seja, acompanh-lo em seu local de trabalho. Isto faz com que ele seja mais natural e
espontneo. Em geral, com esta tcnica, as informaes surgem mais facilmente e o
engenheiro faz as devidas anotaes e esclarece dvidas com o especialista na medida
em que elas se apresentem.
Por usar casos reais, esta tcnica evita que o especialista seja direcionado a responder
questes irrelevantes ao sistema. Cabe ressaltar, no entanto, que com esta tcnica, nem
sempre se consegue uma amostragem de casos realmente representativa.
Opcionalmente pode ser utilizada uma abordagem em que o especialista analisa
situaes anteriores, explicando como determinadas solues foram obtidas.
2.8.2.2. Tcnicas Semi-automticas
As tcnicas semi-automticas foram criadas para suprir as falhas que podem ocorrer
quando se utilizam tcnicas manuais, pois essas so mais suscetveis a erros devido ao
nmero de pessoas envolvidas especialistas, engenheiros de conhecimento e
programadores.
O processo de obter o conhecimento do especialista e repass-lo posteriormente ao
programador acaba gerando rudos de comunicao entre as partes envolvidas. Uma
possvel soluo para resolver essa deficincia a aquisio de conhecimento semi-
automtica. Esta forma de aquisio consiste na utilizao de ferramentas
computacionais que ajudam o engenheiro de conhecimento a codificar melhor o
conhecimento a ser incorporado no sistema. Auxiliam na formalizao e edio do
conhecimento, evitando tanto erros de sintaxe quanto erros lgicos na estruturao do
modelo em construo.
KESAQ, PATERAQ, SEGSE, dentre outras, so exemplos de ferramentas de aquisio
de conhecimento semi-automticas.
As tcnicas semi-automticas, em geral, proporcionam uma reduo do nmero de
pessoas envolvidas no processo, e conseqentemente os problemas de comunicao
tambm so reduzidos. A aquisio de conhecimento semi-automtica tambm agiliza o
processo de construo das bases de conhecimento, visto que permite que o engenheiro
e o especialista consigam obter respostas mais rpidas, uma vez que as bases podem ser

33

testadas enquanto vo sendo estruturadas. Isso faz com que possveis erros de
modelagem ou interpretao apaream prematuramente.

2.8.2.3. Tcnicas Baseadas em Aprendizado de Mquina
O Aprendizado de Mquina uma rea da Inteligncia Computacional que investiga
meios para tornar computadores capazes de aprender a partir da experincia. Este tpico
encontra-se melhor descrito mais frente neste mesmo captulo (seo 2.12).

2.8.2.4. Tcnicas Baseadas em Minerao de Dados e Minerao de Textos
Muitas vezes, o conhecimento a ser adquirido encontra-se embutido em dados histricos
disponveis em grandes bases de dados. A rea da Minerao de Dados tem como
objetivo abstrair padres teis (conhecimento) a partir de grandes bases de dados
estruturados. Por outro lado, a Minerao de Textos volta-se para dados semi-
estruturados ou mesmo desestruturados. Embora, sejam temas de crescente interesse na
atualidade e estarem fortemente relacionados Inteligncia Computacional, fogem do
escopo deste livro. Maiores detalhes podem ser obtidos em literatura especializada tais
como, por exemplo, (Goldschmidt e Passos, 2005), (Carvalho, 2001).
2.9. Problemas e Espao de Solues/Estados
Dado um problema cuja soluo seja aderente s tecnologias proporcionadas pela
Inteligncia Computacional, uma questo que surge saber qual o nmero de solues
possveis. Um nico problema pode admitir infinitas solues e a cada passo o problema
pode situar-se em um estado diferente. Entende-se por estado de um problema como
sendo a posio ou condio em que tal problema se encontra em um determinado
instante.
Em geral, o espao de soluo de um problema, tambm chamado espao de estados ou
espao de busca, representado computacionalmente por meio de um grafo no qual
cada vrtice corresponde a um estado e as arestas indicam transies entre dois estados.
A busca pela soluo de um problema compreende a navegao pelos vrtices do grafo
de estados associado a fim de encontrar o(s) vrtice(s) cujo(s) estado(s) corresponde(m)
a soluo de um problema. A figura 2.11 apresenta um trecho do espao de soluo do
jogo da velha.

34


Figura 2.11 Trecho do espao de soluo do jogo da velha
H vrias estratgias para percorrer o grafo de estados em busca da soluo de um
problema. Em muitas delas faz-se necessria a utilizao de uma boa funo heurstica.
(Russel e Norvig, 2004).
2.10. O que Heurstica?
A palavra heurstica est relacionada ao verbo grego original, eurisco, que significa
eu descubro. uma juno de intuio, lgica e conhecimento prvio sobre
determinado assunto, formalizado em regras e/ou mtodos, que podem ajudar na
inveno, descoberta e soluo de problemas.
Em outras palavras uma heurstica um conhecimento prvio sobre um determinado
problema que auxilia na busca por solues, simplificando o espao de busca associado.
Na busca em espao de estados, heursticas so formalizadas como regras que
determinam a escolha dos ramos que possuem a maior probabilidade de levarem a uma
soluo aceitvel para o problema, podendo este possuir a probabilidade de falhar, pois
so apenas hipteses informadas sobre o prximo passo a ser dado, baseado em
experincias e na intuio.
Os processos de busca baseados em heursticas exigem, em geral, menos tempo que os
processos algortmicos na busca por solues eficientes.
A seguir na figura 2.12 encontram-se ilustradas trs heursticas para o conhecido jogo-
dos-oito. A figura 2.13 mostra um trecho do espao de busca do jogo dos oito.
Considere a frmula genrica para apurao do valor herstico f(n) para cada estado
como sendo expressa por: f(n) = g(n) + h(n), onde:
g(n) o comprimento real do caminho de um estado n qualquer at o estado inicial.
h(n) uma estimativa heurstica da distncia entre o estado n e o objetivo.
Dentre dois estados com mesmo h(n) deve ser escolhido aquele com menor g(n) (menor
caminho)
Cada uma das heursticas do exemplo ignora uma parcela crtica de informao,
podendo ser melhorada.

35


Figura 2.12 Trs heursticas aplicadas a estados no jogo-dos-oito.


Figura 2.13 Trecho do grafo de busca do jogo-dos-oito
A figura 2.14 ilustra uma heurstica para o jogo da velha que se baseia no maior nmero
de vitrias possveis de serem alcanadas a partir do estado em que o jogo se encontra
em um determinado momento.


Figura 2.14 Heurstica do Jogo da Velha considerando o estado inicial (tabuleiro vazio)

2.11. Comparao entre Programas de IA e Programas Convencionais
A tabela 2.1 apresenta uma comparao entre caractersticas de programas elaborados
com recursos de Inteligncia Artificial e programas convencionais:

36


Tabela 2.1 Vantagens e desvantagens de SEs e especialistas humanos
Programas com IA Programas Convencionais
Processamento simblico Processamento numrico
Solues heursticas (passos da soluo
esto implcitos)
Solues algortmicas (passos da soluo
esto explcitos)
Estrutura de controle do programa
independente do domnio do
conhecimento
Estrutura de controle e informaes
(muitas vezes) integrados
Alterao do conhecimento em geral no
requer alteraes no programa
Alterao do conhecimento muitas vezes
requer alteraes no programa
Fcil de modificar e atualizar. Modificaes so, em geral, trabalhosas.
Respostas satisfatrias so aceitas. Em geral, busca-se a melhor resposta.

2.12. Aprendizado de Mquina (AM)
2.12.1. O que ?
Aprendizado de mquina uma rea da inteligncia artificial que tem por objetivo
desenvolver algoritmos e tcnicas computacionais que permitam que o computador seja
capaz de aprender, ou seja, faam com que o computador consiga adquirir conhecimento
de forma automtica a partir de exemplos histricos, e assim, aperfeioar seu
desempenho em determinada tarefa.
O que torna esse aprendizado possvel so os sistemas de aprendizado. Esses sistemas
so programas de computador capazes de tomar decises baseados em resolues bem
sucedidas de problemas (exemplos histricos) j vistos por eles em experincias
anteriores. Os sistemas de aprendizado possuem caractersticas bastante comuns e que
possibilitam sua classificao quanto linguagem de descrio, paradigma, modo e
forma de aprendizado utilizado.
Os exemplos histricos utilizados pelos algoritmos de Aprendizado de Mquina so
representados por meio de um conjunto de caractersticas, tambm denominadas de
atributos, que procura descrever o problema em questo e que, portanto, varia em
funo do contexto de aplicao. Para cada situao ou caso de um problema, os
atributos contm valores que descrevem tal situao. A escolha dos atributos para
descrever os exemplos de uma aplicao possui grande influncia na qualidade do
conhecimento adquirido pelos algoritmos de aprendizado.
De forma anloga, a representatividade dos exemplos disponveis para o processo de
aprendizado tambm interfere no desempenho dos Algoritmos de Aprendizado e na
qualidade do conhecimento por eles abstrado. Isto porque o aprendizado ocorre de
forma indutiva. Os algoritmos partem de exemplos especficos, procurando construir
modelos de conhecimento que sejam compatveis, no s com os exemplos utilizados

37

no aprendizado, mas tambm com possveis novos exemplos que possam surgir. A
capacidade de um modelo de conhecimento gerado por um algoritmo de aprendizado ser
compatvel com novos exemplos denominada generalizao. Quanto maior a
capacidade de generalizao de um modelo de conhecimento mais til e desejvel tal
modelo pode se mostrar em aplicaes prticas reais.
Recordando alguns fundamentos dedutivos da Matemtica, a induo a forma de
inferncia lgica que permite concluses genricas a partir de um conjunto particular de
exemplos. Ela se caracterizada pelo raciocnio originado a partir de um conceito
especfico que generalizado (Rezende, 2003).
No aprendizado indutivo, que base para os principais algoritmos de aprendizado de
mquina da atualidade, comum que o modelo de conhecimento seja abstrado a partir
de sucessivas iteraes sobre o conjunto de exemplos histricos disponveis. Pode ser
subdividido em:
Aprendizado Supervisionado Nesta forma de aprendizado indutivo, os
exemplos histricos disponveis devem conter qual a informao esperada a ser
produzida pelo modelo de conhecimento que est sendo construdo.
Aprendizado No Supervisionado Nesta abordagem de aprendizado, os
algoritmos procuram agrupar os exemplos histricos em funo da similaridade
que eles apresentem entre si. Desta forma, exemplos mais similares tendem a
ficar em um mesmo grupo, enquanto que exemplos diferentes tendem a ser
organizados em grupos distintos.

2.12.2. Paradigmas de Aprendizado
Um paradigma de aprendizado diz respeito forma com que o espao de busca por um
modelo de conhecimento (que represente os dados histricos disponveis) deve ser
percorrido. A seguir encontram-se os principais paradigmas de aprendizado sobre os
quais os algoritmos de aprendizado de mquina se baseiam. Podem ser utilizados tanto
para predio quanto para descrio do conjunto de dados existente.
Simblico: Compreende a construo da representao de conceitos a partir da
anlise de exemplos. Neste paradigma o modelo de conhecimento construdo
pode ser representado por meio de expresses lgicas, rvores, regras, redes
semnticas, dentre outras.
Estatstico: Neste paradigma, mtodos estatsticos (em geral, paramtricos) so
utilizados para encontrar boas aproximaes do modelo de conhecimento que
esteja sendo induzido.
Baseado em Exemplos: Envolve a busca de casos existentes similares ao novo
exemplo a ser analisado para deduzir a sada do sistema. Neste paradigma,
ideal a utilizao de casos anteriores representativos.
Conexionista: Utiliza modelos matemticos simplificados inspirados no modelo
biolgico do sistema nervoso para tentar abstrair mapeamentos de novos
exemplos nas sadas desejadas ou agrupamentos de exemplos similares.

38

Evolucionrio: Baseia-se nos modelos biolgicos da evoluo natural e da
reproduo gentica para evoluir solues que competem entre si a fim de
abstrair um modelo que solucione o problema em questo.

39

Captulo
3

Sistemas Especialistas
3.1. Introduo
Sistemas Especialistas so sistemas que armazenam e processam conhecimento
adquirido de especialistas em uma rea de conhecimento. So sistemas de apoio
deciso que renem conhecimentos acerca de reas especficas e que so capazes de
simular o comportamento humano diante de situaes a eles apresentadas. Utilizam
conhecimentos e procedimentos inferenciais para resolver problemas no triviais que
requerem para sua soluo alguma ou muita percia humana.
So geralmente desenvolvidos para atender a uma aplicao determinada e limitada do
conhecimento humano. So tambm, capazes de emitir uma deciso e flexveis para
incorporao de novos conhecimentos para melhorar seu raciocnio. Utilizam
conhecimento justificado e bases de informaes, tal qual um especialista humano de
determinada rea do conhecimento.
A partir do conhecimento nele incororado, um Sistema Especialista pode tomar decises
para proporcionar respostas a questes utilizando um processo de tomada de deciso, ou
dividindo esse processo por meio de interaes com o especialista humano.
De um modo geral, sempre que um problema no pode ser algoritmizado, ou sua
soluo conduza a um processamento muito complexo e demorado, os Sistemas
Especialistas podem ser uma sada, pois possuem seu mecanismo de inferncia apoiado
em processos heursticos.
Uma caracterstica importante dos Sistemas Especialistas que tais sistemas no so
influenciados por elementos externos a eles, como ocorre com o especialista humano,
sujeito a emoes, presses, dentre outros fatores. Para as mesmas condies de entreda,
um Sistema Especialista deve fornecer sempre o mesmo conjunto de decises.
A tabela 3.1 apresenta uma pequena comparao entre sistemas especialistas e
especialistas humanos.
Para tomar uma deciso sobre um determinado assunto, um especialista o faz a partir de
fatos que encontra e de hipteses que formula, buscando em sua memria um
conhecimento prvio armazenado durante anos, no perodo de sua formao ou no
decorrer de sua vida profissional, sobre esses fatos e hipteses. E o faz de acordo com a
sua experincia, isto , com o seu conhecimento acumulado sobre o assunto. Com esses
fatos e hipteses, emite a deciso.


40

Tabela 3.1 Vantagens e desvantagens de SEs e especialistas humanos

Durante esse processo, so formuladas novas hipteses e novos fatos so verificados.
Esses iro influenciar no processo de raciocnio. Este raciocnio sempre baseado no
conhecimento prvio acumulado. Com esse processo de raciocnio, um sistema
especialista pode no chegar a uma deciso se os fatos de que dispe para aplicar o seu
conhecimento prvio no forem suficientes. Pode, por este motivo, inclusive chegar a
uma concluso errada; mas este erro justificado em funo dos fatos que encontrou e
do seu conhecimento acumulado previamente.
Para a construo bem sucedida de um sistema especialista, se fazem necessrios alguns
pr-requisitos, tais como:
A definio de uma rea do conhecimento humano, caracterizando assim o
aspecto da especializao sobre um determinado assunto.
A existncia de um analista de conhecimento, pessoa responsvel pelo processo
de aquisio e formalizao do conhecimento e construo do sistema.
A existncia de um ou mais especialistas na referida rea, que devero ser os
interlocutores do analista de conhecimento na formulao do sistema
especialista.

Alm disso, segundo Lucena (1987):
Deve existir pelo menos um especialista humano sobre o qual se possa dizer
que ele capaz de se desempenhar bem uma tarefa considerada.
As principais fontes do desempenho excepcional do especialista devem ser
conhecimento especializado, julgamento e experincia.

3.2. Principais Caractersticas
Para entender quais so as principais caractersticas comuns aos Sistemas Especialistas,
basta examinar o que estes fazem:

41

Utilizam raciocnio inferencial;
Armazenam conhecimentos de forma permanente;
Resolvem problemas muito complexos to bem quanto, e s vezes melhor que
especialistas humanos;
Raciocinam heuristicamente, usando o que os peritos consideram efetivamente
regras prticas;
Podem interagir com usurios humanos utilizando inclusive linguagem natural;
Manipulam e raciocinam sobre descries simblicas;
Funcionam com dados errados e regras incertas de julgamento;
Contemplam hipteses mltiplas simultaneamente;
Explicam porque esto fazendo determinada pergunta;
So tolerantes a erros, podendo chegar a respostas no timas, porm aceitveis;
So de fcil manuteno;
So de fcil documentao;
Agem sem influncia de fatores emocionais, stress ou presses;
Apresentam baixo custo operacional;
Em geral, oferecem segurana;
So estveis;
Requerem um nmero reduzido de pessoas para interao;
Justificam suas concluses, explicando como chegaram a um resultado.

O ncleo de um Sistema Especialista a potncia do corpo de conhecimento acumulado
durante sua construo. Este conhecimento explcito e organizado de forma a
simplificar o processo de deciso. A relevncia desta caracterstica deve ser
suficientemente enfatizada: 'A acumulao e codificao de conhecimento um dos
mais importantes aspectos de um Sistema Especialista'.
Uma das mais importantes caractersticas de um Sistema Especialista consiste em sua
especialidade de alto nvel que auxilia na soluo de problemas. Este conhecimento
especializado pode representar a experincia dos melhores peritos no campo. Sua
especializao de alto nvel, juntamente com a habilidade de aplicao, torna seu custo
competitivo e apto a ganhar espao no mercado comercial. A flexibilidade do sistema
tambm auxilia aqui: ele pode crescer incrementalmente segundo as necessidades do
negcio ou organizao. Isto significa que pode se iniciar com um investimento
relativamente modesto expandindo-o de acordo com as necessidades.
O corpo de conhecimento do sistema que define a proficincia de um Sistema
Especialista pode tambm oferecer uma capacidade adicional: a memria institucional.
Se a base de conhecimento foi desenvolvida atravs de interao de pessoas chave da

42

organizao, isto representa a poltica corrente do grupo. Esta compilao de
conhecimento vem a ser o consenso de opinies de alto nvel de um registro permanente
das melhores estratgias utilizadas. Quando pessoas chaves desligam-se da organizao,
suas experincias permanecem.

3.3. Estrutura Geral
Nem todos os SEs apresentam a mesma estrutura, no entanto, em sua grande maioria so
constitudos por trs elementos fundamentais: base de conhecimento, motor de
inferncia e interface com o usurio, conforme pode ser observado na figura 3.1:

Figura 3.1 Estrutura bsica de um SE

3.3.1. A Base de Conhecimento
A base do conhecimento no uma simples coleo de informaes. A tradicional base
de dados com dados, arquivos, registros e seus relacionamentos estticos aqui
representada por uma base de regras e fatos e tambm heursticas que correspondem ao
conhecimento do especialista, ou dos especialistas do domnio sobre o qual foi
construdo o sistema. Convm destacar que muitos sistemas especialistas possuem alm
da base de conhecimento, a tradicional de base de dados de onde alguns fatos so
extrados e outros armazenados.
Esta base de regras, assim como a base de fatos, processada pelo motor de inferncia,
permitindo identificar as possibilidades de soluo e o processo de raciocnio e
inferncia que levam a concluses sobre o problema submetido ao sistema.
Na interao com a base de fatos e regras e com o usurio, obtm-se as informaes
necessrias para a resoluo do problema. Devido utilizao de heursticas, o usurio
requerido pelo sistema para prestar informaes adicionais e, a cada pergunta
respondida pelo usurio ou a cada nova informao, reduz-se o espao de busca a ser
percorrido pelo sistema, encurtando-se o caminho entre o problema e sua soluo.
Inicialmente uma base de conhecimento pode ser construda com poucas regras, mas,
dependendo da complexidade do ambiente e das necessidades de informaes variadas,
esta base poder eventualmente crescer para milhares de regras e fatos. Assim, preciso

43

que se tenha o cuidado de implementar instrumentos internos de refinamento que
possibilitem cortes e ajustes na base de conhecimento, para que o processo de busca
localize segmentos cujas regras e fatos contemplem situaes e circunstncias que
conduzam soluo dos problemas em questo.
Nos Sistemas Especialistas, o aprendizado ocorre com a incorporao de novas regras
nas bases de conhecimento. A cada processamento da base de conhecimento, o sistema
especialista assume como verdade o conhecimento ali formalizado. Isto possvel em
virtude da estrutura modular da base de conhecimento, permitindo a adio ou deleo
de novos elementos sem alterar a lgica global do sistema.
Em geral, o conhecimento formalizado em bases de conhecimento pode ser representado
por meio de regras de produo. O conjunto de regras de produo pode ser mapeado
em rores de deciso.
Amplamente utilizadas em algoritmos de classificao, as rvores de deciso so
representaes simples do conhecimento e, um meio eficiente de construir
classificadores que predizem classes baseadas nos valores de atributos de um conjunto
de dados.
As rvores de deciso so grafos acclicos que consistem de nodos que representam os
atributos, de arcos, provenientes destes nodos e que recebem os valores possveis para
estes atributos, e de nodos folha, que representam as diferentes classes de um problema.
Uma rvore de deciso tem a funo de particionar recursivamente um conjunto de
dados, at que cada subconjunto obtido deste particionamento contenha casos de uma
nica classe. Para atingir esta meta, a tcnica de rvores de deciso examina e compara a
distribuio de classes durante a construo da rvore. Os resultados obtidos, aps a
construo de uma rvore de deciso, so os dados organizados de maneira compacta,
que so utilizados para classificar novos casos.
A figura 3.2 apresenta um exemplo de rvore de deciso. Neste exemplo, so
trabalhados objetos que relatam as condies propcias de uma pessoa receber ou no
um emprstimo. considerada a possibilidades do montante do emprstimo ser mdio,
baixo ou alto. Alguns objetos so exemplos positivos de uma classe sim, ou seja, os
requisitos exigidos a uma pessoa, por um banco, so satisfatrios concesso de um
emprstimo, e outros so negativos, onde os requisitos exigidos no so satisfatrios
concesso de um emprstimo. Classificao, neste caso, a construo de uma estrutura
de rvore, que pode ser usada para classificar corretamente todos os objetos do
conjunto.
Muitos so os algoritmos de classificao que elaboram rvores de deciso. No h uma
forma de determinar qual o melhor algoritmo, um pode ter melhor desempenho em
determinada situao e outro algoritmo pode ser mais eficiente em outros tipos de
situaes.
O algoritmo ID3 foi um dos primeiros algoritmos para construo de rvore de deciso,
tendo sua elaborao baseada em sistemas de inferncia e em conceitos de sistemas de
aprendizagem. Logo aps foram elaborados diversos algoritmos, sendo os mais

44

conhecidos: C4.5, CART (Classification and Regression Trees), CHAID (Chi Square
Automatic Interaction Detection), entre outros.


Figura 3.2 Exemplo de rvore de deciso
Aps a construo de uma rvore de deciso importante avali-la. Esta avaliao
realizada atravs da utilizao de dados que no tenham sido usados na etapa de
construo da rvore. Esta estratgia permite estimar como a rvore generaliza os dados
e se adapta a novas situaes, podendo, tambm, se estimar a proporo de erros e
acertos ocorridos na construo da rvore.
A partir de uma rvore de deciso, possvel derivar regras. As regras so escritas
considerando o trajeto do nodo raiz at uma folha da rvore. Devido ao fato das rvores
de deciso tenderem a crescer muito, de acordo com algumas aplicaes, elas so muitas
vezes substitudas pelas regras. Isto acontece em virtude das regras poderem ser
facilmente modularizadas. Uma regra pode ser compreendida sem que haja a
necessidade de se referenciar outras regras.
Com base na rvore de deciso apresentada na figura 3.2, pode-se exemplificar a
derivao de regras. Dois exemplos de regras obtidas a partir desta rvore so mostrados
a seguir:
* Se montante = mdio e salrio = baixo
ento classe = no
* Se montante = mdio e salrio = alto
ento classe = sim



45

3.3.2. O Motor de Inferncia
O motor de inferncia um elemento essencial para a existncia de um sistema
especialista. o ncleo do sistema. por intermdio dele que os fatos e regras de
heurstica que compem a base de conhecimento so aplicados no processo de resoluo
do problema.
A capacidade do motor de inferncia baseada em uma combinao de procedimentos
de raciocnios que se processam de forma regressiva e progressiva.
Na forma de raciocnio progressivo, tambm denominado encadeamento para frente, as
informaes so fornecidas ao sistema pelo usurio, que com suas respostas, estimulam
o desencadeamento do processo de busca, navegando atravs da base de conhecimento,
procurando pelos fatos, regras e heursticas que melhor se aplicam a cada situao. O
sistema continua nesta interao com o usurio, at esgotar todas as possibilidades de
resposta para o problema.
No modelo de raciocnio regressivo, tambm denominado encadeamento para trs, os
procedimentos de inferncia do- se de forma inversa. O sistema parte de uma opinio
conclusiva sobre o assunto, podendo ser inclusive oriunda do prprio usurio, e inicia
uma pesquisa pelas informaes por meio das regras e fatos da base de conhecimento,
procurando provar se aquela concluso a mais adequada soluo para o problema
analisado.
Uma importante caracterstica dos Sistemas Especialistas o reuso do motor de
inferncia. Os demais componentes variam em funo da aplicao. O motor de
inferncia o mdulo do sistema responsvel pelo processo de inferncia que aplicado
sobre o conhecimento disponvel na base de conhecimento em funo dos fatos
informados via interface ou obtidos da base de dados.

3.3.2.1. Modo de Raciocnio
Conforme comentado na seo anterior, como componentes fundamentais de sistemas
baseados em regras, os motores de inferncia podem utilizar, basicamente, dois modos
de raciocnio para determinar um resultado: encadeamento progressivo ou
encadeamento para frente (do ingls, forward chaining), e encadeamento regressivo
ou encadeamento para trs (do ingls, backward chaining).
A base de conhecimento contm muitas regras SE/ENTO e fatos que so baseados nos
resultados das regras. Em geral, os motores de inferncia so desenvolvidos para
trabalhar com um dos modos de raciocnio. Nos casos em que o motor de inferncia
pode processar os dois modos, h a necessidade de que seja especificado qual o tipo de
encadeamento a ser utilizado.
Consideremos como exemplo um sistema especialista para conserto de casas. Um
encanador (especialista) foi entrevistado para obter o conhecimento formalizado nas
regras abaixo.



46

Regra 1:
Se voc tem uma torneira mal vedada
E
Se a torneira uma torneira de presso
E
Se o vazamento est na manivela
Ento
Aperte a porca de vedao.

Regra 2:
Se voc apertou a porca de vedao.
E
Se o vazamento persiste
Ento
Substitua a vedao.

Estas regras seriam armazenadas na base de conhecimento com os relacionamentos
SE/ENTO e E/OU mostrados acima.
A mquina de inferncia pode processar estas regras usando encadeamento para trs, se
comear com a soluo de substituir a vedao, e ento verificar tal soluo fazendo
perguntas ao usurio para verificar o resultado. As perguntas feitas ao usurio so
apenas para obter informaes que no esto na base de conhecimento.
A mquina de inferncia pode usar encadeamento para frente perguntando primeiro ao
usurio toda a informao necessria. Ento ela pega esta informao e tenta aplic-la a
diferentes regras para ver se ela se ajusta a quaisquer dos problemas previamente
descritos. Se ajustar, ento ela repassa a possvel soluo ao usurio.
Uma questo que surge naturalmente qual o melhor modo de encadeamento. A
resposta para tal questo pode ser dada com base nas seguintes heursticas:
Se o nmero de premissas (condies) no antecedente da regra for pequeno,
comparado com o nmero de concluses ento use o encadeamento para frente.
Se o nmero de concluses for pequeno, comparado com o nmero de premissas
ento use o encadeamento para trs.
H, no entanto, situaes em que se faz necessrio combinar os dois tipos de
encadeamento. Por exemplo, em diagnsticos mdicos, pois comum um mdico
observar o paciente, para depois criar uma hiptese que precisa ser confirmada com
exames complementares.

47

A tabela 3.2 apresenta uma comparao entre os dois tipos de encadeamento abordados,
mostrando algumas caractersticas em cada um deles.

Tabela 3.2 Comparao entre Forward e Backward Chaining
Encadeamento para Frente Encadeamento para trs
Dirigido aos dados Dirigido s metas
Planejamento, monitorizao e controle. Diagnsticos
Presente para o futuro
Presente para o passado
Antecedente de uma regra para o
conseqente.
Do conseqente de uma regra para o
antecedente.
Trabalha para frente para encontrar
solues, partindo dos fatos.
Trabalha para trs para encontrar fatos que
suportem as hipteses levantadas.
Os antecedentes das regras determinam a
busca.
Os conseqentes da regra determinam a
busca.

3.3.3. A Interface com o Usurio
A Interface com o usurio final talvez o elemento em que os desenvolvedores de
sistemas especialistas dedicam mais tempo projetando e implementando.
Um problema submetido a um sistema especialista endereado por estratgias de
busca. O sistema sempre retm elementos de memria que permitam o encaixe e o
encadeamento com outra estratgia, sempre marcando o caminho percorrido.
Para que isto ocorra, necessrio que a interface com o usurio seja bastante flexvel.
Assim, a interao entre sistema especialista e usurio conduz um processo de
navegao, eficiente, na base de conhecimento, durante o processamento das heursticas.
Uma interface com o usurio flexvel permite que o usurio descreva o problema ou os
objetivos que deseja alcanar. Permite, ainda, que usurio e sistema adotem um modelo
estruturado de consultas.
Isto facilita o processo de recuperao do caminho percorrido pelo sistema em tentativas
de solucionar o problema. Este caminho, denominado trace (trilha) muito importante,
pois a base de pesquisa para o desenvolvimento do processo de explanao.
O processo de explanao consiste na explicao, quando requerida pelo usurio, sobre
o "porqu" e o "como" o sistema chegou a determinada concluso, rumo soluo do
problema analisado. Neste momento, o sistema realiza um processo inverso de busca,
percorrendo as trilhas utilizadas e marcadas durante a sesso de consulta e apresentando
todos os argumentos que o levaram soluo apresentada. Este processo muito

48

importante e proporciona ao usurio subsdios para julgar se adota ou no a soluo
apresentada pelo sistema especialista.
Ainda, pode-se considerar o processo de explanao como importante instrumento que
poder ser utilizado para o treinamento do usurio, uma vez que apresenta conceitos
tericos e aplicaes prticas, reforando a tese da importncia das interfaces na
aplicao de sistemas especialistas.
A interface com o usurio pode assumir formas variadas, dependendo de como foi
implementado o sistema especialista. De qualquer forma, tem como principal objetivo
procurar tornar o uso do sistema fcil e agradvel, eliminando-se as complexidades.
3.4. Etapas de desenvolvimento de sistemas especialistas
Conforme descrito em (Passos, 1997), o desenvolvimento de um sistema especialista
normalmente realizado nas seguintes etapas:
Reconhecimento do Problema Como na Engenharia de Software tradicional, o
reconhecimento do problema a primeira etapa do processo de construo de
um sistema de informao. Envolve a percepo da necessidade de se dispor de
um sistema computacional, possivelmente dotado de inteligncia, para auxiliar
na realizao de tarefas em um determinado ambiente.
Estudo de Viabilidade O Estudo de Viabilidade consiste, entre outras funes,
em verificar a aderncia da utilizao de um sistema especialista na soluo do
problema. Existem problemas que so melhores solucionados utilizando-se
outras tecnologias. Por exemplo, se o problema a ser solucionado envolver
passos fixos pr-definidos, se no for para tomada de deciso ou for ser utilizado
na camada operacional de uma empresa, existe uma grande probabilidade de um
sistema especialista no ser a melhor soluo.
Aquisio e Formalizao do Conhecimento Durante essa etapa, o analista de
conhecimento procura compreender o problema, identificar as variveis
normalmente analisadas na soluo do problema e construir um modelo de
inferncia que permita, a partir das variveis fornecidas, obter respostas sobre o
referido problema. As variveis, tambm denominadas atributos do problema,
so propriedades mensurveis inerentes ao problema, como por exemplo, para
saber se uma pessoa est ou no com febre preciso saber a sua temperatura e
comparar a uma escala conhecida para fins de classificao. A combinao
desses atributos deve conduzir o sistema ao objetivo final que corresponde
soluo do problema. Ainda nesta etapa necessrio tambm identificar a classe
ou tipo de cada atributo, indicando, portanto, se este numrico ou categrico.
Em geral, o modelo de conhecimento composto por uma base de
conhecimento. Uma das formas de representao de conhecimento mais
utilizadas a de regras de produo. A unio das regras de produo de um SE
constitui a base de conhecimento desse sistema. Tal base pode ser criada por
meio de exemplos nos quais o especialista da rea fim indica, para cada situao,
a sua provvel concluso. Algoritmos como o ID3 (a ser comentado mais
adiante) permitem induzir bases de conhecimento a partir de situaes de
exemplo.

49

Projeto O projeto de um SE, assim como dos demais tipos de sistemas de
informao, consiste na definio de modelos que norteiem a implementao do
sistema. Envolve ainda a escolha de ambientes e linguagens com os quais o SE
dever ser codificado.
Implementao A implementao de um SE difere da implementao de um
sistema de informao convencional no que se refere incorporao de um
mdulo de processamento do conhecimento responsvel pela inferncia de
novos fatos a partir dos fatos associados a cada situao e do conhecimento
incorporado na base.
Testes e validao Esta etapa compreende, dentre outros aspectos normalmente
envolvidos na validao de um sistema de informao, a avaliao crtica do
conhecimento formalizado. Diversos casos de teste so apresentados de forma a
verificar a consistncia do modelo de conhecimento incorporado ao sistema.
Treinamento e Implantao Correspondem s etapas clssicas de ensino aos
futuros usurios do sistema quanto sua manipulao assim como a colocao
desse sistema em ambiente operacional.

3.5. Ferramentas
Nesta seo, so descritas algumas ferramentas de apoio construo de sistemas
especialistas.
3.5.1. Ferramentas de Aquisio de Conhecimento
A pesquisa na rea de aquisio de conhecimento tem focalizado o desenvolvimento em
ferramentas de aquisio de conhecimento automatizadas. Essas ferramentas so
projetadas para serem utilizadas diretamente pelo especialista do domnio, ajudando-o a
estruturar o conhecimento, com o objetivo de minimizar as intervenes do engenheiro
do conhecimento. O engenheiro do conhecimento tem atuado como um facilitador no
processo. Suas responsabilidades passam ento a ser:
Aconselhar os especialistas no processo de elicitao interativa do
conhecimento,
Estabelecer e gerenciar apropriadamente as ferramentas interativas de aquisio
do conhecimento,
Editar a base de conhecimentos codificada com a colaborao dos especialistas,
Validar a aplicao da base de conhecimentos com a colaborao dos
especialistas,
Estabelecer a interface com usurios em colaborao com os especialistas e
usurios,
Treinando os usurios no uso efetivo da base de conhecimentos em colaborao
com o especialista, atravs do desenvolvimento de procedimentos de
treinamento e operacionais.

50

Alm do exposto, mtodos automatizados podem ajudar a padronizar o processo de
aquisio do conhecimento, e o uso de tcnicas especficas para certos tipos de
conhecimento e metodologias em geral.
O uso de ferramentas automatizadas de aquisio de conhecimento pode trazer os
seguintes benefcios:
Aumento da qualidade da base de conhecimentos;
Uma base de conhecimentos que reflete melhor o modelo do especialista do
domnio;
Reduo do perodo de familiarizao do engenheiro do conhecimento com o
domnio.
Sem o intermedirio entre o especialista e o sistema, h menos possibilidades de
captao de informao errnea ou incompleta.
Para que o especialista possa codificar diretamente o seu conhecimento, sem muitos
riscos, necessrio que ele esteja ciente do problema, do modo que ele vai abordar a
soluo e da sua capacidade de conceitualizao sobre o domnio, alm de ser capaz de
analisar seu prprio conhecimento, de estar motivado para usar a ferramenta de forma
consciente e de assegurar o desempenho do modelo que ele codifica.
importante levantar a questo da dificuldade de reunir essas caractersticas em um
especialista de determinado domnio. A aquisio interativa pode ser combinada com a
aquisio manual e com o uso de ferramentas interativas por engenheiros ao invs, ou
com a cooperao, dos especialistas.
Sendo assim, pode-se dizer que um ambiente de aquisio do conhecimento no
fornecer solues mgicas, mas poder facilitar bastante a tarefa do especialista do
domnio e do engenheiro do conhecimento.
Seguem abaixo alguns exemplos de ferramentas de aquisio de conhecimento:
Ferramenta KSSO (Knowledge Support System Zero)
KSSO um ambiente grfico e interativo de aquisio do conhecimento, permitindo a
construo de bases de conhecimento orientadas a objetos, na qual o conhecimento
formalmente representado como uma estrutura de heranas mltiplas de classes, objetos,
propriedades, valores e relaes.
Este ambiente composto das seguintes ferramentas: Elicit (Elicitao Interativa),
FOCUS (Agrupamento Hierrquco, PrinCom (Agrupamento Espacial), Scio (Relaes
de conceitos em um grupo), Induct (Anlise lgica) e Export (Transferncia para shells).
O especialista pode ento especificar o domnio e o contexto do problema, e entrar com
atributos ainda confusos. Ao trabalhar com caso, de preferncia um que represente
caractersticas crticas do problema, ele descobre que os atributos definidos no so
suficientes. A ento, com a ajuda da ferramenta, ele pode visulizar o conjunto de dados
da base de conhecimento e perceber o que est faltando. A aquisio do conhecimento
se d por um processo de tentativa e erro, j que difcil para o especialista transmitir
rpida e resumidamente, de maneira organizada e bem estruturada, todo o conhecimento
que levou anos e anos para acumular.

51

Em desenvolvimento de sistemas em larga escala, estruturas de conhecimento para
diferentes sub-domnios devem ser construdas. A ferramenta de aquisio pode ser
usada para desenvolver e validar essas estruturas de conhecimento. As bases geradas
podem ento ser combinadas atravs de estruturas de controle apropriadas.
O ambiente KESSO est implementado na linguagem Pascal e roda em computadores
Apple Macintosh.
Ferramenta KMC ( The Knowledge Mining Center)
KMC um ambiente integrado para aquisio de conhecimento, para suporte ao
processo de entrevistas, utilizando tecnologia de multimdia. Ele processa um
documento de entrevista estruturada, armazenando tanto as anotaes do engenheiro do
conhecimento, como o registro em udio da sesso. Esses registros so segmentados e
anexados questo associada.
A utilizao do KMC feita em trs passos: preparao do documento de entrevista,
realizao da entrevista, com possibilidade de modificao do documento, avaliao do
documento de entrevista modificado.
Originalmente o KMC oferecia suporte somente etapa de realizao da entrevista, mas
tambm pode ser utilizada na preparao e avaliao da mesma.
No incio da realizao de uma entrevista, o KMC l um documento estruturado de
entrevistas, disponibilizando informaes na tela atravs do navegador de entrevistas. O
usurio pode acessar o navegador, ou o painel de controle de entrevistas, ou ainda
digitar comandos rpidos. Desta forma ele pode selecionar questes ou informaes
adicionais. Todas as funcionalidades esto disponveis tanto no modo navegador como
no modo de entrevista. Essa ferramenta foi implementada em Emacs-Lisp.
Ferramenta KESAQ (Knowledge Expert System Aquisition)
O KESAQ uma ferramenta brasileira gerada a partir de uma dissertao de mestrado
do Instituto Militar de Engenharia.
Permite a construo de bases de conhecimento a partir de planilhas preenchidas pelo
especialista. Para tanto, devem se informados os atributos (questes) do problema e o
objetivo a ser concludo. Todos os valores possveis dos atributos e do objetivo devem
ser informados. Com estes dados, o KESAQ gera uma planilha com todas as
combinaes possveis entre os valores dos atributos identificados. O especialista
preenche a planilha informando para cada situao, qual a resposta julga mais adequada.
Uma vez preenchida a planilha, o KESAQ permite a gerao automtica da base de
conhecimento, no formato de regras de produo e de rvore de deciso. Utiliza para
tanto, o algoritmo ID3, verso preliminar o algoritmo C4.5. Na tabela 3.3 segue um
exemplo simplificado e fictcio de uma planilha no cenrio da anlise de crdito. As
figuras 3.3 e 3.4 mostram, respectivamente a rvore de deciso e as regras de produo
geradas pelo KESAQ por meio do ID3. Convm destacar que o algoritmo simplificou a
base de conhecimento gerando apenas 3 regras ao invs das 4, naturalmente esperadas a
partir da planilha de 4 linhas (um regra por linha da planilha). Observe que, nos casos
em que a renda for considerada baixa, a resposta sempre a mesma, independente do
valor assumida pelo atributo despesa. Tal situao permitiu a simplificao. Maiores

52

detalhes sobre o algoritmo ID3 podem ser obtidos em referncias especializadas sobre o
tema como, por exemplo, (Quinlan, 1993).

Tabela 3.3: Exemplo de planilha fictcia preenchida por um especialista
Renda Despesa Resposta (AP, NG, ES)
Alta Baixa AP
Alta Alta ES
Baixa Baixa NG
Baixa Alta NG


Figura 3.3: rvore de deciso associada planilha da Tabela 3.3


Figura 3.4: Regras de Produo associadas rvore de deciso da figura 3.3



53

3.5.2. Ferramentas para Construo de Sistemas Especialistas
Expert SINTA (Uma ferramenta visual para criao de sistemas especialistas)
O Expert SINTA uma ferramenta computacional que utiliza tcnicas de Inteligncia
Artificial para construo de sistemas especialistas. Esta ferramenta utiliza um modelo
de representao do conhecimento baseado em regras de produo e probabilidades,
tendo como objetivo principal simplificar o trabalho de implementao de sistemas
especialistas atravs do uso de uma mquina de inferncia compartilhada do tratamento
probabilstico das regras de produo e da utilizao de explicaes sensveis ao
contexto da base de conhecimento modelada. Um sistema especialista baseado em tal
tipo de modelo bastante til em problemas de classificao. O usurio responde a uma
seqncia de menus, e o sistema se encarregar de fornecer respostas que se encaixem
no quadro apontado pelo usurio. Entre outras caractersticas inerentes ao Expert
SINTA, podem ser destacadas:
Utilizao do encadeamento para trs (backward chaining);
Utilizao de fatores de confiana tanto para regras quanto para as respostas
fornecidas.
Ferramentas de depurao;
Possibilidade de incluir ajudas on-line para cada base.
SEGSE (Sistema Especialista na Gerao de Sistemas Especialistas)
O SEGSE, produto de um trabalho de concluso do curso de Cincia da Computao do
Centro Univesitrio da Cidade (Mendes, 2005), foi concebido de forma fornecer apoio
nas etapas de Estudo de Viabilidade, Anlise e Modelagem do Conhecimento, Projeto e
Implementao do Sistema Especialista. Incorpora conhecimento tcnico para auxiliar
na realizao de cada uma dessas etapas. Esse conhecimento pode ser configurado por
um ou mais analistas de conhecimento, especialistas no desenvolvimento de SEs. A
figura 3.5 apresenta o diagrama de casos de uso com as principais funcionalidades do
SEGSE.
Existem dois atores distintos na utilizao do SEGSE. O analista de conhecimento o
principal operador do sistema. Responde a diversas perguntas formuladas pelo SEGSE,
que fornece pareceres sobre o desenvolvimento do SE em questo. O especialista na
rea em que se deseja criar o SE interage com SEGSE de forma pontual durante a etapa
de Aquisio e Modelagem do Conhecimento.
Embora recomendado para analistas de conhecimento aprendizes na rea de sistemas
especialistas, o SEGSE pode ser utilizado como instrumento para gerao rpida de
prottipos de SEs para testes e validao.
A seguir encontram-se comentados os casos de uso evidenciados na figura 3.5.
Validar Aderncia do Projeto Este caso de uso tem como objetivo auxiliar
a etapa de Estudo de Viabilidade. Para tanto, procura verificar se o contexto
onde se deseja aplicar o SE , de fato, um problema ao qual a soluo por
sistemas especialistas se mostra adequada. Este processamento realizado

54

sobre uma base de conhecimento construda com o objetivo de classificar
problemas como aderentes ou no tecnologia de sistemas especialistas.

Definir atributos Nesta funcionalidade, o SEGSE procura apoiar a etapa de
Aquisio e Formalizao do Conhecimento na definio de quais devem ser
as questes consideradas no SE em construo. De forma anloga ao caso de
uso anterior, o SEGSE busca validar a aderncia de cada candidato a atributo
como uma varivel efetiva do problema em questo. Tambm neste
processamento o SEGSE possui uma base de conhecimento prpria para a
classificao de um atributo como sendo de natureza compatvel com aquela
esperada para atributos de SEs.














Figura 3.5 Diagrama de Casos de Uso do SEGSE

Definir Valores Aps a classificao de cada atributo como uma varivel
efetiva para utilizao no sistema especialista em construo, o SEGSE
procura auxiliar na validao dos provveis valores do referido atributo.
Tambm de forma anloga aos casos de uso anteriores, o SEGSE possui uma
base de conhecimento cujo objetivo classificar cada candidato a valor de
atributo como um valor de natureza compatvel com a esperada para valores
de atributos de SEs.
Definir Objetivo A realizao deste caso de uso apia a etapa de Aquisio
e Formalizao do Conhecimento e requer que pelo menos dois atributos do
sistema especialista em construo tenham sido especificados. O
processamento deste caso de uso realizado sobre uma base de

55

conhecimento prpria, desenvolvida com o objetivo de auxiliar na
classificao, dentre os atributos do sistema, quais podem ser eventuais
objetivos do SE. Para tanto, questes sobre cada atributo devem ser
previamente respondidas pelo analista de conhecimento usurio do SEGSE.
Especificar Dados do Projeto Na especificao dos dados do projeto o
analista de conhecimento deve preencher informaes sobre projeto do SE
em desenvolvimento, tais como nome, descrio e autor.
Preencher Planilha de Conhecimento Ainda como apoio etapa de
Aquisio e Formalizao do Conhecimento, este caso de uso tem como
objetivo permitir que o especialista sobre o domnio da aplicao do SE em
construo indique seu parecer em exemplos gerados pelo SEGSE. Os
exemplos so apresentados em uma planilha, formada por todas as
combinaes entre os valores de todos os atributos. Cada linha da planilha
uma combinao nica dos valores dos atributos. Sendo assim, o nmero de
linhas da planilha vai depender exclusivamente da quantidade de valores dos
atributos existentes. O especialista deve selecionar um valor do atributo
objetivo para cada linha da planilha. Ele deve escolher o valor que expressa a
melhor resposta para a situao encontrada no conjunto de valores dos
atributos em cada linha.
Gerar Sistema Especialista Este caso de uso tem como objetivo apoiar as
etapas de Projeto e de Implementao do SE em construo. A gerao do
SE depende da realizao de todos os casos de uso anteriores e inclui o caso
de uso Gerar Base de Conhecimento. De forma anloga ao KESAQ, a
gerao da base de conhecimento produz um conjunto de regras induzido a
partir da planilha de conhecimento utilizando o algoritmo clssico ID3.
Como sada, o SEGSE produz o cdigo que implementa a arquitetura
genrica de SEs apresentada na figura 3.1. O sistema produzido pode esto
ser executado como prottipo do SE desejado.

As interfaces do SEGSE foram implementadas no mesmo padro das interfaces dos
sistemas especialistas gerados com auxlio da ferramenta.
Convm enfatizar que o conhecimento incorporado ao SEGSE para realizao dos casos
de uso mencionados anteriormente configurvel. Isto significa que diferentes verses
do SEGSE podem ser produzidas por diferentes especialistas no desenvolvimento de
sistemas de especialistas. Cada especialista pode, em funo de suas experincias
prvias, configurar atributos, valores e bases de conhecimentos manipulados pelo
SEGSE. Essa configurao pode ser criada ou mesmo editada a partir do prprio
ambiente do SEGSE, uma vez que as estruturas de entrada e sada utilizadas pela
ferramenta e pelos sistemas gerados so as mesmas.

3.6. Alguns Exemplos de SEs
Nesta seo, so descritas algumas aplicaes de sistemas especialistas.

56

Conforme comentado no captulo 1, o MYCIN foi um dos primeiros e mais conhecidos
sistemas especialistas, sendo considerado um marco na IA. Foi criado inicialmente para
diagnosticar e sugerir tratamento para doenas no sangue e desenvolvido na
Universidade de Stanford, a partir de 1972. A principio era essencialmente um projeto
acadmico, mas influenciou enormemente a maioria dos sistemas especialistas que
estavam por vir. Utilizava o encadeamento para trs (backward) a fim de descobrir que
organismos estavam presentes no sangue, para, em seguida, aplicar o encadeamento para
frente (forward) de forma a inferir sobre o regime de tratamento.
O META-DENDRAL, criado em 1978, foi o primeiro programa a usar tcnicas de
aprendizagem para construir automaticamente regras para um sistema especialista. Ele
criava regras para serem usadas pelo DENDRAL, cuja tarefa, tambm comentada no
captulo1, era determinar a estrutura de compostos qumicos complexos. O META-
DENDRAL era capaz de induzir suas regras com base em um conjunto de dados sobre
espectrometria de massa. Desse modo, ele conseguia identificar as estruturas
moleculares com preciso bastante alta.
O PROSPECTOR foi um sistema especialista voltado ao aconselhamento sobre a
explorao de minerais. Foi criado no final da dcada de 70 pela SRI International.
um sistema digno de ser mencionado pelas seguintes razes:
Primeiro, ele se propunha a resolver problemas de extrema dificuldade, os
quais at mesmo os melhores especialistas disponveis (gelogos
principalmente) no eram capazes de solucionar com um alto grau de
certeza;
Segundo, ele ilustra uma abordagem bastante diferente para sistemas
especialistas pois envolvia a manipulao de probabilidades de ocorrncia
dos fatos.
So muitas as aplicaes reais de sistemas especialistas, o que fornece um indicativo da
tradio e da aplicabilidade desse tipo de tecnologia. Outros exemplos de sitemas
especialistas podem ser obtidos, por exemplo, em (Chappetta, 2004), (Cazarotti e
Menezes, 2004), (Goldschmidt, 2004), (Nunes, 2003), (Baio, 2002).

57

Captulo
4

Lgica Nebulosa
4.1. Consideraes Iniciais
Transformar conhecimento tcito em explcito, capturando a experincia e o
conhecimento do especialista humano o desafio da inteligncia computacional.
Colocar as regras de um negcio em uma Base de Conhecimento e explicar
detalhadamente o raciocnio obtido para se chegar a um resultado o objetivo de um
sistema inteligente. A tarefa de aquisio de conhecimento voltada construo de
sistemas de apoio deciso certamente no uma tarefa trivial enfrentada por
profissionais da rea de Inteligncia Artificial. Muitas vezes, o raciocnio dos
especialistas envolve conceitos subjetivos, abstratos e imprecisos que os sistemas
especialistas tm dificuldade de expressar.
A Lgica Nebulosa ou Difusa (Fuzzy Logic, em ingls) uma teoria matemtica que
tem como principal objetivo permitir a modelagem do modo aproximado de raciocnio,
imitando a habilidade humana de tomar decises em ambientes de incerteza e
impreciso. Com conceitos e recursos da Lgica Nebulosa pode-se construir sistemas
inteligentes de controle e suporte deciso que lidem com informaes imprecisas e
subjetivas, tais como:
Investimento de alto risco
Presso mdia
Fluxo muito intenso
Temperatura alta
Muito jovem
So todas expresses lingsticas cuja interpretao pode variar de um indivduo para
outro, sendo portanto, expresses nebulosas.
Como exemplos de aplicaes industriais e comerciais da Lgica Nebulosa, podem ser
citados:
Aparelhos de Refrigerao
Filmadoras
Freios Antiderrapantes
Sistema de Anlise de Crdito
Deteco de Fraude em Seguradoras
Sistema de Anlise de Investimentos
Dentre muitos outros...

58

Para uma melhor compreenso dos fundamentos e das aplicaes da Lgica Nebulosa,
os principais conceitos sero definidos e comparados com conceitos da Lgica Clssica
e da tradicional Teoria de Conjuntos.
4.2. Conjuntos Nebulosos
Existem trs formas de se definir conjuntos na Teoria de Conjuntos:
a) Representao Explcita Enumerando todos os elementos que pertencem ao
conjunto.
Por exemplo: A= {-2,-1, 0, 1, 2}
b) Representao Implcita Descrevendo uma lei de formao do conjunto, ou seja,
indicando as propriedades dos elementos que pertencem ao conjunto.
Por exemplo, A= {X Z / |x| 2}
c) Representao pela Funo Caracterstica A funo caracterstica de um conjunto
A, XA : U {0,1}, uma funo que associa a cada elemento do universo de discurso
U um valor binrio. Este valor indica se o elemento pertence (1) ou no pertence (0) ao
conjunto A.

=
A X se
A X se
.. , 1
.. , 0
(x) X
A

O grfico de funo caracterstica associada ao conjunto A dos exemplos anteriores
encontra-se ilustrado na figura 4.1.

Figura 4.1. Grfico da funo caracterstica do conjunto A
Segundo a Lgica Clssica, tambm denominada crisp, uma sentena s pode assumir
um dentre os valores verdade: Verdadeiro ou Falso. Analogamente, um elemento
pertence ou no pertence a um conjunto. No existe situao intermediria. Nesta teoria,
os conjuntos e as regras so rgidos.

Consideremos os seguintes conjuntos como exemplos:

Muito Jovem= {x pessoa/ idade (x) < 10}
Jovem= {x pessoa/ 10 idade (x) < 40}
Velho= {x pessoa/ 40 idade (x) < 60}

59

Muito Velho= {x pessoa/ idade (x) 60}

Jos e Joo tm respectivamente 39 e 40 anos. Segundo os conceitos definidos pelos
conjuntos acima, Jos considerado jovem e Joo velho. H uma mudana muito
abrupta de um conceito (jovem) para o outro (velho).
A Lgica Nebulosa, assim como a Teoria dos Conjuntos Nebulosos, busca introduzir
mecanismos que tornem mais suave a transio entre conceitos. Um deles a funo de
pertinncia
A
: x [0,1] que expressa o quanto um elemento x pertence ao conjunto
A.
A
(x
0
) o grau de pertinncia do elemento x
0
ao conjunto A. O grau de
pertinncia
A
(x
0
) indica o quo o valor x
0
compatvel com o conceito representado
pelo conjunto A. Quanto mais prximo
A
(x
0
) for de 1, significa maior compatibilidade
de x
0
com o conceito representado pelo conjunto A. Por outro lado, quanto menos
compatvel x
0
for em relao ao conceito A, menor ser
A
(x
0
). A um conjunto
nebuloso.
A figura 4.2 mostra quatro exemplos de conjunto nebulosos construdos em funo da
varivel Idade. Todos os conjuntos apresentam formatos de trapzio.

Figura 4.2. Exemplos de conjuntos nebulosos associados varivel Idade

Pode-se perceber pelo exemplo que uma pessoa que possua 40 anos, por exemplo,
pertence ao mesmo tempo aos conjuntos jovem e velho, com graus de pertinncia 0,65 e
0,45, respectivamente.


velho
(40)= 0,45
muito jovem
(40)= 0

jovem
(40)= 0,65
muito velho
(40)= 0

A pessoa em questo simultaneamente jovem e velha. Pelos graus de pertinncia,
observa-se que ela no nem to jovem e nem to velha.


60

4.3. Representao de Conjuntos Nebulosos
Existem diversos formatos para a representao de conjuntos nebulosos. A escolha de
um determinado formato deve ser norteada pela compatibilidade do formato com o
conceito que se deseja representar. Merecem destaque, no entanto, os formatos
triangular e trapezoidal, que so muito utilizados em diversas aplicaes da Lgica
Nebulosa.
Uma funo de pertinncia triangular expressa pela frmula abaixo e representada
graficamente na figura 4.3.

=
b x se
b m x se m b x b
m a x se a m a x
a x se
x
.. ,.. 0
[ , .[ . .. ),.. /( ) (
[ , .] . .. ),.. /( ) (
.. ,.. 0
) (


Figura 4.3. Funo de pertinncia triangular


61

Abaixo encontra-se a forma geral de uma funo de pertinncia trapezoidal, ilustrada na
figura 4.4.

=
d x se
d c x se c d x d
c b x se
b a x se a b a x
a x se
x
.. , 0
[ , ] .. ), /( ) (
] , .[ .. , 1 ..... ..........
[ , ] .. ), /( ) (
.. , 0
) (

Figura 4.4. Grfico de representao da pertinncia trapezoidal

Uma funo de pertinncia gaussiana expressa pela frmula abaixo e representada
graficamente na figura 4.5.
( )
2
2
|

\
|

=
v
m x
e x

Onde m a mdia e v o desvio padro da distribuio

Figura 4.5. Funo de pertinncia gaussiana

62

Uma funo de pertinncia do tipo sino expressa pela frmula abaixo e representada
graficamente na figura 4.6.
( )
b 2
1
1
a
c x
x

+
=

Onde c o centro da curva

Figura 4.6. Funo de pertinncia do tipo sino

Uma funo de pertinncia sigmoidal expressa pela frmula abaixo e representada
graficamente na figura 4.7.



Figura 4.7. Funo de pertinncia sigmoidal

( )
( ) c x a
1
1

+
=
e
x

63

Uma funo de pertinncia singleton apenas um valor possui grau de pertinncia 1. Os
demais possuem grau de pertinncia 0. A figura 4.8 ilustra graficamente essa funo.


Figura 4.8. Funo de pertinncia singleton

4.4. Medidas de Impreciso
Antes de prosseguirmos, torna-se necessrio esclarecer a diferena entre probabilidade e
grau de pertinncia, duas medidas frequentemente utilizadas para expressar impreciso.
Para facilitar a compreenso, consideremos a seguinte situao ilustrada graficamente na
figura 4.9: Um turista deseja continuar seu caminho de modo seguro at a cidade mais
prxima. Ao chegar em uma bifurcao encontra um poste com duas placas. A placa
que aponta para o lado esquerdo tem escrito: Caminho seguro com grau de pertinncia
0.95; e a placa que aponta para o lado direto tem os seguintes dizeres: Caminho
seguro com probabilidade de 95%. Pergunta-se: Qual o caminho que esse turista deve
realmente escolher? Por que?
Caminho Seguro
Probabilidade: 95%
Caminho Seguro
Grau de Pertinncia: 0,95
Caminho Seguro
Probabilidade: 95%
Caminho Seguro
Grau de Pertinncia: 0,95

Figura 4.9. Qual deve ser a escolha do turista?
A escolha do turista deve ser pelo caminho da esquerda, conforme ilustra a figura 4.10.
A justificativa para tal escolha a seguinte: A probabilidade expressa as chances de que

64

o caminho seja seguro, mas no se tem idia do quanto seguro ele . Por outro lado, o
grau de pertinncia expressa com certeza absoluta o quanto o caminho seguro. Em um
intervalo de 0 at 1, um grau de pertinncia de 0,95 um grau de altssima
compatibilidade com o conceito de segurana. Assim, considerando a margem de
incerteza da probabilidade e a certeza da segurana expressa pelo alto grau de
pertinncia, conclui-se que, de fato, o caminho da esquerda a escolha mais sensata.

Figura 4.10. A escolha certa: o caminho da esquerda

4.5. Variveis Lingsticas
Uma varivel lingstica um objeto utilizado para representar de modo impreciso um
conceito em um determinado problema. Seus valores so expresses lingsticas
subjetivas tais como quente, alto, jovem. Variveis lingsticas diferem das variveis
numricas, que admitem apenas valores precisos. Os valores de uma varivel lingstica
so conjuntos nebulosos.

Exemplo: Varivel Numrica : Temperatura = 40
Varivel Lingstica: Temperatura Alta

Os valores de uma varivel lingstica definem uma estrutura de conhecimento
denominada de partio nebulosa desta varivel.
A figura 4.11 apresenta um exemplo de partio nebulosa possvel para a
varivel temperatura.



(x)
Caminho Seguro
Probabilidade: 95%
Caminho Seguro
Grau de Pertinncia: 0,95
Caminho Seguro
Probabilidade: 95%
Caminho Seguro
Grau de Pertinncia: 0,95

65

1 Baixa Mdia Alta

0,5


Figura 4.11. Exemplo de varivel lingstica

4.6. Operadores Nebulosos
Nesta seo so apresentadas algumas operaes sobre conjuntos nebulosos. Todas
possuem correspondentes na clssica Teoria de Conjuntos.

Sejam A e B dois conjuntos nebulosos:

4.6.1. Pertinncia do operador nebuloso de interseo

A funo de pertinncia do operador nebuloso de interseo, denominado T-Norm, pode
ser definida de diversas maneiras. Abaixo esto trs dos exemplos mais usuais:

B
(x)= min {
A
(x) ,
B
(x)} (Mnimo Zadeh)


Figura 4.12. Ilustrao grfica do T-Norm de Zadeh




B
(x)=
A
(x) *
B
(x) (Produto)

0 30 36 40 T

66


Figura 4.13. Ilustrao grfica do T-Norm do Produto

B
(x)= max{0,
A
(x) +
B
(x) -1} (Lukasiewicz)


Figura 4.14. Ilustrao grfica do T-Norm de Lukasiewicz

Assim como na Lgica Clssica, a operao de interseo corresponde ao operador
lgico de conjuno E.
A idade de uma pessoa de 40 anos, isso representa que ela jovem, com grau de
pertinncia de 0.6 e velha com grau de pertinncia de 0.4. Logo, utilizando o T-Norm de
produto, tem-se que:

jovemvelho
(40) =
jovem
(40) *
velho
(40) = 0.6 * 0.4 = 0.24
Estes valores representam que a pessoa em questo pertence ao conjunto de pessoas
jovens e velhas com um grau de pertinncia de 0.24.
Analogamente, utilizando o T-Norm de mnimo, tem-se que:

jovemvelho
(40) = min{
jovem
(40),
velho
(40)} = min{0.6, 0.4} = 0.4
E, por fim, utilizando o T-Norm de Lukasiewicz, tem-se que:

jovemvelho
(40) = max{0,
A
(40) +
B
(40) -1} = max{0, 0.6 + 0.4 -1 } = 0
Generalizando, sejam a e b graus de pertinncia a conjuntos nebulosos e T qualquer
funo T-Norm. Ento T deve dispor das seguintes propriedades:
Comutatividade: T(a,b) =T(b,a)
Associatividade: T(a,T(b,c))=T(T(a,b),c)
Monotonicidade: a b e c d, ento T(a,c) T(b,d)

67

Coerncia nos contornos: T(a,1) = a e T(a,0) = 0

4.6.2. Pertinncia do operador nebuloso de unio
A funo de pertinncia do operador nebuloso de unio, denominado T-Conorm (ou S
norm), pode ser definida, por exemplo, como:

B
(x)= max {
A
(x) ,
B
(x)} (Mximo)

Figura 4.15. Ilustrao grfica do T-Conorm de Mximo

B
(x)= min {1,
A
(x) +
B
(x) } (Soma Limitada)

Figura 4.16. Ilustrao grfica do T-Conorm de Soma Limitada

Assim como na Lgica Clssica, a operao de unio corresponde ao operador lgico de
disjuno OU.
Prosseguindo com o exemplo apresentado anteriormente em que uma pessoa de 40 anos
jovem, com grau de pertinncia de 0.6 e velha com grau de pertinncia de 0.4. Logo,
utilizando o T-Conorm de mximo, tem-se que:

jovemvelho
(40) = max {
jovem
(40) ,
velho
(40)} = max {0.6, 0.4}= 0.6
Estes valores representam que a pessoa em questo pertence ao conjunto de pessoas que
so jovens ou velhas com um grau de pertinncia de 0.6.
Analogamente, utilizando o T-Conorm de soma limitada, tem-se que:

jovemvelho
(40) = min {1,
jovem
(40) +
velho
(40)} = 1
Generalizando, sejam a e b graus de pertinncia a conjuntos nebulosos e S qualquer
funo T-Conorm (ou S-Norm). Ento devem ser vlidas as seguintes propriedades:
Comutatividade: S(a,b) = S(b,a)

68

Associatividade: S(a,S(b,c))=S(S(a,b),c)
Monotonicidade: a b e c d, ento S(a,c) S(b,d)
Coerncia nos contornos: S(a,1) = 1 e S(a,0) = a

4.6.3. Pertinncia do operador nebuloso de complemento
A funo do operador nebuloso de complemento pode ser definida por:

A
(x)= 1 -
A
(x)
Utilizando ainda o exemplo anterior, o grau de pertinncia ao conjunto no jovem de
uma pessoa de 40 anos seria calculado por:

no jovem
(40) = 1 -
jovem
(40) = 1 - 0.6 = 0.4
A operao de complemento corresponde ao operador lgico de negao No.

4.7. Regras Nebulosas
Uma das formas de representao nebulosa do conhecimento mais comum a
representao por meio de regras de produo nebulosas, ou simplesmente regras
nebulosas. A estrutura geral de uma regra nebulosa expressa por uma implicao do
tipo:
SE < antecedente nebuloso> ENTO <conseqente nebuloso>
O antecedente nebuloso formado por condies nebulosas que, quando satisfeitas,
determinam o processamento do conseqente por um mecanismo de inferncia
nebulosa.
O conseqente nebuloso, por sua vez, composto por um conjunto de aes nebulosas
ou diagnsticos nebulosos que so gerados a partir do disparo da regra.
Uma condio nebulosa, assim como uma ao ou diagnstico nebuloso, um
predicado que envolve uma varivel lingstica e um conjunto nebuloso.
Alguns exemplos de regras nebulosas:
SE idade meia-idade E presso baixa ENTO seguro baixo.
SE idade jovem E presso alta ENTO seguro alto.

4.8. Arquitetura Funcional de um Sistema de Inferncia Nebuloso
Embora existam vrios modelos de Inferncia Nebulosa, por limitaes de espao ser
descrito aqui apenas o modelo Mamdani que foi, durante muitos anos, um padro para a
aplicao dos conceitos de Lgica Nebulosa em processamento de conhecimento.


69

Abaixo encontra-se a forma geral de uma regra tpica do modelo Mamdani :

SE X1 = A1 e ... e Xn = An

ENTO Y1 = B1 e ... e Ym = Bm

A figura 4.17 apresenta a arquitetura funcional genrica de um sistema de inferncia
nebuloso.













Figura 4.17. Arquitetura Funcional Genrica de um Sistema Nebuloso
Para melhor compreenso do funcionamento desta arquitetura, considere o seguinte
exemplo de um sistema nebuloso para definio do valor de aplice de seguro de vida
de clientes de uma seguradora.

a) Variveis lingsticas e respectivos conjuntos nebulosos:

Tabela 4.1. Variveis lingsticas do exemplo
Variveis Tipo Conjuntos Nebulosos
Idade Entrada Meia Idade / Jovem
Presso Entrada Alta / Baixa
Seguro Sada Alta / Baixa

Entradas
Precisas

Defuzzificao

Fuzzificao
Sadas
Precisas

Conjuntos
Nebulosos

Regras
Nebulosas

Inferncia
Nebulosa
Base de Conhecimento

70

Tabela 4.2. Conjuntos nebulosos (com representao tabular) do exemplo.


b) Regras Nebulosas (apenas duas para simplificar o exemplo)

SE idade meia-idade E presso baixa ENTO seguro baixo.
SE idade jovem E presso alta ENTO seguro alto.

Deseja-se neste exemplo, determinar qual o valor da aplice de seguro a ser pago pelo
cliente a partir dos valores de idade e de presso deste cliente. As entradas e as sadas do
sistema devem ser valores escalares, precisos. Considere que desejamos saber qual o
valor da aplice de seguro a ser paga pelo cliente Joo de 35 anos e presso (130,70).

O primeiro mdulo da arquitetura (fuzzificao) responsvel por identificar os graus
de pertinncia dos valores de entrada em relao aos conjuntos nebulosos
correspondentes.
No exemplo:

Idade Presso

meia idade
(35) = 0.8
Alta
(130,70) = 0.5

jovem
(35) = 0.6
Baixa
(130,70) = 0.6

Em seguida, o mdulo de inferncia nebulosa, baseado nos graus de pertinncia
identificados anteriormente, processa as regras nebulosas existentes na base de
conhecimento.

71

O processamento de cada regra envolve o clculo da interseo entre os conjuntos
indicados no antecedente da regra. Este processo gera um grau de pertinncia de disparo
para cada regra.

No exemplo:

Regra 1:
SE idade meia-idade (0.8) e presso baixa (0.6) ENTO seguro baixo
(grau de disparo da regra = Min {0,8;0,6}= 0,6)

Assim, por esta regra o seguro baixo com grau de pertinncia 0.6

Regra 2:
SE idade jovem (0.6) e presso alta (0.5) ENTO seguro alto
(grau de disparo da regra = Min{0.6, 0.5}=0.5)

Assim, por esta regra, o seguro alto com grau de pertinncia 0.5.

Finalizando, o processo de defuzzificao transforma os conjuntos acima em uma
sada precisa. Para tanto, primeiro identifica o valor de seguro associado ao grau de
disparo de cada regra. Convm destacar que o processo resultou em apenas um valor por
conjunto pois as funes de pertinncia de ambos os conjuntos so monotnicas, ou
seja, um grau de pertinncia no se encontra associado a mais do que um valor de
seguro por conjunto.

Sendo:
alto
(X)= 0.5 e
baixo
(Y)= 0.6
Portanto: X=800 e Y=700

Em seguida, aplica-se a mdia ponderada aos valores de seguro indicados por cada regra
e os respectivos graus de disparo:

Seguro= (0.5x800)+(0.6x700) = 400+420 = 820 = 745.45
0.5+0.6 1.1 1.1
Assim sendo, pelo sistema nebuloso exemplificado acima, um cliente de 35 anos com
presso 130x70 deve pagar uma aplice de seguro de R$ 745,45 (sada precisa).

72


Caso o leitor deseje, maiores detalhes sobre Lgica Nebulosa e Sistemas Nebulosos
podem ser obtidos nas seguintes referncias recomendadas: (Bojadziev & Bojadziev,
1997), (Pedrycz & Gomide, 1998) e (Rezende, 2003).

73

Captulo
5

Redes Neurais Artificiais
5.1. Introduo
O estudo das redes neurais artificiais (RNAs) algo fascinante e esse fascnio aumenta
medida que se tem mais a respeito do assunto. Trata-se de uma rea de grande
importncia para a computao e suas aplicaes, responsvel pela soluo de inmeros
problemas complexos. Este captulo apresenta alguns dos principais conceitos bsicos
sobre o assunto.
5.1.1. Um breve histrico
Conforme comentado no captulo 1, as primeiras informaes sobre neurocomputao
surgiram em 1943, em artigos do neurofisiologista Warren McCulloch, do MIT, e do
matemtico Walter Pitts da Universidade de Illinois. Em um primeiro trabalho sobre
neurnios formais, eles apresentaram um modelo matemtico de simulao do
processo biolgico que ocorre em clulas nervosas vivas. O modelo procurava simular
artificialmente o comportamento de um neurnio natural. Neste modelo, o neurnio
artificial possua apenas uma sada, produzida em funo da soma dos valores de suas
diversas entradas. Em ternos fsicos, o trabalho consistia num modelo de resistores
variveis e amplificadores representando conexes sinpticas (sinapse o nome dado
conexo existente entre neurnios) de um neurnio biolgico.
O motivo pelo qual mquinas inspiradas na biologia so diferentes das mquinas atuais
se encontra no fato de que as mquinas atuais baseiam seu processamento
explicitamente em modelos algoritmicos, em que o comportamento diante de todas as
situaes possveis deve ser previamente programado. Mecanismos de controle baseado
em mecanismos neurais, entretanto, no so baseados em modelos algortmicos.
Utilizam clculos matemticos para efetuar suas operaes, porm podem coordenar
diversos graus de liberdade durante a execuo de tarefas manipulativas e em ambientes
desestruturados. Eles so capazes de lidar com tarefas complicadas sem que tenham que
desenvolver um algoritmo especfico para cada problema nem um modelo do ambiente
em que operam.
Baseando-se nas caractersticas de seres biolgicos, as pesquisas em RNAs e em
Inteligncia Computacional buscam por geraes completas de novos sistemas
computacionais, muito mais eficientes e inteligentes que os sistemas atuais.
5.1.2. O que so redes neurais artificiais (RNAs)?
Em termos intuitivos, redes neurais artificiais (RNAs) so modelos matemticos
inspirados nos princpios de funcionamento dos neurnios biolgicos e na estrutura do
crebro. Estes modelos tm capacidade de adquirir, armazenar e utilizar conhecimento

74

experimental e buscam simular computacionalmente habilidades humanas tais como
aprendizado, generalizao, associao e abstrao.
O crebro tido como um processador altamente complexo e que realiza
processamentos de maneira paralela. Para isso, ele organiza sua estrutura, ou seja, os
neurnios, de forma que eles efetuem o processamento necessrio. Isso feito numa
velocidade extremamente alta e ainda no existe um nico computador no mundo capaz
de realizar todas as tarefas que o crebro humano desempenha.
Nas redes neurais artificiais, a idia realizar o processamento de informaes tendo
como princpio a organizao de neurnios do crebro. Como o crebro humano capaz
de aprender e tomar decises baseadas na aprendizagem, as redes neurais artificiais
devem fazer o mesmo. Assim, uma rede neural pode ser interpretada como um esquema
de processamento capaz de armazenar conhecimento baseado em aprendizagem
(experincia) e disponibilizar este conhecimento para a aplicao em questo.
A tabela 5.1 resume a relao entre caractersticas e comportamentos de RNAs com
elementos da natureza.

Tabela 5.1 Comparao entre modelo natural e artificial
Modelo Natural Modelo Artificial
Crebro RNA
Neurnio Biolgico Neurnio artificial/ elementos processadores
Rede de Neurnios Estrutura em camadas
10 bilhes de Neurnios Centenas/ milhares de neurnios
Aprendizado Aprendizado
Generalizao Generalizao
Associao Associao
Reconhecimento de Padres Reconhecimento de Padres

Segundo Hecht-Nielsen (1990), uma RNA pode ser formalmente definida como: uma
estrutura que processa informao de forma paralela e distribuda e que consiste de
unidades computacionais (as quais podem possuir memria local e podem executar
operaes locais) interconectadas por canais unidirecionais chamados de conexes.
Cada unidade possui uma nica conexo de sada, que pode ser dividida em quantas
conexes laterais se fizer necessrio, sendo que cada uma destas conexes transporta o
mesmo sinal (sinal de sada da unidade). Esse sinal de sada pode ser contnuo ou
discreto. O processamento executado por cada unidade pode ser definido

75

arbitrariamente, com a restrio de que ele deve ser completamente local, isto , deve
depender somente dos valores atuais dos sinais de entrada que chegam at a unidade
via as conexes e dos valores armazenados na memria local da unidade
computacional.

A figura 5.1 apresenta uma ilustrao comparative entre o modelo biologico e o
artificial adotado pelas RNAs. Mais a diante, os elementos de um neurnio artificial
sero apresentados com detalhes.


Figura 5.1: Analogia entre os modelos de um neurnio: biolgico e artificial

5.1.3. Caractersticas de uma RNA
Devido sua similaridade com a estrutura do crebro, as RNAs apresentam algumas
caractersticas similares s do comportamento humano, tais como:
a) Busca paralela e endereamento pelo contedo
O crebro no possui endereo de memria. Analogamente, nas RNAs o
conhecimento fica distribudo pela estrutura das redes, de forma que a procura
pela informao ocorre de forma paralela e no seqencial.
b) Aprendizado por Experincia
As RNAs tentam aprender padres diretamente a partir dos dados. Para isso,
utilizam um processo de repetidas apresentaes dos dados rede que busca
abstrair modelos de conhecimento de forma automtica. Este processo
denominado aprendizado, e implementado por um algoritmo de aprendizado.
c) Generalizao
As RNAs so capazes de generalizar seu conhecimento a partir de exemplos
anteriores. A capacidade de generalizao permite que RNAs lidem com rudos e
distores nos dados, respondendo corretamente a novos padres. A figura 5.2
apresenta um exemplo do conceito de generalizao.

76



Figura 5.2: Exemplo ilustrativo do conceito de generalizao

d) Associao
As RNAS so capazes de estabelecer relaes entre padres de natureza distinta.
Por exemplo, identificar pessoas a partir de caractersticas da voz destas pessoas.

e) Abstrao
Abstrao a capacidade das RNAs em identificar a essncia de um conjunto de
dados de entrada. Isto significa que as RNAs so capazes de perceber quais as
caractersticas relevantes em um conjunto de entradas. Assim sendo, a partir de
padres ruidosos as RNAS podem extrair as informaes dos padres sem rudo.
A figura 5.3 ilustra o conceito de abstrao.


Figura 5.3: Exemplo ilustrativo do conceito de abstrao

f) Robustez e Degradao Gradual
Como a informao fica distribuda em uma RNA, a perda de um conjunto de
neurnios artificiais no causa necessariamente o mau funcionamento desta rede.
Na realidade, o desempenho de uma RNA tende a diminuir gradativamente na
medida em que aumenta a quantidade de neurnios artificiais inoperantes.

77

g) No Programveis
As RNAs so construdas e no requerem programao. Dado um problema, a
rede deve ser modelada segundo as entradas e sadas envolvidas e um algoritmo
de aprendizado, programado previamente aplicado sobre o modelo e sobre
dados histricos, buscando mapear corretamente as entradas da rede nas sadas
correspondentes.
h) Solues Aproximadas
Muitas vezes, as RNAs no produzem a melhor soluo para um problema,
gerando, no entanto, solues aproximadas e aceitveis. Alguns modelos neurais
trabalham com o conceito de minimizao de erro, nem sempre reduzido ao
patamar nulo. Cabe ressaltar que, de forma anloga ao comportamento humano,
mesmo treinadas, as RNAs so suscetveis a gerao de solues incorretas.

Semelhante ao sistema biolgico, uma RNA possui, simplificadamente, um sistema de
neurnios, e conexes ponderadas por valores reais denominados pesos. Numa RNA os
neurnios so arrumados em camadas, com conexes entre elas. A figura 5.2 ilustra
graficamente a arquitetura de uma RNA simples. Os crculos representam os neurnios
e as linhas representam os pesos das conexes. Por conveno, a camada que recebe os
dados chamada camada de entrada e a camada que mostra o resultado chamada de
camada de sada. A camada interna, onde ocorre o processamento interno da rede
tradicionalmente chamada de camada escondida. Uma RNA pode conter uma ou vrias
camadas escondidas, de acordo com a complexidade do problema.

78


Figura 5.4 Arquitetura de uma RNA simples
Em geral o processamento das RNAs ocorre da esquerda para a direita (RNAs feed
forward). Para fins computacionais os neurnios so rotulados com uma numerao
seqencial de cima para baixo, da esquerda para a direita, conforme ilustrado na figura
5.4.
A transmisso do sinal de uma clula para outra um complexo processo qumico, no
qual substncias especficas so liberadas pelo neurnio transmissor. O efeito um
aumento ou uma queda no potencial eltrico no corpo da clula receptora. Se este
potencial alcanar o limite de ativao da clula, um pulso ou uma ao de potncia e
durao fixa enviado para outros neurnios. Diz-se ento que o neurnio est ativo.
O neurnio artificial foi projetado para imitar algumas das principais caractersticas de
um neurnio biolgico. Essencialmente, as entradas so aplicadas a um neurnio
artificial, cada uma representando a sada de outros neurnios conectados a ele (vide
figura 5.4). Cada entrada multiplicada por um peso correspondente (W
ij
), gerando
entradas ponderadas, de forma anloga fora das sinapses. Em seguida todas estas
entradas ponderadas so somadas, obtendo-se um valor NET (potencial de ativao do
neurnio artificial) que ser comparado com o valor limite para ativao do neurnio
(F). Caso este valor alcance o valor limite de ativao do neurnio, ele ser ativado.

79

Caso contrrio ele permanecer inativo. A figura 5.5 mostra o modelo que implementa
esta idia:

Figura 5.5: Estrutura Interna de um Neurnio Artificial
5.2. Modelagem
Conforme pode ser observado na figura acima, em essncia, os elementos bsicos de um
neurnio artificial so:

Conexes entre os Processadores
A cada conexo de entrada de um neurnio artificial, existe um valore real,
denominado peso sinptico, que determina o efeito desta entrada sobre o neurnio em
questo. Quanto maior / menor este valor, maior a influncia positiva / negativa do
neurnio de onde sai a referida conexo. De forma anloga, a cada conexo de sada
h um peso sinptico que determina a influncia deste neurnio sobre o neurnio de
chegada desta conexo.
W
ik
uma notao para pesos sinpticos utilizada com freqncia, onde i a
identificao do neurnio de sada e k, a identificao do nernio de chegada. A
figura 5.6 ilustra esta notao.

Figura 5.6: Conexo e peso sinptico entre os neurnios i e k

80

Alguns autores representam os pesos sinpticos trocando na notao a ordem entre os
neurnios de partida e chegada. Assim sendo, nesta notao alternativa a fora da
conexo entre os neurnios i e k da figura 5.6 seria representada por W
ki
.
Na figura 5.7, so apresentados dois exemplos de pesos sinpticos, sendo um
positivo e o outro negativo.

Figura 5.7: Exemplos de pesos sinpticos

Regra de Propagao
a forma com que os estmulos (as sadas) provenientes de outros neurnios
artificiais so combinados aos pesos sinpticos correspondentes para compor o
potencial de ativao de um neurnio (por exemplo, o neurnio k). A regra de
propagao estabelece, portanto, o potencial de ativao do neurnio (net
k
). Uma
regra de propagao muito utilizada o produto escalar entre o vetor de entrada e o
vetor de pesos, conforme ilustrado na figura 5.8.


Figura 5.8: Exemplo de Regra de Propagao
Convm reparar que o somatrio varia em funo da quantidade de neurnios
conectados ao neurnio k, conforme ilustra a figura 5.9.


Figura 5.9: Exemplo de aplicao da regra de propagao da figura 5.8

Funo de Ativao
A funo de ativao de um neurnio artificial determina o novo valor do estado de
ativao deste neurnio, a partir de seu potencial de ativao net
k
. Determina a sada
efetiva de um neurnio artificial. Notao: S
k
= F (net
k
+ b
k
). A funo F

81

denominada funo de ativao do neurnio. A sada de um neurnio k, representada
por S
k
, pode muitas vezes, ser referenciada por O
k
(S
k
= O
k
). A constante b
k
,
denominada bias, tem o efeito de aumentar ou diminuir a entrada lquida da funo
de ativao, dependendo se ele positivo ou negativo, respectivamente, conforme
ilustra a figura 5.10.


Figura 5.10: Exemplo de contribuio da constante bias

A funo de ativao de um neurnio artificial pode assumir vrias formas, sendo
algumas delas expostas a seguir.
a) Linear a sada do neurnio expressa conforme indicado na figura 5.11.


Figura 5.11: Funo de ativao linear

b) Rampa (ou Linear por Partes) Conforme o prprio nome sugere, conjuga
funes lineares a partir da definio do parmetro a. O grfico da funo rampa
encontra-se ilustrado na figura 5.12.


82

Figura 5.12: Funo de ativao rampa

c) Degrau Tambm chamada de onda quadrada binria, encontra-se ilustrada na
figura 5.13. A figura 5.14 apresenta uma variao da funo degrau denominada
degrau bipolar.

Figura 5.13: Funo de ativao degrau

Figura 5.14: Funo de ativao degrau bipolar


d) Sigmide Trata-se de uma das funes de ativao mais utilizadas na
construo de redes neurais. contnua e diferencivel em todos os pontos, alm
de assinttica em relao a 0 e 1. A figura 5.15 mostra a funo e seu grfico.
Nela pode-se perceber que quanto maior o valor do parmetro a, maior a
inclinao na sigmide.

b) net (-a
e 1
1
y
+
+
=

Figura 5.15: Funo de ativao sigmoidal


83

e) Tangente Hiperblica Funo tambm diferencivel, assinttica em relao aos
valores -1 e 1, conforme ilustra a figura 5.16.

Figura 5.16: Funo de ativao tangente hiperblica

5.3. Arquiteturas de RNAs
interessante ressaltar que o modelo simples de neurnio artificial apresentado ignora
diversas caractersticas do neurnio natural, tais como a no considerao dos atrasos de
tempo que afetam a dinmica do sistema as entradas produzem sadas imediatas e a
no incluso dos efeitos de sincronismo ou de modulao de freqncia caracterstica
que alguns pesquisadores acham de fundamental importncia. Apesar destas limitaes,
as RNAs formadas por simples neurnios artificiais possuem atributos semelhantes aos
do sistema biolgico, como a capacidade de aprendizado e generalizao, podendo-se
dizer que a essncia do funcionamento do neurnio natural tenha sido absorvida. Assim
sendo, vale a pena destacar uma comparao entre as topologias de redes neurais
recorrentes e no recorrentes.
As RNAs no-recorrentes so aquelas que no possuem realimentao de suas sadas
para suas entradas e por isso so tambm ditas "sem memria". A estrutura das RNAs
ditas no-recorrentes em camadas, podendo estas RNAs serem formadas por uma
(RNA de camada nica) ou mais camadas (RNA multi-camada). Redes neurais multi-
camadas contm um conjunto de neurnios de entrada, uma camada de sada e uma ou
mais camadas escondidas. A camada de entrada da rede apenas distribui os padres. A
camada de sada apresenta o resultado final do processamento da rede. As RNAs de uma
camada so tambm chamadas de "perceptrons", e possuem um espectro de
representaes limitado. As RNAs multi-camadas, por suprirem as deficincias das
redes de uma nica camada, possuem uma gama maior de aplicaes bem sucedidas.
RNAs recorrentes so estruturas de processamento capazes de representar uma grande
variedade de comportamentos dinmicos. A presena de realimentao de informao
permite a criao de representaes internas e dispositivos de memria capazes de
processar e armazenar informaes temporais e sinais seqenciais. A presena de
conexes recorrentes ou realimentao de informao pode conduzir a comportamentos
complexos, mesmo com um nmero reduzido de parmetros.
Conforme exposto acima, pode-se perceber que existem algumas classificaes
utilizadas na caracterizao da arquitetura ou toplogia das redes neurais artificiais. Cada
uma delas enfoca um aspecto distinto. Os itens a seguir procuram sumarizar algumas
detas classificaes, apresentando alguns exemplos ilustrativos.

84


Classificao quanto ao nmero de camadas

Redes de Camada nica Conforme o prprio nome sugere, so redes que
possuem apenas uma camada de neurnios artificiais.
x
2
x
1
x
3

Figura 5.17: Exemplo de rede de camada nica

Redes de Mltiplas Camadas Enquadram-se nesta situao as redes que
possuem mais de uma camada de elementos processadores.

x
2
x
1
x
3

Figura 5.18: Exemplo de rede de mltiplas camadas (2 camadas neste caso)

Classificao quanto ao tipo de conexo

Redes Feedforward (Acclicas ou No Recorrentes) O fluxo de processamento
da informao ocorre da esquerda para a direita. Neste caso, no h retorno de
sinal para camadas anteriores.

85

x
2
x
1
x
3

Figura 5.19: Exemplo de rede feedforward

Redes Feedback (Cclicas ou Recorrentes) Este tipo de rede se caracteriza pelo
fato de haver retorno do sinal, em sentido contrrio ao fluxo de processamento
normal da rede.


Figura 5.20: Exemplo de rede recorrente

Redes com Recorrncia Autoassociativa Neste caso a sada de cada neurnio
serve como entrada para todos os outros processadores.

Figura 5.20: Exemplo de rede com recorrncia autoassociativa

Classificao quanto ao tipo de conectividade

86


Redes Parcialmente Conectadas Neste caso, h neurnios em uma camada que
no se conectam a todos os neurnios da camada seguinte.

Figura 5.21: Exemplo de rede parcialmente conectada

Redes Completamente Conectadas Nesta classe, encontram-se as redes neurais
em que todos os neurnios de uma dada camada se conectam a todos os
neurnios da camada seguinte.


Figura 5.22: Exemplo de rede completamente conectada
5.4. Processamento Neural
O processamento em uma rede neural artificial pode ser dividido em duas fases
distintas:
Aprendizado (Learning) ou Fase de Treinamento Nesta fase, ocorre o processo de
atualizao dos pesos sinpticos para a aquisio do conhecimento. Os pesos so
atualizados conforme o algoritmo de aprendizado escolhido aplicado sobre os
dados histricos disponveis. Aprendizado o processo pelo qual os parmetros
livres de uma rede neural (pesos) so adaptados por meio de uma forma continuada
de estmulo pelo ambiente externo, sendo o tipo especfico de aprendizado definido
pela maneira particular como ocorrem os ajustes dos parmetros livres.

De forma genrica, o valor do vetor de pesos w(t+1) no instante t+1 pode ser escrito
como: w(t+1) = w(t) + w(t), onde w(t) o ajuste aplicado aos pesos.

87

Convm enfatizar que os algoritmos de aprendizado diferem, basicamente, na forma
como w(t) calculado.
Basicamente, o processo de aprendizado possui os seguintes passos:
A rede neural estimulada pelo ambiente ao receber um padro de entrada
retirado de um conjunto histrico de padres ou dados.
A rede neural sofre modificaes em seus parmetros livres (pesos sinpticos)
A rede neural responde de uma nova maneira ao ambiente
Estes passos se repetem at que algum critrio de parada seja alcanado. So
exemplos de critrios de parada:
Nmero de iteraes mximo alcanado o nmero mximo de vezes que
um padro ou conjunto de padres apresentado a rede neural.
Erro produzido pela rede atinge um patamar abaixo de limiar definido
Neste caso, a medida do erro produzido pela RNA a cada estmulo de entrada
considerada como referncia para interrupo do treinamento. Tal
interrupo deve ocorrer sempre que o erro produzido pela rede atingir um
valor considerado suficientemente pequeno.
A participao do usurio, responsvel pela utilizao da RNA na soluo de um
problema, necessria para escolher os parmetros a serem utilizados em ambos os
critrios de parada mencionados. Assim, tanto o nmero de iteraes mximo quanto
a margem de erro suficientemente pequena so definidos pelo usurio.
Aplicao (Recall), Teste ou Recuperao da Informao Esta fase depende da
concluso da fase de aprendizado. Isto significa que uma rede neural somente deve
ser aplicada na soluo de um problema aps ter passado pela fase de aprendizado.
A fase de aplicao consiste em calcular a sada da rede a partir da apresentao de
um padro de entrada. Na fase de aplicao no h atualizao dos pesos sinpticos.
Estes pesos so utilizados no clculo da sada da rede produzida em funo dos
estmulos de entrada.
De todas as propriedades interessantes das redes neurais artificiais, nenhuma captura to
bem a habilidade humana de aprendizado. Ao invs de especificar todos os detalhes de
uma computao, tem-se a possibilidade de treinar uma rede para fazer esta
computao. Isto significa que as redes neurais podem tratar problemas onde regras
apropriadas no so conhecidas previamente, devendo estas regras ser abstradas a partir
dos dados.
O objetivo do treinamento de uma RNA fazer com que a aplicao de um conjunto de
entradas produza um conjunto de sadas desejado ou, no mnimo, um conjunto de sadas
consistentes. Simplificadamente cada conjunto de entrada ou sada pode ser chamado de
vetor. O treinamento realizado pela aplicao seqencial dos vetores de entradas (e em
alguns casos tambm os de sada), enquanto os pesos da rede so ajustados de acordo
com um procedimento de treinamento pr-determinado (algoritmo de treinamento).
Durante o treinamento de uma rede, espera-se que os pesos gradualmente convirjam
para determinados valores, tal que a aplicao dos vetores de entrada produza as sadas
desejadas (ou consistentes).

88

Os procedimentos de treinamento que levam as RNAs a aprender determinadas tarefas
podem ser classificados em trs classes de treinamento:
Supervisionado: Neste tipo de aprendizado, a rede neural recebe um conjunto de
entradas padronizadas e seus correspondentes padres de sada esperados, onde
ocorrem ajustes nos pesos sinpticos at que o erro entre os padres de sada gerados
pela rede e os padres desejados fique abaixo de um limite mximo de tolerncia de
erro especificado pelo usurio. Em outras palavras, a cada par (entrada, sada
desejada), um professor compara a sada desejada com a sada produzida pelo
sistema, calculando um erro que usado no ajuste dos pesos da rede a fim de
minimizar tal erro.
Procura minimizar a diferena entre a soma ponderada das entradas pelos pesos e a
sada desejada:
Onde a taxa de aprendizado, e(t) uma medida de erro e X(t) entrada do
neurnio, ambas no instante t do processo de aprendizado.
A aprendizagem por correo de erro envolve a minimizao da soma dos erros
quadrticos das sadas:

=
=
p
i
i
d
2
y y
1
2
) ( 2 / 1

Onde:
p o nmero de exemplos
a sada desejada para o vetor de entrada x
i
e y a sada corrente da
rede para o vetor x
i
.
Portanto, o conjunto de dados formado pelos pares de entrada e sada (x
i
, )
define a superfcie de erro.
Para cada valor possvel de w, a soma dos erros quadrticos do conjunto de dados
calculada e um valor de erro obtido.
A superfcie formada por todos os valores de erro resulta na superfcie de erro para o
conjunto de dados.
O valor de w que minimiza o erro corresponde soluo de erro mnimo, ou mnimo
global associado ao problema.
Conforme mencionado, o aprendizado (ou treinamento) supervisionado necessita de
um par de vetores composto do vetor de entrada e do vetor alvo que se deseja como
sada. Juntos, estes vetores so chamados de par de treinamento ou vetor de
treinamento, sendo interessante ressaltar que geralmente a rede treinada com
vrios vetores de treinamento.
y(t) - d(t) e(t) = e(t)X(t) W(t) 1) W(t + = +
i
d
y
i
d
y

89

O procedimento de treinamento supervisionado funciona da seguinte forma: o vetor
de entrada aplicado. A sada da rede calculada e comparada com o
correspondente vetor alvo. O erro encontrado ento realimentado atravs da rede e
os pesos so atualizados de acordo com um algoritmo determinado a fim de
minimizar este erro. Este processo de treinamento repetido at que o erro para os
vetores de treinamento tenha alcanado nveis bem baixos.
No-supervisionado: Neste tipo de aprendizado, a rede neural trabalha os dados de
forma a determinar algumas propriedades dos conjuntos de dados. A partir destas
propriedades que o aprendizado constitudo. No h um professor para
supervisionar o processo de aprendizagem, ou seja, no h para cada entrada, uma
sada desejada. Durante o processo, os padres so apresentados continuamente
rede e a existncia de regularidades nesses dados faz com que o aprendizado seja
possvel. Assim sendo, regularidade e redundncia nas entradas so caractersticas
essenciais para haver aprendizado no supervisionado. Este tipo de aprendizado
aplicvel em problemas que visam descoberta de caractersticas relevantes nos
dados de entrada como, por exemplo, nas tarefas de agrupamento de dados.
O treinamento no supervisionado, conforme comentado, no requer vetor alvo para
as sadas e, obviamente, no faz comparaes para determinar a resposta ideal. O
treinamento no supervisionado modifica os pesos da rede de forma a produzir
sadas que sejam consistentes, isto , tanto a apresentao de um dos vetores de
treinamento, como a apresentao de um vetor que suficientemente similar a um
dos vetores de treinamento, ir produzir o mesmo padro nas sadas. O processo de
treinamento no supervisionado extrai as propriedades estatsticas do conjunto de
treinamento e agrupa os vetores similares em classes.
Por Reforo: Muitas vezes considerado um caso particular de aprendizado
supervisionado, nessa abordagem o crtico externo no informa qual a resposta
desejada, mas procura maximizar o reforo das aes boas executadas pela rede. Se
uma ao tomada pelo sistema de aprendizado seguida de estados satisfatrios,
ento a tendncia do sistema de reproduzir essa ao particular reforada. Se no
for seguida de estados satisfatrios, a tendncia do sistema produzir essa ao
enfraquecida. Este tipo de aprendizado tem aplicabilidade especialmente
recomendada para tarefas de controle.


5.5. Modelos de RNAS
5.5.1. Perceptron de Camada nica
O exemplo mais antigo de modelo de rede neural o modelo perceptron. Tem como
objetivo classificar corretamente o conjunto de estmulos aplicados externamente rede
em uma de duas classes.
Redes Perceptron de Camada nica so redes baseadas no modelo perceptron e
possuem as seguintes caractersticas:
Utilizam aprendizado supervisionado,

90

Possuem apenas uma camada de pesos ajustveis,
So feedforward,
Utilizam o produto escalar como regra de propagao,
Adotam funo de ativao degrau.
A figura 5.23 apresenta um exemplo genrico de rede perceptron, que estabelece uma
fronteira de deciso linear. Por esta razo, redes deste modelo tm sua aplicao
adequada somente para problemas linearmente separveis como os das portas lgicas
AND e OR. Problemas em que as classes no sejam linearmente separveis como o
da porta lgica XOR no podem ser resolvidos por redes perceptron.

Figura 5.23: Exemplo de rede perceptron e sua fronteira de deciso linear
A seguir encontra-se enunciado em pseudocdigo o algoritmo de aprendizado em redes
perceptron de camada nica.

1 Inicializar (taxa de aprendizado) e o vetor de pesos W
2 Repetir para cada par do conjunto de treinamento
2.1 Atualizar o vetor de pesos para cada um dos ns da rede segundo a regra
W(t + 1) = W(t) + eX(t)
3 At e = 0 para todos os p elementos do conjunto de treinamento em todos os
neurnios da rede

5.5.2. Adaline
O surgimento do modelo Adaline foi quase simultneo ao Perceptron de Camada nica.
Como diferenas principais em relao ao seu contemporneo, no modelo Adaline, as
redes neurais possuem funo de ativao linear e a funo de erro a ser minimizada
quadrtica conforme frmula abaixo. A minimizao feita pelo mtodo do gradiente
descendente.


( )

=
=
p
1 i
2
i i
y d
2
1
E

91

As redes Adaline tm as mesmas limitaes das redes Perceptron de Camada nica.
Inclusive o treinamento das redes Adaline mostra-se mais demorado. Como vantagem, o
treinamento em redes Adaline tende a ser mais suave do que em redes Perceptron de
Camada nica.
5.5.3. Madaline
Este modelo foi um dos primeiros a envolver elementos adaptativos organizados em
camadas treinveis. Trata-se de um modelo composto por mltiplos Adalines. Uma rede
Madaline pode possuir vrios Adalines sendo um deles com parmetros fixos
implementando critrios de deciso como E, OU e MAIORIA. As figuras 5.24 e 5.25
ilustram, respectivamente, uma Madaline aplicado ao problema da porta XOR e suas
fronteiras de deciso.

Figura 5.24: Exemplo de rede madaline para o problema da porta XOR

Figura 5.25: Exemplo de fronteiras de deciso para a madaline da figura 5.24

5.5.4. Perceptron de Mltiplas Camadas
O Perceptron de Mltiplas Camadas (MLP Multi-Layer Perceptron) foi uma evoluo
do Madaline. Conforme o prprio nome sugere, redes deste modelo consistem de
mltiplas camadas de unidades computacionais, geralmente completamente
interconectadas e com processamento feedforward. Isso quer dizer que cada neurnio
em uma camada tem conexes com todos os neurnios da camada seguinte. Em muitas
aplicaes as unidades dessas redes utilizam a funo sigmide como funo de
ativao.
O teorema de aproximao universal dita que toda funo contnua que mapeia
intervalos de nmeros reais a algum intervalo de nmeros reais de sada pode ser
arbitrariamente aproximada com preciso por um perceptron de mltiplas camadas com
somente uma camada oculta. Este resultado s vlido para classes restritas de funes
de ativao (diferenciveis em todos os pontos), por exemplo, funo sigmide ou
tangente hiperblica.

92

A definio do nmero de neurnios em cada camada de uma rede MLP de extrema
importncia para o desempenho da rede, principalmente na sua capacidade de
generalizao. Quanto maior o nmero de neurnios, maior a capacidade da rede em
resolver problemas de determinada complexidade. Embora no haja regra geral para
definio precisa deste nmero, existem diversas heursticas passveis de aplicao.
Uma delas, proposta por Hecht-Nielsen (1988) sugere a uitlizao de (2n+1) neurnios
na camada intermediria, onde n o nmero de neurnios na camada de entrada.
No entanto, dado um problema, deve-se procurar por uma rede de estrutura mnima que
atenda aos requisitos de minimizao do erro quadrtico do conjunto de treinamento. Ou
seja, uma boa prtica iniciar com uma estrutura pequena de rede e empiricamente
introduzir neurnios gradualmente verificando seu efeito at que o objetivo seja
satisfeito.
O algoritmo de treinamento de redes MLP mais popular o back-propagation (retro-
propagao do erro), que por ser supervisionado, utiliza pares de entrada e sada para,
por meio de correo de erros, ajustar os pesos da rede. Nele, o treinamento utiliza uma
generalizao da regra delta (utilizada pelo Adaline) e ocorre em duas fases: forward e
backward.



Na fase forward, um padro de entrada apresentado rede que o processa gerando a
sada da rede. O erro calculado pela frmula acima e a fase backward ento aplicada.
Nela, o back-propagation procura ajustar todos os pesos da rede (no somente das
conexes que chegam camada de sada, mas das conexes de chegam a todas as
demais camadas) de forma proporcional sua contribuio para gerao do erro.


5.6. Aplicaes para RNAs
So inmeras as possibilidades de aplicao das redes neurais em diversos tipos de
problemas. Abaixo seguem alguns exemplos a ttulo meramente ilustrativo.
Reconhecimento de padres
Transformao de imagens em textos (OCRs),
Reconhecimento de placas de veculos (em sistemas de multagem eletrnica)
Reconhecimento de voz
Classificao de padres
Reconhecimento de locutor (prprio ou impostor)
Reconhecimento biomtrico (prprio ou impostor)
Reconhecimento de pintura (autntica ou falsa)
Reconhecimento de SPAMS (SPAMS e no SPAMS)
( )
2
) (
2
) (
2
d
2
(k) y k y e(k)
k E

= =
) ( ) 1 ( k E k W
i
+

93

Reconhecimento de Fraudes em Sinistros de Seguros
Correo de padres
Correo de imagens incompletas
Correo de textos incompletos
Previso de sries temporais
Planejamento da produo de bens de consumo
Previso de consumo energtico
Previso de demandas telefnicas
Cotao de aes do mercado financeiro
Minerao de Dados
Anlise de Crdito (na separao entre bons e maus pagadores) Problema
de Classificao
Anlise de Limite de Crdito
Agruapamento de Clientes com potencial de compra similar
Suporte deciso Neste item podem ser enquadradas a maioria das aplicaes
mencionadas j mencionadas.


94

Captulo
6

Algoritmos Genticos


6.1. Introduo

Algoritmos Genticos so modelos computacionais de busca e otimizao de solues
em problemas complexos, inspirados em princpios da teoria da evoluo natural de
Charles Darwin e da reproduo gentica.
Segundo o princpio bsico da evoluo natural de Darwin, indivduos mais aptos
possuem maiores chances de sobrevivncia e, conseqentemente, mais oportunidades de
gerarem descendentes e perpetuarem seus cdigos genticos pelas geraes seguintes. A
identificao de cada indivduo expressa pelo seu cdigo gentico que fica
representado nos cromossomas deste indivduo.
Resumidamente, Algoritmos Genticos so tcnicas que procuram obter boas solues
para problemas complexos por meio da evoluo de populaes de solues codificadas
em cromossomas artificiais. Para tanto, Algoritmos Genticos combinam sobrevivncia
dos indivduos mais aptos (melhores solues) e cruzamento aleatrio de informao.
Todo problema de difcil modelagem matemtica ou com um nmero muito grande,
possivelmente infinito, de solues considerado um problema complexo. A tabela 6.1
apresenta uma analogia entre Algoritmos Genticos e Evoluo Natural.
Algoritmos Genticos empregam um processo adaptativo e paralelo de busca de
solues em problemas complexos. O processo adaptativo, pois as solues existentes
a cada instante influenciam a busca por futuras solues. O paralelismo do processo
decorrncia natural do fato de que diversas solues so consideradas a cada momento
pelos Algoritmos Genticos.
So exemplos de aplicaes de Algoritmos Genticos:
Otimizao de funes matemticas
Otimizao Combinatorial
Otimizao de Planejamento
Problema do Caixeiro Viajante
Problema de Otimizao de Rota de Veculos
Otimizao de Distribuio e Logstica

95

Seleo de Variveis em Minerao de Dados
Dentre muitos outros...
Nos Algoritmos Genticos, um cromossoma uma estrutura de dados que representa
uma das possveis solues do espao de busca de um problema. Cromossomas so
ento submetidos a um processo evolucionrio que avalia, seleciona e combina solues
ao longo de diversos ciclos, procurando obter indivduos mais aptos (melhores
solues).

Tabela 6.1: Analogia entre Algoritmos Genticos e a Natureza
Evoluo Natural Algoritmos Genticos
Meio Ambiente Problema
Indivduo Soluo
Cromossoma Representao (palavra binria, vetor, etc)
Gene Caracterstica do Problema
Alelo Valor da Caracterstica
Loco Posio na palavra, vetor
Gentipo Estrutura
Fentipo Estrutura submetida ao problema
Reproduo Sexual Operador de Cruzamento
Mutao Operador de Mutao
Populao Conjunto de Solues
Geraes Ciclos

Em geral, um Algoritmo Gentico caracterizado pelos seguintes componentes:
Problema
Representao das Solues do Problema
Decodificao do Cromossoma
Avaliao
Seleo
Operadores Genticos
Tcnicas e Parmetros
Critrios para Inicializao da Populao

Mais frente, sees especficas detalham cada um destes componentes.

96


6.2. Histria dos Algoritmos Genticos
Os algoritmos genticos surgiram de um modelo matemtico que tentava demonstrar a
teoria de Darwin. Esse modelo foi publicado no livro The Genetic Theory of Natural
Selection (Fisher, 1930).
Foi baseado nesse conceito matemtico que em meados da dcada de 60, John Holland
comeou a se dedicar aos estudos de processos naturais adaptveis e dessa forma acabou
inventando os algoritmos genticos. Os algoritmos foram desenvolvidos e aperfeioados
durante as dcadas de 60 e 70 em conjunto com seus alunos e colegas da universidade
de Michigan.
O objetivo de Holland, ao criar esses algoritmos, era poder estudar formalmente o
fenmeno da adaptao to presente na natureza e a partir da ser capaz de desenvolver
modelos em que mecanismos da adaptao natural pudessem ser inseridos no contexto
dos sistemas computacionais. Seu exaustivo trabalho foi recompensado em 1975
quando ele edita Adaptation in Natural and Artificial Systems (Holland, 1975) e, 13
anos mais tarde em 1989, David Goldberg edita Genetic Algorithms in Search,
Optimization and Machine Learning (Goldberg, 1989), ambos considerados at hoje
como os livros mais importantes sobre o assunto.

6.3. Por que usar algoritmos genticos?
A seguir encontram-se enunciadas algumas justificativas para o uso de Algoritmos
Genticos:
Porque algoritmos genticos mantm uma populao de solues que so avaliadas
simultaneamente. O que torna sua execuo mais dinmica do que a avaliao
sequencial de solues geradas individualmente.
Diferentemente de outras tcnicas de busca, os algoritmos genticos no usam
somente informaes locais, sendo capazes, portanto, de escapar dos chamados
mximos locais durante o processo de busca por solues.
O processo de evoluo desta tcnica guiado por um mecanismo de seleo
baseado em adaptao de estruturas que avalia cada soluo frente ao problema a ser
solucionado.
Estes algoritmos so indicados tambm para clculo de funes que possuem algum
tipo de descontinuidade ou que sua derivada no possa ser calculada, pois eles no
usam informaes de derivadas durante sua evoluo e tambm no precisam de
informaes sobre os grficos das funes para efetuar a busca.
Por se tratar de uma tcnica que utiliza buscas direcionadas e inteligentes, os
algoritmos genticos so indicados para lidar com problemas cujo tamanho do
espao de busca seja muito grande.

6.4. Compoenentes de um Algoritmo Gentico

97

Nesta seo sero detalhados os principais componentes de um Algoritmo Gentico, ou
seja, os elementos que precisam ser especificados para uma completa definio do
modelo gentico que ser utilizado na busca de boas solues para o problema em
questo.
Conforme comentado, algoritmos genticos so especialmente teis na soluo de
problemas complexos que envolvam necessidade de otimizao. Um problema
complexo, tambm conforme j mencionado anteriormente, um problema de difcil
formulao matemtica que envolva um grande espao de solues.
Embora o exemplo abaixo no possa ser efetivamente considerado um problema
complexo, optamos por utilize-lo, em funo de sua simplicidade e facilidade de
compreenso, para descrever os componentes de um algoritmo gentico apresentados
nas prximas subsees.
Problema: Encontrar o ponto que maximize a funo f(x)=x
2
, considerando o intervalo
[0...2
L
1].
Convm observer que quanto maior o valor de L, maior o nmero de pontos do
domnio do problema e, consequentemente, maior o espao de busca. Para fins de
simplificao de nosso exemplo didtico, vamos assumir L=6. Assim sendo, o espao de
busca ser o dos nmeros inteiros de 0 at 63, ou seja, um espao de busca de apenas 64
pontos a serem avaliados. Neste caso, a utilizao de um mecanismo de busca exaustiva
seria suficiente para resolver facilmente o problema. Alm disso, um conhecimento
prvio bsico em Anlise Matemtica, nos permite facilmente concluir que o ponto
mximo desta funo (63; 3969). No entanto, conforme ressaltado, este exemplo ser
utilizado para fins didticos na ilustrao dos demais conceitos envolvidos na utilizao
de Algoritmos Genticos.

6.4.1. Problema
A caracterizao do problema consiste em enunciar de forma no ambgua qual ser o
objetivo do algoritmo gentico. O enunciado do problema deve utilizar um verbo que
indique uma ao cuja execuo desencadeie a busca por uma soluo tima para o
problema. comum a utilizao de verbos tais como maximizar e minimizar, dentre
outros.

6.4.2. Representao das Solues do Problema
A menor unidade de um Algoritmo Gentico chamada gene. Um gene representa uma
unidade de informao do domnio do problema. Uma srie de genes forma um
cromossoma, que representa uma possvel soluo completa para o problema.
A representao de possveis solues do espao de busca de um problema define a
estrutura do cromossoma a ser manipulado pelo algoritmo. Qualquer que seja a forma de
representao de um problema, esta deve ser capaz de representar todas as solues do
espao de busca que se deseja investigar. Algumas das principais formas de
representao de solues em AG esto comentadas a seguir.

98

A representao binria a mais empregada, devido sua simplicidade e facilidade de
manipulao.
Por exemplo, para o problema enunciado anteriormente, necessria uma representao
para nmeros inteiros. Podem ser utilizados cadeias binrias representando nmeros
inteiros. Neste caso, seriam necessrios cromossomas de 6 bits para representar nmeros
entre 0 e 63. Exemplos:
C1: 001001 representa x=9
C2:000100 representa x=4
A representao diretamente por nmeros reais mais adequada em problemas de
otimizao de parmetros com variveis contnuas em grandes domnios (onde a
representao binria requer cromossomas longos). A representao em reais mais
rpida na execuo e oferece mais preciso.
H problemas em que valores binrios podem ser utilizados para representar nmeros
reais com uma preciso de p casas decimais. Supondo que os nmeros reais pertenam a
um intervalo [X
min
, X
max
], so necessrios k bits de forma que k atenda seguinte
relao:
2
k
(X
max
- X
min
) * 10
p
Como exemplo de aplicao da relao acima, considere um problema que seja
minimizar a seguinte funo:


Sendo que x,y [-10,10]. Considerando uma preciso de duas casas decimais, tem-se:
2
k
(10 - (-10)) * 10
2
= 20 * 100 = 2000
2
k
2000
Como:
K = 10 => 2
k
= 1024
K = 11 => 2
k
= 2048
Portanto, o valor de K deve ser 10, indicando a necessidade de cromossomas de 20 bits,
sendo 10 para cada varivel.
Nem sempre a representao binria pode ser empregada. Em muitos casos, o problema
requer um alfabeto de representaes com mais smbolos.

6.4.3. Decodificao do Cromossoma
O processo de decodificao de um cromossoma consiste na construo da soluo real
do problema que dever ser avaliada.
Uma das vantagens da representao binria a fcil transformao para inteiro ou real.
| )
4
) * (
( * * | ) , (

=
y
sen y x y x f

99

No exemplo de maximizao da funo f(x)=x
2
enunciado acima, a decodificao
consiste em transformar a string binria em um nmero inteiro.
Para converso de um binrio em um valor real, utilize-se a frmula:


Onde:
X
R
[X
min
, X
mx
]; Xb o inteiro correspondente ao binrio; n o nmero de bits do
cromossoma; e C o comprimento do domnio da varivel X, dado por C=|X
mx
-X
min
|
Por exemplo:
Sejam 2 variveis reais x1 e x2 com 6 bits de representao, Dom(x1)=[-2,2] e
Dom(x2)=[0,1] e o cromossoma 000011110011. Decodificando, temos:


6.4.4. Avaliao
Para que um cromossoma seja avaliado, em geral necessrio converter o cromossoma
numa soluo para o problema, isto , decodificar o cromossoma.
A avaliao de cada soluo em um Algoritmo Gentico um processo realizado por
uma funo (funo de avaliao) que tem por objetivo fornecer uma medida da
qualidade de tal soluo (aptido) frente ao problema.
As funes de avaliao so especficas de cada problema.
No exemplo acima, a funo f(x)=x
2
expressa a qualidade de cada indivduo como
soluo para o problema.
C1: 011100 Representa 28 f(28) = 784
C2: 110101 Representa 53 f(53) = 2809
C2 um indivduo melhor (mais apto) que C1, pois 2809 > 748.
Pode-se perceber pelo exposto que a funo de avaliao tem papel de fundamental
relevncia na especificao de um algoritmo gentico.

6.4.5. Seleo
O processo de seleo em AGs seleciona indivduos para a reproduo. O AG tende a
privilegiar indivduos com maiores aptides para permanecer e se multiplicar na
populao.
Existem vrios mtodos de seleo de indivduos em AGs. Dentre eles esto o mtodo
da roleta e o mtodo de seleo por torneio.
Mtodo da Roleta
min n R
1 - 2
C
Xb X X + =

100

Forma comum de seleo aquela em que cada cromossoma tem a probabilidade de
permanecer na prxima gerao proporcional sua aptido. Cromossomas com maiores
aptides possuem mais espao na roleta e conseqentemente possuem maiores chances
de serem escolhidos para o processo de reproduo. Assim, se f
i
a avaliao do i-simo
indivduo na populao corrente, a probabilidade p
i
(aptido relativa) deste indivduo ser
selecionado proporcional a:

=
=
n
i
i
i
i
f
f
p
1

Onde n o nmero de indivduos na populao.
No exemplo anterior, supondo que existam apenas dois indivduos C1 e C2, sendo:
C1: 001001 representa x=9 e C2:000100 representa x=4. Abaixo, segue o clculo da
aptido relative de C1 e de C2.
Indivduo Aptido Relativa
C1 p
1
=81/(81+16)=0.84
C2 p
2
=16/(81+16)=0.16
No mtodo da roleta, sorteado um nmero entre 0 e 1. O indivduo selecionado o
primeiro indivduo cuja aptido acumulada seja superior ao nmero sorteado. No
exemplo:
Indivduo Aptido Relativa Acumulada
C1 0.84
C2 1.00 (0.84 + 0.16)
Para nmeros sorteados at 0.84, o indivduo selecionado seria C1. Para valores acima
de 0.84, o indivduo selecionado seria C2.

Mtodo do Torneio
Este mtodo consiste em selecionar uma srie de indivduos da populao e fazer com
que eles entrem em competio direta de ser pai, usando como arma a sua avaliao. O
tamanho do torneio (k) define quantos indivduos so selecionados aleatoriamente
dentro da populao para competir (valor mnimo de k=2).
Neste mtodo, no h favorecimento para os melhores indivduos.
Por exemplo, considere os seguintes indivduos e respectivas avaliaes:




101

Indivduo Fitness
X
1
200
X
2
100
X
3
9500
X
4
100
X
5
100
X
6
10000
X
7
1
X
8
40

Suponha agora que tenham sido realizados oito torneios com trs indivduos cada,
indicados abaixo. Em destaque, os indivduos vencedores de cada torneio. So os
indivduos selecionados para prosseguir no processo evolutivo.


6.4.6. Operadores Genticos
Uma vez selecionados os indivduos, o Algoritmo Gentico cria novas solues atravs
da combinao e refinamento das informaes dos cromossomas usando duas operaes
genticas bsicas: crossover e mutao. Essas operaes produzem novas solues que
formam uma nova populao. Cada nova populao chamada de gerao.
Durante o crossover, dois cromossomas trocam algumas de suas informaes contidas
em determinados genes. Novos indivduos so criados a partir da troca de material
gentico entre seus pais. Os descendentes possuem caractersticas genticas de ambos os
genitores.

102

Existem vrios exemplos de operadores de crossover. Muitos deles so criados
especificamente para soluo de determinados problemas. Optamos por relacionar
alguns exemplos de operadores de crossover mais tradicionais.
Crossover de 1 ponto Representao Binria
O crossover de um ponto recombina duas solues a partir de um nico ponto de
corte aleatrio. Sendo o crossover de 1 ponto, uma posio do cromossoma
estabelecida como ponto de corte, que a referncia para troca de informaes
genticas entre dois indivduos selecionados como pais, gerando dois filhos,
conforme ilustra a figura 6.1. Neste exemplo, o ponto de corte utilizado foi p=4.

Figura 6.1: Exemplo de aplicao do crossover de 1 ponto representao binria
A escolha do ponto de corte aleatria, feita em cada aplicao do operador.
Pode-se perceber que um cromossoma com n genes possui n-1 pontos de corte.
Um outro exemplo: sendo C1 e C2, os genitores e 3 o ponto de corte (ou de
cruzamento) aleatoriamente selecionado (operador de crossover de um ponto), D1 e
D2 seriam os descendentes nesta situao.
C1: 001001
C2: 000100
D1: 001100
D2: 000001
D1 um cromossoma mais apto que seus genitores. No entanto, D2 tornou-se um
indivduo bem menos apto. Ambas as situaes retratam fatos que podem de fato
ocorrer na natureza.
Crossover de 1 ponto Representao Real
Anlogo ao crossover de 1 ponto, mudando-se apenas a representao dos dados.
Neste caso, a representao utilizada a real. A figura 6.2 apresenta um exemplo de
aplicao.

Figura 6.2: Exemplo de aplicao do crossover de 1 ponto representao real


103

Crossover de 2 pontos Representao Binria
No crossover de dois pontos so dois os pontos aleatrios escolhidos como
referncia para a troca de valor dos atributos (genes).

Cromossoma Palavra Nova Palavra
A 10 0010 10 10011110
C 11 0111 11 11001011
Figura 6.3: Operao de crossover com dois pontos de corte

Crossover de n pontos Representao Binria
Demanda tantos sorteios de pontos de corte quantos forem os pontos de corte a
serem considerados. Na figura 6.4 segue um exemplo de crossover de 4 pontos.


Figura 6.4: Operao de crossover com quatro pontos de corte

Crossover Uniforme Representao Binria
Este tipo de crossover, por sua vez, capaz de recombinar quaisquer posies entre
dois genitores. Para tanto, utiliza uma palavra binria escolhida aleatoriamente para
designar os bits selecionados em cada genitor na criao dos descendentes.

Exemplo:

G1: 1100101
G2: 0111110
Padro: 0110100
D1: 0101110
D2: 1110101

Crossover de Aritmtico Representao Real
Este operador consiste em aplicar uma combinao linear de dois vetores (genitores)
P
1
e P
2
na gerao t, segundo as frmulas abaixo.
F
1
= .P
1
+ (1 - ).P
2


104

F
2
= (1 - ).P
1
+ .P
2

Pode ser constante ou variar em funo da idade da populao. A figura 6.5 ilustra
uma aplicao deste operador.


Figura 6.5: Operao de crossover aritmtico

Crossover de Mdia Representao Real
Consiste em aplicar uma mdia aritmtica simples entre dois genitores, gerando um
nico filho.
P
1
= (x
1
,y
1
) e P
2
= (x
2
,y
2
)
F
1
= ((x
1
+x
2
)/2, (y
1
+y
2
)/2)

Os cromossomas criados a partir do operador de crossover so submetidos operao
de mutao. A mutao permite explorar o potencial de novos indivduos, aumentando a
diversidade de indivduos na populao. O operador de mutao altera o contedo de
uma posio do cromossoma, com uma probabilidade, em geral, bem baixa (<1%).
A taxa de mutao no pode ser nem alta e nem baixa, tendo de possuir um valor
suficiente para assegurar a diversidade de cromossomos em uma populao. Uma taxa
de mutao alta aumenta as chances de um bom indivduo ser destrudo, causando
instabilidade no modelo.
De forma anloga ao crossover, existem vrios exemplos de operadores de mutao.
Tambm muitos deles so criados especificamente para soluo de determinados
problemas. Optamos por relacionar alguns exemplos de operadores de mutao mais
tradicionais.
Mutao Clssica Representao Binria
Inverte o valor de um bit selecionado aleatriamente entre todos os genes de um
cromossoma. Segue um exemplo do indivduo C2 antes e aps sofrer mutao no
ltimo bit:
C2: 000100, antes da mutao
C2: 000101, aps a mutao

Mutao Clssica Representao Real

105

Substitui o nmero real de um gene sorteado em um cromossoma por um nmero
real aleatrio, sempre que um teste aleatrio for satisfeito. Por exemplo:
(x
1
,y
1
) => (x
1
,y
rand
)
(73.2,41.8) => (73.2,-0.4)

Mutao Creep Representao Real
Busca uma soluo prxima por meio de ajustes aleatrios em ambas as direes do
valor de cada gene do cromossoma: (x
1
,y
1
) => (x
1
x, y1 y)
Mtodo de ajuste:
Onde, max e min so os limites do domnio de x, e
(s)=s*rand, onde rand um nmero aleatrio pertencente a [0,p], p 1
Cabe observar que o ajuste varia com o valor de p. Para valores pequenos de p, os
ajustes so menores. Por outro lado, para valores grandes de p, os ajustes so
maiores.

6.4.7. Tcnicas e Parmetros

Em geral, as tcnicas, os parmetros e os tipos de operadores genticos afetam
significativamente o desempenho dos Algoritmos Genticos. A escolha de tcnicas,
parmetros e operadores emprica, porm em sintonia com o tipo de problema
envolvido.

A inicializao da populao determina o processo de criao dos indivduos para o
primeiro ciclo do algoritmo, sendo comum formao da populao inicial a partir de
indivduos aleatoriamente criados.

Em um Algoritmo Gentico, vrios parmetros controlam o processo evolucionrio:
Tamanho da populao nmeros de pontos no espao de busca sendo
considerados em paralelo a cada ciclo do algoritmo gentico.
Taxa de Crossover probabilidade de um indivduo ser recombinado
geneticamente com outro.
Taxa de Mutao - probabilidade do contedo de cada gene do cromossoma
ser alterado.
Nmero de Geraes quantidade ciclos do Algoritmo Gentico. Pode ser
deduzido caso se tenha a informao do tamanho da populao e total de
indivduos (total de indivduos / tamanho da populao).

106

Total de Indivduos total de solues a serem geradas e avaliadas pelo
Algoritmo Gentico (tamanho da populao * nmero de geraes).

Os ltimos dois parmetros so normalmente empregados como critrio de parada de
um Algoritmo Gentico, isto , quando o processo evolucionrio deve ser interrompido.

Um Algoritmo Gentico pode ser descrito como um processo contnuo que repete ciclos
de evoluo controlados por um critrio de parada, conforme ilustrado pela figura 6.6.

Cromossoma Palavra Aptido
A 100100 1296
B 010010 324
C 010110 484
D 000001 1
Cromossoma Palavra Aptido
A 100100 1296
B 010010 324
C 010110 484
D 000001 1
f( )
Filhos
Avaliao
dos Filhos
f( )
Filhos
Avaliao
dos Filhos
Pais Pais
Reproduo
Crossover
Mutao
Reproduo
Crossover
Mutao


Figura 6.6: Ciclo de um Algoritmo Gentico

As tcnicas de reproduo determinam o critrio de substituio dos indivduos de uma
populao para a gerao seguinte. A seguir encontram-se citados alguns exemplos:

Troca de toda a Populao: A cada ciclo, N novos indivduos so criados,
substituindo a populao anterior. Para tanto, N/2 pares de indduos so
selecionados para acasalamento, gerando N descendentes.

Elitismo: Todos os cromossomas so substitudos, sendo o cromossoma mais
apto da populao corrente copiado para a populao seguinte.

Steady State: Gera M indivduos (M<N), que substituem os piores indivduos
da populao corrente. Pode haver duplicao de indivduos na populao
resultante.

Steady State sem Duplicados: Similar tcnica de Steady State, no
permitindo a presena de indivduos duplicados na populao.

As tcnicas de aptido influenciam na forma com que as aptides dos cromossomas em
uma populao so numericamente atribudas. A seguir encontram-se citados alguns
exemplos:

107


Mtodo Clssico: Atribuir como aptido de um cromossoma o valor numrico
do resultado da avaliao. Este mtodo, embora utilizado em muitos problemas,
pode apresentar duas situaes que precisam ser tratadas:

a) Competio prxima Indivduos cujas aptides so numericamente
muito prximas dificultam a distino entre eles quanto qualidade da
soluo proporcionada;

b) Super-indivduos So indivduos com avaliao muito superior
mdia, que podem dominar o processo de seleo, impedindo que o
Algoritmo Gentico obtenha novas solues, potencialmente melhores
do que as representadas pelos super-indivduos.

Normalizao Linear: Consiste em ordenar os cromossomas em ordem crescente
de avaliao e atribuir linearmente (equao abaixo) valores de aptides aos
cromossomas entre um intervalo [valor mnimo, valor mximo], distanciados de
um valor fixo entre eles.

) 1 ( * ]
1
min max
[ min

+ = i
N
A
i
Onde max e min so, respectivamente, a maior e a menor avaliao identificadas
em uma gerao, N o nmero de indivduos na gerao e i identifica o
indivduo que est tendo sua avaliao normalizada.

As tcnicas de interpolao de parmetros de um Algoritmo Gentico tm como
objetivo buscar o valor ideal de um determinado parmetro para cada ciclo, durante toda
a evoluo. Estas tcnicas podem ser lineares ou adaptativas.

Como exemplo para ilustrar a necessidade de que parmetros do Algoritmo Gentico
sejam interpolados ao longo do processo evolutivo, pode-se intuitivamente perceber que
a taxa de aplicao do operador de crossover deve ser maior nas primeiras geraes,
quando a populao se apresenta dispersa pelo espao de busca. Aps vrias geraes,
os indivduos tendem a apresentar, na sua maioria, caractersticas muito similares. Um
incremento da taxa de mutao nesta fase da evoluo propicia uma pequena disperso
da populao, trazendo novo material gentico para a formao de melhores indivduos.

Na interpolao linear, uma taxa ou um parmetro variado entre um valor inicial e um
valor final, por meio de incrementos/decrementos fixos a cada k geraes. A
interpolao adaptativa, normalmente utilizada para ajuste da taxa de aplicao de
operadores genticos, considera o desempenho destes operadores nos ciclos anteriores.
Este desempenho medido em funo do sucesso dos referidos operadores na criao de
melhores indivduos. A adoo da intepolao adaptativa envolve um overhead
computacional por conta da necessidade de avaliao dos operadores a cada nova
gerao.


108

6.5. Estrutura Geral de um Algoritmo Gentico

A seguir se encontra a estrutura geral bsica de um Algoritmo Gentico. Esta estrutura
est descrita em pseudo-cdigo, pois tem como objetivo apresentar em nvel lgico o
processo evolutivo em Algoritmos Genticos. Algumas alteraes nesta estrutura so
admissveis em funo do problema analisado. Por exemplo: podem ser includas
funes para implementar tcnicas de reproduo ou ainda tcnicas de aptido.
Considerando a importncia da funo de avaliao, optou-se por apresentar em seguida
a sua descrio bsica. As demais funes no foram descritas, mas podem ser obtidas
na maioria das aplicaes de Algoritmos Genticos disponveis na Internet. Em
particular, os autores sugerem uma consulta biblioteca de funes de Algoritmos
Genticos, escrita em MATLAB, disponvel no site: www.ica.ele.puc-rio.br

Conforme j mencionado, cabe ressaltar que diferentes critrios de parada podem ser
utilizados para terminar a execuo de um Algoritmo Gentico. Exemplos:
a) Aps um determinado nmero de iteraes (ciclos ou geraes);
b) Quando a aptido mdia ou do melhor indivduo no melhorar mais;
c) Quando as aptides dos indivduos de uma populao se tornarem muito
parecidas.
d) Combinaes das opes acima.

Estrutura Geral de um Algoritmo Gentico
T=0
Gerar Populao Inicial P(0)
Avaliar P(0)
Enquanto Critrio de Parada no for satisfeito faa:
T=T+1
Selecionar Populao P(T) a partir de P(T-1)
Aplicar Operadores de Cruzamento sobre P(T)
Aplicar Operadores de Mutao sobre P(T)
Avaliar P(T)
Fim Enquanto

Estrutura Geral de uma Funo de Avaliao (Avaliar P(T))
Para todo indivduo i da Populao Atual P(T) faa
Avaliar a aptido do indivduo i
Fim Para

6.5. Desempenho dos AGs

Pelo exposto nas sees anteriores, pode-se perceber que Algoritmos Genticos
combinam mudanas aleatrias com processos probabilsticos. Assim, AGs so,
portanto, estocsticos: dificilmente repetem um resultado de um experimento para outro.

O desempenho de um AG medido pelo grau de evoluo alcanado durante o processo
evolucionrio. Para tanto, devido natureza estocstica dos AGs necessrio avaliar o

109

resultado mdio de vrios experimentos para se ter uma idia do desempenho do
algoritmo gentico desenvolvido.

As principais medidas de desempenho so expressas por:
Curva da mdia dos melhores cromossomas a cada ciclo em vrios experimentos:
apresenta o desempenho mdio de um AG e serve para ajuste de parmetros.
Curva on-line da mdia da avaliao de todos os indivduos at um determinado
instante t em um experimento: mede a velocidade com que um AG consegue
produzir boas solues.
Curva off-line da mdia da avaliao dos melhores indivduos at um instante t em
um experimento: mede o grau de convergncia do AG na criao de solues mais
aptas.

6.6. Um Exemplo de Execuo Manual de um Algoritmo Gentico

Esta seo tem por objetivo ilustrar alguns ciclos do processamento de um algoritmo
gentico, mostrando, desta forma, o encadeamento dos conceitos apresentados ao longo
deste captulo. Para tanto, utilizamos um exemplo de problema extrado de (Linden,
2006).

Considere o problema: Maximizar a funo

f(x,y) = 1 + | x * y * sen (y /4) | onde x e y [0,15] e so valores inteiros.

Considerando o intervalo, so necessrios 4 bits para cada varivel, o que implica em
cromossomas com 8 bits.

Seja a populao inicial, sorteada aleatoriamente:
Cromossomo x y g(x,y)
01000011 4 3 9,5
00101001 2 9 13,7
10011011 9 11 71,0
00001111 0 15 1,0
10011001 5 5 18,7
11100011 14 3 30,7
Somatrio das avaliaes 144,6

Considerando a utilizao do mtodo de seleo da roleta, temos a seguinte situao:


110


Figura 6.7: Exemplo de configurao da roleta

Sorteamos ento os indivduos para produzir a gerao seguinte. (seis nmeros entre 0 e
a soma das avaliaes (144,6)).

Nmero Sorteado Cromossomo Escolhido
12,8 00101001
65,3 10011011
108,3 10011001
85,3 10011011
1,8 01000011
119,5 11100011


Fazendo o crossover de um ponto entre os pares de pais selecionados, e aplicando a
mutao em um dos filhos gerados, tem-se, por exemplo, o resultado da figura 6.8.


111


Figura 6.8: Resultado da aplicao dos operadores de crossover e mutao.

Convm ressaltar que:
O ponto de corte variou em cada aplicao do crossover, uma vez que este nmero
sorteado aleatoriamente.
H filhos exatamente iguais aos pais.
Para cada bit foi sorteado um nmero entre 0 e 99 (taxa de mutao = 1%). Igual a
zero inverte bit, mantendo caso contrrio.

A nova gerao e a avaliao dos novos indivduos foi a seguinte:

Cromossomo x y g(x,y)
00111011 3 3 7,4
10001001 8 9 51,9
10011011 9 11 71,0
10011000 9 8 1,0
01000011 4 3 9,5
11100011 14 3 30,7
Somatrio das avaliaes 171,5


Convm observar neste exemplo que houve melhora na avaliao mdia da gerao em
relao a anterior: A
media
(G
1
) = 144,6/6 = 24,1 A
media
(G
2
) = 171,5/6 = 28,6


112

O processo se repete at completar o nmero mximo de geraes ou at atingir outro
critrio de parada.



113

Captulo
7

Consideraes Finais


7.1. Introduo

A Inteligncia Computacional (IC) uma rea da Cincia da Computao que tem como
objetivos desenvolver e aplicar recursos que permitam aos computadores terem um
comportamento similar ao humano em tarefas especficas. As atividades na rea de IC
podem ser organizadas em trs grandes grupos: atividades voltadas ao desenvolvimento
tecnolgico em IC, atividades de construo de sistemas inteligentes com recursos de IC
e atividades envolvendo a aplicao de sistemas inteligentes. Esta taxonomia,
apresentada graficamente na figura 7.1, possui seus itens comentados abaixo.

Desenvolvimento Tecnolgico Este item abrange todas as iniciativas de
concepo, aprimoramento e desenvolvimento de algoritmos, ferramentas e
tecnologias de IC.

Aplicao de Recursos de IC na Construo de SI Este item refere-se s
atividades voltadas ao desenvolvimento de sistemas inteligentes que utilizem
recursos da IC. As ferramentas produzidas pelas atividades de desenvolvimento
tecnolgico so utilizadas na execuo dessas atividades.

Aplicao dos SI - Finalmente, uma vez construdos os sistemas inteligentes, esse
grupo de atividades compreende a aplicao, o acompanhamento, a avaliao e o
refinamento de tais sistemas.

So inmeros os segmentos do mundo contemporneo em que a IC pode ser aplicada.
Entre eles podem ser citados: comrcio, indstria, finanas, medicina, educao,
energia, telecomunicaes, meio ambiente, etc...
Este livro procurou apresentar uma introduo a alguns dos principais conceitos e
tcnicas da IC, indicando vrias possibilidades de aplicao.

114


Figura 7.1: Taxonomia das Atividades em IC

Vrias aplicaes da IC situam-se em cenrios de extrema relevncia no contexto do
mundo atual. A seguir encontram-se mencionadas algumas delas:

Minerao de Dados e KDD (Knowledge Discovery in Databases Descoberta de
Conhecimento em Bases de Dados): A IC fornece uma srie de recursos voltados ao
auxlio do homem na anlise de grandes quantidades de dados, visando o
desenvolvimento e a seleo de estratgias de ao em cada contexto de aplicao.
Minerao de Textos e KDT (Knowledge Discovery in Texts Descoberta de
Conhecimento em Dados Textuais): De forma anloga ao item anterior, a IC fornece
uma srie de recursos voltados ao auxlio do homem na anlise de grandes
quantidades de documentos textuais em busca de conhecimento que possa ser til
em cada contexto de aplicao.
Processamento de Linguagem Natural: A IC tem contribudo para a construo de
recursos computacionais que auxiliem no entendimento de linguagem natural pelo
prprio computador.
Modelagem de Sistemas Complexos: Ferramentas da IC tais como Sistemas Multi-
agentes Inteligentes vm sendo utilizadas na modelagem, simulao e entendimento
de ambientes naturais envolvendo vrios elementos com caractersticas e
comportamentos diferenciados. Compreende, por exemplo, aplicaes em Educao
a Distncia, Redes Sociais, Ambientes Colaborativos, dentre outras.
Reconhecimento de Imagens: So vrias as aplicaes de recursos de IC no
reconhecimento de imagens. Compreende desde cenrios militares at aplicaes de
natureza cultural, tais como autenticao de pinturas e desenhos.

Os limites de aplicao da IC na atualidade so estabelecidos basicamente em funo de
duas caractersticas: (a) a primeira delas envolve o conhecimento que se tenha sobre a
IC em si; (b) a segunda diz respeito capacidade criativa de cada especialista em IC.
Diante deste cenrio, o presente texto vem procurar contribuir para disseminar e

115

desmistificar um pouco do conhecimento mencionado no item (a). E que o
desconhecimento sobre as tecnologias da rea no seja um limitador para a
potencialidade de aplicao da IC junto ao mundo moderno.


116

Referncias:

BAIO, E. Sistema Especialista na rea Mdica, Trabalho de Concluso de Curso,
UGF, 2002.
BELLMAN, R. E. Dynamic Programming, Princeton: Princeton University Press, 1956.
BOJADZIEV, G.; BOJADZIEV, M. Fuzzy Logic for Business, Finance, and
Management. World Scientific, 1997.
BRANCHMAN, R. J. What is-a is and isnt: An analysis of taxonomic links in semantic
networks. IEEE Computer, 16(10), 30-36, 1983.
BUCHANAN, B. G. et al. Constructing an Expert System. In Building Expert Systems.
pp. 127-169, MA: Addison-Wesley, 1983.
CARVALHO, L. A. V. Data Mining: A Minerao de Dados no Marketing, Medicina,
Economia, Engenharia e Administrao. 2 ed., So Paulo: rica, 2001.
CAZAROTTI, R.; MENEZES, R. Sistema Especialista para Planejamento de
Atividades Fsicas, Trabalho de Concluso de Curso, UGF, 2004.
CHARNIAK, E.; McDERMOTT, D. Introduction to Artificial Intelligence, MA:
Addison-Wesley, 1985.
CHAPPETTA, P. Sistema Especialista de Anlise de Risco para Concesso de Limite
de Carto, Trabalho de Concluso de Curso, UGF, 2004.
DAVIS, L. Handbook of Genetic Algorithms. VNR Comp. Library, 1990.
DAVIS, R. H. et al. What is knowledge representation? AI Magazine, 14(1), pp. 17-33,
1993.
FRANA, E. SEAM Sistema Especialista para rea Mdica. Trabalho de concluso
de curso UGF, 2002.
FISHER, R. A. The Genetical Theory of Natural Selection. Clarendon, 1930.
GOLDBERG, D. E. Genetic Algorithms in Search, Optimization and Machine Learning.
MA: Addison-Wesley, 1989.
GOLDSCHMIDT, R. Assistncia Inteligente Orientao do Processo de Descoberta de
Conhecimento em Bases de Dados. Rio de Janeiro, Tese de Doutorado
Departamento de Engenharia Eltrica, Pontifcia Universidade Catlica do Rio de
Janeiro, 2004.
GOLDSCHMIDT, R., PASSOS, E. Data Mining: Um Guia Prtico. Rio de Janeiro:
Campus, 2005.
Gruber, T. R. A Translation Approach to Portable Ontologies. Knowledge Acquisition,
5(2):199-220, 1993.
HAYKIN, S. Redes Neurais: Princpios e Prtica. Porto Alegre, RS. Bookman, 2
Edio, 2001.

117

HAUGELAND, J. Artificial Intelligence: The Very Idea. Cambridge: MIT Press, 1985.
HECHT-NIELSEN, R. Applications of Counterpropagation Networks, Neural
Networks, v. 1, pp. 131-139, 1988.
_____________________ Neurocomputing, New York, Addison-Wesley, 1990.
HOLLAND., J. H. Adaptation in Natural and Artificial Systems. University of
Michigan Press, 1975.
KOZA, J. Genetic Programming: On the Programming of Computers by Means of
Natural Selection. MIT Press, 1992.
Laboratrio de Inteligncia Artificial. SINTA: Uma ferramenta visual para criao de
sistemas especialistas, verso 1.1. Manual do usurio, UFC, 1997.
LINDEN, R. Algoritmos Genticos. So Paulo: Brasport, 2006.
LUCENA, C. J. P. Inteligncia Artificial e Engenharia do Software. Rio de Janeiro:
Publicaes Acadmico-Cientficas, 1987.
LUGER, G. F. Inteligncia Artificial. Porto Alegre: Bookmann, 2004.
MAIDA, A. S. Frame Theory. John Wiley & Sons, 1987.
MENDES, L. A. T. Sistema Especialista na Gerao de Sistemas Especialistas.
Trabalho de Concluso de Curso de Graduao. Curso de Bacharelado em Cincia da
Computao do Centro Universitrio da Cidade do Rio de Janeiro. 2005.
MINSKY, M. A. A Framework for Representing Knowledge. New York: McGraw-Hill,
1975.
NUNES, T. Sistema Especialista para Diagnstico de Falhas em Aeronaves. Trabalho
de Concluso de Curso, UGF, 2003.
PASSOS, C. A. Ambiente para Desenvolvimento de Sistemas Especialistas: Edio e
Prototipao. Dissertao de Mestrado - IME, 1997.
PEDRYCZ, W. & GOMIDE, F. An Introduction to Fuzzy Sets Analysis and Design.
MIT, 1998.
QUINLAN, J. R. Programs for Machine Learning. San Mateo: Morgan Kaufmann
Publishers Inc., 1993.
REZENDE, S. Sistemas Inteligentes: fundamentos e Aplicaes. Barueri: Manole, 2003.
RIBEIRO, Horcio da C. S. Introduo aos Sistemas Especialistas, Editora LTC, 1987.
RICH, E.; KNIGHT, K. Inteligncia Artificial. So Paulo: Makron, 1992.
RUSSELL, S. J.; NORVIG, P. Inteligncia Artificial. 2. ed. Rio de Janeiro: Campus,
2004.
WINSTON, P. H. Artificial Intelligence, 3rd ed. MA: Addison-Wesley, 1992.

118

Apndice A

Exemplos de Ferramentas de Inteligncia
Computacional Dicas de Utilizao

A.1. IcaDemo
A.1.1. Introduo
O Icademo um software demonstrativo de tcnicas computacionais inteligentes (Redes
Neurais e Algoritmos Genticos) desenvolvido no ICA - Laboratrio de Pesquisa em
Inteligncia Computacional Aplicada da PUC-Rio para facilitar o ensino e o
aprendizado de tcnicas computacionais inteligentes. O Sistema foi desenvolvido para
operar no sistema operacional Windows .
A.1.2. Aplicaes do Icademo
O Icademo possui demonstraes de aplicaes de redes neurais e de algoritmos
genticos, as quais sero apresentadas nas prximas sees.
A.1.2.1. Algoritmos Genticos
O principal aplicativo relacionado aos Algoritmos Genticos refere-se maximizao
das funes F6 e F6 elevada. O Icademo permite configurar parmetros do AG tais
como as taxas de crossover e de mutao, o tamanho da populao assim como a
escolha de tcnicas (elitismo, normalizao linear, steady state) para melhoria do
desempenho do algoritmo. O tipo de crossover (um ponto, dois pontos ou uniforme)
tambm pode ser escolhido pelo usurio. Abaixo a figura A.1.1 apresenta a tela de
avaliao da funo F6 e a figura A.1.2 apresenta a frmula da funo F6 a ser
maximizada. Ao final do processamento do AG, o IcaDemo apresenta um grfico
mostrando os desempenhos dos melhores indivduos gerados pelo algoritmo. A
avaliao de um indivduo leva em considerao a quantidade de nmeros 9 aps o
ponto decimal. Como o maior valor que a funo pode alcanar 1, o AG procura
encontrar os pares ordenados (x,y) que maximizem a funo, ou seja, levem a uma
imagem prxima de 1. Assim, quanto mais nmeros 9 aps o ponto decimal a imagem
de um par ordenado apresentar, mais prximo est do mximo da funo e, portanto,
mais apto deve ser considerado.

119


Figura A.1.1 Tela do AG para maximizao da funo F6



Figura A.1.2. Funo F6

A.1.2.2. Redes Neurais
O Icademo permite demonstrar as tcnicas de redes neurais atravs de dois algoritmos
chamados Hopfield e Back Propagation. A figura A.1.3 apresenta o menu de opes
para seleo entre os dois algoritmos disponibilizados.


120

Figura A.1.3. Seleo do algoritmo para demonstrao de Redes Neurais
A.1.2.2.1. O algoritmo de Hopfield
As Redes de Hopfield armazenam padres que so recuperados a partir de estmulos de
entrada. O armazenamento de padres realizado via Aprendizado Hebbiano. Uma
caracterstica importante deste modelo a chamada recorrncia: as sadas ligam-se as
entradas por um atraso de tempo; com efeito, a resposta da rede sempre depende de seu
estado anterior. O Icademo utiliza o algoritmo de Hopfield para demonstrar o
reconhecimento de dgitos de 0 a 9. A entrada se d por uma matriz de 12 linhas por 10
colunas (Figura A.1.4).
Figura A.1.4. Exemplo de matriz de entrada do algoritmo de Hopfield
O Icademo permite configurar vrios aspectos do algoritmo, entre eles podemos destacar
a taxa de rudo e o tipo de atualizao, a figura A.1.5 apresenta a tela principal do
algoritmo de Hopfield.

121

Figura A.1.5. Tela principal do Algoritmo de Hopfield
Entre as opes disponveis ao usurio esto a possibilidade de criar padres (Figura
A.1.6) e salv-los para uso posterior.

Figura A.1.6. Tela para entrada de padres
B.1.2.2.2. O algoritmo Back Propagation
O Backpropagation um algoritmo para treinamento de redes neurais do tipo perceptron
com mltiplas camadas e tem como caracterstica principal o fato de ser baseado no
paradigma de aprendizado supervisionado. Conforme j comentado no captulo 6, outra
caracterstica importante deste algoritmo que, durante o aprendizado, ele processa em
duas fases: a propagao e a retro-propagao. Na propagao o sinal flui da esquerda

122

para a direita e na retro-propagao, com o erro calculado, o algoritmo ajusta os pesos
das conexes da direita para a esquerda. O Icademo utiliza o algoritmo Back
Propagation para demonstrar o reconhecimento de dgitos de 0 a 9. A entrada da rede se
d por uma matriz de 5 linhas por 4 colunas (Figura A.1.7).

Figura A.1.7. Exemplo de matriz de entrada do algoritmo Back Propagation do
IcaDemo
Assim como no algoritmo Hopfield, o Icademo permite a configurao de vrios
parmetros do algoritmo, tais como o nmero de processadores por camada, o nmero
de padres e vrios outros permitindo ao usurio realizar diversos experimentos no
treinamento da rede neural.

A tela da figura A.1.8 mostra a possibilidade de escolha da quantidade de camadas
escondidas da rede (mximo 4), assim como o nmero de neurnios em cada camada
(mximo de 50). Convm enfatizar que o nmero de neurnios na camada de entrada
sempre fixo e igual a 20, uma vez que a aplicao, considera, como comentado acima,
uma matriz de entrada de dimenso 5 por 4. A camada de sada tambm possui um
nmero fixo de neurnios, igual a 10, por se tratarem de 10 dgitos (0 at 9).



123


Figura A.1.8. Configurao da(s) camada(s) intermedirias da rede neural
Ao pressionar o boto Prosseguir, o IcaDemo apresenta a tela da figura A.1.9, na qual
o usurio pode carregar padres previamente armazenados, ou digitar novos padres.
Cada padro corresponde a um dgito informado rede, para treinamento ou para
avaliao. Ao pressionar o boto Prosseguir, a tela da figura A.1.10 apresentada.


Figura A.1.9. Indicao do nmero de padres a serem utilizados no treinamento da rede

Na tela da figura A.1.10, o usurio pode configurar os padres a serem utilizados no
treinamento da rede neural. Para preencher um padro, o usurio deve clicar sobre cada
clula da matriz que desejar. Caso alguma clula seja erroneamente selecionada, o
usurio deve clicar novamente sobre a clula indesejada, causando a sua desmarcao.

124

Uma vez que cada padro tenha sido desenhado, o usurio deve selecionar qual a sada a
ser ativada para o padro correspondente. Em seguida, deve clicar sobre o boto
associar. Uma vez que tenham sido informados e associados todos os padres a serem
utilizados no treinamento da rede, o usurio deve escolher os parmetros de aprendizado
(taxa de erros, nmero de rodadas, taxa de aprendizado e termo de momento). Caso a
rede neural j tenha sido treinada, o usurio deve clicar no boto carregar peso para
escolher o arquivo que contenha os pesos de uma rede para o qual j tenha sido iniciado
e salvo o seu treinamento. Ao final da configurao, o usurio deve pressionar a tecla
prosseguir, o que levar a abertura da tela mostrada na figura A.1.11.


Figura A.1.10. Configurao dos padres e parmetros de treinamento da rede

Na tela da figura A.1.11, o usurio tem a opo de iniciar o treinamento da rede,
interromp-lo, durante seu processamento, salvar a rede neural aps o treinamento e
prosseguir para a etapa de avaliao da rede.

125


Figura A.1.11. Controle do processamento do treinamento da rede
A figura A.1.12 mostra a tela voltada avaliao da rede neural treinada. Nesta tela, o
usurio pode informar um padro de entrada e pressionar o boto avaliar. Neste
momento, o IcaDemo apresenta o grau de ativao de cada um dos neurnios da camada
de sada. No exemplo da figura, o padro mais se assemelha ao dgito 0. A rede neural
reconhece este fato ao mostrar o neurnio associado sada 0 com maior valor de
ativao. Na parte inferior da tela so apresentados dados informativos sobre o
treinamento da rede.


Figura A.1.12. Avaliao da rede neural treinada


A.2. SINTA

126

O ambiente SINTA um software desenvolvido pela Universidade Federal do Cear e
que tem como objetivos, conforme comentado no captulo 3, permitir a criao, a edio
e o processamento de bases de conhecimento de Sistemas Especialistas.
A figura A.2.1 apresenta a tela inicial do SINTA. Neste momento, o usurio pode criar
uma nova base de conhecimento ou abrir uma existente, como mostra a figura da tela
A.2.2.

Figura A.2.1 Tela inicial do SINTA




127

Figura A.2.2 Selecionando nova base de conhecimento

Aps criar uma nova base, o usurio pode digitar uma nova regra por meio das telas das
figuras A.2.3 e A.2.4. Caso j exista alguma regra parecida com a nova regra a ser
informada, o usurio pode escolh-la como modelo. Neste caso, o SINTA faz uma cpia
da regra existente (modelo) na nova regra, a ser editada.

A edio de uma regra pressupe que as variveis do problema tenham sido informadas.
Na tela da figura A.2.5, o usurio pode criar variveis e seus valores. Esta tela
acionada a partir da opo Variveis da tela da figura A.2.3.

A tela exibida na figura A.2.6 mostra um exemplo de regra oriundo de uma base de
conhecimento que j havia sido editada e que foi carregada a partir da opo abrir base
de conhecimento do menu arquivo. Na figura A.2.7 so apresentadas as opes para
edio de uma regra.

A figura A.2.8 mostra uma tela em que possvel editar uma clusula (condio ou
predicado) de uma regra.


128

Figura A.2.3 Criando nova regra


Figura A.2.4 Criando nova regra





129


Figura A.2.5 Exemplo de Criao de Varivel e seus Valores


130

Figura A.2.6 Exemplo de Regra de Produo j editada


131

Figura A.2.7 Opes para edio de regra do SINTA


Figura A.2.8 Edio de uma clusula de uma regra.

O usurio poder, a qualquer momento, excluir regras. Para tanto, s selecionar a regra
desejada e, em seguida, a opo Excluir regra mostrada na tela da figura A.2.9.
O usurio pode, tambm, visualizar todas as regras que envolvem determinadas
variveis, alm de poder imprimi-las, se assim desejar. Para fazer isso, o usurio dever
escolher a funo Visualizar na tela da figura A.2.9, sendo mostradas as telas das
figuras A.2.10 e A.2.11.



132

Figura A.2.9 Possibilidade de excluso de regra


Figura A.2.10 Escolha de variveis para visualizar regras


133


Figura A.2.11 Visualizao de regras.

O usurio pode selecionar os objetivos da base de conhecimento, mas para isso,
preciso que definamos quais das variveis sero consideradas como objetivos. Para
tanto, o usurio deve selecionar na tela da figura A.2.12 a varivel desejada e clicar no
boto correspondente (aquele que aponta para a lista de destino). Esta tela pode ser
acessada ao pressionar objetivos da tela da figura A.2.3. A lista com uma seta dupla
(seja para a esquerda ou para direita) move todos os itens de uma lista para outra. Para
mudar a ordem dos elementos da lista de objetivos, o usurio deve clicar em um item e
arrast-lo at a posio desejada.



134

Figura A.2.12 Escolha dos Objetivos de uma Base de Conhecimento
A fim de tornar o processamento da base de conhecimento mais fcil de ser realizado, o
usurio poder configurar as perguntas a serem realizadas para cada varivel do
problema. Para isso, dever selecionar a opo interface, disponvel na tela da figura
A.2.3, o que acionar uma nova tela (figura A.2.13) contendo as perguntas associadas s
variveis da base de conhecimento. Uma vez configuradas as perguntas, o
processamento da base de conhecimento as apresentar sempre que for necessrio
descobrir os valores das variveis correspondentes.

135

Figura A.2.13 Tela para Configurao das Perguntas Associadas s Variveis

Uma vez concluda a edio de uma base de conhecimento, o ambiente estar pronto
para realizao de consultas. Cada consulta envolve o processamento da base de
conhecimento utilizando o encadeamento para trs. Isso significa que o SINTA
perguntar ao usurio a respeito de todas as variveis necessrias para concluir algo
sobre as variveis definidas como objetivos. Para iniciar uma nova consulta, o usurio
deve pressionar a opo iniciar que est na barra de ferramentas do SINTA, conforme
mostra a tela da figura A.2.13.

Ao final do processamento de uma consulta, o usurio tem a opo de verificar como o
sistema chegou ao resultado final. A tela da figura A.2.14 ilustra essa possibilidade (aba
histrico).


136


Figura A.2.14 Tela apresentada ao final do processamento de cada consulta

137

A.3. SEGSE Sistema Especialista Gerador de Sistemas Especialistas
O SEGSE, conforme o prprio nome indica, um sistema especialista para auxiliar na
criao de sistemas especialistas. Maiores detalhes sobre sua estrutura interna podem ser
obtidos no captulo 3. A seguir, encontra-se um passo a passo do seu funcionamento.
Para criar um novo projeto de Sistema Especialista, o usurio dever fazer o seguinte
procedimento a partir da tela da figura A.3.1: arrastar o mouse para o menu Projeto e
selecionar Novo.

Figura A.3.1 Gerando um novo projeto de Sistema Especialista.

Conforme um novo projeto criado, uma srie de perguntas ser feita ao usurio para a
configurao do novo sistema especialista a ser gerado. Tais perguntas so sempre
apresentadas em um mesmo formato de tela, conforme ilustra a figura A.3.2. O
contedo das perguntas o resultado de um processo de aquisio de conhecimento
sobre como construir sistemas especailistas. Tal processo transparente para o usurio
final do SEGSE, assim como para os usurios finais dos Sistemas Especialistas gerados.

138

Figura A.3.2 Um exemplo de pergunta quando h um novo projeto.

Se o usurio desejar abrir um projeto existente, dever fazer o seguinte: Na tela da
figura A.3.3, arrastar o mouse na opo Arquivo, e escolher a opo Abrir. Neste
momento, aparecer uma tela (figura A.3.4) onde o usurio dever escolher o arquivo
que deseja abrir. Os arquivos que sero abertos (ou salvos) esto na extenso SEG ou
em XML. Para salvar o arquivo, o usurio deve escolher a pasta de destino, o nome do
arquivo e o tipo, SEG ou XML.

Figura A.3.3 Escolhendo a opo Abrir (Projeto Existente).

139

Figura A.3.4 Escolhendo o arquivo a ser aberto.

Na sequncia, o usurio deve preencher os seguintes dados informativos sobre o projeto:
nome, descrio e autor, conforme mostra a tela da figura A.3.5.

Figura A.3.5 Dados do projeto de sistema especialista.

Aps, o usurio dever escolher as opes que esto na barra de ferramentas abaixo do
preenchimento dos dados na tela da figura A.3.5. Ao selecionar a opo atributos, o
SEGSE exibe a tela da figura A.3.6.


140

Figura A.3.6 Edio dos Atributos do SE a ser gerado.

Na tela A.3.6, o usurio dever digitar o nome do atributo e pressionar o boto novo
atributo. Este verifica se o nome do atributo j existe na listagem de atributos. Caso
no exista, ser efetuada a validao de atributo por meio de uma srie de perguntas,
conforme a ilustrada na figura A.3.2. Caso tal atributo no seja validado, o SEGSE
solicitar ao usurio que seja informado outro atributo. Uma vez validado, o atributo
ser liberado para edio. Neste momento, o usurio dever preencher os campos
descrio do atributo do SE e o texto de ajuda.
Ainda na tela A.3.6, no campo Valores, o usurio digitar cada valor associado ao
atributo em questo. Aps a digitao de cada valor, o usurio dever selecionar o boto
novo valor. Neste momento, novamente o SEGSE realizar uma srie de perguntas
para considerar como vlido o valor informado. Caso deseje excluir um valor informado
erroneamente, basta o usurio selecionar a opo Excluir valor, escolher um valor que
desejar excluir e confirmar a solicitao de excluso.
Para o usurio acessar os objetivos do SE, ele dever selecionar a opo objetivos na
tela da figura A.3.5. Em seguida aparecer a tela da figura A.3.7 para escolha dos
objetivos do SE.

141

Figura A.3.7 Seleo dos Objetivos do SE a ser gerado.

A tela da figura A.3.7 mostra o conjunto de atributos que foram previamente criados no
formulrio de atributos do projeto. Apenas um atributo pode ser escolhido para ser
definido como objetivo. Para inserir um objetivo, o usurio dever selecionar um dos
atributos na seo Atributos e, em seguida, pressionar o boto insere objetivo. Neste
momento, o SEGSE apresenta uma srie de perguntas para validao do objetivo. Uma
vez validado o atributo como objetivo, o sistema o transfere para a lista de objetivos.
Em caso de erro, o usurio pode, de maneira anloga, remover o atributo da lista de
objetivos.

Para o usurio configurar o conhecimento a ser incorporado no SE a ser gerado, ele
dever selecionar a opo conhecimento na tela da figura A.3.5. Em seguida aparecer
a tela da figura A.3.8 para que o usurio informe, para cada combinao de valores dos
atributos, qual dever ser a resposta do SE. Convm mencionar que a quantidade linhas
varia de acordo com o total de atributos e valores informados. Deve ser associado um
valor de objetivo para cada linha. Esta tabela deve ser preenchida pelo especialista, que
tem conhecimento para reconhecer qual o valor de objetivo mais adequado para cada
linha.


142

Figura A.3.8 Tela de aquisio do conhecimento

Aps concludas todas as etapas indicadas, o usurio poder gerar o Sistema
especialista. Para tanto, o usurio dever pressionar o boto Gerar SE da tela da figura
A.3.5. Em seguida, ser apresentada a tela da figura A.3.9.


Figura A.3.9 Tela de gerao do SE


143

O usurio poder escolher a opo visualizar regras da tela da figura A.3.9. Tal opo
mostrar a tela de visualizao das regras geradas (figura A.3.10).
Figura B.3.10 Visualizao de Regras

Se o usurio desejar salvar o trabalho, dever acionar a opo correspondente na tela
A.3.5. importante mencionar que os arquivos do sistema especialista gerado so
armazenados na mesma pasta em que o projeto foi salvo.