Você está na página 1de 145

Sistemas Inteligentes

Sistemas Inteligentes
Sumário

1 Introdução à Inteligência Artificial .........................................1


2 Conhecimento ......................................................................8
3 Sistemas Baseados em Regras .............................................23
4 Sistemas Baseados em Casos ..............................................32
5 Sistemas de Recomendação ................................................53
6 Sistemas Multiagente ..........................................................73
7 Teoria dos Jogos .................................................................90
8 Algoritmos Genéticos ........................................................102
9 Redes Neurais Artificiais....................................................119
10 Exemplos de Implementações de Sistemas ........................134
Fabiana Lorenzi1

Capítulo 1

Introdução à
Inteligência Artificial 1

Apresentação

A Inteligência Artificial (IA) é apresentada como uma área da


Ciência da Computação que enfatiza o estudo de sistemas
inteligentes, ou seja, sistemas que apresentam características
associadas à inteligência no comportamento humano, tais
como, compreensão de linguagem, aprendizagem, raciocínio
e resolução de problemas.

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
2 Sistemas Inteligentes

Este capítulo tem como objetivo ajudar o aluno a entender


um pouco do que é a Inteligência Artificial.

O termo Inteligência Artificial foi criado em 1956 por John


McCarthy no Massachusetts Institute of Technology (MIT) como
título de uma conferência sobre as possibilidades de fornecer
inteligência à máquina. Segundo ele, IA é a capacidade de
uma máquina de realizar funções que se fossem realizadas
pelo ser humano seriam consideradas inteligentes.

Outros autores também apresentaram o conceito de IA,


como, por exemplo:

Elaine Rich: “IA é o estudo de como fazer os computa-


dores realizarem coisas que, hoje são feitas melhores pelas
pessoas”.

Winston: “IA é o estudo das ideias que permitem aos com-


putadores serem inteligentes”.

Russel e Norvig: “IA é o estudo e implementação de agen-


tes racionais”.

Pode-se dizer que a IA tem como objetivo:

Teórico: a criação de teorias e modelos para a capacidade


cognitiva.

Prático: a implementação de sistemas computacionais ba-


seados nesses modelos.

Pode-se dizer que a IA corresponde a um conjunto de téc-


nicas interdisciplinares que busca implementar sistemas e pro-
cessos em domínios que não possuem tratamento algorítmico.
Capítulo 1 Introdução à Inteligência Artificial 3

Sistemas que utilizam técnicas de IA são normalmente mais


flexíveis e adaptáveis ao usuário e capazes de processar infor-
mações simbólicas.

Existem várias abordagens na área da IA, nas quais variam


a manipulação do conhecimento, no sentido de como adquiri-
-lo, armazená-lo ou utilizá-lo.

A Figura 1 apresenta uma classificação para as diferentes


subáreas de IA, quanto ao método de solução de problemas e
quanto à localização espacial:

Figura 1.1: Subáreas da Inteligência Artificial.

Quanto ao método de solução de problemas, tem-se a IA


Simbólica, a IA Conexionista, a IA Evolucionária e a IA
Híbrida.

A IA Simbólica possui a lógica como ferramenta básica


para manipular o conhecimento.
4 Sistemas Inteligentes

A IA Conexionista usando Redes Neurais Artificiais (RNA),


aplica-se a problemas mal definidos, mas que são conhecidos
por meio de exemplos. Entre os campos de aplicações das
técnicas conexionistas estão o reconhecimento de padrões,
controle de processos industriais, robótica.

Na IA Evolucionária, os mecanismos utilizados são os mes-


mos encontrados na evolução biológica. A IA Híbrida reúne
vantagens de mais de um tipo de abordagem para a resolução
do problema.

Tanto a IA Simbólica quanto a IA Conexionista podem ser


utilizadas em vários tipos de aplicações, porém, em alguns
casos, existem particularidades que podem tornar uma mais
atrativa do que a outra.

Quanta à localização espacial, tem-se a IA Monolítica e a


IA Distribuída.

A IA Monolítica envolve sistemas simples sem modularida-


de, como, por exemplo, os sistemas especialistas (baseados
em regras).

Já o funcionamento da IA Distribuída depende de um de-


terminado conjunto de partes (ou módulos) para resolver de
modo cooperativo um determinado tipo de problema.

1.1 Subáreas da IA

Dentro da IA podemos encontrar diferentes subáreas, como,


por exemplo:
Capítulo 1 Introdução à Inteligência Artificial 5

a) Resolução de problemas (planejamento)

 Quebra-cabeça, jogos.

 Problemas que requerem conhecimento especialista


(diagnóstico médico, localização de recursos minerais,
configuração de computadores).

b) Percepção (visão e fala)

 Reconhecimento de objetos por meio de imagens.

 Reconhecimento de voz ou identificação de imagens.

c) Processamento de linguagem natural

 O que significa um conjunto de palavras.

 Tradução de idiomas.

d) Extração de conhecimento

 Descoberta de conhecimento.

e) Aprendizado

 Desenvolver sistemas que melhorem seu desempenho a


partir de experiências.

 Desenvolver sistemas que auxiliem no aprendizado de


alunos.

f) Programação

 Distribuição da resolução de problemas.

 Sistemas multiagentes.
6 Sistemas Inteligentes

1.2 Algumas diferenças entre a Inteligência


Artificial e a computação convencional

É importante perceber as diferenças entre a computação con-


vencional e a utilização de técnicas da Inteligência Artificial
para compreender quando é necessária a utilização destas. As
diferenças podem existir considerando o processo de solução,
o processamento e os métodos de solução.

Na computação convencional, o processo de solução de


problema é determinístico, ou seja, é possível construir um al-
goritmo para definir os passos de solução do problema. Na
IA, o processo da solução é não determinístico: os passos de
solução do problema são desconhecidos e buscados por ten-
tativa e erro, durante o processamento.

Em relação ao processamento, na computação convencio-


nal, ele é principalmente numérico. Na IA, o processamento é
fundamentalmente simbólico.

Quanto aos métodos de programação, na computação


convencional, eles são impessoais, ou seja, o resultado inde-
pende do programador. Já na IA os métodos de programação
são pessoais e o resultado depende do programador que for-
nece o método de solução do problema.

Por fim, na computação convencional, os métodos de so-


lução são codificados no programa e dificilmente modificados
posteriormente. Na IA, o método de solução é fornecido com
os dados e pode ser adaptado.
Capítulo 1 Introdução à Inteligência Artificial 7

Os próximos capítulos deste livro apresentam algumas


abordagens dessas subáreas apresentadas. O Capítulo 2
apresenta um conceito de muita importância na IA simbólica:
conhecimento. O Capítulo 3 apresenta os sistemas baseados
em regras e o Capítulo 4 apresenta os sistemas baseados em
casos, ambos pertencentes a IA simbólica. O Capítulo 5 apre-
senta os sistemas de recomendação.

O Capítulo 6 introduz os sistemas multiagente, pertencen-


tes a IA distribuída. O Capítulo 7 apresenta os conceitos de te-
oria dos jogos, que são utilizados pelos sistemas multiagente.
Já o Capítulo 8 apresenta os algoritmos genéticos, pertencen-
tes a IA evolucionária. A IA conexionista está representada no
Capítulo 9, que introduz as redes neurais. Por fim, o Capítulo
10 apresenta exemplos de implementações de algumas das
abordagens vistas.

Recapitulando
Este capítulo apresentou as diferentes áreas que fazem parte
da Inteligência Artificial e o que cada uma dessas áreas tenta
solucionar.
Fabiana Lorenzi1

Capítulo 2

Conhecimento 1

Apresentação

Este capítulo tem como objetivo introduzir os leitores no mun-


do de sistemas baseados em conhecimento. Esses sistemas uti-
lizam conhecimento especialista para resolver problemas que,
normalmente, são resolvidos pelo ser humano.

Sistemas Baseados em Conhecimento (SBC) aplicam me-


canismos automatizados de raciocínio para a representação e
inferência de conhecimento. Um Sistema Baseado em Conhe-

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
Capítulo 2 Conhecimento 9

cimento consegue reproduzir o conhecimento de um especia-


lista adquirido ao longo dos anos de trabalho. O conhecimen-
to especialista envolve uma combinação de um entendimento
teórico do problema com uma coleção de regras heurísticas
para resolvê-lo, que demonstrou ser efetiva no domínio em
questão.

Conhecimento inclui a informação sobre o domínio e a


forma como essa informação é utilizada para resolver proble-
mas. Por exemplo: “João tem mais de 18 anos. Maiores de 18
anos podem tirar carteira de habilitação. João pode fazer sua
carteira de habilitação”. Podemos decompor esse parágrafo
da seguinte forma:

Dado: Representação simbólica de um objeto ou informa-


ção do domínio (Qualquer conjunto relativamente circunscrito
de atividades) sem considerações de contexto, significado ou
aplicação. Ex.: 19 anos.

Informação: Reconhecimento dos objetos do domínio, suas


características, suas restrições e seus relacionamentos com os
outros objetos, sem ater-se a utilidade dessa informação. Ex.:
Idade de João = 19 anos.

Conhecimento: como a informação deve ser utilizada para


resolução de um problema. Ex.: Pessoas maiores de 18 anos
podem tirar habitação. Como João tem mais de 18 anos, en-
tão ele pode fazer sua carteira de habilitação.

O conhecimento não é um bem estático a ser minerado, só


existe quando se produz algo com ele ou a partir dele. Pode-se
10 Sistemas Inteligentes

dizer que o conhecimento não é genérico, mas associado ou


produzido pela solução de uma classe particular de problema.

No desenvolvimento de um sistema baseado em conheci-


mento, o conhecimento dos especialistas do domínio é adqui-
rido, organizado e representado na base de conhecimento.
Essa base pode ser consultada por meio do sistema quando
necessário.

Imagine, por exemplo, que a empresa XYZ tem dois técnicos


de suporte de hardware que atendem à matriz e mais três filiais.
Se ocorrer um problema em uma das filiais, um dos técnicos
deve ser deslocado para atender o problema. Ele vai até a em-
presa e resolve o problema. Porém, não existe nenhum controle
de como o problema foi resolvido ou se o problema já havia
ocorrido anteriormente. Se o problema ocorrer novamente e, o
outro técnico for deslocado para resolver o problema, ele terá
que investigar sobre como resolver o problema e iniciar todo
processo já realizado pelo técnico anterior. Isso indica que, se
existisse um sistema baseado em conhecimento para auxiliar no
processo de help-desk, o atendimento seria mais rápido, pois
todas as soluções estariam armazenadas no sistema.

A Figura 3.1 apresenta a relação entre dados e experiên-


cia. O dado, por exemplo, pode ser um fato, texto ou código
de programa. Quando o dado é organizado, ele passa a ser
informação. Quando a informação se torna útil para resolver
um determinado problema, ela passa a ser conhecimento. O
conhecimento pode ser perícia, do nível de peritos em um de-
terminado assunto ou ele pode ser experiência, quando temos
um especialista no assunto.
Capítulo 2 Conhecimento 11

Figura 2.1: Evolução do dado.

O desenvolvimento de um sistema baseado em conheci-


mento prevê a execução das seguintes etapas:

Aquisição de conhecimento: essa etapa refere-se à ob-


tenção de conhecimento de diversas fontes, tais como, livros,
documentos ou especialistas humanos. O conhecimento refe-
re-se à solução de problemas em um domínio de aplicação e
envolve os objetos do domínio, os procedimentos e a forma
geral de como o conhecimento é aplicado.

Representação de conhecimento: nessa etapa, é neces-


sário definir a forma de representação do conhecimento, mo-
delando o conhecimento.

Validação do conhecimento: verificação da consistência


da base de conhecimento.
12 Sistemas Inteligentes

Inferência: definição dos procedimentos de manipulação


e aplicação do conhecimento, com fins de implementação.

Explicação e justificativa: envolve a recuperação do ra-


ciocínio do sistema ao atingir determinada conclusão e a de-
finição da forma de apresentar esses caminhos de inferência
para o usuário.

2.1 Aquisição de conhecimento

Uma das etapas muito importantes do desenvolvimento de um


sistema especialista é a Aquisição de Conhecimento. Essa eta-
pa é considerada o componente crítico no desenvolvimento de
sistemas baseados em conhecimento.

A aquisição de conhecimento tem como objetivo obter o


conhecimento utilizado pelo especialista na solução de pro-
blemas, traduzindo a perícia do especialista para o formalismo
computacional. Por exemplo, o conhecimento de um técnico
da área de suporte utilizado na análise da impressora que não
está imprimindo pode ser adquirido e utilizado na construção
de um sistema que analise os possíveis problemas que podem
acontecer com impressoras (baseado nesse conhecimento ex-
traído do especialista).

O especialista é aquela pessoa que gastou mais de 20000


horas em treinamento na solução de um determinado proble-
ma e sabe identificar com rapidez os elementos fundamentais
da sua especialidade. O especialista possui a experiência e a
habilidade em resolver problemas em determinado domínio.
Capítulo 2 Conhecimento 13

Para adquirir o conhecimento do especialista, surge a fi-


gura do engenheiro de conhecimento. Este é responsável por
guiar a etapa de aquisição do conhecimento. A aquisição de
conhecimento é desenvolvida pelo engenheiro do conheci-
mento por meio das seguintes etapas:

1) Identificação e estudo do problema: como todo o conhe-


cimento necessário para o desenvolvimento do sistema
será adquirido do especialista, o primeiro passo é a es-
colha desse especialista. Em seguida, deve-se delimitar
o problema que se quer resolver e, que conhecimento
será necessário para a solução do problema. Normal-
mente, o especialista define qual o problema deve ser
resolvido pelo sistema, e o problema é restringido para
algo tratável computacionalmente, onde as entradas e
saídas do sistema são definidas.

2) Entrevistas com o especialista: são realizadas entrevistas


com o especialista de forma a detalhar que conhecimen-
to é aplicado na solução do problema e de que forma.

Existe um grande número de técnicas de aquisição de co-


nhecimento. É importante escolher uma técnica simples e de
rápida aplicação, que seja adaptável a vários domínios, base-
ada em situações bem perto da realidade e fornecendo dados
de fácil transformação para os formalismos computacionais de
representação de conhecimento.

Apesar da grande variedade de técnicas, não existe algu-


ma metodologia específica que seja considerada a mais efi-
ciente na obtenção do conhecimento e existem muitas dúvidas
em relação a como extrair o conhecimento de um especialista.
14 Sistemas Inteligentes

Entre as técnicas existentes, as mais utilizadas são: entrevistas


estruturadas e entrevistas não estruturadas.

 Entrevistas não estruturadas ou abertas

As informações são obtidas a partir de conversa direta com


o especialista, onde ele apresenta livremente o problema e a
forma como este é resolvido. Pode-se aplicar dois métodos
distintos: protocolos verbais retrospectivos e protocolos verbais
concorrentes.

O método de protocolos verbais retrospectivos permite os


primeiros contatos com o especialista, onde o engenheiro do
conhecimento inicia a entrevista a partir de poucas questões
gerais sobre a aplicação, respondidas pelo especialista. É mui-
to importante interferir o mínimo possível, pois qualquer inter-
ferência tende a modificar a linha de raciocínio do especialista.

Já os protocolos verbais concorrentes nem sempre podem


ser aplicados, pois trata-se de observar o especialista na so-
lução de um problema. A maior dificuldade desse método é
transformar as informações obtidas na observação para o mo-
delo computacional. Na maioria das vezes, o engenheiro do
conhecimento grava as entrevistas e faz com que o especialista
“pense em voz alta” e realize suas tarefas.

Esse método tende a ser muito mais fiel para demonstrar


as heurísticas do especialista do que o protocolo verbal re-
trospectivo. Quando o especialista explica suas ações, para
solucionar problemas, tende a descrevê-las nos termos em que
cientificamente são aceitas e não como realmente são aplica-
Capítulo 2 Conhecimento 15

das. Isso acontece, pois, ao descrever as ações, vê-se obriga-


do a descrever seus métodos efetivos.

 Entrevistas estruturadas

Após as entrevistas não estruturadas, é necessário anali-


sar as informações construindo listas de conceitos ou objetos
descritos pelo especialista. Na análise inicial, tenta-se separar
esses objetos em classes, verificando relações de dependência
ou semelhança entre eles. A partir dessa análise, o especialista
determina quais são os pontos a serem explorados.

3) Análise do conhecimento e representação de conheci-


mento: a informação obtida é analisada de forma a evi-
denciar sua consistência, completeza e suficiência para
a solução do problema. O conhecimento é estruturado
segundo uma forma de representação de conhecimento.

A representação de conhecimento é uma combinação de


estruturas de dados e procedimentos de interpretação que le-
vam um sistema a apresentar um comportamento inteligente
(Rezende, 2005). O conhecimento pode ser considerado a
descrição dos objetos do mundo, suas relações com os outros
objetos e a forma como essas informações podem ser úteis
para resolver problemas.

Várias técnicas podem ser utilizadas para representar co-


nhecimento, como, por exemplo, lógica, redes semânticas,
quadros (frames) ou regras de produção. Algumas dessas téc-
nicas serão apresentadas na próxima subseção.
16 Sistemas Inteligentes

2.2 Técnicas de representação de


conhecimento

Esta seção apresenta algumas técnicas de representação de


conhecimento.

2.2.1 Redes Semânticas


Uma rede semântica é um grafo, onde os nodos representam
os objetos e os arcos representam as relações entre esses ob-
jetos.

A Figura 2.2 representa uma rede semântica que modela


o conhecimento do domínio de agências de viagens. É im-
portante lembrar que essa representação é parcial, pois está
sendo utilizada apenas como exemplo.

Figura 2.2: Exemplo de rede semântica.


Capítulo 2 Conhecimento 17

2.2.2 Quadros (frames)


Um quadro é uma estrutura de informação, ou seja, consiste
em um conjunto de atributos que, a partir de seus valores, des-
crevem as características do objeto representado pelo quadro.
Essa técnica foi derivada das redes semânticas.

A Figura 2.3 apresenta um exemplo da representação do


domínio de agência de viagens a partir de quadros.

Figura 2.3: Exemplo de quadros no domínio de agência de viagens.


18 Sistemas Inteligentes

2.2.3 Regras de Produção


O conhecimento pode ser representado também na forma de
regras de produção. As regras são formadas por premissas e
conclusões que são representadas na forma de se... então.

As regras podem ser disparadas de acordo com o conjun-


to de fatos conhecido (inicialmente fornecido pelo usuário e
posteriormente ampliado pelas deduções feitas pelo sistema).

Exemplo:
SE meio de transporte é avião
ENTÃO realizar reserva de passagens.

2.3 Tipos de Sistemas Baseados em


Conhecimento

Os sistemas baseados em conhecimento podem ser classifi-


cados em alguns tipos. Os dois principais tipos de sistemas
baseados em conhecimento são: sistemas baseados em regras
e sistemas baseados em casos.

Os sistemas baseados em conhecimento têm sido utilizados


para o desenvolvimento de um grande número de aplicações
nos mais diversos domínios, tais como:

 Diagnósticos: sistemas de diagnósticos baseados em co-


nhecimento tentam recuperar casos antigos que tenham
sintomas parecidos com o novo problema e sugerem um
diagnóstico para esse problema baseado nessa recupe-
Capítulo 2 Conhecimento 19

ração de casos. A maioria dos sistemas de diagnósticos


refere-se a diagnósticos médicos.

 Help desk: sistemas utilizados na área de serviços ao


consumidor, tratando de problemas com os produtos.

 Suporte à decisão: na tomada de decisões, quando as


pessoas se deparam com um problema complexo, elas
geralmente procuram por problemas análogos a procu-
ra de soluções possíveis aos seus problemas.

 Projetos: no domínio de projetos, sistemas baseados em


conhecimento têm sido desenvolvidos para projetos ar-
quitetônicos e industriais. Esses sistemas auxiliam o usu-
ário em apenas uma fase do projeto.

Nos próximos capítulos, veremos dois tipos de sistemas


baseados em conhecimento: sistemas baseados em regras e
sistemas baseados em casos.

Recapitulando
Este capítulo teve como objetivo permitir que você aluno en-
tenda um pouco mais sobre o que é conhecimento. Porque
algumas vezes falamos dados, outras informação e outras co-
nhecimento.

A partir desse conhecimento, é possível desenvolvermos sis-


temas baseados em conhecimento e nos próximos capítulos
veremos estes com mais detalhes.
20 Sistemas Inteligentes

Referências bibliográficas
REZENDE, Solange Oliveira. Sistemas Inteligentes: fundamen-
tos e aplicações. Baureri, SP: Manole, 2005.

Atividades
1) Sobre conhecimento, é possível afirmar que:

I – Dados representam os objetos de um domínio.

II – Informação representa os objetos e as relações entre


eles.

III – Conhecimento representa a utilidade da informação.

a) Somente a afirmativa I está correta.

b) Somente a afirmativa II está correta.

c) Somente a afirmativa III está correta.

d) Todas as afirmativas estão corretas.

e) Todas as afirmativas estão incorretas.

2) Conhecimento pode ser considerado como a descrição dos


_________ do mundo, suas relações com os outros objetos
e a forma como essas informações podem ser úteis para
resolver problemas.

a) Papéis.

b) Objetos.

c) Representantes.
Capítulo 2 Conhecimento 21

d) Casos.

e) Nenhuma das alternativas anteriores.

3) A etapa de aquisição de conhecimento é considerada o gar-


galo no desenvolvimento de sistemas baseados em conhe-
cimento. Marque a alternativa que apresenta duas técnicas
aplicadas nessa etapa:

a) Entrevistas e vídeos.

b) Entrevistas abertas e análise do conhecimento.

c) Análise do conhecimento e visita.

d) Entrevistas estruturadas e vídeo.

e) Nenhuma das alternativas anteriores.

4) Técnicas de representação de conhecimento são utilizadas


para representar o conhecimento em sistemas inteligentes.
Marque a alternativa que apresenta duas dessas técnicas:

a) Casos e Regras.

b) Frames e Casos.

c) Regras de produção e Quadros.

d) Redes semânticas e Casos.

e) Nenhuma das alternativas anteriores.

5) É considerado um tipo de sistema baseado em conhecimento:

a) Quadros.

b) Redes semânticas.
22 Sistemas Inteligentes

c) Sistemas baseados em casos.

d) Lógica proposicional.

e) Nenhuma das alternativas anteriores.

Gabarito
1) d

2) b

3) b

4) c

5) c
Fabiana Lorenzi1

Capítulo 3

Sistemas Baseados em
Regras 1

Apresentação

Este capítulo tem como objetivo apresentar os principais con-


ceitos envolvidos no desenvolvimento de um sistema baseado
em regras.

Como vimos no capítulo anterior, em alguns domínios, é


possível resolver problemas a partir da programação conven-

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
24 Sistemas Inteligentes

cional, porém, em outros domínios, só é possível revolver pro-


blemas a partir do conhecimento especialista. Por exemplo,
vamos imaginar uma agência de viagens em que um cliente
entra para comprar um pacote de viagens. A Figura 3.1 mos-
tra o diálogo entre o agente de viagem e o cliente.

Figura 3.1: Diálogo entre um agente de viagem e um cliente.

Podemos ver no diálogo apresentado pela Figura 3.1 que o


cliente não tem certeza de muita coisa, apenas que quer viajar.
Que tipo de pacote o agente de viagem poderia oferecer com
base nas respostas do cliente? Essa é uma tarefa bem difícil,
pois as respostas foram muito vagas. Nesse tipo de situação, o
agente de viagem utiliza o seu conhecimento (de vários paco-
tes já oferecidos para outros clientes) para selecionar algumas
opções e oferecer ao cliente. Podemos então, desenvolver um
sistema baseado em conhecimento para auxiliar o agente de
viagem na recomendação de pacotes turísticos aos clientes.
Esse sistema poderia ser baseado em regras.

Os Sistemas Baseados em Regras (SBR) são sistemas de


computação que executam funções semelhantes àquelas nor-
Capítulo 3 Sistemas Baseados em Regras 25

malmente executadas por um especialista humano. Esses sis-


temas utilizam a representação de conhecimento na forma de
regras de produção, de maneira a executar funções semelhan-
tes às de um especialista humano naquele domínio.

Um dos primeiros sistemas baseados em regras desenvol-


vidos foi o MYCIN, que tinha o objetivo de aconselhar sobre
o diagnóstico e terapia de doenças infecciosas. Esse tipo de
aconselhamento torna-se útil quando o médico responsável
não é um especialista em infecções, principalmente em am-
biente hospitalar. O usuário responde algumas perguntas a
respeito do paciente, como, por exemplo, nome, idade, sexo,
tempo de manifestação dos sintomas, resultados de exames
e, a partir dessas informações, o sistema utiliza sua base de
regras e estabelece um diagnóstico, propondo uma terapia
adequada.

Em um sistema baseado em regras, o conhecimento é re-


presentado na forma de regras de produção, onde:

Se <condição>

Então <ação>

Por exemplo:

Se o cliente gosta de praia

Então oferecer pacote nordeste brasileiro

Sistemas baseados em regras são aplicados em domínios


em que o conhecimento é bem definido e não existem exce-
ções às regras. O sistema só consegue aprender quando uma
nova regra for incluída na base de conhecimento.
26 Sistemas Inteligentes

A Figura 3.2 apresenta os dois principais componentes de


um sistema baseado em regras: a base de conhecimento e
o mecanismo de inferência. Na base de conhecimento ficam
armazenados todos fatos e regras relacionados ao domínio
(que representa o conhecimento do sistema), e a máquina de
inferência é responsável pela manipulação e aplicação do co-
nhecimento.

Figura 3.2: Funcionamento de um sistema especialista.

Nos sistemas baseados em regras, normalmente o usuá-


rio responde algumas perguntas ou escolhe algumas opções
apresentadas na tela principal. Essas escolhas e respostas são
consideradas os fatos que são incluídos no sistema. Esses fatos
são aplicados à base de conhecimento, e a reposta do sistema
é considerada a perícia do sistema.

O mecanismo de inferência é responsável pela forma que


os fatos serão aplicados às regras armazenadas na base de
conhecimento, ou seja, o método de raciocínio que será utili-
zado para resolução do problema.
Capítulo 3 Sistemas Baseados em Regras 27

Existem dois modos de raciocínio possíveis: encadeamen-


to progressivo e encadeamento regressivo. No encadeamento
progressivo (do inglês, forward chaining), as regras da base
de conhecimento são utilizadas para gerar informação nova,
ou seja, novos fatos, a partir de um conjunto inicial de dados.
Esses fatos gerados passam a fazer parte da base de conheci-
mento.

No encadeamento regressivo (do inglês, backward chai-


ning) e também conhecido como encadeamento para trás, as
regras da base de conhecimento são utilizadas para responder
as perguntas, provando se o fato é verdadeiro. Somente as
regras relevantes para a pergunta são disparadas.

No desenvolvimento de sistemas baseados em regras, é


preciso considerar alguns detalhes importantes, como, por
exemplo:

 Desempenho: o sistema deve ter um alto desempenho,


ou seja, ele deve conseguir responder com o nível de
competência igual, ou melhor, ao do especialista.

 Tempo de resposta: o sistema deve ter um tempo de res-


posta adequado.

 Flexibilidade: o sistema pode ter uma vasta quantidade


de conhecimento e, por essa razão, é importante ter um
mecanismo eficiente para acrescentar, modificar ou ex-
cluir conhecimento quando necessário.

Confiabilidade: o sistema deve ser confiável e não propen-


so a falhas, caso contrário, não será utilizado.
28 Sistemas Inteligentes

Um dos gargalos do desenvolvimento de sistemas base-


ados em regras é a aquisição de conhecimento. Apesar das
regras serem uma forma natural de representação de conheci-
mento, em alguns domínios torna-se muito complicado adqui-
rir as regras do especialista.

Recapitulando
Este capítulo apresentou os sistemas baseados em regras e
seus principais conceitos. É importante lembrar que em domí-
nios em que a extração das regras é muito difícil e onde exis-
tem muitas exceções às regras, devemos optar pelo desenvol-
vimento de sistemas baseados em casos, ao invés de regras. O
próximo capítulo apresenta os principais conceitos de sistemas
baseados em casos.

Atividades
1) No desenvolvimento de um Sistema Baseado em Conheci-
mento, buscam-se as seguintes características:

I – O sistema deve conseguir responder com o nível de


competência igual (ou melhor) ao do especialista.

II – O sistema não precisa se preocupar em explicar seu


raciocínio durante a execução, pois esse raciocínio foi
adquirido do especialista na etapa de aquisição de co-
nhecimento.

III – O sistema deve ser confiável e não propenso à falhas,


caso contrário não será utilizado.
Capítulo 3 Sistemas Baseados em Regras 29

Marque a alternativa correta:

a) Somente a afirmativa I está correta.

b) Somente as afirmativas I e II estão corretas.

c) Somente as afirmativas I e III estão corretas.

d) Todas as alternativas estão corretas.

e) Nenhuma das alternativas anteriores.

2) Sobre os Sistemas Baseados em Regras, é correto afirmar


que esse tipo de sistema:

a) “Pode aprender automaticamente através da seleção e


aquisição de novos casos, tornando a manutenção da
base de conhecimento mais fácil”.

b) “Permite a reutilização da informação através da utiliza-


ção de bases de dados, que contenham implicitamente,
o conhecimento na solução de problemas do dia a dia
das instituições”.

c) “Tem na etapa de aquisição de conhecimento o gargalo


do desenvolvimento do sistema, pois a aquisição de ca-
sos reais é muito complicada e lenta”.

d) “É mais estável e confiável, pois aprende através dos


casos armazenados na base”.

e) Nenhuma das alternativas anteriores.

3) Um sistema baseados em regras:


30 Sistemas Inteligentes

a) Propõe a solução dos problemas através da utilização


de modelos.

b) Propõe a solução de novos problemas adaptando solu-


ções que foram utilizadas para resolver problemas ante-
riores.

c) Propõe a solução dos problemas através da utilização


de regras.

d) Propõe a solução de problemas através da adaptação


de modelos neurais.

e) Nenhuma das alternativas anteriores.

4) Um sistema baseado em regras busca as seguintes carac-


terísticas:

a) Desempenho, lentidão, flexibilidade e confiabilidade.

b) Desempenho, tempo de resposta, flexibilidade e confia-


bilidade.

c) Desempenho, tempo de resposta, flexibilidade e lenti-


dão.

d) Lentidão, tempo de resposta, flexibilidade e confiabili-


dade.

e) Nenhuma das alternativas anteriores.

5) São considerados dois modos de raciocínio para as regras:

a) Antigo e Novo.

b) Progressivo e Regressivo.
Capítulo 3 Sistemas Baseados em Regras 31

c) Progressivo e Novo.

d) Antigo e Regressivo.

e) Nenhuma das alternativas anteriores.

Gabarito
1) c

2) c

3) c

4) b

5) b
Fabiana Lorenzi1

Capítulo 4

Sistemas Baseados em
Casos 1

Apresentação

Este capítulo introduz o conceito de Raciocínio Baseado em


Casos e como ela é aplicada no desenvolvimento de sistemas
baseados em casos.

Raciocínio Baseado em Casos (RBC) é uma abordagem de


Inteligência Artificial, para representação de conhecimento e

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
Capítulo 4 Sistemas Baseados em Casos 33

inferência, que propõe a solução de novos problemas, adap-


tando soluções que foram utilizadas para resolver problemas
anteriores. O objetivo é utilizar soluções passadas para resol-
ver novos problemas; surgiu a partir dos estudos cognitivos de
memória de Roger Schank (Aadmot & Plaza, 1994). Segundo
Schank, a memória humana se modifica com o resultado de
experiências e, de acordo com novos acontecimentos, surgem
novas questões a serem respondidas. Portanto, a compreen-
são obriga a rever as experiências antigas ao se processar as
novas, e a memória não se comporta igual duas vezes, pois as
experiências mudam.

O primeiro sistema de RBC, chamado Cyrus, foi desen-


volvido por Janet Kolonder. Esse sistema continha casos de
viagens e encontros do ex-secretário do estado Cyrus Vance,
dos Estados Unidos. Cyrus serviu de base para outros sistemas
de RBC, entre eles:

Mediator (Simpson, 1985): trabalha na solução de dis-


putas entre diversas partes, propondo possíveis soluções de
consenso. Pode-se citar, como exemplo, a situação em que
dois alunos desejam retirar o mesmo livro na biblioteca ao
mesmo tempo. O sistema considera os alunos como as partes,
e o seu objetivo é solucionar a disputa pelo mesmo livro entre
as partes. No sistema Mediator, a representação de casos foi
implementada por meio de “frames”, permitindo representar
a descrição do problema, as características do problema ou
restrições (se existirem). Os objetivos do sistema não são re-
presentados explicitamente, pois o sistema só tem um objetivo,
resolver a disputa. É por meio da descrição do problema que
o sistema identifica seus objetivos. Se uma proposta sugerida
34 Sistemas Inteligentes

para satisfazer as partes envolvidas na disputa falhar, o siste-


ma registra a falha ocorrida e gera uma nova proposta para a
disputa, evitando que a falha aconteça novamente no futuro.

Chef (Hammond, 1989): desenvolve novos pratos a par-


tir de outros. Tendo como domínio a criação de receitas, o
sistema recebe como entrada diversos objetivos (ingredientes
disponíveis, tipo de refeição) a serem satisfeitos e recupera da
sua base de casos a receita que possa satisfazer tantos obje-
tivos quanto possível e, a partir dela, gera uma nova receita
para a situação proposta. Todas as receitas são indexadas por
suas características, permitindo que posteriormente elas pos-
sam ser recuperadas. Quando uma receita é recuperada, ela
deve ser adaptada para se ajustar às novas especificações.
Essa adaptação é realizada em dois passos: 1) o sistema cria
uma instância do caso recuperado e utiliza suas características
com novos valores adequados ao problema do usuário; e 2) o
sistema então aplica críticas para modificar a receita antiga de
maneira que ela possa ser reutilizada para a criação do novo
prato. Por exemplo, a partir de uma receita onde a carne é de
gado, gera uma nova com a característica carne modificada
para frango.

No sistema Chef , quando uma receita é criada, mas algo


de errado acontece com ela, como, por exemplo, a carne
queimou ou a salada ficou muito salgada, o sistema explica
porque o plano da receita falhou e repara o plano que falhou,
para evitar a mesma falha no futuro. O raciocínio do Chef é
muito parecido com o sistema Mediator: cria o plano, aplica-
-o, recebe o feedback sobre o plano, explica falhas e repara o
plano. Porém, a representação é diferente, pois o sistema Chef
Capítulo 4 Sistemas Baseados em Casos 35

não registra as falhas. Ao invés disso, o sistema utiliza as ex-


plicações das falhas para determinar como seus casos devem
ser indexados.

Quando comparado a outras técnicas de representação e


inferência, como, por exemplo, sistemas baseados em regras,
um sistema de RBC possui as seguintes vantagens:

 Não requer um modelo explícito de domínio, pois utiliza


exemplos reais. Os sistemas de RBC utilizam a experi-
ência que especialistas acumulam durante suas vidas
profissionais na forma de problemas já resolvidos, não
sendo necessário extrair do especialista as regras que
definem o processo de solução de problemas. Dessa
forma, a aquisição de conhecimento na fase inicial do
projeto é agilizada, permitindo a criação de sistemas
operantes com recursos menores. Já em sistemas basea-
dos em regras, estas devem ser extraídas do especialista,
o que torna o processo de aquisição de conhecimento
mais lento. Além disso, um sistema RBC é mais estável e
confiável, pois aprende a partir dos casos armazenados
na base. Nos sistemas baseados em regras, o sistema
precisa saber como o problema foi resolvido, sendo ne-
cessário extrair novas regras do especialista, dificultando
a manutenção do sistema.

 Permite a reutilização da informação, por meio da uti-


lização de bases de dados pré-existentes, que conte-
nham, implicitamente, o conhecimento na solução de
problemas do dia a dia das instituições. Dessa forma, a
implementação é reduzida a identificar as características
36 Sistemas Inteligentes

significantes dos problemas descritos no banco de da-


dos para compará-los a novos problemas e reaplicar a
solução lá descrita.

 Pode aprender automaticamente por meio da seleção e


aquisição de novos casos, tornando a manutenção da
base de conhecimento mais fácil. Essa capacidade de
aprendizado é uma característica importante de um sis-
tema de RBC. A noção de RBC não somente indica um
método de raciocínio particular ou de como os casos
são adquiridos, mas também indica um paradigma de
aprendizado de máquina que possibilita aprendizado
assistido, adaptando a base de casos depois de um pro-
blema ter sido resolvido. O aprendizado em RBC ocor-
re naturalmente pelo produto da solução do problema.
Quando um problema é resolvido com sucesso, a expe-
riência é mantida para resolver problemas semelhantes
no futuro. Quando uma tentativa para resolver uma fa-
lha, o erro é identificado e relembrado para evitar que o
mesmo erro ocorra no futuro.

Os itens acima mostram algumas vantagens de um sistema


RBC, que oferece soluções para muitos dos problemas enfrenta-
dos no desenvolvimento de sistemas baseados em conhecimento.

4.1 Funcionamento de um sistema de RBC

Um sistema de RBC resolve problemas por meio de uma se-


quência de etapas. Cada uma dessas etapas está representa-
Capítulo 4 Sistemas Baseados em Casos 37

da no ciclo de funcionamento descrito por (Aamodt & Plaza,


1994), que demonstra as ações realizadas pelo sistema desde
que é confrontado com um novo problema, até que seja apre-
sentada, avaliada e aprendida uma solução para esse proble-
ma, conforme apresentado na Figura 4.1.

Figura 4.1: Ciclo de funcionamento de um sistema de RBC (Admodt &


Plaza, 1994).

As etapas do ciclo de funcionamento de um sistema de


RBC são: recuperação, reutilização, revisão e retenção. Elas
são conhecidas como as etapas 4 R’s.

Recuperação: recupera, na base de casos, o caso mais


parecido com o novo problema. Identifica e pesquisa índices,
calcula a similaridade entre o caso recuperado e o novo pro-
blema.

Reutilização: reutiliza a solução associada ao caso recu-


perado no contexto do novo problema, identificando as dife-
38 Sistemas Inteligentes

renças entre o caso recuperado e o novo problema e identifi-


cando a parte do caso recuperado que pode ser transferida ao
novo problema. Geralmente, a solução do caso recuperado é
transferida ao novo problema diretamente como sua solução.

Adaptação (Revisão): é necessário revisar (adaptar) a so-


lução do caso recuperado gerada pelo processo de reutiliza-
ção quando a solução não pode ser aplicada diretamente no
novo problema. Isso mostra uma oportunidade de aprender
com a falha.

Retenção: é o processo de incorporar tudo que for útil no


novo problema na biblioteca de casos. Isso envolve decidir
que informação armazenar e de que forma armazenar, como
indexar o caso para futuras recuperações e integrar o novo
caso à biblioteca de casos.

A aquisição, representação e indexação dos casos não


aparecem explicitamente no ciclo, pois são executadas ainda
na construção do sistema, para a criação da base de casos.

As próximas seções apresentam cada uma das etapas en-


volvidas no ciclo de funcionamento de um sistema de RBC.

4.1.1 Representação de Casos


Um caso é um pedaço contextualizado de conhecimento repre-
sentando uma experiência que ensina uma lição fundamental
para atingir o objetivo do raciocinador (Kolodner, 1993). Um
caso representa um conhecimento específico, relacionado a
uma situação em um determinado contexto.
Capítulo 4 Sistemas Baseados em Casos 39

Casos são de diferentes formas e tamanhos, porém todos


têm em comum o fato de representarem uma experiência real
registrada em todas as suas características relevantes ou não.
A ideia de um caso se opõe a estereótipos de ações ou lem-
branças gerais de eventos, que registram os fatos como deve-
riam ter sido ou como comumente acontecem. Essa situação
real, quando relembrada, traz junto todo o conhecimento a
ela atrelado.

Um caso possui três componentes muito importantes, sen-


do que, para algum caso específico, talvez eles não estejam
preenchidos. São eles:

1. A descrição do problema que foi resolvido: a descrição


dos aspectos relevantes do problema que caracterizam
uma situação em particular a ser resolvida.

2. A descrição da solução: a solução utilizada para o pro-


blema específico na sua descrição.

3. Conclusão: a avaliação da solução utilizada para deter-


minado problema.

Com base nesses três componentes, podemos concluir que


os casos que incluem um problema e uma solução podem
ser usados para derivar soluções para novos problemas. Os
casos com uma descrição de situação e conclusão podem
ser usados na avaliação de soluções propostas, antecipando
problemas antes que eles ocorram. Para isso, o sistema RBC
compara as similaridades entre o novo problema e os casos da
base. Portanto, a representação do problema deve ter detalhes
40 Sistemas Inteligentes

suficientes para conseguir julgar a aplicabilidade do caso no


novo problema.

Vamos considerar um sistema de RBC que está sendo de-


senvolvido para sugerir se uma empresa pode ou não receber
um empréstimo bancário. Após a etapa de aquisição de co-
nhecimento, a base de casos foi criada e um caso possui os
seguintes atributos apresentados na Figura 4.2. Os atributos
nome, ramo, tempo de empresa, faturamento anual e núme-
ro de funcionários representam a descrição do problema, en-
quanto os atributos empréstimo e valor representam a descri-
ção da solução.

Figura 4.2: Exemplo de um caso.

A forma como o caso será representado em um sistema


de RBC é de extrema importância, ou seja, é imprescindível
decidir o que será armazenado em um caso, definindo a me-
lhor estrutura para descrever o conteúdo dele e decidir como
a base de casos deve ser organizada e indexada para uma
posterior recuperação e reutilização dos casos.
Capítulo 4 Sistemas Baseados em Casos 41

Diferentes formalismos podem ser utilizados em um sistema


de RBC para representar um caso. No Capítulo 2, vimos algu-
mas técnicas de representação, tais como, redes semânticas,
quadros e regras. Já no sistema Hypo, os casos são represen-
tados em uma rede semântica.

4.1.2 Indexação
Sistemas baseados em casos derivam seu poder da sua ha-
bilidade em recuperar casos relevantes da base de casos de
forma eficiente. O fundamental para atingir uma recuperação
de casos eficiente é saber como essa base de conhecimento
deve ser indexada de maneira que o processo de recuperação
seja mais preciso e eficiente.

Dada a descrição do problema, os índices devem apontar


quais características do caso devem ser comparadas, determi-
nando assim o caso que pode ser útil para se chegar a uma
solução. Isso implica em definir índices nos casos no momento
de sua inserção na base de casos, para que mais tarde estes
possam ser recuperados.

4.1.3 Recuperação de casos


A etapa de recuperação de casos tem início com uma descri-
ção de problema e termina quando um caso for encontrado.
A partir de um novo problema, o sistema procura o caso mais
parecido na base de casos. Para decidir qual o caso armaze-
nado na base é parecido ou igual ao novo problema, é preci-
so medir a similaridade (semelhança) entre eles.
42 Sistemas Inteligentes

A recuperação de casos é dividida em três subtarefas: iden-


tificação das características, comparação e seleção, executa-
das nessa ordem:

Identificação das características: identificar um problema


pode envolver simplesmente suas características de entrada.
As características não conhecidas podem ser desprezadas ou
solicitadas para serem explicadas pelo usuário. Por exemplo,
no sistema Protos (Kolodner, 1993) se uma característica de
entrada não é conhecida pelo sistema, o usuário deve suprir
com uma explicação que ligue a característica à rede semân-
tica existente. Na verdade, essa subtarefa serve para identifi-
car as características relevantes para a solução do problema,
descartando as não necessárias. Como visto anteriormente,
neste trabalho, as características foram encontradas a partir da
análise matemática e da aquisição de conhecimento.

Comparação: a subtarefa de comparação busca um con-


junto de casos candidatos na base de casos.

Seleção: é um processo onde é selecionado o melhor caso


do conjunto de casos candidatos, obtido no processo de com-
paração. A procura de um conjunto de casos é feita pelo uso de
características, problemas como índices para a base de casos de
uma maneira direta ou indireta. A recuperação de um caso ou
de um conjunto de casos pode acontecer de três formas diferen-
tes: 1) seguindo os índices diretos apontados para as caracterís-
ticas do problema; 2) procurando uma estrutura de índice; ou
3) procurando um modelo de domínio de conhecimento geral.

Diferentes métodos de recuperação podem ser aplicados


na etapa da recuperação. Eles podem ser aplicados de for-
Capítulo 4 Sistemas Baseados em Casos 43

ma combinada também. Os métodos abaixo são os mais


utilizados:

Vizinho mais próximo: combina casos recuperados com


base no somatório de pesos das características do novo pro-
blema. Os casos com o total de comparações com alguma
similaridade métrica são retornados do processo de compara-
ção. O método vizinho mais próximo, Nearest Neighbor, para
a recuperação dos casos. O algoritmo desse método constitui-
-se dos passos abaixo:

 Dado uma base de casos L.

 Dado um novo problema P.

 Calcula a similaridade entre os atributos (f) do novo pro-


blema p e os atributos de cada caso x de L.

 Retorna o(s) caso(s) mais parecido(s) com o novo pro-


blema p.

Distância(L, p) = ( ∑ wf * sim(xf , pf )2 ) 1/2


f=1

O algoritmo do vizinho mais próximo assume que cada


caso x = {x1, x2, ..., xn} é definido por um conjunto de n
características f. Dado um novo problema P, a biblioteca de
casos L e o peso w de cada atributo f, que é previamente defi-
nido pelo especialista, o algoritmo recupera o caso mais pare-
cido com o novo problema, ou seja, aquele que tiver a menor
distância.
44 Sistemas Inteligentes

A função de similaridade local entre o novo problema e os


casos da base pode se dar da seguinte forma:

| xf - pf |, ou seja, a distância euclidiana entre os valores,


quando as características numéricas do caso.

1, quando existe similaridade (valores são iguais) ou 0,


quando os valores comparados são diferentes.

Método de Recuperação Indutivo: torna-se o melhor mé-


todo quando a meta da recuperação é bem-definida. Casos
são indexados com base nas características mais importantes.
Esse método utiliza os atributos mais discriminantes para gerar
uma árvore de decisão que organiza a base de casos. A árvore
resultante provê tempos de recuperação mais rápidos do que
o método de recuperação Vizinho Mais Próximo. Consideran-
do o mesmo exemplo de um sistema de RBC para sugestão
de empréstimos, a Figura 4.3 apresenta a árvore de decisão
gerada após a utilização do algoritmo de indução ID3. Os
atributos mais importantes encontram-se no top da árvore e as
folhas representam os casos.

Figura 4.3: Exemplo de árvore de decisão.


Capítulo 4 Sistemas Baseados em Casos 45

Observando a Tabela 4.1 podemos perceber que o atribu-


to status do empréstimo representa a solução de um caso.

Tabela 4.1: Casos da base (método de indução)


Casos Status do Rendimento Tipo do Pagamento
empréstimo mensal emprego mensal
Caso 1 Bom R$ 2.000,00 Assalariado R$ 200,00

Caso 2 Ruim R$ 4.000,00 Assalariado R$ 600,00

Caso 3 Muito bom R$ 3.000,00 Recibo R$ 300,00

Caso 4 Muito ruim R$ 1.500,00 Assalariado R$ 400,00

4.1.4 Reutilização de Casos

A etapa de reutilização de casos para a solução associada ao


caso recuperado é reutilizada no contexto do novo problema.

Nessa etapa, os casos similares recuperados na etapa de


recuperação de casos são apresentados ao usuário.

4.1.5 Revisão de Casos


Na etapa de revisão de casos, também conhecida como adap-
tação de casos onde, após o caso ser recuperado da base,
o sistema RBC deve adaptar a solução do caso recuperado
para solucionar o novo problema. A solução associada ao
caso recuperado deve ser adaptada para as necessidades do
novo problema. Na maioria dos sistemas, são aplicadas re-
gras para procurar as diferenças entre o caso recuperado e
46 Sistemas Inteligentes

o novo problema e aplicar a solução do caso recuperado ao


novo problema.

A adaptação de um caso recuperado no contexto do novo


problema está focalizada em dois aspectos: 1) as diferenças
entre o caso passado e o atual; 2) qual parte de um caso recu-
perado pode ser transferido para o novo caso. São subtarefas
da reutilização de casos:

Copiar: na classificação de tarefas simples, as similarida-


des são consideradas relevantes e a solução do caso recupe-
rado é transferida para o novo caso como sua solução. Esse é
um tipo de reutilização trivial.

Adaptar: existem duas maneiras de reutilizar casos passa-


dos. A primeira, reutiliza a solução do caso passado (estrutu-
ral) e a segunda reutiliza o método passado que construiu a
solução (derivacional), ou seja, como o problema foi resolvido.

Adaptação estrutural: as regras de adaptação são apli-


cadas diretamente na solução armazenada nos casos. O sis-
tema Chef (Hammond, 1986) utiliza esse tipo de adaptação.

Adaptação derivacional: reutiliza os algoritmos, métodos


ou regras que geraram a solução original para produzir uma
nova solução para o novo problema. Esse tipo de adaptação
é encontrado no sistema Mediator (Simpson, 1985).

Existem várias técnicas de adaptação de casos, tais como:

Ajuste de parâmetros: técnica estrutural que compara os


parâmetros específicos do caso recuperado com o novo pro-
blema para modificar a solução.
Capítulo 4 Sistemas Baseados em Casos 47

Criação de novas instâncias: cria instâncias das velhas


características com novas características, como, por exemplo,
o sistema Chef (Hammond, 1986) que cria uma instância de
uma receita de bife com brócolis, utilizando galinha e espina-
fre, criando uma nova receita.

Adaptação nula: quando o sistema não utiliza adapta-


ção, ou seja, a solução do caso recuperado é aplicada dire-
tamente ao novo problema. Essa técnica é válida para pro-
blemas que envolvem um raciocínio complexo, mas com uma
solução simples.

4.1.6 Retenção de Casos


Esse é o processo responsável por armazenar a solução, utiliza-
da para resolver o problema, junto ao conhecimento existente.
O aprendizado do sucesso ou da falha da solução proposta
é disparado pelo resultado da avaliação e possível reparo. É
preciso selecionar qual informação do caso deve ser retida,
em que forma vai ser retida, como indexar o caso para uma
recuperação posterior e como integrar o novo caso à estrutura
de memória.

Extrair: a base de casos é atualizada não importando de


que maneira o problema foi resolvido. Se ele foi resolvido por
meio do uso de um caso anterior, um novo caso pode ser
construído. Se o problema foi resolvido por meio de outros
métodos, com a intervenção do especialista, por exemplo, o
novo caso precisará ser construído. Por exemplo, no sistema
Casey (Kotton, 1989), as explicações são incluídas nos casos
48 Sistemas Inteligentes

aprendidos e reutilizadas em modificações posteriores de ca-


sos.

Índice: esse é o problema dos sistemas de RBC, onde é im-


portante decidir que tipo de índice utilizar para futuras recupe-
rações e como estruturar a procura desses índices. É possível
utilizar índices diretos, porém o problema está na identificação
de que tipo de índice utilizar. Isso se torna um problema de
aquisição de conhecimento. Uma solução trivial para esse pro-
blema é utilizar as características do caso como índices.

Integrar: essa é a subtarefa final da atualização da base


de conhecimento com o conhecimento do novo caso. A modi-
ficação dos índices de casos existentes é uma parte importan-
te do aprendizado do sistema RBC. Os índices são ajustados
para um caso ou uma solução particular durante o sucesso
ou a falha na utilização desse caso para a solução do novo
problema.

Recapitulando
Este capítulo apresentou os sistemas baseados em casos e
seus principais conceitos. Optamos pelo desenvolvimento des-
se tipo de sistema quando existe um grande volume de dados
históricos e muitas exceções às regras.

Atividades
1) Um sistema baseado em casos deve ser utilizado quando:

I – Existe um grande volume de dados históricos.


Capítulo 4 Sistemas Baseados em Casos 49

II – Existem muitas exceções às regras.

III – A experiência pode ser utilizada.

a) Somente a afirmativa I está correta.

b) Somente a afirmativa II está correta.

c) As afirmativas I e II estão corretas.

d) As afirmativas I, II e III estão corretas.

e) As afirmativas I, II e III estão incorretas.

2) Sobre as etapas do desenvolvimento de um Sistema Basea-


do em Casos, é correto afirmar que:

I – A recuperação de casos depende de como os mesmos


foram indexados.

II – Na reutilização dos casos, a solução associada ao caso


recuperado é reutilizada no contexto do novo proble-
ma.

III – A aquisição dos casos é considerada o gargalo do


desenvolvimento.

a) Somente a afirmativa I está correta.

b) Somente a afirmativa II está correta.

c) As afirmativas I e II estão corretas.

d) As afirmativas I, II e III estão corretas.

e) As afirmativas I, II e III estão incorretas.


50 Sistemas Inteligentes

3) Sobre os Sistemas Baseados em Casos, não é correto afir-


mar que esse tipo de sistema:

a) “Pode aprender automaticamente através da seleção e


aquisição de novos casos, tornando a manutenção da
base de conhecimento mais fácil”.

b) “Permite a reutilização da informação através da utiliza-


ção de bases de dados, que contenham, implicitamente,
o conhecimento na solução de problemas do dia a dia
das instituições”.

c) “É mais estável e confiável, pois aprende através dos


casos armazenados na base”.

d) “Tem na etapa de aquisição de conhecimento o gargalo


do desenvolvimento do sistema, pois a aquisição de ca-
sos reais é muito complicada e lenta”.

e) Nenhuma das alternativas anteriores.

4) Raciocínio Baseado em Casos é uma abordagem da Inteli-


gência Artificial que:

a) Propõe a solução dos problemas por meio da utilização


de modelos.

b) Propõe a solução de novos problemas adaptando solu-


ções que foram utilizadas para resolver problemas ante-
riores.

c) Propõe a solução dos problemas por meio da utilização


de regras.
Capítulo 4 Sistemas Baseados em Casos 51

d) Propõe a solução de problemas por meio da adaptação


de modelos neurais.

5) Sobre a etapa de Recuperação de Casos, pode-se afirmar


que:

a) É a etapa responsável pela indexação dos casos da base.

b) Preocupa-se em adaptar as soluções dos casos anterio-


res para o novo problema.

c) É a etapa considerada o gargalo do desenvolvimento de


sistemas baseados em conhecimento, mas amenizada
na aquisição de casos.

d) Identifica e pesquisa índices, calcula a similaridade entre


o caso recuperado e o novo problema.

e) Nenhuma das alternativas anteriores.

Referências bibliográficas
AAMODT, A. e PLAZA, E. Case-Based Reasoning: Foundatio-
nal issues, Methodical Variations and System Approaches.
AI Communications, vol 7(1), 1994.

ASHLEY, K. Modeling Legal Argument:Reasoning with Cases


and Hypotheticals. M.I.T. Press, Cambridge, MA, 1990.

Hammond, K. J., ed. DARPA Case-based Reasoning Workshop.


San Francisco: Morgan Kaufmann Publishers, 1989

KOLODNER, J. Case-based reasoning. Morgan Kaufman pub,


San Mateo, CA, 1993.
52 Sistemas Inteligentes

KOTON, P. Using experience in learning and problem solving.


MIT, Laboratory of Computer Science Ph.D. Dissertation,
October 1989), MIT/LCS/TR-441

SIMPSON, R.L. A Computer Model of Case-based Reaso-


ning in Problem-solving: An Investigation in the Domain of
Dispute Mediation. PhD thesis, School of Information and
Computer Science, Georgia Institute of Technology, 1985.

Gabarito
1) d

2) c

3) d

4) b

5) d
Fabiana Lorenzi1

Capítulo 5

Sistemas de
Recomendação 1

Apresentação

Este capítulo apresenta os principais conceitos de Sistemas de


Recomendação.

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
54 Sistemas Inteligentes

5.1 Introdução aos Sistemas de


Recomendação

A Internet vem sendo cada vez mais utilizada pelos usuários na


busca e compra de produtos. O comércio eletrônico apresenta
facilidades ao usuário, que não precisa mais se deslocar até
uma loja para efetuar a compra de um determinado produto.

Entretanto, a quantidade de informação disponibilizada na


Internet ocasiona uma sobrecarga a este usuário. Comprar um
produto às vezes pode se tornar uma tarefa difícil. Sistemas de
recomendação (SR) (Ricci et al., 2011) surgiram com o obje-
tivo de auxiliar o usuário no processo de tomada de decisão,
apresentando a ele opções que estejam de acordo com suas
necessidades. Esses sistemas têm sido utilizados para auxiliar
na tomada de decisões mesmo que o usuário não tenha co-
nhecimento suficiente sobre as alternativas existentes.

SRs são capazes de aprender com as preferências do usu-


ário e automaticamente sugerir produtos que atendam ao seu
perfil (Adomavicius e Tuzhilin, 2005). Eles podem ser definidos
como sistemas que utilizam as opiniões de uma comunidade
de usuários para auxiliar indivíduos a identificarem conteúdos
de interesse em um conjunto de opções.

Para gerar recomendações para um usuário o sistema pre-


cisa buscar informações sobre esse usuário. Essa busca de in-
formações pode acontecer de formas diferentes, tais como:

Explicitamente: quando o usuário interage com o sistema,


explicitando suas preferências. Exemplos: Crítica (notas), pala-
vras-chaves utilizadas ou atributos escolhidos.
Capítulo 5 Sistemas de Recomendação 55

Implicitamente: quando não existe interação direta com o


usuário e o sistema utiliza informações do comportamento do
usuário para descobrir suas preferências. Exemplos: navega-
ção, objetos comprados, pesquisados, baixados, clicados, re-
jeitados.

Por Inferência: quando o sistema consegue prender o perfil


ou comportamento do usuário.

5.2 Técnicas de recomendação

Diferentes técnicas de recomendação podem ser utilizadas pe-


los sistemas. Essas técnicas se diferem pela forma como as
informações do perfil do usuário são recuperadas para reco-
mendar, como, por exemplo:

 Resumos estatísticos: as recomendações são geradas


por meio de resumos estatísticos, como, por exemplo,
os índices de satisfação do usuário ou os índices de pro-
dutos mais vendidos.

 Seleção manual: é o método de recomendação mais


simples, onde especialistas que conhecem o público-
-alvo propõem as recomendações.

 Baseado em atributos: um sistema baseado em atributos


recomenda produtos com base nas características des-
ses produtos. Para um usuário que gosta de um determi-
nado escritor, por exemplo, um lançamento de um novo
56 Sistemas Inteligentes

livro desse escritor seria uma possível recomendação do


sistema para ele.

 Correlação item-para-item: essa técnica tenta identificar


produtos que, de alguma forma, estão relacionados a
produtos que o usuário demonstrou interesse no seu his-
tórico de interação.

 Correlação usuário-para-usuário: essa técnica busca


recomendar produtos de acordo com a similaridade do
usuário com outros usuários do sistema.

A seguir, são apresentadas diferentes técnicas de recomen-


dação que são atualmente utilizadas por sistemas de recomen-
dação.

Top N

Essa técnica é bem simples e visa recomendar objetos mais as-


sociados a um grupo de pessoas a partir do uso de estatísticas.
Normalmente, são apresentados os produtos mais vendidos
ou mais vistos pelos usuários.

Exemplos: livros mais vendidos, músicas mais tocadas na


rádio, artigos mais lidos ou softwares mais baixados.

A Figura 5.1 apresenta um exemplo de Top 5, em que os 5


produtos mais vendidos dentro da seção do produto que está
sendo visto pelo usuário são apresentados ao usuário.
Capítulo 5 Sistemas de Recomendação 57

Figura 5.1: Exemplo de recomendação Top 5.

Cross-sell

Nesse tipo de recomendação, o sistema tenta apresentar uma


venda cruzada, ou seja, quem comprou o produto X, também
comprou o produto Y. Essa técnica é bastante utilizada pelos
sites do comércio eletrônico na tentativa de apresentar aos
usuários itens diferentes do que ele está analisando no site.
58 Sistemas Inteligentes

A Figura 5.2 apresenta um exemplo de cross sell em que o


usuário está fazendo uma pesquisa sobre livros sobre sistemas
multiagentes e o sistema apresenta outra opção de livro que
também foi comprada por outros usuários.

Figura 5.2: Exemplo de recomendação Cross Sell.

Comentários (especialista/revisões do
usuário)

A técnica de comentários visa a utilização de comentários por


parte do usuário. O sistema solicita que o usuário apresente
uma revisão do produto. Essa revisão pode ser positiva ou
negativa e pode acontecer de diferentes formas, como, por
exemplo:
Capítulo 5 Sistemas de Recomendação 59

 Críticas: onde o usuário escreve uma revisão sobre o


produto.

 Gostei ou não gostei: quando o usuário tem apenas


as opções de “gostei” e “não gostei” para avaliar o
produto.

 Notas: nessa opção, o usuário pode atribuir notas ao


produto. Normalmente, essa atribuição de notas repre-
senta o número de estrelas que o produto recebe.

A Figura 5.3 apresenta um exemplo de revisão por notas de


um site de comércio eletrônico.

Figura 5.3: Exemplo de atribuição de notas.

Filtragem Colaborativa

Essa técnica de recomendação utiliza a similaridade entre os


usuários, em uma correlação usuário-a-usuário, que reco-
menda produtos avaliados de um usuário para outro usuário
com perfis semelhantes. Essa técnica permite a formação de vi-
zinhança entre usuários que possuem as mesmas preferências.

A técnica de filtragem colaborativa é uma das mais utiliza-


das em SR e ela tenta identificar indivíduos que possuem prefe-
rências comuns, formando um grupo de indivíduos com gostos
60 Sistemas Inteligentes

comuns. Os indivíduos desse grupo colaboram então entre si a


partir dos produtos que os mesmos gostam para encontrar um
produto que um usuário-alvo ainda não possua.

A técnica de filtragem colaborativa funciona da seguinte


forma:

 Os usuários avaliam os produtos em questão, e as ava-


liações são armazenadas no sistema. Essas avaliações
são expressas por valores inteiros, normalmente de 1 a
5 ou 1 a 7, e, quanto maior a avaliação, mais o usuário
gostou do produto.

 Com base nas avaliações já armazenadas, o sistema


compara essas avaliações com as avaliações dos outros
usuários; os usuários com maior similaridade entre si
são agrupados por perfis semelhantes. A maioria dos
sistemas que utilizam a filtragem colaborativa utiliza o
Coeficiente de Pearson para definir a correlação entre
os usuários.

 O sistema retorna uma predição dos produtos e/ou con-


teúdos que possam ser mais relevantes ao usuário ativo.

A Figura 5.4 apresenta um exemplo com quatro usuários


diferentes e suas avaliações de filmes. O sistema está bus-
cando uma recomendação para o usuário João. É então cal-
culada a correlação entre o usuário João e todos os outros
usuários (Maria Eduarda, Pedro e Luiz Felipe) e tem-se: 0,53
(João e Maria Eduarda), 0,67 (João e Pedro) e 0,23 (João e
Luiz Felipe). Serão então recomendados os filmes 7 e 8, pois
Capítulo 5 Sistemas de Recomendação 61

eles foram bem-avaliados pelo usuário Luiz Felipe (que é o


mais similar ao usuário João).

Figura 5.4: Exemplo de recomendação de filmes.

Na filtragem colaborativa, a recomendação depende da


informação prévia de clientes, e é necessário um grande nú-
mero de interações entre usuários e o sistema para que a re-
comendação seja confiável.

Um exemplo da aplicação da filtragem colaborativa é o


sistema implementado na Amazon.com. Na seção de livros,
o usuário pode obter recomendação de livros, mas primeiro
é solicitado que ele colabore, avaliando livros que ele tenha
lido.

Outro exemplo é o MovieLens (MILLER et al., 2003) que


também utiliza a filtragem colaborativa para sugerir filmes ao
usuário.

A técnica de filtragem colaborativa se embasa em avalia-


ções de usuários para gerar a recomendação. Essas avalia-
ções fornecem ao sistema uma independência de conteúdo,
gerando recomendações de diversos tipos de produtos. Entre-
62 Sistemas Inteligentes

tanto, a capacidade de produzir recomendações de qualidade


depende das avaliações fornecidas por outros usuários.

O algoritmo da filtragem colaborativa normalmente é rea-


lizado em etapas, como, por exemplo:

 Cálculo do peso de cada usuário em relação à similari-


dade ao usuário (métrica de similaridade). Nessa etapa,
pode-se utilizar o algoritmo de vizinhança (k-nearest-
-neighbor) para verificar quem são os usuários mais pa-
recidos.

 Seleção de um subconjunto de usuários mais similares


(vizinhos) ao usuário para considerar na predição.

Apesar de eficiência, a técnica de filtragem colaborativa


possui alguns pontos negativos, como, por exemplo:

 Problema de cold start: os bons resultados da técnica de


filtragem colaborativa dependem de avaliações prévias
de outros usuários. Se o sistema não possuir essas ava-
liações, temos o chamado problema de cold start, ou
seja, não tem dados necessários para comparar com o
usuário que está solicitando a recomendação.

 Ovelha negra: o problema da ovelha negra acontece


quando usuários possuem perfis diferentes dos demais
usuários ou quando eles são reconhecidos como se-
melhantes para o sistema, mas na realidade esses usu-
ários não possuem preferências parecidas para outros
itens.
Capítulo 5 Sistemas de Recomendação 63

Filtragem Baseada em Conteúdo

A técnica de filtragem baseada em conteúdo utiliza preferên-


cias (passadas e atuais) de um cliente específico para reco-
mendar novos produtos a ele. Nessa técnica, apenas os dados
do usuário atual são utilizados no processo de recomendação.

Os sistemas de recomendação que utilizam essa técnica


geram descrições dos conteúdos dos itens de forma automá-
tica e comparam a descrição de cada item com a descrição
dos interesses dos usuários ou com o histórico de compras do
mesmo, com o objetivo de verificar se o item é interessante
para o usuário em questão.

O sistema NewsDude (BILLSUS; PAZZANI, 1999), por


exemplo, observa quais são as histórias que o usuário já leu (e
também as que ele ainda não leu) e aprende para apresentar
novas histórias que ele possa estar interessado.

As comparações são realizadas comparando-se os pro-


dutos que existem no perfil do usuário a todos os produtos
possíveis para recomendação, identificando os produtos mais
similares ao perfil desse usuário. Para tanto, o perfil do usuário
é um dos pontos-chave para o funcionamento dessa técnica.
Normalmente, o perfil do usuário contém as características
descritivas (palavras-chave) dos produtos que o usuário deseja
ou não deseja. As descrições dos produtos são, geralmente,
textos que expressam o conteúdo do produto.

Uma das técnicas mais utilizadas na filtragem baseada em


conteúdo aplicada em domínios textuais é a TF-IDF (Term-fre-
quencyInverse-Document-Frequency). Essa técnica calcula a si-
64 Sistemas Inteligentes

milaridade de textos baseada na frequência com que palavras-


-chave aparecem nas descrições dos produtos armazenados
no banco de dados.

Para que seja possível determinar a similaridade textual por


meio da técnica TF-IDF, são necessários os seguintes itens:

 Discriminância de palavras: o quanto uma palavra é dis-


criminante em uma coleção de documentos. Por exem-
plo: em uma base de textos sobre Tecnologia da Infor-
mação, a palavra tecnologia não diferencia um texto do
outro, mas governança sim.

 Frequência de palavras: a frequência das palavras co-


muns entre dois textos é um forte indicativo de similari-
dade entre eles.

 Normalização: a normalização é necessária para reduzir


a diferença entre documentos grandes e pequenos.

Antes de aplicar a técnica TF-IDF em um texto, é neces-


sário executar um pré-processamento nele, retirando as stop-
words (palavras que não são importantes para análise, tais
como preposições e artigos) e após executar stemming (extrair
o radical das palavras). Por exemplo, o texto “Sistemas de re-
comendação são uma excelente solução para a sobrecarga de
informações na Internet”, após o processo de stemming seria
considerado como “Sistema recom excel soluc sobrecarga in-
for Internet” (Torres, 2004).

O IDF expressa o quanto uma palavra é discriminante den-


tro da coleção de documentos. Cada palavra possui um único
valor IDF em toda a coleção. A fórmula para o cálculo do IDF
Capítulo 5 Sistemas de Recomendação 65

é: IDP(p) = log(D/Np), onde D = número de documentos de


uma coleção e Np = Número de documentos da coleção em
que a palavra p aparece.

O TF (taxa de frequência) representa o número de ocor-


rências de cada palavra em cada um dos documentos ana-
lisados. Para determinar a similaridade entre os documentos,
multiplica-se o TF pelo IDF de cada palavra, para construir
a representação vetorial dos documentos. A partir da repre-
sentação vetorial, utiliza-se o cosseno entre eles para medir a
similaridade.

A técnica de filtragem baseada em conteúdo possui algu-


mas vantagens, como, por exemplo:

 Não possui o problema de cold start: por não precisar


de avaliações de outros usuários, a filtragem baseada
em conteúdo não possui o problema de cold start.

 Possui a capacidade de recomendar todos os itens:


Os produtos disponíveis no banco de dados são todos
comparados com o perfil do usuário, assim, todos os
produtos possuem chances de serem recomendados ao
usuário.

 O usuário recebe recomendação do que deseja confor-


me seu perfil formado no sistema, pois, para todo texto
e/ou atributo, pode ser medida a similaridade com o
perfil do usuário. Dessa forma, dificilmente um sistema
de FBC não consegue gerar uma recomendação, ao
contrário da FC.

Como desvantagens, podemos citar as seguintes:


66 Sistemas Inteligentes

 Ela não considera alguns aspectos importantes, como,


por exemplo, a qualidade do texto e o renome do autor.

 Superespecialização, que acontece porque, como a técnica


de filtragem baseada em conteúdo compara as palavras-
-chave, as recomendações geradas podem ser semelhan-
tes às palavras-chave encontradas no perfil do usuário.

Filtragem Baseada em Conhecimento


A abordagem baseada em conhecimento é considerada com-
plementar às abordagens filtragem baseada em conteúdo e
filtragem colaborativa (Burke, 2000). O conhecimento sobre
clientes e sobre o domínio da aplicação é utilizado para ra-
ciocinar sobre quais produtos se enquadram melhor, conside-
rando as preferências do usuário. Esses sistemas sabem como
um determinado produto se encaixa na necessidade de um
usuário específico e são capazes de raciocinar sobre a relação
entre uma necessidade e uma possível recomendação.

A principal vantagem da abordagem baseada em conheci-


mento é que ela não depende das avaliações prévias de outros
clientes, evitando a dificuldade inicial do sistema (cold start). O
conhecimento pode ser expresso como um modelo de usuário
detalhado, um modelo de processo de seleção ou uma descri-
ção de itens que serão sugeridos.

Conforme apresentado em (Ricci et al., 2011), nos Siste-


mas de Recomendação Baseados em Conhecimento, o co-
nhecimento pode ser expresso como um modelo detalhado do
usuário, um modelo de um processo de seleção ou a descri-
ção de itens que serão sugeridos ao cliente.
Capítulo 5 Sistemas de Recomendação 67

Um dos primeiros sistemas de recomendação baseados


em conhecimento é o Entrée, apresentado em (Torres, 2004).
Ele é um sistema de recomendação de restaurantes que provê
recomendações, encontrando restaurantes parecidos com os
que o usuário conhece e gosta, porém em uma nova cidade.
A abordagem empregada nesse sistema permite que ele res-
ponda questões do tipo “Para que restaurante parecido com o
restaurante X eu poderia ir?”. O sistema permite que o usuário
critique as recomendações apresentadas a ele com o objetivo
de modificar a consulta inicial.

Sistemas de recomendação baseados em casos (SRBC) uti-


lizam a abordagem de Raciocínio Baseado em Casos (RBC),
onde o conhecimento é representado a partir de casos na base
de casos. O conhecimento pode ser sobre os produtos, os usu-
ários, as sessões de recomendação, sobre a avaliação do usu-
ário sobre produtos ou até mesmo uma mistura de todos esses
exemplos.

No processo de recomendação básico desse tipo de siste-


ma, o usuário está procurando por algum produto para com-
prar, e o sistema solicita suas preferências. Com essas infor-
mações o sistema inicia uma busca na base de casos para
identificar produtos que possam ser recomendados, ou seja,
aqueles produtos que satisfazem as preferências desse usuário.
Nesse processo, pode-se identificar alguns elementos básicos,
como a entrada (onde o usuário informa suas preferências), a
recuperação de produtos (onde o sistema procura os produtos
de acordo com as preferências do usuário) e a saída (onde
alguma recomendação é apresentada ao usuário).
68 Sistemas Inteligentes

A Figura 5.5 apresenta o ciclo de funcionamento de um


sistema de recomendação baseado em casos definido em
(Lorenzi & Ricci, 2005). A partir de um novo problema, o
sistema recupera da base os casos mais similares. Esses ca-
sos recuperados são recomendados ao usuário. Quando as
soluções do caso apresentado precisam de alguma modifica-
ção, é realizada a etapa de adaptação. A solução adaptada
passa pelo processo de revisão e após pode ser inserida na
base como um novo caso (etapa de retenção e também cha-
mada de aprendizado). O último passo desse processo é a
interação com o usuário, onde este pode criticar o resultado
apresentado pelo sistema.

Figura 5.5: Ciclo de funcionamento de um sistema de recomendação


baseado em casos (Lorenzi & Ricci, 2005).
Capítulo 5 Sistemas de Recomendação 69

Recapitulando
Este capítulo apresentou os sistemas de recomendação, bem
como as técnicas de recomendação que podem ser utilizadas.
Os sistemas de recomendação são utilizados para que seja
possível recomendar opções mais direcionadas ao perfil do
usuário, resolvendo o problema da existência de muita infor-
mação na Internet.

Referências bibliográficas
ADOMAVICIUS, G.; TUZHILIN, A. Toward the Next Generation
of Recommender Systems: a survey of the state-of-the-art
and possible extensions. IEEE Transactions on Knowledge
and Data Engineering, Piscataway, NJ, USA, v. 17, n. 6, p.
734-749, 2005.

BILLSUS, D.; PAZZANI, M. A Hybrid User Model for News Story


Classification. In: SEVENTH INTERNATIONAL CONFEREN-
CE ON USER MODELING, UM ’99, Banff, Canada. Proce-
edings. . . [S.l.: s.n.], 1999.

BURKE, R. Knowledge-based Recommender Systems. In: DAILY,


J. E.; KENT, A.; LANCOUR, H. (Ed.). Encyclopedia of Library
and Information Science. [S.l.]: Marcel Dekker, 2000. v. 69.

LORENZI, F.; RICCI, F. Case-based recommender systems: a


unifying view. In: INTELLIGENT TECHNIQUES FOR WEB
PERSONALIZATION. Anais. . . Springer Verlag, 2005. p.
89-113.

MILLER, B. et al. MovieLens Unplugged: experiences with an


occasionally connected recommender system. In: ACM
70 Sistemas Inteligentes

2003 INTERNATIONAL CONFERENCE ON INTELLIGENT


USER INTERFACES (IUI’03), Chapel Hill, North Carolina.
Proceedings. ACM Press, 2003.

RICCI, F.; ROKACH, L.; SHAPIRA, B.; KANTOR, P.B. Recom-


mender Systems Handbook. 1. Ed. Springer , 2011.

TORRES, Roberto. Personalização na Internet: como descobrir


os hábitos de consumo de seus usuários, fidelizá-los e au-
mentar o lucro de seu negócio. São Paulo: Novatec, 2004.

Atividades
1) É considerado um objetivo de um Sistema de Recomenda-
ção...

a) … sugerir produtos ao usuário de acordo com o quanto


ele tem para gastar.

b) … sugerir produtos ao usuário de acordo com os produ-


tos disponíveis para venda.

c) … sugerir produtos ao usuário de acordo com suas pre-


ferências, auxiliando o usuário na grande quantidade de
informações disponíveis.

d) … sugerir produtos ao usuário de acordo com as entre-


vistas realizadas.

e) nenhuma das alternativas anteriores.

2) É considerada uma técnica de recomendação.

a) Filtragem colaborativa.
Capítulo 5 Sistemas de Recomendação 71

b) Filtragem baseada em dados.

c) Filtragem baseada em vídeos.

d) Entrevistas estruturadas.

e) Nenhuma das alternativas anteriores.

3) A técnica de filtragem colaborativa considera...

a) … os produtos que o usuário já viu ou comprou.

b) ... o perfil do usuário com os outros usuários do sistema.

c) … os casos que já aconteceram.

d) … os produtos e os casos que já aconteceram com o


usuário.

e) nenhuma das alternativas anteriores.

4) É considerado um problema da técnica de filtragem cola-


borativa:

a) Falta de dados sobre o produto recomendado.

b) Cold-start.

c) Ovelha negra.

d) Falta de dados dos produtos comprados.

e) Nenhuma das alternativas anteriores.

5) Que técnica é considerada complementar às técnicas de


filtragem colaborativa e filtragem baseada em conteúdo?

a) Filtragem baseada em perfil.


72 Sistemas Inteligentes

b) Filtragem baseada em conhecimento.

c) TF-IDF.

d) Recuperação de casos.

e) Nenhuma das alternativas anteriores.

Gabarito
1) c

2) a

3) b

4) b

5) b
Fabiana Lorenzi1

Capítulo 6

Sistemas Multiagente 1

Apresentação

Este capítulo apresenta os principais conceitos envolvidos na


IA distribuída, onde o principal ator é o agente.

Durante muito tempo, os pesquisadores da área da IA pro-


curaram desenvolver agentes isolados com algum comporta-
mento inteligente. Segundo (Wooldridge, 2002) um agente é
uma entidade real ou virtual, imersa em um ambiente onde
ele pode agir e no qual ele possui percepção e representação

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
74 Sistemas Inteligentes

parcial desse ambiente. Porém, o desenvolvimento de compu-


tadores com maior poder de processamento, o aumento da
complexidade das redes de computadores e a necessidade de
resolver os problemas de forma distribuída fizeram a Inteligên-
cia Artificial Distribuída (IAD) se tornar uma área de grande
importância.

Uma das motivações para o crescimento da IAD é a possi-


bilidade de resolver problemas que não podem ser resolvidos
de forma centralizada (por limitação de recursos ou desempe-
nho).

A IAD é tradicionalmente dividida em duas áreas: Resolu-


ção Distribuída de Problemas (RDP) e sistemas multiagentes
(SMA).

6.1 Resolução Distribuída de Problemas

A Resolução Distribuída de Problemas (RDP) tem como objeto


principal o problema a ser resolvido, ou seja, o centro de tudo
é a solução de um problema particular. Nesse tipo de sistema,
os agentes são programados para realizar tarefas específicas e
comunicar-se com outros agentes da sociedade para resolver
o problema global.

O mecanismo funciona como se o problema global fosse


subdividido em vários subproblemas (como um quebra-cabe-
ça, por exemplo) e cada agente trata um subproblema.
Capítulo 6 Sistemas Multiagente 75

6.2 Sistemas Multiagente

Os Sistemas Multiagente (SMAs) são compostos por vários


agentes autônomos que interagem uns com os outros. Agentes
autônomos possuem determinação própria e decidem o que
devem fazer e quando devem realizar tarefas. Eles têm a habili-
dade de decidir quais objetivos terão que cumprir e que ações
deverão realizar para atingir esses objetivos.

Os agentes autônomos exibem duas características funda-


mentais: são capazes de agir de forma autônoma, o que leva à
tomada de decisões para atingir seus objetivos, e são capazes
de interagir com outros agentes utilizando protocolos de inte-
ração social inspirados nos humanos.

Os agentes em um SMA são projetados para resolver


qualquer tipo de problema e não um problema em específico
como acontece na RPD. Isso se deve, basicamente, porque,
nos SMAs, esses agentes são entidades autônomas que têm
conhecimento da sua própria existência e da existência de ou-
tros agentes e, dessa forma, colaboram uns com os outros
para atingirem um objetivo comum dentro de um ambiente.

Nos SMAs, os agentes representam a parte central e de-


vem se comunicar e trocar conhecimento para obter a solução
de problemas antes desconhecidos, ou seja, o problema pode
surgir após a construção da arquitetura do sistema. Assim, o
problema não é necessariamente específico e o processo de
coordenação das ações dos agentes ocorre em tempo de exe-
cução.
76 Sistemas Inteligentes

Um SMA possui algumas características, como, por exem-


plo:

 Cada agente tem informação ou capacidade incomple-


tas, ou seja, visão limitada para resolver o problema.

 Não existe um controle global do sistema.

 Os dados são descentralizados.

Os SMAs podem possuir algumas das seguintes funciona-


lidades: comunicação, coordenação e negociação (coope-
rativa ou competitiva).

Comunicação entre os agentes

Para o completo funcionamento de um SMA, é necessário um


protocolo ou uma linguagem de comunicação para que os
agentes se entendam, ou seja, para que os agentes tenham
uma linguagem comum. O objetivo do processo de comuni-
cação é a troca de informações.

Uma linguagem que vem sendo utilizada na comunica-


ção entre os agentes é a KQML (Knowledge Query and Mani-
pulation Language). KQML é uma linguagem projetada para
suportar interações entre agentes inteligentes. Ela foi desen-
volvida pelo ARPA no Programa de Compartilhamento de
Informações e implementada independentemente por vários
grupos de pesquisa.
Capítulo 6 Sistemas Multiagente 77

Coordenação entre os agentes

A coordenação entre os agentes é necessária para evitar o


caos entre os agentes. Como os SMAs preveem vários agentes
envolvidos em um ambiente normalmente complexo, conflitos
acabam acontecendo. Por essa razão, a coordenação é um
processo muito importante nos SMAs.

Quando agentes autônomos trabalham para cumprir de-


terminado objetivo, eles devem agir como uma unidade, coor-
denando suas ações, compartilhando recursos ou minimizan-
do esforços.

Rede de Contrato (Contract Net)

A técnica Rede de Contratos (Contract Net) é um protocolo de


interação para solução de problemas de forma interativa entre
agentes. Se um agente não consegue resolver o problema com
seus recursos locais, ele decompõe o problema em subpro-
blemas e tenta encontrar outros agentes para resolver esses
problemas. Os agentes podem assumir o papel de contratante
ou contratado.

Conforme apresentado na Figura 6.1, inicialmente, um


contratante (que geralmente tem uma tarefa a ser executada e
não tem recursos suficientes) abre um edital e convida outros
agentes para a elaboração de propostas para execução dessa
tarefa. Os agentes dispostos a aceitar a proposta retornam
com ofertas. O contratante atribui a tarefa ao agente que fez
a melhor oferta.
78 Sistemas Inteligentes

Figura 6.1: Exemplo de rede de contrato.

Negociação entre os agentes

Devido à falta de visão e conhecimento globais, os SMAs são


passíveis de falhas e inconsistências nos objetivos dos agen-
tes. Para que os agentes atinjam seus objetivos, resolvendo os
problemas de forma coerente, essas falhas devem ser resolvi-
das. A principal abordagem para resolver esses problemas em
SMAs é a negociação.
Capítulo 6 Sistemas Multiagente 79

A negociação é vista como um método para resolução de


conflitos entre os agentes. Segundo (Sycara, 1988), algumas
características são necessárias nos SMAs para que haja nego-
ciação:

 A presença de algum tipo de conflito que pode ser resol-


vido de forma descentralizada.

 Racionalidade limitada.

 Informação incompleta.

Normalmente, na negociação, os agentes se comunicam e


trocam propostas e contrapropostas em várias iterações. Dada
a importância da negociação, várias pesquisas têm se concen-
trado no desenvolvimento de negociações automáticas entre
agentes, como, por exemplo, modelos de leilões, negociações
diretas (agente a agente) ou negociações baseadas em argu-
mentações.

Negociação é o processo onde duas ou mais partes tomam


uma decisão em conjunto (Zhang et al., 2005). Na negocia-
ção de agentes, eles primeiro verbalizam o pedido e então
buscam um acordo com outros agentes, fazendo contrapro-
postas e tentando novas alternativas.

O processo de negociação é acionado quando o agente


percebe que ele não é a melhor opção na realização de uma
tarefa. Pode ser que esse agente esteja sobrecarregado, que
ele não tenha capacidade de realizar a tarefa localmente ou
até mesmo que outro agente possa realizar a tarefa com mais
qualidade do que ele. A negociação pode trazer as seguintes
vantagens ao SMA:
80 Sistemas Inteligentes

 Melhorar a qualidade das soluções.

 Melhorar a eficiência em atingir os objetivos.

 Resolver tarefas que não podem ser resolvidas pelo


agente.

No momento em que o agente precisa realizar a tarefa, ele


avalia a utilidade (custo e tempo) de realização dessa tarefa
e decide se ele mesmo realizará ou se inicia o processo de
negociação com outros agentes. A negociação pode ser clas-
sificada em dois tipos: colaborativa e competitiva.

A negociação cooperativa (também conhecida como ne-


gociação colaborativa) é um processo onde são encontradas
alternativas de ganho comum, que atendam aos interesses de
todas as partes. Pode ser vista também como um processo de
busca distribuído onde os agentes tentam atingir a utilidade
global máxima que leva em conta o quanto às atividades de
cada agente valem a pena.

Já a negociação competitiva ocorre entre agentes onde


cada um tenta maximizar sua utilidade local, ou seja, os resul-
tados de uma das partes são prejudicados em relação à outra.
Nesse tipo de negociação, as partes assumem algum conflito
de interesses. O grau de incompatibilidade nos objetivos e os
métodos para lidar com os conflitos determinam as estratégias
a serem adotadas pelos agentes em diferentes circunstâncias.
Os agentes visam seu próprio ganho, não considerando o
grande grupo. Esse tipo de negociação se identifica como um
jogo de soma zero, ou seja, o ganho de um jogador é a perda
do outro. Um exemplo é a negociação do preço de um pro-
Capítulo 6 Sistemas Multiagente 81

duto entre um comprador e um vendedor, onde as duas partes


possuem objetivos antagônicos: o comprador quer o menor
preço e o vendedor persegue o maior.

Dependendo do tipo de negociação, os agentes se com-


portam de forma diferente. Em um ambiente competitivo, o
agente precisa ser ágil e ficar atento ao tempo que ele possui
para negociar. Já em um ambiente colaborativo, a negociação
acontece com outros agentes da sua própria comunidade.

6.3 Tipos de agentes

Segundo (Wooldridge, 2002), um agente é uma entidade real


ou virtual, imersa em um ambiente onde ele pode agir e no
qual ele possui percepção e representação parcial desse am-
biente.

As propriedades dos agentes e sua intensidade caracteri-


zam seu comportamento dentro de uma sociedade.

Algumas propriedades que podem ser encontradas nos


agentes são:

 Autonomia: é a capacidade de executar ações, com o


objetivo de executar suas tarefas, sem a interferência do
usuário final.

 Mobilidade: é a capacidade de se transportar de uma


máquina para outra.
82 Sistemas Inteligentes

 Comunicabilidade: é a capacidade do agente de se


comunicar com outros agentes.

 Aprendizagem: é a capacidade de alterar seu compor-


tamento baseado em experiências prévias.

 Reatividade: reage às mudanças no ambiente.

 Pró-atividade: é a capacidade de não responder so-


mente ao ambiente, mas sim perseguir seu objetivo.

 Comportamento Adaptativo: capacidade do agente


de modificar seu comportamento em função de experi-
ências anteriores.

 Discurso: propriedade onde o usuário e agente con-


cordam sobre o que deve ser feito e por quem deve ser
feito.

 Flexibilidade: habilidade dos agentes em escolher que


ações e em que sequência deve tomá-las em resposta a
um evento do ambiente.

As arquiteturas de agentes podem ser classificadas em três


diferentes tipos (Wooldridge, 2002): arquitetura cognitiva (ou
deliberativa), arquitetura reativa (não deliberativa) e arquitetu-
ra híbrida.

Reativo (não deliberativo)

Um agente age em função apenas de seu conhecimento in-


terno, não levando em conta sua percepção. Nesse tipo de
Capítulo 6 Sistemas Multiagente 83

agente, a inteligência está no projetista e não no agente. Os


agentes reativos não modelam o mundo para determinar suas
ações. Eles são agentes simples que possuem um mapeamento
de situações e respostas associadas. Assim, quando um estado
ambiental ocorre, o agente executa a ação correspondente.
Esse processo é chamado de estímulo-resposta.

Figura 6.2: Arquitetura de um agente reativo (Russel & Norvig, 2004).

Como mostra a Figura 6.2, um agente é qualquer entidade que:

 Percebe seu ambiente a partir de sensores (ex.: câmeras,


microfone, teclado).

 Age sobre o ambiente a partir de atuadores (ex.: vídeo,


alto-falante, impressora, ftp, e-mail).

Pode-se dizer então que um agente decompõe:


84 Sistemas Inteligentes

 Problema em percepções, ações, objetivo e ambiente (e


outros agentes).

 Não possuem memória e, por esse motivo, não são ca-


pazes de planejar suas ações.

A Figura 6.3 apresenta o exemplo do Mundo do Aspirador


de Pó, inventado por Russel e Norwig (2004). Nesse mundo, o
ambiente é representado por apenas dois locais: os quadrados
A e B e o agente é o Aspirador de Pó.

Figura 6.3: Exemplo do agente aspirador de pó.

O agente aspirador de pó percebe em que quadrado está e


se existe sujeira no quadrado. Ele pode escolher o movimento
(esquerda ou direita) e se aspira a poeira ou se não faz nada.

A função do agente é:

Se o quadrado atual estiver sujo

Então

Aspirar
Capítulo 6 Sistemas Multiagente 85

Senão

Mover-se para o outro quadrado

Função agente-aspirador-pó (posição, estado): retorna uma


ação

Início

se estado=sujo

então

retornar Aspirar

senão

se posição = A

então

retornar Direita

senão

se posição = B

então

retornar Esquerda

senão

retornar fazer_nada

Fim
86 Sistemas Inteligentes

Cognitivo (deliberativo)

Um agente cognitivo tem seu comportamento determinado


pela sua própria experiência. Esse tipo de agente opera com
sucesso em qualquer ambiente e possui uma representação
explícita do ambiente e dos outros agentes, além de memória,
o que possibilita que ele planeje suas ações.

Esses agentes também são conhecidos como agentes autô-


nomos, ou seja, eles têm o controle de suas ações, executan-
do-as independentemente do que aconteça a sua volta.

Híbridos

A arquitetura híbrida mistura componentes das arquiteturas


cognitivas e reativas com o objetivo de torná-la mais adequa-
da e funcional para a construção de agentes.

Nesse tipo de arquitetura, os agentes são dotados de com-


portamento reativo com relação aos eventos que ocorrem no
ambiente e comportamento cognitivo onde existe uma defini-
ção simbólica do mundo para a tomada de decisões.

Recapitulando
Este capítulo introduziu o aluno na área de Inteligência Artifi-
cial Distribuída e apresentou o principal conceito da área: o
agente. Os tipos de agentes mais conhecidos são: reativo e
cognitivo.
Capítulo 6 Sistemas Multiagente 87

Referências bibliográficas
Russell, S. and Norvig, P. (2004). Inteligência Artificial. Cam-
pus, Rio de Janeiro, RJ.

SYCARA, K. Resolving goal conflicts via negotiation. In: SE-


VENTH NATIONAL CONFERENCE ON ARTIFICIAL IN-
TELLIGENCE, 1988. Proceedings. . . [S.l.:s.n.], 1988. p.
245-250.

ZHANG, X.; LESSER, V.; PODOROZHNY, R. Multi-Dimensio-


nal, Multistep Negotiation for task allocation in a coopera-
tive system. Autonomous Agentes and Multi-Agent Systems,
[S.l.], v. 10, n. 1, p. 5-40, 2005.

WOOLDRIDGE, M. J. An Introduction to MultiAgent Systems.


Chichester: John Wiley & Sons, 2002.

Atividades
1) Quanto à motivação da Inteligência Artificial Distribuída, é
correto afirmar que:

a) A ideia surgiu a partir dos sistemas baseados em co-


nhecimento, onde existe um especialista que resolve os
problemas.

b) A ideia surgiu a partir da necessidade de dividir as tare-


fas em vários computadores da empresa.

c) A ideia surgiu a partir da percepção de que alguns pro-


blemas não podem ser resolvidos de forma centralizada.
88 Sistemas Inteligentes

d) A ideia surgiu a partir da necessidade de existir um con-


trole centralizado sobre o conhecimento da empresa.

e) Nenhuma das alternativas anteriores.

2) As características básicas de um agente em um sistema mul-


tiagente são:

a) Comunicação, coordenação e envio.

b) Envio, coordenação e negociação.

c) Comunicação, coordenação e negociação.

d) Negociação, envio e comunicação.

e) Nenhuma das alternativas anteriores.

3) Não é uma característica de um agente reativo?

a) Age em função apenas de seu conhecimento interno,


não levando em conta sua percepção.

b) A inteligência está no projetista e não no agente.

c) Opera com sucesso em qualquer ambiente.

d) Baseia-se no processo estímulo-resposta.

e) Nenhuma das alternativas anteriores.

4) Quanto à coordenação entre os agentes, é correto afirmar que:

a) Sem coordenação, os agentes não conseguiriam se co-


municar.

b) Por meio da coordenação, não é possível evitar o caos


entre os agentes.
Capítulo 6 Sistemas Multiagente 89

c) A coordenação atrapalha o desempenho dos agentes.

d) A coordenação permite aumentar o desempenho dos


agentes.

e) Nenhuma das alternativas anteriores.

5) A negociação entre agentes pode ser classificada como:

a) Negociação imperativa.

b) Negociação cooperativa e competitiva.

c) Negociação baseada em casos.

d) Negociação baseada no histórico dos agentes.

e) Nenhuma das alternativas anteriores.

Gabarito
1) c

2) c

3) c

4) d

5) b
Fabiana Lorenzi1

Capítulo 7

Teoria dos Jogos 1

Apresentação

Este capítulo introduz o tema de “teoria dos jogos” e como ele


pode ser aplicado no desenvolvimento de sistemas multiagentes.

Teoria dos jogos é o estudo matemático de decisões in-


terativas, onde aqueles que tomam as decisões são afetados
tanto pelas suas próprias escolhas quanto pelas decisões dos
outros envolvidos. Esse estudo se baseia em dois princípios: 1)
as escolhas das pessoas são motivadas por preferências bem

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
Capítulo 7 Teoria dos Jogos 91

definidas e estáveis sobre os possíveis resultados das suas de-


cisões, e 2) as pessoas agem estrategicamente, ou seja, levam
em consideração a relação entre as suas escolhas e as deci-
sões dos outros.

Em 1928, John Von Neumann começou a utilizar a mate-


mática para mostrar que as pessoas ajudam as outras porque
ganham algo com isso. Ele iniciou um estudo sobre o com-
portamento racional, com o objetivo de criar modelos para
explicar o comportamento humano.

Anos após, John Nash realizou um estudo para provar que


o melhor resultado provém quando todos do grupo fazem o
que é melhor para si e para o grupo. Nesse estudo, John Nash
ajustava o conceito da “mão invisível”, criada pelo filósofo
Adam Smith, considerado o pai da economia moderna. Esse
conceito de Smith dizia que “...ao empregar seu capital o indi-
víduo tem em vista apenas sua própria segurança; ao orientar
sua atividade de tal maneira que sua produção possa ser de
maior valor, visa apenas o seu próprio ganho e, neste, como
em muitos casos, é levado como que por uma mão invisível a
promover um objetivo que não fazia parte de suas intenções.
Aliás, nem sempre é pior para a sociedade que esse objeti-
vo não faça parte das intenções do indivíduo. Ao perseguir
seus próprios objetivos, o indivíduo muitas vezes promove o
interesse da sociedade muito mais eficazmente do que quanto
tenciona realmente promovê-lo.”

Essa teoria de John Nash foi chamada de “Equilíbrio de


Nash” e afirma que a ambição individual não é a estratégia
que dá o melhor resultado.
92 Sistemas Inteligentes

7.1 Principais conceitos

Um jogo é uma situação onde ocorrem interações entre jogado-


res que se comportam de forma estratégica visando atingir um
objetivo que depende do comportamento dos outros jogadores.

O elemento básico em um jogo é o conjunto de jogadores.


Cada jogador tem um conjunto de estratégias, suas preferências ou
interesses para cada situação do jogo e pode fazer uma escolha.

Para caracterizar um jogo, então, é necessário descrever


os jogadores, as regras, os resultados e as utilidades (payoffs)
possíveis.

A teoria dos jogos considera que não basta estudar o com-


portamento isolado dos jogadores, pois o resultado do com-
portamento de um jogador pode ser obtido pelo comporta-
mento de outro. Dessa forma, é necessário considerar todas
as possibilidades de comportamentos (decisões, opções, es-
colhas) para chegar a uma escolha ideal para os jogadores.

Podemos classificar os jogos em dois diferentes tipos: soma


zero (também conhecido como ganha/perde) e soma não zero
(também conhecido como jogo ganha/ganha).

Os jogos de soma zero são jogos em que a soma total dos


benefícios de todos os jogadores é sempre igual a zero (ou
seja, um jogador só pode ganhar se outro perder). Pode-se
citar como o exemplo o Xadrez e o Pôquer.

Os jogos de soma não zero são jogos em que cada jo-


gador preocupa-se apenas com o seu resultado. O resultado
final é avaliação da pontuação de ambos os jogadores.
Capítulo 7 Teoria dos Jogos 93

Os jogos podem ser também estratégicos ou extensivos. Nos


jogos estratégicos, os jogadores agem ao mesmo tempo e uma
única vez. Já nos jogos extensivos, apenas um jogador joga a
cada vez e ele conhece o histórico de jogadas anteriores.

7.2 Modelos de jogos

Esta seção apresenta alguns modelos de jogos.

7.2.1 Dilema do Prisioneiro


Dois suspeitos (A e B) são presos pela polícia. A polícia tem
provas insuficientes para condená-los, então resolve separá-
-los e oferecer a ambos o mesmo acordo: se um dos prisionei-
ros testemunhar para a procuradoria contra o outro e o outro
permanecer em silêncio, o prisioneiro que confessou (coope-
rou) sai livre, e o que ficou em silêncio ganha pena de 10
anos.

 Se ambos ficarem em silêncio, a polícia só pode conde-


ná-los a 6 meses de cadeia cada um.

 Se ambos traírem o outro (ou seja, cooperarem com a


polícia), cada um leva 2 anos de cadeia.

A Tabela 7.1 apresenta a matriz de payoff do exemplo


apresentado para o dilema do prisioneiro. Cada prisioneiro
faz sua decisão sem saber o que o outro vai escolher, e eles
não tem certeza da decisão do outro. A questão que o dilema
propõe é: como cada prisioneiro vai reagir?
94 Sistemas Inteligentes

Tabela 7.1: Matriz de payoff


B
Confessa Não confessa
Confessa 2 anos/2 anos 0/10 anos
Não confessa 10 anos/0 6 meses/6 meses

7.2.2 Dilema do Prisioneiro Iterado


 O pesquisador Axelrod criou um torneio de “Dilema do
Prisioneiro Iterado” em computador, nos moldes dos tor-
neios de xadrez, onde várias equipes se inscreveram e
tinham como objetivo apresentar diferentes estratégias a
serem utilizadas em situações em que os interesses dos
jogadores não eram absolutamente opostos. Durante o
torneio, diversas estratégias foram apresentadas, como,
por exemplo: Poliana: o jogador coopera independente-
mente da estratégia do jogador adversário.

 Antissocial: escolhe pela traição (confessar) sempre, in-


dependentemente da estratégia do jogador adversário.

 Retaliadora: toma a iniciativa de cooperar, mas em se-


quência responde com a mesma ação empregada por
seu oponente na jogada anterior. Se ele cooperou, ele
coopera e, se ele traiu, ele opta pela traição. Essa estra-
tégia é mais conhecida como “tit-for-tat” – olho por olho.

A estratégia tit-for-tat foi a vencedora do torneio, pois foi


a estratégia que teve a maior soma de pontos no final das
rodadas. Analisando as estratégias, percebeu-se que algumas
propriedades são importantes para o sucesso de uma estraté-
gia, como, por exemplo:
Capítulo 7 Teoria dos Jogos 95

 Bondade: uma vez que o jogador sempre começa coo-


perando, ele evita entrar em problemas desnecessaria-
mente.

 Reciprocidade: o fato de agir da forma como o outro


agiu na jogada anterior desencoraja a oposição, já que
esta será retaliada.

 Perdão: retribuir cooperação, mesmo tendo havido uma


oposição anterior, ajuda a restaurar a cooperação mútua.

 Clareza: faz a estratégia compreensível para o outro jo-


gador, evitando retaliações por atitudes mal compreen-
didas.

7.2.3 Problema do Bar


O problema do bar foi descrito por Brian Arthur (Arthur, 1994),
que toda quinta-feira à noite frequentava o bar El Farol na
localidade de Santa Fé, Novo México. Como o bar era pe-
queno, em alguns dias o bar ficava cheio demais e em outros
dias muito vazio. Brian percebeu que as pessoas decidiam se
iam ou não ao bar sem nenhuma informação ou comunicação
com outras pessoas e então decidiu definir o problema como
um modelo matemático, que prevê:

Se 60% das pessoas resolve ir ao bar, o local fica agradável


e elas têm uma noite muito divertida.

Se mais de 60% das pessoas decide ir ao bar, ele fica lo-


tado, e consequentemente as pessoas não têm uma noite di-
vertida.
96 Sistemas Inteligentes

Cada pessoa faz sua escolha (de ir ou não ao bar) com


base, por exemplo:

 Na mesma escolha da última semana.


 A média das últimas quatro semanas.
 O mesmo número de pessoas que foram há duas se-
manas.
 O mesmo número de pessoas que foi nas cinco sema-
nas anteriores.

Brian Arthur percebeu que não há decisão de raciocínio


dedutivo que permita a uma pessoa chegar à melhor decisão
de ir ou não ao bar.

7.2.4 Tragédia dos Comuns


A tragédia dos comuns foi formulada pela primeira vez pelo
filósofo político David Hume, onde ele abordou a questão do
uso individual e sem restrições dos recursos coletivos que, na
maioria das vezes, leva a escassez desses recursos.

Podemos dizer que a tragédia dos comuns é uma boa apli-


cação da teoria dos jogos, porque ela reflete o comportamento
instintivo das pessoas e mostra que o comportamento humano
pode ser expresso pelas equações dessa teoria, que apontam
para um alto benefício individual contra um baixo custo para
cada um da comunidade.

Um dos exemplos mais clássicos da tragédia dos comuns é


a ida de 10 amigos a um restaurante, que no final dividem o
pagamento da conta. Imaginando que 9 pedem hambúrguer
Capítulo 7 Teoria dos Jogos 97

e 1 pede um prato de camarão, ao dividir a conta, os 9 que


comeram hambúrguer pagarão uma pequena diferença na
conta. Porém, se todos resolverem fazer o mesmo pedido de
camarão, a conta ficará muito cara.

A estratégia possível para o bem de todo grupo é impor


penalidades caso alguém se comporte diferente dos demais,
fazendo com que as pessoas tenham um comportamento mais
altruísta.

Outro exemplo é a utilização de impressora do laborató-


rio. Imagine que a impressão seja liberada, e um único aluno
decide imprimir uma apostila de 500 páginas. Isso implicará
na falta de papel e de tonner para que os próximos alunos
imprimam seus trabalhos. Para solucionar esse problema, a
universidade deve criar regras para impressão, impondo um
limite de folhas impressas por aluno.

7.3 Teoria dos jogos aplicada na


negociação entre os agentes

Nos sistemas multiagente, um modelo de teoria dos jogos é


aquele que estuda o comportamento estratégico dos agentes,
os quais tomam decisões com base nos objetivos bem defini-
dos e no seu conhecimento ou nas suas expectativas sobre o
comportamento dos outros agentes.

Conforme vimos no Capítulo 6, em um sistema multiagen-


te, é necessário que os agentes coordenem suas ações, pois
eles não possuem uma visão global do problema. Cada agen-
98 Sistemas Inteligentes

te conhece apenas seus objetivos, ou seja, possui apenas co-


nhecimento local, o que dificulta a cooperação entre eles. No
momento em que o agente precisa realizar a tarefa, ele avalia
a utilidade (custo e tempo) de realização dessa tarefa e decide
se ele mesmo realizará ou se inicia o processo de negociação
com outros agentes. A negociação pode ser classificada em
dois tipos: colaborativa e competitiva.

Como vimos anteriormente, a negociação competitiva


ocorre entre agentes onde cada um tenta maximizar sua uti-
lidade local, ou seja, os resultados de uma das partes são
prejudicados em relação à outra. Nesse tipo de negociação,
as partes assumem algum conflito de interesses. O grau de
incompatibilidade nos objetivos e os métodos para lidar com
os conflitos determinam as estratégias a serem adotadas pelos
agentes em diferentes circunstâncias. Os agentes visam seu
próprio ganho, não considerando o grande grupo. Esse tipo
de negociação se identifica como um jogo de soma zero, ou
seja, o ganho de um jogador é a perda do outro. Um exemplo
é a negociação do preço de um produto entre um compra-
dor e um vendedor, onde as duas partes possuem objetivos
antagônicos: o comprador quer o menor preço e o vendedor
persegue o maior.

Dependendo do tipo de negociação, os agentes se com-


portam de forma diferente. Em um ambiente competitivo, o
agente precisa ser ágil e ficar atento ao tempo que ele possui
para negociar. Já em um ambiente colaborativo, a negociação
acontece com outros agentes da sua própria comunidade.
Capítulo 7 Teoria dos Jogos 99

Recapitulando
Este capítulo apresentou os principais conceitos envolvidos na
área de Teoria dos Jogos. Alguns modelos bem conhecidos
foram apresentados.

Referências Bibliográficas
Arthur, W. Brian, “Inductive Reasoning and Bounded Rationali-
ty”, American Economic Review (Papers and Proceedings),
84,406-411, 1994.

Atividades
1) Quanto à Teoria dos Jogos, pode-se afirmar que:

a) É possível analisar um jogo de soma não zero com ape-


nas um jogador.

b) Preocupa-se em analisar o comportamento isolado dos


jogadores.

c) Considera que jogos de soma zero são melhores do que


jogos de soma não zero.

d) Preocupa-se em analisar qualquer situação que envolva


um conflito de interesses.

e) Nenhuma das alternativas anteriores.

2) Quanto aos jogos do tipo estratégico, pode-se dizer que:

a) Vários jogadores jogam em uma rodada e todos conhe-


cem os outros jogadores.
100 Sistemas Inteligentes

b) Apenas um jogador joga a cada vez e ele não conhece


o histórico de jogadas anteriores.

c) Apenas um jogador joga a cada vez e ele conhece o


histórico de jogadas anteriores.

d) Os jogadores agem ao mesmo tempo e uma única vez.

e) Nenhuma das alternativas anteriores.

3) Quanto aos jogos do tipo extensivo, pode-se dizer que:

a) Vários jogadores jogam em uma rodada e todos conhe-


cem os outros jogadores.

b) Apenas um jogador joga a cada vez e ele não conhece


o histórico de jogadas anteriores.

c) Apenas um jogador joga a cada vez e ele conhece o


histórico de jogadas anteriores.

d) Os jogadores agem ao mesmo tempo e uma única vez.

e) Nenhuma das alternativas anteriores.

4) Sobre o dilema do prisioneiro, é correto afirmar que:

I – Não existem estratégias que levem ao equilíbrio de


Nash.

II – É possível chegar ao equilíbrio de Nash se os jogadores


colaborarem entre si.

III – É possível chegar ao equilíbrio de Nash se os jogado-


res traírem um ao outro.

a) Somente a afirmativa I está correta.


Capítulo 7 Teoria dos Jogos 101

b) Somente a afirmativa II está correta.

c) Somente a afirmativa III está correta.

d) Somente as afirmativas I e II estão corretas.

e) Todas as afirmativas estão corretas.

5) Sobre o problema do bar, é correto afirmar que:

I – É um problema do tipo estratégico.

II – É um problema do tipo soma não zero.

III – É um problema que envolve comunicação entre os


jogadores.

a) Somente a afirmativa I está correta.

b) Somente a afirmativa II está correta.

c) Somente a afirmativa III está correta.

d) Somente as afirmativas I e II estão corretas.

e) Todas as afirmativas estão corretas.

Gabarito
1) d

2) d

3) c

4) b

5) d
Fabiana Lorenzi1

Capítulo 8

Algoritmos Genéticos 1

Apresentação

Este capítulo tem como objetivo apresentar os principais con-


ceitos da IA evolucionária, que tem como seu principal ele-
mento os algoritmos genéticos.

Conforme vimos no Capítulo 1 deste livro, a IA tem uma


subárea chamada de IA evolucionária, com conceitos oriun-
dos da evolução biológica. Essa subárea também é conhecida
como Computação Evolutiva e visa ao desenvolvimento de sis-

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
Capítulo 8 Algoritmos Genéticos 103

temas que resolvem problemas por meio de modelos compu-


tacionais que se baseiam na teoria da evolução natural.

Os algoritmos genéticos, por exemplo, fazem parte dessa


área da Inteligência Artificial. Esses algoritmos são utilizados
para resolução de problemas do mundo real, onde cada indi-
víduo da população corresponde a uma possível solução para
o problema. Um mecanismo de produção baseado no proces-
so evolutivo é aplicado sobre a população atual para explo-
rar o espaço de busca, tentando encontrar melhores soluções
para o problema.

Algoritmos Genéticos (AG), idealizados por Jonh Holland


em 1975, constituem uma técnica de busca, inspirada no pro-
cesso de evolução dos seres vivos, baseada na seleção na-
tural de Darwin. Considerando os sistemas biológicos como
um todo, observa-se que os mesmos desenvolveram, ao longo
da sua evolução, estratégias de adaptação de comportamen-
to, que possibilitaram a sua sobrevivência e a perpetuação de
suas espécies.

Com base nessa analogia com o processo de evolução


biológica das espécies, chamada de metáfora biológica, os
AGs são métodos adaptativos que podem ser usados para re-
solver problemas de busca e otimização. Dado um determi-
nado problema, o conjunto de todas as possíveis soluções é
chamado de espaço de busca e o AG tenta encontrar a melhor
solução nesse espaço de busca.

Muitos problemas computacionais envolvem busca por


meio de um grande número de possíveis soluções e requerem
que o programa seja adaptativo, apto a agir em um ambiente
104 Sistemas Inteligentes

dinâmico. Os AGs são apropriados na solução desses proble-


mas.

Os AGs são utilizados em um diverso número de aplica-


ções, como, por exemplo:

Gerenciamento de redes: supervisão do tráfego nos links e


das filas nos buffers de roteadores para descobrir rotas ótimas
e para reconfigurar as rotas existentes no caso de falha de
algum link.

Computação Evolutiva: gera programas que se adaptam a


mudanças no sistema ao longo do tempo.

Problemas de otimização complexos: problemas com mui-


tas variáveis e espaços de soluções de dimensões elevadas.
Ex.: problema do caixeiro viajante.

8.1 Principais conceitos de AG

Biologicamente, um indivíduo é formado por um conjunto de


cromossomos. O cromossomo é composto de genes, sendo
que cada gene possui um local fixo no cromossomo (deno-
minado de “locus”). Os genes possuem instruções que deter-
minam muito do repertório de comportamento do organismo.
Um único conjunto completo de genes é chamado de Genó-
tipo.

As características do genótipo formam o fenótipo (cor dos


olhos, altura etc.). A maneira pela qual um indivíduo muda e
reage a outros indivíduos faz parte do fenótipo. Cada indiví-
Capítulo 8 Algoritmos Genéticos 105

duo começa a partir do genótipo, considerado um conjunto de


instruções que é utilizado para crescer o fenótipo do indivíduo.

No AG, o gene é denominado de “bit” e o “locus”, de po-


sição do “bit” no indivíduo. O genótipo é representado por um
vetor de bits, onde cada elemento denota a presença (1) ou
ausência (0) de uma determinada característica. Os elementos
podem ser combinados formando as características reais do
indivíduo (o seu fenótipo). Teoricamente, essa representação
é independente do problema, pois uma vez encontrada a re-
presentação em vetores binários, as operações padrão podem
ser utilizadas, facilitando o seu uso em diferentes classes de
problemas.

Normalmente, os AGs trabalham com um conjunto de indi-


víduos (população), no qual, cada elemento é candidato a ser
a solução desejada. A cadeia de cromossomos pode ser codi-
ficada de diversas formas. A representação mais comum utiliza
números binários (0 e 1) é de comprimento fixo (e pode variar
de acordo com a aplicação). A codificação pode ser também
através de valores, onde cada cromossomo é uma sequência
de alguns valores. Estes podem ser qualquer coisa relaciona-
da com o problema, tais como: números reais, caracteres ou
qualquer outro objeto.

A população inicial normalmente é criada randomicamen-


te. A partir dessa população, existe um algoritmo que é segui-
do com o objetivo de que a solução “evolua”.

Na busca pela melhor solução, o AG executa o seguinte


algoritmo:
106 Sistemas Inteligentes

1) Avalia o grau de adaptação (fitness) de cada genótipo


da população.

2) Cria uma nova população consistindo de cópias de par-


te dos genótipos da antiga população.

3) Realiza operação de crossover.

4) Realiza mutação em alguns dos genótipos da nova po-


pulação.

5) Volta ao passo 1.

8.1.1 Avaliação dos indivíduos


Avaliação dos indivíduos (chamado de fitness) é considerada
um ajuste na população, onde os indivíduos mais aptos da
geração atual são selecionados. Todos os indivíduos da popu-
lação são avaliados e, quanto mais adaptado for um genótipo
(indivíduo), maior é o número de descendentes que ele pode
ter na nova população.

A função a ser otimizada é o ambiente, no qual a popula-


ção inicial será inserida. A partir dos mecanismos de evolução
das espécies e da genética natural, espera-se que somente os
mais aptos se reproduzam e, também, que cada nova geração
esteja mais apta ao ambiente.

O grau de aptidão de cada indivíduo é obtido pela avalia-


ção de tal indivíduo, a partir da função a ser otimizada. Se o
objetivo for maximizar, a aptidão é diretamente proporcional ao
valor da função. Caso o objetivo seja a minimização da função,
a aptidão será inversamente proporcional ao valor da função.
Capítulo 8 Algoritmos Genéticos 107

Cada indivíduo tem uma probabilidade proporcional a sua


aptidão de ser selecionado. Um método de seleção muito uti-
lizado é o método da Roleta, onde indivíduos de uma geração
são escolhidos para fazer parte da próxima geração, a partir
de um sorteio de roleta. Os indivíduos cujas regiões possuem
maior área terão maior probabilidade de serem selecionados
várias vezes. E, como consequência, a seleção de indivíduos
pode conter várias cópias de um mesmo indivíduo, enquanto
outros podem desaparecer.

8.1.2 Criação de uma nova população


Com a avaliação de cada indivíduo, o próximo passo é execu-
tado: a criação da próxima geração. Essa nova geração será
uma evolução da anterior e, para que isso ocorra, os indivídu-
os mais aptos terão maior probabilidade de serem seleciona-
dos para dar origem à nova geração.

8.1.3 Operadores Genéticos


Após a avaliação, operadores genéticos são utilizados para a
criação da nossa geração, tais como, crossover e mutação.
Esses operadores são utilizados para assegurar que a nova
geração seja totalmente nova, porém com características de
seus pais, ou seja, a população se diversifica e mantém carac-
terísticas de adaptação adquiridas pelas gerações anteriores.
Para prevenir que os melhores indivíduos não desapareçam da
população pela manipulação dos operadores genéticos, eles
podem ser automaticamente colocados na próxima geração,
por meio da reprodução elitista.
108 Sistemas Inteligentes

Crossover

O crossover acontece pela aproximação dos cromossomos


dos dois indivíduos (pais), que trocam entre si partes de seus
cromossomos. Isso resulta em dois cromossomos diferentes
que, porém, ainda guardam influências dos pais.

Existem várias formas possíveis de se realizar o crossover.


A forma mais simples é o chamado “crossover” de um ponto
(One-Point), onde, primeiro um local de cruzamento é escolhido
com probabilidade uniforme sobre o comprimento do cromos-
somo, sendo, então, os “strings” correspondentes permutados.
A segunda forma é o crossover de dois pontos (Two-Point). A
Figura 8.1 apresenta um exemplo de cruzamento de um ponto.

Figura 8.1: Exemplo de cruzamento um ponto.


Capítulo 8 Algoritmos Genéticos 109

Mutação

A mutação consiste em alterações na cadeia dos cromos-


somos, dando origem a uma nova cadeia, que armazenará
pouca ou nenhuma informação da cadeia mãe. Na realidade,
mutação é a denominação dada a vários mecanismos de al-
teração genética, os quais têm em comum o fato de fazerem
o novo cromossomo apresentar pouca informação dos pais.

Essa alteração ocorre de forma que cada gene em cada


cromossomo é um candidato à mutação, enquanto que a sele-
ção é determinada pela probabilidade de mutação. Essa pro-
babilidade é mantida, normalmente em um valor baixo, para
evitar a perda de um número grande de cromossomos bons.

Dentre os principais mecanismos de alteração genética,


que recebem a denominação global de mutação, destacam-
-se: troca simples, translocação, inversão, exclusão e adição.

Na exclusão, ocorre a retirada de um gene do cromos-


somo e na adição, ocorre a inserção de mais um gene na
cadeia. Geralmente, esses mecanismos não são utilizados em
algoritmos genéticos, pois alteram o comprimento da cadeia
do cromossomo.

A troca simples consiste em um erro de cópia, de um ou


mais genes da cadeia. Por exemplo, dado um genótipo, foi
codificado com bits; se um gene vale 1 (um), ele é trocado por
0 (zero) e vice-versa.
110 Sistemas Inteligentes

Figura 8.2: Exemplo de mutação.

Se a codificação é por valores (por exemplo, números re-


ais), um pequeno valor é adicionado ou subtraído dos genes
selecionados.

A inversão consiste na retirada e inserção de um pedaço


da cadeia, porém, na ordem inversa da que foi retirada. Ao
contrário da inversão, onde um pedaço do código é retirado e
colocado no mesmo local com ordem inversa, a translocação
retira uma parte do cromossomo e coloca em outra posição
do mesmo cromossomo. Esses três últimos mecanismos não
alteram o comprimento original do cromossomo.

8.2 Parâmetros necessários em um AG

Na utilização dos AGs, é necessário que alguns parâmetros


sejam definidos. São eles:

 Tamanho da População: o tamanho da população


afeta o desempenho global e a eficiência dos AGs. Com
uma população pequena, o desempenho pode cair,
pois, desse modo, a população fornece uma pequena
Capítulo 8 Algoritmos Genéticos 111

cobertura do espaço de busca do problema. Por outro


lado, uma grande população geralmente fornece uma
cobertura representativa do domínio do problema. Em
contrapartida, para trabalhar com grandes populações,
são necessários maiores recursos computacionais.

 Taxa de Cruzamento: quanto maior for a taxa de cru-


zamento, mais rapidamente novos indivíduos serão in-
troduzidos na população. Porém, se essa taxa for muito
alta, estruturas com boas aptidões poderão desaparecer
da população mais rapidamente. Com um valor baixo,
o algoritmo pode tornar-se muito lento.

 Taxa de Mutação: uma baixa taxa de mutação previne


que uma dada posição fique estagnada em um valor,
além de possibilitar que se chegue em qualquer ponto
do espaço de busca. Com uma taxa muito alta, a busca
se torna essencialmente aleatória.

 Intervalo de Geração: esse parâmetro controla a por-


centagem da população que será substituída durante a
próxima geração. Com um valor alto, a maior parte da
população será substituída, o que leva à perda de estru-
turas de alta aptidão. Com um valor baixo, o algoritmo
pode se tornar muito lento.

8.3 Exemplo de implementação de um AG

Esta seção apresenta o AG que descobre uma palavra secreta


digitada pelo usuário implementado em (Serrão et al., 2006).
112 Sistemas Inteligentes

O usuário digita uma palavra, e o AG busca em sua popula-


ção a frase mais parecida.

O primeiro passo da implementação foi definir o que seria


um cromossomo nesse domínio e qual seria o espaço de bus-
ca. Um indivíduo corresponde a uma palavra, representada
por um vetor onde cada posição armazena o código ASCII
correspondente à letra.

Considerando a tarefa de descobrir a palavra secreta, o


espaço de busca do AG é 27n, onde 27 representa o número
de letras (maiúsculas) do alfabeto + o espaço em branco; e n
é o tamanho do indivíduo (que é dinâmico sendo definido no
momento em que o usuário digitar a sua palavra secreta).

O segundo passo foi definir, ainda na modelagem do siste-


ma, alguns parâmetros principais do AG, tais como, a função
de aptidão e o crossover.

Função de Aptidão (fitness): Essa função serve para ava-


liar a aptidão de cada indivíduo em relação à palavra digitada
pelo usuário. Nesse exemplo, a função de aptidão é um cálcu-
lo realizado entre a palavra digitada e o indivíduo.

Taxa de Crossover: esse parâmetro corresponde à forma


que será realizado o cruzamento entre os pais. Nesse exem-
plo, o crossover é de um ponto e foi definido na modelagem
do sistema, não permitindo ao usuário modificar a forma do
crossover durante a execução do programa.
Capítulo 8 Algoritmos Genéticos 113

Outros parâmetros importantes, como a mutação, o inter-


valo da geração e o critério de parada, também precisam ser
definidos. Nesse sistema, esses parâmetros podem ser defini-
dos pelo próprio usuário, como mostra a Figura 8.3. Dessa
forma, o usuário pode alterar os parâmetros a cada execução
e fazer comparações entre os resultados obtidos.

Figura 8.3: Tela principal do AG.

Conforme pode-se ver na Figura 8.3, o usuário pode defi-


nir os seguintes parâmetros:

 Tamanho da População: nesse parâmetro, o usuário


define o tamanho da população, que representará seu
espaço de busca.

 Intervalo da geração: nesse parâmetro, o usuário defi-


ne quantos novos indivíduos de sua população deverão
ser gerados a cada novo ciclo. É importante lembrar que
esse número não pode ser ímpar, pois ele também cor-
responde ao número de pais que serão utilizados para a
geração dos novos indivíduos.
114 Sistemas Inteligentes

 Taxa de mutação: nesse parâmetro, é necessário de-


finir quantas posições do cromossomo serão trocadas
nos novos indivíduos gerados. Nesse exemplo, definiu-
-se que somente uma posição (escolhida de forma alea-
tória) será trocada em cada novo indivíduo.

 Máximo de repetições: esse parâmetro correspon-


de ao critério de parada, ou seja, se o AG não chegar
a uma solução aceitável, o algoritmo encerra quando
chegar no número máximo de ciclos definido.

A Figura 8.4 apresenta a tela resultante após a execução do


AG, onde a palavra digitada pelo usuário é “Paralelepípedo”.
Como é uma palavra grande, foi necessário definir uma popu-
lação grande também (5000 indivíduos). Para essa população,
definiu-se um intervalo de geração de 400, ou seja, a cada
nova geração, 400 indivíduos serão substituídos. O número
máximo de repetições foi definido como 600, porém, percebe-
-se que o AG encontrou a solução na repetição número 425.

Figura 8.4: Teste do AG com a palavra “Paralelepípedo”.


Capítulo 8 Algoritmos Genéticos 115

Com esse exemplo apresentado, pode-se chegar a algu-


mas conclusões, tais como:

 Se o tamanho da população for pequena, o desem-


penho do algoritmo pode cair, pois ela representa um
pequeno espaço de busca do problema; em contrapar-
tida, uma grande população consegue representar bem
o domínio do problema.

 Como o intervalo de geração controla o percentual da


população que será substituída a cada nova geração,
se ele for definido com um valor alto, a maior parte da
população será substituída, levando à perda de estrutu-
ras de alta aptidão. Em contrapartida, se esse valor for
muito baixo, o AG perde desempenho.

 Em relação à taxa de mutação, se essa for baixa, pre-


vine-se que uma determinada posição fique estagnada
em um valor, além de possibilitar que se chegue em
qualquer ponto do espaço de busca. Com uma taxa
muito alta, a busca se torna essencialmente aleatória.

Atividades
1) Sobre o Intervalo de Geração, pode-se afirmar que:

I – O método pôquer é o mais utilizado para definir o inter-


valo de geração.

II – Controla o percentual da população que será substitu-


ído durante a próxima geração.

III – Um valor baixo torna o algoritmo muito lento.


116 Sistemas Inteligentes

a) Somente a afirmativa I está correta.

b) Somente a afirmativa II está correta.

c) Somente a afirmativa III está correta.

d) Somente as afirmativas II e III estão corretas.

e) Nenhuma das alternativas anteriores.

2) Sobre Algoritmos Genéticos, pode-se afirmar que:

I – Um único conjunto completo de genes é chamado de


Fenótipo.

II – O indivíduo que evolui é uma possível solução para um


dado problema.

III – Dado um determinado problema, o conjunto de todas


as possíveis soluções é chamado de espaço de busca.

a) Somente a afirmativa I está correta.

b) Somente as afirmativas I e II estão corretas.

c) Somente as afirmativas II e III estão corretas.

d) Todas as afirmativas estão corretas.

e) Nenhuma das alternativas anteriores.

3) No método de seleção dos pais do tipo Roleta, os pais são


selecionados da seguinte forma:

a) Aleatória.

b) Os melhores têm menor probabilidade de serem esco-


lhidos.
Capítulo 8 Algoritmos Genéticos 117

c) Os melhores têm maior probabilidade de serem esco-


lhidos.

d) Os melhores são escolhidos.

e) Nenhuma das alternativas anteriores.

4) Sobre o tamanho da população, pode-se afirmar que:

I – Um valor baixo torna o algoritmo muito lento.

II – Quanto maior, mais possíveis soluções podem ser en-


contradas.

III – Quanto menor, menos possíveis soluções podem ser


encontradas.

a) Somente a afirmativa I está correta.

b) Somente a afirmativa II está correta.

c) Somente a afirmativa III está correta.

d) Somente as afirmativas II e III estão corretas.

e) Nenhuma das alternativas anteriores.

5) São considerados tipos de mutação que modificam a estru-


tura do indivíduo em um AG:
a) Inversão e Divisão.
b) Troca simples e Adição.
c) Exclusão e Multiplicação.
d) Adição e Exclusão.
e) Nenhuma das alternativas anteriores.
118 Sistemas Inteligentes

Recapitulando
Este capítulo apresentou os principais conceitos da IA Evolu-
cionária, especialmente os Algoritmos Genéticos. Estes são
utilizados, na maioria das vezes, para auxiliar no processo de
busca e otimização, especialmente em problemas que apre-
sentam muitas possíveis soluções.

Referências bibliográficas
SERRÃO, R., VIEGEL, A., ALVES, J, CANDIAGO, P. Aplicação
de algoritmos genéticos para descoberta da palavra secre-
ta. Relatório de pesquisa, 2006.

Gabarito
1) d

2) c

3) c

4) d

5) d
Fabiana Lorenzi1

Capítulo 9

Redes Neurais Artificiais 1

As redes neurais artificiais (RNAs), também chamadas de sis-


temas conexionistas, foram inspiradas em sistemas biológicos
em que um grande número de células nervosas funcionam in-
dividualmente de forma lenta e perfeita, porém coletivamente
são capazes de realizar tarefas que muitos computadores não
têm capacidade de fazer.

As RNAs são formadas por diversos processadores simples,


interconectados com vários elementos de memória, cujos pe-
sos das conexões são ajustados por experiência. Esse ajuste de
pesos caracteriza a capacidade de aprendizado de uma RNA.

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
120 Sistemas Inteligentes

A grande motivação que levou ao estudo das RNAs foi a


inspiração biológica. Percebeu-se a dificuldade dos sistemas
convencionais em resolver certas classes de problemas, como,
por exemplo, o reconhecimento de formas, reconhecimento de
objetos e classificações de padrões.

Entre as características mais importantes das RNAs, desta-


cam-se:

Treinamento: normalmente as redes são treinadas para re-


alizar uma determinada tarefa (e não programadas).

 Interligação: os neurônios são amplamente interligados


de forma que o estado de um neurônio afeta o poten-
cial, de um grande número de neurônios.

 Conexões: os pesos das conexões são adaptativos,


ajustam-se conforme a rede aprende.

 Funções: as unidades de processamento contêm funções


de ativação do tipo não linear.

A Figura 9.1 apresenta as principais semelhanças entre um


neurônio biológico e um neurônio artificial. A Figura 9.1 (a)
mostra um neurônio biológico, com seus dendritos (que cor-
respondem às entradas) e seus axônios (que correspondem às
saídas do neurônio artificial). A Figura 9.1 (b) está apresentan-
do um neurônio artificial, onde X são as entradas, W são os
pesos e Y representa a saída.
Capítulo 9 Redes Neurais Artificiais 121

Figura 9.1: (a) Neurônio biológico e (b) Neurônio artificial.

Analisando os dois neurônios apresentados na figura 9.1,


percebe-se que a maior diferença concentra-se nas sinapses,
pois, nos neurônios biológicos, não existe uma ligação física
(as trocas de informações são realizadas por meio de neu-
rotransmissores), enquanto que nos neurônios artificiais existe
uma ligação física, e o armazenamento das informações de-
pende dos pesos sinápticos. Assim como nos sistemas biológi-
cos não é possível determinar exatamente em quais neurônios
as informações estão armazenadas, elas encontram-se distri-
buídas ao longo da rede neural artificial.

Esse neurônio artificial simples, composto de três entradas,


denominadas x0, x1 e x2, em que x0 pode ser considerada
uma polarização de valor 1. Aos pesos sinápticos w0, w1 e
w2, inicialmente são atribuídos valores aleatórios entre -0.1
e 0.1. Esses valores normalmente são ajustados ao longo do
treinamento. O somatório Σ calculado a partir da soma das
entradas multiplicadas pelos pesos de cada uma irá ativar a
saída.
122 Sistemas Inteligentes

A saída denominada Y1 irá depender da função de ativação


f, que no exemplo é uma função bipolar. Essas funções são de-
terminadas no início de um projeto de redes neurais, e, na maio-
ria dos casos, são utilizadas funções sigmoidais. Em uma defini-
ção formal, descrita por (De Azevedo, 1997), o autor apresenta
o modelo geral de neurônio com base na Teoria de Sistemas e as
principais funções de transferência utilizadas em RNAs.

O neurônio artificial é composto por 3 entradas denomina-


das X0, X1 e X2.

Aos pesos sinápticos (W0, W1 e W2) inicialmente são atri-


buídos valores aleatórios entre -0,1 e 0,1 (esses valores são
ajustados ao longo do treinamento).

O somatório (∑) – calculado pela soma das entradas multi-


plicadas por seus respectivos pesos, serve para ativar a saída.

A saída (Y1) depende da função de ativação f, que no exem-


plo é uma função bipolar. Essas funções são determinadas no
início do projeto de uma RNA e, na maioria das vezes, são
utilizadas funções sigmodais.

O primeiro modelo de neurônio artificial foi apresentado


por McCulloch e Pitts (1943), e em 1959 foram apresentados
simultaneamente os Perceptrons por Rosemblatt e os Adalines
por Widrow e Hoff, tanto os Perceptrons quanto os Adalines
possuíam regras de aprendizado. Existe prova da convergência
do algoritmo de aprendizado associado aos perceptrons. No
Adaline é possível calcular pesos pelo método dos mínimos
quadrados, apesar de ter sido apresentado com aprendizado
iterativo.
Capítulo 9 Redes Neurais Artificiais 123

9.1 Topologias das RNAs

As RNAs podem ser subdivididas em redes diretas e redes re-


correntes. As redes diretas são aquelas nas quais o fluxo de
informações segue um uma única direção, enquanto que as
redes recorrentes (ou de realimentação) podem se realimentar
de uma saída, demonstrando troca de estados.

Figura 9.2: Classificação para RNAs.

A Figura 9.2 apresenta um diagrama que classifica as re-


des neurais conforme a sua topologia: realimentação (recor-
rentes) ou diretas. No caso de redes com realimentação (ou
feedback), podem ainda ser subdivididas em construídas (por
exemplo, redes do tipo BAM – Bidirectional Associative Me-
mories) ou treinadas (Redes do tipo Hopfield ou do tipo ART –
Associative Resonance Theory – por exemplo). As redes diretas
podem ser subdivididas em redes lineares e não lineares.
124 Sistemas Inteligentes

As redes não lineares podem ser subdivididas conforme o


algoritmo de aprendizado: supervisionado e não supervisiona-
do. A próxima subseção explica os algoritmos de treinamento
com mais detalhes.

9.2 Algoritmos de Treinamento

Os algoritmos de treinamento ou regra de aprendizado ditam


como são feitos os ajustes dos pesos sinápticos para que a
rede adquira experiência ao longo do treinamento.

9.2.1 Supervisionado
As regras ou algoritmos de aprendizado do tipo supervisionado
atuam com o auxilio de um professor. A rede precisa conhecer
o conjunto de entrada e o conjunto de saída. A saída obtida
pela rede é calculada conforme a saída desejada, calcula-se
um erro que é utilizado para corrigir os pesos sinápticos.

Uma das regras do tipo supervisionada mais utilizada é


a regra de Hebb. Donald Hebb teorizou que a memória as-
sociativa biológica concentra-se nas conexões sinápticas das
células nervosas, e que o processo de aprendizado e armaze-
namento de memória associativa biológica centra-se nas co-
nexões sinápticas das células nervosas, e que o processo de
aprendizado e armazenamento de memória envolve trocas nas
forças com as quais os sinais nervosos são transmitidos a partir
das sinapses individuais.
Capítulo 9 Redes Neurais Artificiais 125

9.2.2 Não Supervisionado


Regras de aprendizado do tipo não supervisionado atuam de
forma competitiva ou autossupervisionada. Para esse tipo de
regras, somente o conjunto de entrada é fornecido às redes.

Os neurônios da rede competem entre si fornecendo uma


classificação como saída. Existe, além da competição, uma
coordenação entre os neurônios da rede. Entre os algoritmos
mal conhecidos, destaca-se o vencedor leva tudo (the winner
takes it all) e a inibição lateral.

9.2.3 Por Reforço


O aprendizado por reforço (reinforcement learning) é um mé-
todo por tentativa e erro. Existe um índice de desempenho cha-
mado de sinal de reforço que é utilizado para otimização.

9.3 Modelos de Redes Neurais

9.3.1 Perceptron/Adaline
Os valores de entrada e níveis de ativação são -1 ou +1. Os
pesos têm valores reais, e o nível de ativação dele é dado pela
soma dos valores ponderados das entradas (∑WiXi).

Esses modelos usam uma função linear simples, onde uma


ativação acima de um linear resulta em um valor de saída 1,
caso contrário esse valor será -1. Eles são capazes de resolver
problemas linearmente separáveis, tais como os operadores
lógicos Ou e E. A Figura 9.3 apresenta o exemplo do operador
126 Sistemas Inteligentes

lógico Ou. Ele é considerado um problema “linearmente sepa-


rável”, pois é possível traçar uma reta entre os dois resultados
(0 e 1).

Figura 9.3: Exemplo do operador lógico Ou.

Dado valores de entrada Xi, pesos Wi e um linear t, a rede


calcula o seu valor de saída como:

1 se

-1 se

Seja C uma constante cujo tamanho determina a taxa de


aprendizagem e D o valor de saída desejado, o ajuste para
o peso no i-ésimo componente do vetor de entrada é dado
como:
Capítulo 9 Redes Neurais Artificiais 127

9.3.2 Backpropagation
O Backpropagation é um modelo multicamadas, derivado do
Perceptron, que possui aprendizado supervisionado e alimen-
tação à frente. Conforme apresentado na Figura 9.4, seus
neurônios são compostos por três ou mais camadas de percep-
trons/adalines interconectados, tendo a camada intermediária
(hidden). Essa camada não existe nos perceptrons/adalines.

Figura 9.4: Exemplo de Backpropagation.

Esse modelo foi criado para ser possível a representação


de funções complexas, como exemplo, o XOR (ou exclusivo),
considerado um problema não linearmente separado. A Figu-
ra 9.5 apresenta o exemplo do XOR e como os resultados (0
e 1) não podem ser separados a partir de uma reta (como é
possível fazer no operador Ou).
128 Sistemas Inteligentes

Normalmente, as redes backpropagation utilizam a função


sigmoid como função de limiar. Nesse modelo, calcula-se a
contribuição de cada peso no erro da saída da rede, que é
transferido para as camadas intermediárias (Erro Médio Qua-
drado).

Figura 9.5: Exemplo do XOR.

9.3.3 Mapas Auto-organizáveis


Os mapas auto-organizáveis, do inglês Self-Organized Maps
(SOM), são conhecidos também como mapas de Kohonen,
pois foram desenvolvidos por Teuvo Kohonen.

Esse modelo apresenta topologia bidimensional, camada


competitiva e aprendizado não supervisionado. Existe uma
camada única de neurônios, dividida em linhas e colunas,
conforme pode ser visto na Figura 9.6. Não existe um reco-
nhecimento de padrão, mas sim uma classificação de padrão,
formando classes (também chamadas de clusters).
Capítulo 9 Redes Neurais Artificiais 129

Figura 9.6: Topologia Mapas Auto-organizáveis.

No momento em que um padrão é inserido na rede, esta o


coloca na classe onde ele melhor se enquadra, conforme suas
características.

Esse modelo varia conforme os padrões de entrada defini-


das, pois ele simplesmente faz a distribuição desses padrões
na rede. Quando um padrão é inserido na rede, calcula-se
a distância de cada neurônio de saída e depois se verifica o
neurônio que alcançou o maior valor, chamado de neurônio
vencedor (the winner takes it all).

Os pesos da rede são ajustados após um determinado nú-


mero de iterações, podendo então classificar corretamente os
padrões a serem reconhecidos. Quando um padrão é inserido,
as unidades de saída competem entre si para serem ativadas.
O resultado é apenas uma unidade de saída ativada, indican-
do que ele tem a menor distância em relação à entrada.
130 Sistemas Inteligentes

Os mapas auto-organizáveis possuem aprendizado não


supervisionado, baseado na aprendizagem competitiva, pois
o objetivo é descobrir padrões ou características nos dados
de entrada sem um professor ou crítico, agrupando dados em
classes.

O algoritmo de treinamento dos mapas auto-organizáveis


segue os seguintes passos:

1) Inicializa a rede com valores baixos escolhidos aleatoria-


mente.

2) Insere o padrão de entrada.

3) Calcula a distância de saída.

4) Seleciona a menor distância.

Atualiza os pesos do neurônio vencedor e de seus vizinhos,


definido pelo raio de vizinhança.

Wi(t+1)=Wi(t)+n(t)*(X(t)-Wi(t)) se i ∈ vizinhança

Wi(t) se fora da vizinhança

Onde: n(t) é o coeficiente de aprendizado no tempo t, que


pode variar da seguinte forma: n(t) =09*(1.t/1000).

Repetir a partir do passo 2.

Recapitulando
Este capítulo apresentou os principais conceitos de Redes Neu-
rais, utilizadas na solução de problemas onde não temos co-
Capítulo 9 Redes Neurais Artificiais 131

nhecimento para resolver o problema, e a rede então é treina-


da para reconhecer.

Atividades
1) Considere as afirmativas a seguir:

I – A função booleana OU exclusivo (XOR) pode ser im-


plementada usando uma rede perceptron de camada
única.

II – Os Mapas de Kohonen, também chamados de Mapas


Auto-organizáveis, possuem aprendizado supervisiona-
do.

III – Retropropagação (backpropagation) é um algoritmo de


aprendizagem supervisionada.

Assinale a alternativa correta.

a) Somente as afirmativas I e II são corretas.

b) Somente as afirmativas II e III são corretas.

c) Somente a afirmativa II está correta.

d) Somente a afirmativa III está correta.

e) Nenhuma das alternativas anteriores.

2) Quais são os tipos de aprendizados que podem ser aplica-


dos no algoritmo de treinamento de uma rede neural arti-
ficial?

a) Não Supervisionado e Por regras.


132 Sistemas Inteligentes

b) Supervisionado e Por regras.

c) Supervisionado, Não Supervisionado e Por Reforço.

d) Por pesos.

e) Nenhuma das alternativas anteriores.

3) Que modelo neural é utilizado para classificação que aplica


o método the winner takes it all?

a) Adaline.

b) Mapas de Kohonen.

c) Backpropagation.

d) Redes de Hopfield.

e) Nenhuma das alternativas anteriores.

4) Os algoritmos de backpropagation são:

a) Redes neurais artificiais com realimentação.

b) Redes neurais artificiais baseadas em casos.

c) Redes neurais artificiais que possuem camadas ocultas.

d) Redes neurais de alimentação direta com uma única ca-


mada.

e) Nenhuma das alternativas anteriores.

5) Os modelos Perceptrons são:

a) Redes neurais artificiais com realimentação.


Capítulo 9 Redes Neurais Artificiais 133

b) Redes neurais artificiais baseadas em casos.

c) Redes neurais artificiais que possuem camadas ocultas.

d) Redes neurais de alimentação direta com uma única ca-


mada.

e) Nenhuma das alternativas anteriores.

Gabarito
1) d

2) c

3) b

4) c

5) d
Fabiana Lorenzi1

Capítulo 10

Exemplos de
Implementações de
Sistemas 1

Apresentação

Neste capítulo, são apresentados alguns exemplos de siste-


mas implementados utilizando algumas das técnicas vistas ao
longo do livro. Alguns foram implementados como trabalho

1 Prof. Dra. Fabiana Lorenzi, professora dos cursos da área de Tecnologia e Infor-
mação da ULBRA Canoas.
Capítulo 10 Exemplos de Implementações de Sistemas 135

de conclusão de curso e outros como trabalhos práticos na


disciplina de Inteligência Artificial.

10.1 Sistemas baseados em regras

A Figura 10.1 apresenta o sistema baseado em regras desen-


volvido para análise de possíveis problemas que podem acon-
tecer em uma empresa. O objetivo é evitar que o problema
aconteça, apresentando no final uma lista de ações que de-
vem ser tomadas para tal.
136 Sistemas Inteligentes

Figura 10.1: Exemplo de sistema baseado em regras.

A Figura 10.2 apresenta o sistema baseado em regras


desenvolvido para realização do Inventário de Depressão de
Beck, teste realizado por profissionais da área da psicologia.
Nesse exemplo, o usuário responde a um conjunto de ques-
tões, e no final o sistema apresenta o nível de depressão, con-
siderando as respostas inseridas.
Capítulo 10 Exemplos de Implementações de Sistemas 137

Figura 10.2: Exemplo de sistema baseado em regras – depressão de Beck.

10.2 Sistemas baseados em casos

A Figura 10.3 (Carrer, 2010) apresenta o sistema de esti-


mativa de desenvolvimento de softwares baseado em casos. O
sistema possibilita minimizar o equívoco do tempo estimado
atualmente na alocação de desenvolvedores para realização
de tarefas e também auxilia para que o prazo de entrega das
atividades seja respeitado.
138 Sistemas Inteligentes

Figura 10.3: Exemplo de sistema baseado em caso.

A Tabela 10.1 apresenta os atributos que compõe um caso


no sistema. Podemos ver que alguns atributos representam a
descrição do problema e o atributo tempo representa a solu-
ção do problema.

Tabela 10.1: Atributos de representação do caso


Atributos do Problema Tipo de Dado Valores Peso
Número de Regras do Caso de Uso Inteiro [0…N] 3
Número de Entradas Inteiro [0…N] 2
Número de Saídas Inteiro [0…N] 2
Quantidade de Tabelas Envolvidas Inteiro [0…N] 4
Número de Códigos-Fonte alterados Inteiro [0…N] 4
Quantidade de Aplicações Inteiro [0…N] 3
Atributo de Solução Tipo de Dado Valores
Tempo Inteiro [0…N] -
Capítulo 10 Exemplos de Implementações de Sistemas 139

10.3 Sistemas de recomendação

A Figura 10.4 apresenta o sistema de recomendação para


grupos (Brum, 2010), desenvolvido com o objetivo de ser um
sistema configurável, sendo possível utilizá-lo para chegar à
solução de diferentes tipos de problemas de recomendação
considerando um grupo de pessoas.

Figura 10.4: Tela de recomendação para o usuário.

O algoritmo desenvolvido nesse sistema auxilia o grupo


na busca de um consenso com relação à escolha de um de-
terminado item, ou seja, de uma recomendação que satisfaça
a maioria dos usuários, considerando que as pessoas de um
grupo possuem preferências diferentes.

10.4 Agentes

Esta seção apresenta exemplos de implementação de agentes


reativos.

Conforme visto no Capítulo 6, os agentes reativos recebem


dados a partir de seus atuadores, processam esses dados e
140 Sistemas Inteligentes

reagem conforme sua programação. A Figura 10.5 apresenta


um jogo de futebol implementado.

Figura 10.5: Simfut – jogo de futebol composto por agentes reativos.

A Figura 10.6 apresenta um exemplo de um jogo formi-


gueiro. Nesse jogo, as formigas são agentes reativos que de-
vem andar pelo ambiente buscando por doces. Quando elas
encontram o doce, elas carregam de volta para o formigueiro.
No ambiente, existe alguns lugares com água, que podem ma-
tar as formigas.
Capítulo 10 Exemplos de Implementações de Sistemas 141

Figura 10.6: Implementação de um formigueiro com agentes reativos.

Referências bibliográficas
Brum, Carlos. “Sistema de Recomendação Configurável para
Grupos.” Trabalho de Conclusão de Curso. (Graduação
em Ciência da Computação) – Universidade Luterana do
Brasil, 2009.
142 Sistemas Inteligentes

Carrer, Helene. “SISTEMA DE ESTIMATIVA DE DESENVOL-


VIMENTO DE SOFTWARES BASEADO EM CASOS.” Tra-
balho de conclusão de curso, Universidade Luterana do
Braisl, 2010.

Fraga, Lianderson, Pineda Jr, José e Machado, Eduardo. “Sim-


fut: um agente reativo.” Relatório de trabalho prático rea-
lizado na disciplina de Inteligência Artificial, Universidade
Luterana do Braisl, 2008.

Você também pode gostar