BIOANT: Simulação Computacional Conexionista Biologicamente

Transcrição

BIOANT: Simulação Computacional Conexionista Biologicamente
&(1752'(&,Ç1&,$6(;$7$6$0%,(17$,6
('(7(&12/2*,$6
352*5$0$'(3Ï6*5$'8$d­2675,&726(168
0$59,12/,9(56&+1(,'(5
%,2$176,08/$d­2&20387$&,21$/&21(;,21,67$
%,2/2*,&$0(17(3/$86Ë9(/'(80$0%,(17(&20
)250,*$6
&$03,1$663
3217,)Ë&,$81,9(56,'$'(&$7Ï/,&$'(&$03,1$6
*5­2&+$1&(/(5
Dom Gilberto Pereira Lopes
0$*1Ë),&25(,725
Prof. Pe. José Benedito de Almeida David
9,&(5(,725
Prof. Pe. Wilson Denadai
35Ï5(,725$'(3(648,6$(3Ï6*5$'8$d­2
Profa. Dra. Vera Sílvia Marão Beraquet
',5(725'2&(1752'(&,Ç1&,$6(;$7$6$0%,(17$,6('(
7(&12/2*,$6
Prof. Marco Antonio Carnio
&225'(1$'25'2&8562'(0(675$'2(06,67(0$6'(&20387$d­2
Prof. Dr. João Luís Garcia Rosa
0$59,12/,9(56&+1(,'(5
%,2$176,08/$d­2&20387$&,21$/&21(;,21,67$
%,2/2*,&$0(17(3/$86Ë9(/'(80$0%,(17(&20
)250,*$6
Dissertação
apresentada
ao
Curso
de
Mestrado em Sistemas de Computação do
Centro de Ciências Exatas, Ambientais e de
Tecnologias da Pontifícia Universidade
Católica de Campinas, como requisito parcial
à obtenção do título de Mestre em Sistemas
de Computação.
Área de concentração: Sistemas de
Computação
Orientador: Prof. Dr. João Luís Garcia Rosa
&$03,1$663
Ficha Catalográfica elaborada pela PUC-Campinas-SBI-Processos Técnicos.
t003.3
S359b
Schneider, Marvin Oliver
BIOANT: simulação computacional conexionista biologicamente
plausível de um ambiente com formigas / Marvin Oliver Schneider.
Campinas: PUC-Campinas, 2003
138 p.
Orientador: João Luís Garcia Rosa
Dissertação (mestrado) – Pontifícia Universidade Católica de
Campinas, Centro de Ciências Exatas, Ambientais e de Tecnologia.
Inclui bibliografia.
1. Métodos de simulação. 2. Simulação (Computadores) 3. Redes
neurais (Computação) 4. Robótica. 5. Inteligência artificial. 6.
Agentes inteligentes. 7. Bionica. I. Rosa, João Luís Garcia. II.
Pontifícia Universidade Católica de Campinas. Centro de Ciências
Exatas, Ambientais e de Tecnologia. III. Título.
20.ed.CDD – t003.3
0$59,12/,9(56&+1(,'(5
%,2$176,08/$d­2&20387$&,21$/&21(;,21,67$
%,2/2*,&$0(17(3/$86Ë9(/'(80$0%,(17(&20
)250,*$6
Dissertação apresentada ao Curso de
Mestrado em Sistemas de Computação do
Centro de Ciências Exatas, Ambientais e de
Tecnologias da Pontifícia Universidade
Católica de Campinas, como requisito parcial
à obtenção do título de Mestre em Sistemas
de Computação.
Área de concentração: Sistemas de
Computação
Orientador: Prof. Dr. João Luís Garcia Rosa
Dissertação defendida e aprovada em 17 de dezembro de 2003 pela Comissão
Examinadora constituída dos seguintes professores:
__________________________________________________
Prof. Dr. João Luís Garcia Rosa
Orientador da Dissertação e Presidente da Comissão Examinadora
Pontifícia Universidade Católica de Campinas.
__________________________________________________
Prof. Dr. Gilberto Shigueo Nakamiti
Universidade Católica de Santos.
__________________________________________________
Prof. Dr. Ricardo Luís de Freitas
Pontifícia Universidade Católica de Campinas.
A minha esposa Alessandr a. $*5$'(&,0(1726
Ao Prof. Dr. João Luís Garcia Rosa, pela excelente parceria e ótima cooperação
nessa e em outras obras importantes da minha vida.
À minha família – Alessandra, Patrick e Katharina – como também à minha sogra D.
Lúcia, pela compreensão, paciência e ajuda constante.
Aos meus pais – Prof. DDr. Hans Joachim Schneider e Hildegard Schneider – pela
motivação, orientação e suporte na escolha da carreira acadêmica.
Ao Prof. Dr. Ricardo Luís de Freitas e Prof. Dr. Gilberto Shigueo Nakamiti, pelas
críticas construtivas no exame de Qualificação e na Defesa da Dissertação.
Aos demais professores do Mestrado em Sistemas de Computação, pelas boas
dicas nos seminários.
Aos meus colegas na gedas do Brasil, em especial os Srs. Thomas Bretschneider e
Sérgio Ganança, pela viabilização das presenças e o apoio psicológico.
Ao amigo Sr. Eurico Lacerda Júnior, pelos testes do sistema e pelo bom humor.
(3Ë*5$)(
“As f or migas são muit o diligent es, seus negócios muit o complicados, e nesse
pequeno t r echo de deser t o elas encenam um dr ama r ico e per pét uo, alheias a
t odos os out r os dr amas que me acompanhar am dur ant e o r est o do ano. Mais uma
vez, descubr o minha ir r elevância diant e das f or migas.”
Deborah Gordon, )RUPLJDVHP$omR (2002)
SCHNEIDER, Marvin Oliver %,2$17 VLPXODomR FRPSXWDFLRQDO FRQH[LRQLVWD
ELRORJLFDPHQWH SODXVtYHO GH XP DPELHQWH FRP IRUPLJDV 2003. 138f..
Dissertação (Mestrado em Sistemas de Computação) – Pontifícia Universidade
Católica de Campinas, 2003.
5(6802
O sistema BIOANT, proposto neste trabalho, é um sistema de vida artificial que
implementa um ambiente com formigas. Cada formiga se movimenta dentro do
mundo virtual baseando-se em uma rede neural biologicamente plausível, que utiliza
o algoritmo *HQH5HF para o aprendizado supervisionado.
Com a finalidade de conseguir obter uma configuração base inicial, criou-se um
algoritmo simbólico, que é composto por um conjunto de regras.
O ambiente em si é constituído de ninho, açúcar, água, elevações de terra, paredes
e predadores, onde a formiga pode se movimentar obtendo dados através do olfato,
visão, audição e tato e agindo de acordo com a controladora neural.
O sistema pretende ser uma contribuição às pesquisas de vida artificial, redes
neurais biologicamente plausíveis, agentes inteligentes e robótica.
BIOANT mostrou-se apto em implementar aspectos comportamentais típicos de
formigas em uma simulação computacional.
3DODYUDVFKDYH vida artificial, redes neurais artificiais, agentes inteligentes,
inteligência artificial.
SCHNEIDER, Marvin Oliver. %,2$17 %LRORJLFDOO\ SODXVLEOH FRQQHFWLRQLVW
FRPSXWDWLRQDO VLPXODWLRQ RI DQ HQYLURQPHQW ZLWK DQWV 2003. 138 p.. Thesis
(Master Degree in Computational Systems) – Pontifícia Universidade Católica de
Campinas, 2003.
$%675$&7
The system BIOANT, presented here, is an artificial life system that implements an
environment with ants. Each ant moves inside the virtual world on the basis of a
biologically plausible artificial neural network, which employs the algorithm *HQH5HF
for supervised learning.
In order to obtain an initial configuration, a symbolic algorithm (based on a set of
rules) was created. The environment itself is three-dimensional and consists of the
ant-hill, sugar, water, earth elevations, walls, and predators, which the ants explore
by the means of the senses of smell, vision, touch, and hearing, following the
commands of the neural controller.
The system is intended to be a contribution to the research of artificial life, biologically
plausible neural networks, intelligent agents, and robotics.
BIOANT has proven to be an implementation of typical behavioral aspects of ants in
a computational simulation.
.H\ZRUGV artificial life, artificial neural networks, intelligent agents, artificial
intelligence.
SCHNEIDER, Marvin Oliver. %,2$17 %LRORJLVFK SODXVLEOH FRQQHFWLRQLVWLVFKH
&RPSXWHUVLPXODWLRQHLQHU8PJHEXQJPLW$PHLVHQ 2003. 138 s.. 7KHVLV (³0DVWHU
'HJUHHLQ&RPSXWDWLRQDO6\VWHPV´) – Pontifícia Universidade Católica de Campinas,
2003.
=86$00(1)$6681*
Das hier dargestellte System BIOANT ist ein System künstlichen Lebens, das eine
Umgebung mit Ameisen implementiert. Jede Ameise bewegt sich in der virtuellen
Welt auf der Basis eines biologisch plausiblen künstlichen neuronalen Netzwerkes,
das in Verbindung mit dem Algorithmus *HQH5HF (für überwachtes Lernen)
eingesetzt wird.
Um eine anfängliche Konfiguration zu erreichen, wurde ein symbolischer Algorithmus
(auf Regeln aufbauend) geschaffen. Die Umgebung als solche ist dreidimensional,
bestehend aus dem Ameisenhaufen, Zucker, Wasser, Erdaufhäufungen, Wänden
und Feinden, und wird von den Ameisen unter Benutzung des Geruchssinns, des
Sehvermögens, des Tastsinnes und des Gehörs erforscht, wobei die Befehle der
neuronalen Steuerung ausgeführt werden.
Mit dem System wird beabsichtigt, einen Beitrag zu den Forschungsgebieten des
künstlichen Lebens, der biolologisch plausiblen künstlichen neuronalen Netzwerke,
der intelligenten Agenten sowie der Robotik zu leisten.
Mit BIOANT ist es gelungen, eine Implementierung von typischen Verhaltensweisen
der Ameisen in einer Computersimulation durchzuführen.
6FKOVVHOEHJULIIH künstliches Leben, künstliche neuronale Netze, intelligente
Agenten, künstliche Intelligenz, Robotik.
680È5,2
,1752'8d­2
1.1 CONSIDERAÇÕES GERAIS .............................................................................................................................13
1.2 O PROJETO BIOANT ...................................................................................................................................14
&21&(,726%È6,&26 2.1 AGENTES INTELIGENTES ..............................................................................................................................16
'HILQLomR &DUDFWHUtVWLFDV $UTXLWHWXUD &RQILJXUDomR
3URJUDPDomR
&RPXQLFDomR
9DQWDJHQV
3URMHWRV &RQWH[WXDOL]DomRGR%,2$17 2.2 VIDA ARTIFICIAL .........................................................................................................................................28
&RQVLGHUDo}HV*HUDLV 'HILQLomRGH9LGD
,QtFLRGDV3HVTXLVDV $9LGD$UWLILFLDO0RGHUQD
*rQHVH 6HOHomRH(OLPLQDomR 'LQkPLFDGR$PELHQWH 0pWRGRVGH,PSOHPHQWDomR
3URMHWRV )XWXURV'HVDILRV &RQWH[WXDOL]DomRGR%,2$17 2.3 REDES NEURAIS ARTIFICIAIS BIOLOGICAMENTE PLAUSÍVEIS ......................................................................42
3ULQFtSLRV $OJRULWPRVGH$SUHQGL]DGR ([HPSORVGH5HGHV%LRORJLFDPHQWH3ODXVtYHLV
&RQWH[WXDOL]DomRGR%,2$17 2.4 REDES NEURAIS ARTIFICIAIS E ROBÓTICA ...................................................................................................58
&RQVLGHUDo}HV*HUDLV 3HUFHSomRSRU6HQVRUHV $SOLFDo}HV&RPHUFLDLV -XVWLILFDWLYDGH8VRGH5HGHV1HXUDLV$UWLILFLDLV
8VRGD5HGH3HUFHSWURQ0XOWLFDPDGDV0/3 5REyWLFD(YROXWLYD 3HUFHSomR
&RQWH[WXDOL]DomR%,2$17 2.5 BIOLOGIA DE FORMIGAS ..............................................................................................................................68
&RQVLGHUDo}HV*HUDLV &RUSR
2UJDQL]DomRGH&RO{QLDV
)XQGDomRGH&RO{QLDV
5HSURGXomR $GPLQLVWUDomR $OLPHQWDomR
3HUFHSomR
7LSRV
3UHGDGRUHV ,PSRUWkQFLD &RQWH[WXDOL]DomRGR%,2$17 ,03/(0(17$d­2
3.1 CONSIDERAÇÕES GERAIS .............................................................................................................................79
3.2 DESCRIÇÃO ..................................................................................................................................................79
$PELHQWH
3UHGDGRUHV $WXDOL]DomRGR$PELHQWH
&DXVDVGH0RUWH
6HQVRUHV
$WXDGRUHVGH%DL[R1tYHO ,QWHUSUHWDGRU9LVXDO%DL[R1tYHO $OJRULWPR6LPEyOLFR
,QWHUSUHWDGRUHV$OWR1tYHO
$WXDGRUHV$OWR1tYHO $OJRULWPR6LPEyOLFR&RQH[LRQLVWD 3.3 APLICAÇÃO DOS CONCEITOS......................................................................................................................105
&DUDFWHUtVWLFDVH$UTXLWHWXUDGR$JHQWH%,2$17 3URMHWRGH9LGD$UWLILFLDO -XVWLILFDWLYDGR8VRGH5HGHV1HXUDLV 3.4 RESULTADOS .............................................................................................................................................114
$SUHQGL]DGR &RPSDUDomRGDV$ERUGDJHQV 2UJDQL]DomR
&RPXQLFDomRSRU&KHLURV
4XHVW}HV3HUWLQHQWHV &21&/86­2
4.1 CONSIDERAÇÕES GERAIS ...........................................................................................................................129
4.2 EVOLUÇÃO ARTIFICIAL ..............................................................................................................................129
4.3 APLICAÇÕES COMERCIAIS..........................................................................................................................130
4.4 TRABALHOS FUTUROS ...............................................................................................................................131
5()(5Ç1&,$6
12
“(...) Eu não sabia, eu não t inha per cebido, eu sempr e achei que er a vivo.
Par af uso e f luído em lugar de ar t iculação. At é achava que aqui bat ia um cor ação.
Nada é or gânico, é t udo pr ogr amado. E eu achando que t inha me liber t ado. (...)”
Pitty, $GPLUiYHO&KLS1RYR (2003)
13
,1752'8d­2
&RQVLGHUDo}HV*HUDLV
Uma visão muito antiga da humanidade está começando a se tornar realidade
nos dias atuais: o conceito de máquinas inteligentes. Há muito tempo tratava-se de
um produto de pura ficção científica documentado em várias obras de literatura,
cinema e TV. Dentre os inúmeros exemplos estão o poderoso computador +$/ em
± 8PD 2GLVVpLD QR (VSDoR (Stanley Kubrick, 1968), o robô andróide
paranóico 0DUYLQ no +LWFKKLNHU¶V *XLGH WR WKH *DOD[\ (Douglas Adams, 1979), os
robôs &32 e 5' em 6WDU:DUV (George Lucas, 1977), o cérebro voador de
3URIHVVRU 6LPRQ :ULJKW no seriado americano/japonês &DSWDLQ )XWXUH (Edmond
Hamilton, 1978) até os “mais humanos que humanos” 5HSOLFDQWHV em %ODGH5XQQHU
(Ridley Scott, 1982), a poderosa máquina de destruição 5RER&RS no filme de
mesmo nome (Paul Verhoeven, 1987) e o robô 7HUPLQDWRU na trilogia ([WHUPLQDGRU
GR)XWXUR(James Cameron, 1984, 1991 e 2003) (figura 1).
)LJXUD2URE{7HUPLQDWRU%877$==2
Todos estes cenários mostram a preocupação com o tema, principalmente o
medo humano de ser dominado por máquinas, como também uma certa confiança
14
de que a ciência poderá chegar a este ponto com facilidade.
Há um grande contraste com os projetos reais: mesmo que já estejam sendo
desenvolvidos projetos do Instituto de Tecnologia de Massachusetts com robôs que
até têm traços humanos (.LVPHW e &RJ(figura 2)), ainda se está longe da criação de
um ser humano artificial ou até mesmo de um ser completo.
)LJXUD2VURE{V.LVPHWHVTXHUGDH&RJGLUHLWDGR,QVWLWXWRGH7HFQRORJLD
GH0DVVDFKXVHWWV%5(=($/0(1=(/
23URMHWR%,2$17
O presente projeto visa trazer uma contribuição às linhas de pesquisa ligadas
ao desenvolvimento do ser humano artificial. São essas: agentes inteligentes, vida
artificial e redes neurais biologicamente plausíveis. O projeto BIOANT não tem a
pretensão de propor a simulação de um ser tão complexo como o homem, mas sim
contribuir com a evolução artificial simulando um inseto e ajudando a estabelecer
uma base para um projeto de robótica.
15
“Q uem quer const r uir t or r es alt as
deve f icar muit o t empo no f undament o.”
Anton Bruckner
16
&21&(,726%È6,&26
$JHQWHV,QWHOLJHQWHV
'HILQLomR
Agentes inteligentes são sistemas computacionais utilizados para a resolução
de tarefas. Eles são, de um modo geral, instâncias de objetos com um certo
propósito.
Agentes
inteligentes
usam
métodos
inteligentes
aproveitando-se
principalmente da modularidade e cooperação, que são duas vantagens desta
abordagem na resolução de problemas.
Os agentes inteligentes podem ser divididos em três grupos distintos conforme
sua complexidade:
•
Gophers
Neste nível mais simples de agentes, encontram-se programas que executam
tarefas de uma maneira direta baseando-se em regras simples, como, por exemplo,
um agente que lembra o usuário de uma reunião pré-agendada.
•
Agentes para execução de um determinado serviço
São agentes que executam tarefas mais complexas conforme o desejo do
usuário, por exemplo, o agendamento de uma reunião em uma hora conveniente
para todos os participantes ou a organização de uma viagem.
•
Agentes pró-ativos
Os agentes pró-ativos têm uma característica a mais, comparado aos modelos
anteriores: o usuário não precisa solicitar a execução de uma tarefa – o próprio
17
agente se encarrega de entender o ambiente e tomar as atitudes cabíveis
(JENNINGS, WOOLRIDGE, 1995).
&DUDFWHUtVWLFDV
Existem várias definições e conceitos sobre agentes inteligentes. Utilizando
uma definição mais ampla, pode-se dizer que agentes são entidades auto-definidas
para a resolução de problemas (JENNINGS, WOOLRIDGE, 1995).
Dentro deste conceito é possível observar as seguintes características
principais que os agentes devem possuir:
•
Autonomia
Pelo menos até certo ponto, os agentes inteligentes devem ter controle das
próprias ações e a possibilidade de tomar decisões sem a intervenção de usuários
ou outros agentes.
•
Habilidade social
Seguindo o conceito de que agentes devem ajudar o usuário em determinadas
tarefas, os agentes precisam ter habilidades sociais, ou seja, a possibilidade de
interagir com o usuário de forma que este ou outros agentes possam entender via
linguagens e códigos específicos.
•
Percepção
O agente precisa ter um modelo interno do mundo externo, a habilidade de
interpretar os acontecimentos que dizem respeito a ele para poder fazer os ajustes
necessários em suas decisões.
•
Pró-atividade
Como já mencionado anteriormente, agentes inteligentes podem ser pró-
18
ativos e não apenas reagir ao ambiente, mas também influenciá-lo de uma maneira
ativa e racional (WOOLRIDGE, JENNINGS, 1995).
•
Comunicabilidade
Especialmente em ambientes mais complexos e com vários agentes atuando,
é imprescindível que o agente se comunique com outros agentes com a finalidade
de coordenar suas tarefas e – na melhor das hipóteses – conseguir uma relação
JDQKDJDQKD, isto é, uma relação de vantagem para ambas as partes
(WOOLRIDGE, JENNINGS, 1995; RUSSELL, NORVIG, 1995).
Além dessas características principais, podem ser desejáveis também:
•
Flexibilidade
É a habilidade do agente de se ajustar a novos ambientes e a novos
problemas com facilidade.
•
Mobilidade
Eventualmente um deslocamento físico do agente pode ser vantajoso para a
resolução otimizada de um problema.
•
Veracidade
Veracidade é o princípio pelo qual o agente não deve fornecer informações
errôneas de propósito.
•
Racionalidade
O agente deve sempre procurar obter seus objetivos e não executar ações
que podem potencialmente colocar em risco este princípio (JENNINGS,
WOOLRIDGE, 1995).
•
Agenda de Tarefas
19
Agentes Inteligentes devem ter uma representação interna do mundo exterior
e como parte de tal mundo uma agenda de tarefas contendo os objetivos para
simplificar as ações do agente (GARCIA, SICHMAN, 2002).
$UTXLWHWXUD
A maior parte dos agentes precisa conter os seguintes módulos para um bom
funcionamento:
•
Controlador
O controlador deve – como parte central do processamento interno do agente
– controlar as ações tomadas por ele, ativando outros módulos conforme
necessário.
•
Configurador
O comportamento do agente deve ser definido por meio de princípios que
precisam ser configurados através deste módulo que contém “a alma” do agente em
questão.
•
Interfaces
o Usuário
O agente geralmente precisa se comunicar com seu usuário que fornece
tarefas de uma maneira geral para que sejam executadas com sucesso. O usuário
pode ser a razão principal para a existência do agente.
o Outros Agentes
Em um ambiente com vários agentes, cada um deve ter uma maneira de se
comunicar com os outros.
20
o Ambiente
O agente precisa ter a possibilidade de interpretar por si só o ambiente no
qual ele se insere.
•
Mobilidade
Especialmente agentes móveis precisam garantir a sua própria sobrevivência
replicando-se de um ponto de rede para outro e voltando para uma eventual entrega
de resultados (GARCIA, SICHMAN, 2002; RUSSEL, NORVIG, 1995).
&RQILJXUDomR
Na hora de projetar um sistema é necessário definir as características do
agente a ser utilizado. Como há uma grande variedade de possibilidades de
implementações, o espectro de uso de agentes é extremamente amplo.
Em geral precisam ser definidas as seguintes características:
•
Cognição
O agente pode ser um Agente Cognitivo, que tem um modelo interno da
realidade e usa um mecanismo de decisão racional, ou pode ser – em um caso
mais simples – um Agente Reativo que reage apenas a impulsos externos.
•
Foco
Agentes podem ter como foco similaridades físicas com seres humanos ou
animais (principalmente em robôs) e/ou podem ter similaridades comportamentais
(simuladas, por exemplo, em sistemas de computação) (GARCIA, SICHMAN,
2002).
•
Interação
21
Em um ambiente simples, o agente age de forma isolada. Nos casos mais
comuns de uso de agentes, ele se comunica com outros agentes com a finalidade
de atingir seus objetivos.
•
Mobilidade no ambiente
Um agente pode ser usado apenas em uma máquina individual ou pode se
propagar por uma rede como, por exemplo, a Internet.
Para sistemas com vários agentes ainda se aplicam as seguintes
características:
•
Perspectiva
O sistema do agente pode ter como foco a simulação social, ou seja, a análise
do comportamento dos agentes ou a resolução social, isto é, a resolução de um
problema através de um conjunto de agentes.
•
Abertura
O sistema pode ser aberto, isto é, pode existir a possibilidade de mudanças
dinâmicas na configuração, ou pode ser fechado, não permitindo alterações em
tempo real.
•
Granularidade
A granularidade é o número de agentes que age sobre um certo ambiente. Ela
pode ser baixa significando que há apenas poucos agentes ou alta, com muitos
deles.
•
Homogeneidade
Um sistema com vários agentes pode conter um maior número de agentes
22
similares ou iguais, ou pode ter um maior número de agentes diferentes.
•
Interação
Agentes podem fazer uso de várias formas de coexistência:
o Competição
Dois agentes competem pelos mesmos recursos ou para a resolução da
mesma parte do problema, cada um impedindo a boa atuação do outro.
o Amensalismo
Um agente é prejudicado involuntariamente pela atuação de um outro agente.
o Parasitismo
Um agente faz uso das ações de outro melhorando a própria situação e
piorando a situação do agente hospedeiro.
o Predação
Um agente tem como objetivo a eliminação do outro.
o Comensalismo
A cooperação beneficia um agente e não ajuda, mas também não prejudica o
outro.
o Proto-cooperação
A cooperação dos agentes melhora a situação dos dois, porém, não há
necessidade de cooperação para a resolução do problema.
o Simbiose
A cooperação melhora a situação de dois agentes e ela é necessária para
obtenção dos objetivos para os dois (GARCIA, SICHMAN, 2002).
23
3URJUDPDomR
Agentes podem ser programados usando linguagens de programação de
propósito geral como 9LVXDO &, 9LVXDO %DVLF etc. como também utilizando
linguagens VFULSW como 64/ e 3HUO, facilitando a atuação na rede, ou através de
linguagens independentes de plataforma, como Java, melhorando o fator de
mobilidade do agente.
Uma outra possibilidade é o uso de uma plataforma de construção (como
),3$26, 0$56 e $*(172 ,QWHUSUHWHU).
Existem esforços para padronizar o desenvolvimento de agentes como no
projeto ),3$ ()RXQGDWLRQIRU,QWHOOLJHQW3K\VLFDO$JHQWV) (THE FOUNDATION, 2003;
GARCIA, SICHMAN, 2002).
&RPXQLFDomR
Os agentes fazem uso de linguagens específicas para se comunicar. Estas
linguagens geralmente são bastantes simples e objetivas, otimizando a relação de
tempo necessário e informação transmitida.
Um exemplo é a linguagem KQML (.QRZOHGJH 4XHU\ DQG 0DQLSXODWLRQ
/DQJXDJH) que faz uso de pares de palavra-chave & valor. A palavra-chave neste
caso determina o tipo da mensagem (consulta, resposta, definição, rede etc.) e o
valor define o assunto tratado (GARCIA, SICHMAN, 2002).
9DQWDJHQV
Existem várias aplicações comerciais e de investigação científica de agentes.
O interesse foi despertado por várias vantagens da tecnologia sobre os sistemas
tradicionais. Não apenas há a possibilidade de otimizar soluções já obtidas por
24
outros meios, mas também em viabilizar a resolução de problemas até então
insolúveis (JENNINGS, WOOLRIDGE, 1995).
Pode-se observar principalmente as seguintes vantagens:
•
Sistemas abertos
Como há a possibilidade de se ajustarem a ambientes desconhecidos, os
agentes são uma saída lógica em situações que não são conhecidas desde o início.
Neste caso o agente deve, em conjunto com eventuais outros agentes, desenvolver
uma maneira nova e satisfatória de tratar os problemas. Em situações com vários
agentes, cada um deve gerar seu ponto de vista com a finalidade de influenciar os
outros agentes e assim colaborar para a solução ótima. Estas características sociais
devem ser mais fortes em casos mais complexos como no caso clássico da
Internet.
•
Complexidade
Em sistemas complexos, uma abordagem baseada em agentes oferece uma
liberdade de solução muito maior, pois há a oportunidade de dividir as tarefas e
deixar cada agente trabalhar em um problema específico conforme sua própria
filosofia, não precisando seguir um padrão pré-estabelecido ou se inserir em uma
tendência homogênea de solução. Mais precisamente, podem até existir conflitos
entre os agentes que devem ser resolvidos pelo andamento normal do
processamento em que os agentes se comunicam e tentam convencer o outro do
próprio ponto de vista.
•
Sistemas distribuídos
Levando em consideração o ponto anterior, pode-se afirmar que os agentes
são um meio mais natural de implementar sistemas que precisam ser distribuídos –
25
principalmente quando a distribuição se refere a várias características dentre as
seguintes:
o Dados
o Controle
o Experiências
o Recursos
Uma possível vantagem do uso de agentes nestes casos também é o fato de
que não será necessária a troca de grandes quantidades de dados não
processados. Ao invés disso, os agentes conversam entre eles nos próprios
protocolos de agente de alto nível.
•
Necessidade de Características Sociais
Dependendo do sistema, faz-se necessário o uso das características sociais
de agentes, como em jogos de computador, onde o agente representa, por
exemplo, um jogador humano artificial, e em agentes de interface, onde a
mensagem em si se beneficia de uma certa conotação social e a simpatia resultante
do usuário.
•
Atualizações Freqüentes
Em ambientes críticos onde EXJV podem significar paradas de produção por
dias, semanas ou até meses, uma maneira mais simples de fazer ajustes é
imprescindível. Os agentes podem resolver de uma maneira muito satisfatória este
problema (JENNINGS, WOOLRIDGE, 1995).
3URMHWRV
Há uma grande variedade de agentes – apenas como exemplos podem ser
26
mencionados:
•
Agentes de Correio Eletrônico
Agentes podem ser usados para gerenciar o fluxo eventualmente alto de emails, filtrando e organizando o conteúdo ou até respondendo a e-mails, lendo os
textos em voz alta (como no projeto 7DONLQJ0DLOER[ (MINDBEAT, 2003)).
•
Agentes em Comércio Eletrônico
Como um campo que cresce a cada dia, o comércio eletrônico é uma das
aplicações mais comuns de agentes na Internet. O agente pode neste caso, por
exemplo, achar boas oportunidades de negócio para o usuário (projetos %DUJDLQ
)LQGHU (JELSOFT, 2003) e 3HUVRQDORJLF (MAES HW DO, 1999)), ou até mesmo
negociar para o usuário (projeto )LVKPDUNHW (RODRÍGUEZ-AGUILAR HWDO., 2003)).
•
Agentes
de
Agentes de Interface
Interface
devem
melhorar
a
interface
para
o
usuário
customizando-a conforme suas necessidades e gostos como também ajudando-o
na resolução de tarefas com o computador. Um bom exemplo são os agentes de
ajuda do sistema operacional Windows.
•
Agentes de Rede
Agentes de Rede analisam problemas em redes de computadores e ajudam
na resolução destes (WOOLRIDGE, JENNINGS, 1995; GARCIA, SICHMAN, 2002).
&RQWH[WXDOL]DomRGR%,2$17
As formigas do sistema BIOANT são pró-ativas, pois o usuário não precisa
solicitar as ações tomadas. Elas se baseiam em regras conhecidas ou em suas
redes neurais (dependendo do modo de operação). Cada formiga constrói um
27
modelo interno da situação externa através da percepção desta situação por meio
de sensores.
As formigas se enxergam e evitam atrapalhar uma a outra com relação à
locomoção no ambiente. Elas se comunicam através de cheiros assim
estabelecendo atalhos e zonas de alerta. Cada formiga tem flexibilidade para se
mover em diversos ambientes. Usando a rede neural, cada inseto estabelece uma
pequena agenda de tarefas.
Pode-se então dizer que o sistema BIOANT implementa um tipo de agente
inteligente. Maiores detalhes serão tratados no item 3.3.1.
28
9LGD$UWLILFLDO
&RQVLGHUDo}HV*HUDLV
A pesquisa em vida artificial tem seu foco na criação de realizações técnicas
de seres vivos, através da imitação de plantas, animais e processos naturais.
Pretende-se entender os conceitos básicos da vida estudando os fenômenos
naturais de uma maneira bastante aprofundada e demonstrando o resultado final
pela semelhança do projeto artificial criado e o original biológico (PACKARD,
BEDAU, 2000).
Existem atualmente os mais diversos projetos de vida artificial, desde o
simples “jogo da vida”, que simula vida e morte de células, até simulações
complexas de animais marinhos.
A principal diferença entre a pesquisa em vida artificial e em agentes
inteligentes é o fato de que projetos de vida artificial têm como foco a realidade
biológica e não necessitam ter uma utilidade prática, enquanto que os agentes
inteligentes não são necessariamente biologicamente plausíveis e freqüentemente
são criados para executar determinadas tarefas facilitando processos (PACKARD,
BEDAU, 2000).
'HILQLomRGH9LGD
Para entender melhor o conceito da Vida Artificial é necessário primeiro ter
uma concepção sobre o que seja vida, com a finalidade de poder relacionar Vida
Artificial com Vida Natural, pois o dois conceitos não são idênticos. Uma definição
curta e objetiva é complicada, principalmente porque ainda não se chegou a um
resultado realmente satisfatório na pesquisa. Porém, pode-se observar as seguintes
29
características da Vida Natural (VAARIO, 1993):
•
Vida é um padrão de espaço e tempo e não um conjunto de
objetos.
•
Reprodução não é característica de todos os organismos.
•
O plano de construção é salvo em DNA.
•
O metabolismo converte matéria e energia do ambiente em
energia e ações do organismo.
•
Organismos vivos podem perceber seu ambiente e interagir
com ele.
•
A vida oferece resistência a influências nocivas e tolerância a
falhas em geral.
•
A vida permite evolução como característica coletiva sobre
um intervalo longo de tempo.
Sistemas de Vida Artificial não precisam necessariamente atender a todas
estas características. As mais importantes são a percepção e a interação.
Reprodução e evolução podem ser implementadas, mas os sistemas atuais
geralmente não implementam estruturas de DNA por se encontrarem em níveis
muito baixos, e serem portanto, muito complexos. Tolerância a falhas costuma ser
um resultado da implementação e não necessariamente um pré-requisito. Desta
maneira, existem pontos em comum entre a Vida Natural e a Vida Artificial, porém,
a Vida Artificial não costuma representar uma cópia exata da situação na natureza,
mas sim, de um estudo de características específicas.
30
,QtFLRGDV3HVTXLVDV
Um dos primeiros projetos de vida artificial foi o pato mecânico de Jacques de
Vaucanson (1709-1782) feito de cobre, que podia beber, comer, emitir sons, nadar
na água e “digerir” comida (figura 3).
)LJXUD3DWRGH-DFTXHVGH9DXFDQVRQ6&+0,'73
Apesar do fato de que não houve nenhuma utilidade prática para este tipo de
projeto, a preocupação dos primeiros pesquisadores com a lógica da vida pode ser
vista como um dos princípios que justamente abriram caminho para a criação dos
primeiros computadores (VAARIO, 1993), pois se tratava do desenvolvimento de
um sistema artificial na época, realizado por meios mecânicos (SCHMIDT, P. 2003).
)LJXUD-RKQYRQ1HXPDQQ.81./(
31
Dois séculos depois, nos anos 1950, John von Neumann (figura 4), o criador
do conceito de programa armazenado que levou à arquitetura atual dos
computadores conhecida como máquina de Von Neumann, pesquisou sobre a
possibilidade de reprodução das máquinas. Com base nessa busca, ele
desenvolveu – juntamente com o colega Stanislaw Ulam – o primeiro autômato de
células, desta forma dando inicio à Vida Artificial em um nível mais baixo. Este
autômato era basicamente uma matriz de células coloridas. Cada cor representava
um estado específico da célula, que era atualizada de acordo com as células
vizinhas usando regras simples. Esta “máquina” era usada então para interpretar
instruções de montagem para a construção de outras máquinas, aproveitando-se da
sistemática de processamento provocada por certos padrões. Von Neumann
chamou sua invenção de “construtor universal” e concluiu que desta forma
conseguiu provar que uma máquina poderia reproduzir-se, já que o “construtor
universal” tinha a capacidade de construir qualquer máquina com as instruções
corretas e assim também se auto-construir (SIPPER, 1995).
$9LGD$UWLILFLDO0RGHUQD
O termo “Vida Artificial” foi criado em um ZRUNVKRSem Los Alamos, Califórnia
(EUA) em 1987. Entre os organizadores estava Christopher Langton (figura 5), um
pesquisador que pode ser considerado um dos fundadores da Vida Artificial como
ciência (FORBES, 2000; KLÜGL HWDO, 2001; PREM, 1995; SIPPER, 1995).
32
)LJXUD&KLVWRSKHU/DQJWRQ$&./(<
De acordo com Langton, Vida Artificial “é o estudo de sistemas feitos pelo
homem que exibem características de sistemas de vida natural. Complementa a
ciência biológica tradicional, que se preocupa com a análise de organismos,
tentando sintetizar comportamentos similares em ambientes computacionais.
Estendendo o fundamento empírico no qual a biologia se baseia, até além da vida
apenas em cadeias de carbono como evoluiu na terra, a Vida Artificial pode
contribuir para a biologia localizando a ‘vida-como-nós-conhecemos’ dentro do
universo da ‘vida-como-poderia-ser’.” (FORBES, 2000; KLÜGL, 2001; PREM, 1995;
SIPPER, 1995; VAARIO, 1993).
Sendo assim, de acordo com Langton, a Vida Artificial inclui a vida natural,
mas oferece ainda mais recursos que podem modelar situações hipotéticas sobre o
desenvolvimento da vida ou até a vida em outros planetas distantes.
A definição de Langton foi adotada por muitos pesquisadores, porém recebeu
críticas também, como por exemplo a de (PREM, 1995) que destaca o problema da
exata definição de vida e assim também de ‘vida-como-poderia-ser’, levando em
consideração que o ser humano não tem nenhum parâmetro com relação a outras
formas de vida, a não ser aquelas baseadas em carbono como ocorrem na Terra
(PREM, 1995).
33
*rQHVH
•
Morfogênese
)LJXUD0RUIRJrQHVH9$$5,2
A morfogênese (figura 6) define como um organismo é formado a partir de
moléculas, as quais formam células, que constroem tecidos, que criam o ser vivo. A
definição do nível de profundidade neste processo, ou seja, até que ponto a
implementação artificial é plausível, é um dos maiores problemas na programação
de um sistema de vida artificial (KLÜGL, 2001; VAARIO, 1993).
•
Ontogênese
)LJXUD2QWRJrQHVH9$$5,2
34
Ontogênese (figura 7) é o processo de aprendizado em experiências, que é
implementado através de uma rede neural no cérebro do organismo. Como muitos
animais – incluindo formigas – se orientam pelo menos até um certo ponto por
experiências, uma abordagem conexionista para a instância de controle deixa o
sistema mais biologicamente plausível (KLÜGL, 2001; VAARIO, 1993).
•
Filogênese
)LJXUD)LORJrQHVH9$$5,2
Filogênese (figura 8) é o desenvolvimento da espécie inteira: a evolução. Ela
determina por morte e sobrevivência qual estrutura genética será herdada,
definindo assim o caminho da população (VAARIO, 1993).
35
•
Cultura
)LJXUD&XOWXUD9$$5,2
A cultura (figura 9) é a transferência de padrões de língua e comportamento
de uma geração para a outra, preservando um padrão geral.
6HOHomRH(OLPLQDomR
Conforme o princípio do Darwinismo da sobrevivência do mais preparado, a
evolução seleciona os mais preparados de uma população para a criação de novas
gerações. Isto, porém, pressupõe que haja uma regra estabelecendo se um
indivíduo está ou não preparado, o que não ocorre na natureza.
A Vida Artificial geralmente adota o critério da eliminação dos que não são
preferidos. Assim, há criatividade no processo levando a resultados muito mais
interessante. Além disso, deve-se fazer o menor número de interferências possível
no processo (VAARIO, 1993; WALKER, OLIVER, 2003).
'LQkPLFDGR$PELHQWH
O ambiente, no qual os sistemas de Vida Artificial se inserem, tende a ser
36
dinâmico, isto é, os indivíduos são influenciados pelo ambiente e o ambiente é
modelado pelos indivíduos. Este princípio deve ser estritamente observado para se
poder implantar uma simulação de vida com meios computacionais (BROOKS,
1992).
Deve-se escolher elementos artificiais no sistema que produzam os mesmos
resultados ocorridos na natureza. Desta forma, em um sistema bem sucedido, serão
obtidos comportamentos similares à situação original (VAARIO, 1993, 1994).
0pWRGRVGH,PSOHPHQWDomR
A implementação de projetos de vida artificial é feita usando os mais diversos
meios e observando vantagens e desvantagens que cada método pode trazer.
•
:HWZDUH
A implementação em :HWZDUH é uma implementação de baixo nível utilizando
substâncias químicas reais com a finalidade da criação de novas moléculas
artificiais (como também ocorre na natureza). Ainda não se conseguiu implementar
um novo ser nesta base, pois existem sérias limitações tecnológicas e de
conhecimento (FORBES, 2000; VAARIO, 1993).
•
6RIWZDUH
Modelos implementados em software são simuladores de vida, que
geralmente
são
executados
em
computadores
pessoais.
Estes
modelos
representam a criação de uma realidade virtual por meios de programação, a qual o
ser vivo artificial deverá percorrer.
Ainda há as seguintes características:
o O sistema é composto de uma população com vários
37
módulos separados, criando uma abordagem ERWWRP
XS(de baixo para cima).
o Não há nenhuma instância central que controla todos
os módulos.
o Não há regras para ditar um comportamento geral.
o Conclui-se que qualquer comportamento em níveis
mais altos que do próprio indivíduo é resultado de
gênese (VAARIO, 1993; WALKER, OLIVER, 2003).
•
+DUGZDUH
A implementação em hardware também pode ser considerada, como a
construção de robôs, que tendem a simular comportamentos de seres vivos por
meio de pequenas máquinas físicas. O foco geralmente é mais comportamental do
que físico sendo que pode ser difícil reconhecer o animal simulado pela construção.
O maior problema destes projetos é a falta de flexibilidade de programação
comparando-os com os projetos em software. Porém, também há um maior grau de
realismo nos projetos em hardware por não necessitar de um mundo virtual
simulado (FORBES, 2000; VAARIO, 1993).
3URMHWRV
•
Autômatos de Célula
O primeiro autômato de células foi criado por John von Neumann (veja item
2.2.3) com a finalidade de deduzir critérios lógicos da forma natural de reprodução.
Desde então, há um número razoável de projetos deste tipo que agem em níveis
baixos de simulação (PACKARD, BEDAU, 2000).
38
Pode-se observar as seguintes características:
o Espaço: Há um número definido de células formando
uma matriz.
o Tempo: Existem intervalos fixos de atualização da
população.
o Estados: Cada elemento tem um número finito de
estados possíveis.
o Regras: As regras que se aplicam são locais,
dependem apenas do estado dos elementos vizinhos
e analisam a situação com uma profundidade fixa no
tempo (VAARIO, 1993).
•
Simulação de Animais
Em um nível mais alto há um grande número de projetos simulando o
comportamento de animais, principalmente daqueles com comportamentos sociais,
por possibilitar o estudo da evolução e o surgimento de certos padrões
comportamentais repetidos (emergência) (SHARKEY, 2003). Essa simulação pode
ser feita em software inserindo módulos independentes de programa dentro de um
mundo virtual ou em hardware pela criação de pequenos robôs que agem no mundo
real, geralmente cercados em um ambiente de testes.
Exemplos de projetos são:
o $QWV do 0,7: Como projeto de robótica criado no
Instituto de Tecnologia de Massachusetts, os $QWV
(formigas) são pequenos robôs implementados em
hardware que simulam o comportamento de formigas
39
– especialmente os hábitos de alimentação e o
comportamento social(MCLURKIN, 2003).
o $QW)DUP6LPXODWRU: Trata-se de um sistema parecido
com o anterior, porém em software. O projeto visa a
implementação de uma colônia de formigas simulando
principalmente a alimentação e reprodução. O sistema
baseia-se em uma abordagem simples com regras
cuja finalidade é aparentemente a implementação de
uma visão abstrata de um conjunto de formigas
(MATURANA, 2003).
o 'LJLWDO %LRORJ\: O projeto 'LJLWDO%LRORJ\ tem como
objetivo a simulação de animais marinhos utilizando
uma
interface
gráfica
de
alta
resolução
(BENEVENISTE, 2003).
o %RLGV: O projeto %RLGV de Craig Reynolds simula
bandos de pássaros baseando-se em três regras
simples:
•
Evite colisões com o vizinho
•
Tente voar na mesma velocidade que o vizinho
•
Tente ficar perto do vizinho
O sistema conseguiu emular corretamente o vôo de
pássaros
em
bando
provocando
separação
e
reencontro espontâneo quando houver um obstáculo à
frente (FORBES, 2000; SIPPER 1995).
40
o 7LHUUD Este projeto de Tom Ray modela um mundo
virtual no qual diferentes sistemas computacionais
competem
por
recursos
como
tempo
de
processamento e memória. Os programas se replicam
usando princípios de evolução como de herança
genética e mutação. Partindo de um único programa, o
$QFHVWRU,
desenvolveram-se
nos
testes
vários
programas diferentes com os mais diversos papéis
como predadores, parasitas e fregueses, em completa
analogia à evolução real na terra (FORBES, 2000;
SIPPER 1995).
)XWXURV'HVDILRV
A Vida Artificial é uma ciência jovem e interdisciplinar com objetivos muito
ambiciosos para o futuro. Muito além de simples simulações, pertencem ao campo
de Vida Artificial as seguintes questões (BEDAU HWDO, 2000)
•
Formas de vida completamente diferentes da nossa podem
existir?
•
O que é inevitável em um sistema de evolução aberto?
•
Há como determinar o caminho da evolução?
•
Um sistema artificial pode ter uma mente, sentimentos etc.?
•
Quais as relações quantitativas entre evolução cultural e
biológica?
41
&RQWH[WXDOL]DomRGR%,2$17
O sistema BIOANT é uma implementação em VRIWZDUH que exibe
características de vida natural de formigas. No decorrer da criação do sistema
precisou-se estabelecer regras muito mais detalhadas do que o conhecimento atual
biológico, principalmente com relação aos sensores usados. O ambiente foi usado
como método de macro-validação destes micro-processos. Desta forma, estudou-se
a vida além de apenas implementá-la.
Portanto, pode-se considerar que o sistema BIOANT é um sistema de Vida
Artificial. Maiores detalhes no item 3.3.2.
42
5HGHV1HXUDLV$UWLILFLDLV%LRORJLFDPHQWH3ODXVtYHLV
3ULQFtSLRV
Conforme (O’REILLY, 1998), pode-se caracterizar uma rede neural artificial
biologicamente plausível por seis princípios (veja figura 10):
)LJXUD,OXVWUDomRGRVSULQFtSLRV2¶5(,//<081$.$7$
•
Realismo Biológico
Toda abordagem conexionista tem a intenção de – pelo menos até certo ponto
– imitar a realidade biológica extraindo dela princípios válidos para tentar resolver
problemas através do processamento computacional.
Através de pesquisas recentes em biologia – como também em medicina –
chegou-se a resultados que eram sonhos até há poucos anos. Mesmo assim, o
conhecimento atual não fornece a verdade dos detalhes que seriam necessários
para poder apenas portar a realidade biológica para o ambiente computacional.
43
Sendo assim, deve-se observar regras de plausibilidade, ou seja, não contradizer o
conhecimento biológico adquirido até então. Trata-se ainda de uma utopia, pois a
computação não consegue nem chegar perto da realidade do cérebro. Mesmo
assim é possível observar diferenças entre os sistemas conexionistas e pode-se
afirmar que várias abordagens recentes que apresentam um elevado grau de
realismo
biológico
devem
ser
consideradas
(O’REILLY,
1998;
O’REILLY,
MUNAKATA, 2000; BENYUS, 1997).
•
O
Representação Distribuída
córtex cerebral
apresenta
a
característica
do
armazenamento
e
processamento de informações, através da utilização de uma representação
distribuída, onde várias unidades participam em várias representações. Cada
unidade pode ser vista como a implementação de uma característica pequena.
Este esquema contribui para a possibilidade de representação de grandes
conjuntos de dados em uma pequena área, o que pode ser comparado, por
exemplo a letras compondo as palavras. Pode-se expressar com elas um conjunto
infinito de informações, apesar de existir um número finito de letras (HAYKIN, 2001;
KANDEL HWDO, 1995; O’REILLY, MUNAKATA, 2000; O’REILLY, 1998).
Além
dessas
vantagens,
há
também
um
ganho
considerável
no
processamento de similaridades que pode ser realizado, através das características
comuns de duas informações. Talvez assim possa-se afirmar que o ser humano
aprende muito melhor através de analogias, pois será necessário guardar muito
menos informação, pois uma parte já foi efetivamente aprendida (O’REILLY 1998;
O’REILLY, MUNAKATA, 2000; THORPE, 2003).
•
Competição Inibitória
44
No cérebro existe competição entre neurônios, um verdadeiro darwinismo que
fortalece apenas as conexões mais utilizadas e acaba eliminando as conexões
fracas com o passar do tempo. Assim, habilidades não usadas tendem a se
deteriorar lentamente. Esta regra tem como origem o estudo de D. O. Hebb (1949)
sobre a organização do comportamento.
No córtex cerebral há cerca de 20% de neurônios intermediários inibitórios
(O’REILLY, 1998). Estes neurônios são responsáveis pela diminuição considerável
do nível de excitação geral e em específico pela prevenção da propagação de
informação não importante. No caso do ser humano, este mecanismo evita uma
verdadeira tempestade de excitação – como há, por exemplo, em pessoas
epilépticas.
É interessante destacar que a forma de organização também poupa o cérebro
de muita atividade desnecessária. Isto se dá através da representação de um
fenômeno apenas pelas características principais, permitindo desta forma que a
pessoa se concentre totalmente em um assunto deixando completamente de lado o
ambiente externo, que será filtrado pela inibição (O’REILLY 1998; O’REILLY,
MUNAKATA, 2000).
•
Propagação de Ativação Bidirecional
No córtex cerebral, observa-se propagação bidirecional entre dois neurônios,
principalmente nas sinapses elétricas. O cérebro divide-se em regiões responsáveis
por tarefas distintas, que se comunicam através de sinais. Cada neurônio conectase a cerca de mil outros neurônios, possibilitando assim processamentos
complexos. Finalmente, há a possibilidade do estabelecimento de novas conexões
(KANDEL
HW DO,
1995).
Esta
representação
traz
problemas
óbvios
de
45
implementação computacional por causa de sua eventual complexidade, mas é a
forma natural de se conseguir representar as informações no cérebro.
•
Aprendizado provocado por erros
Este tipo de aprendizado, também chamado de aprendizado supervisionado,
pode ser encontrado no algoritmo %DFNSURSDJDWLRQ (RUMELHART HWDO., 1986), que
provou ser computacionalmente muito eficiente, porém, é geralmente considerado
biologicamente não plausível (CRICK,
1989; O’REILLY, 1998;
O’REILLY,
MUNAKATA, 2000).
Entretanto deve-se considerar como um princípio freqüente de aprendizado
humano o efeito de tentativa e erro. Neste caso um certo resultado é esperado (précomputado pela rede), o ambiente em si determina o resultado da ação escolhida e
a diferença é aprendida com a finalidade de futuramente não cometer mais o
mesmo erro ou – pelo menos – de executar ações que dão resultados mais
próximos do sucesso.
Sendo assim, o algoritmo %DFNSURSDJDWLRQ tem aspectos biologicamente
plausíveis, porém precisa ser modificado para caber no ambiente das redes
avançadas (HELBIG, SCHERER, 2000; O’REILLY 1998; O’REILLY, MUNAKATA,
2000).
•
Aprendizado Hebbiano
Também chamado de aprendizado por modelos, auto-organizador ou não
supervisionado, trata-se de um processo de formação de representações internas
do
ambiente
não
ligadas
a
tarefas
específicas
como
no
aprendizado
supervisionado.
A mudança de influência sináptica provocada pelo Aprendizado Hebbiano
46
ocorre por potencialização a longo prazo. Assim, este procedimento de aprendizado
é considerado como biologicamente plausível – principalmente porque o mesmo
propicia processamentos em paralelo como também a competição anteriormente
mencionada (HAYKIN, 2001).
•
Conflitos
Há conflitos entre alguns destes princípios. Especialmente interessante neste
caso é a relação entre competição e distribuição. Enquanto competição inibitória
causa a ativação de poucos neurônios, a excitação distribuída entre vários pontos é
necessária para o bom funcionamento da rede. Um meio termo é a ativação de
alguns neurônios apenas, porém, sua realização técnica não é fácil (O’REILLY,
1996). Soluções aceitáveis são os métodos :7$ e N:7$descritos na seção 2.3.2 Algoritmos de Aprendizado.
•
Observações
Como as pesquisas em relação a abordagens biologicamente plausíveis são
relativamente recentes, os princípios não devem ser vistos como absolutos, mas
sim, como uma tentativa de achar uma sistemática para construção de um
fundamento teórico.
$OJRULWPRVGH$SUHQGL]DGR
•
*HQH5HF
O *HQH5HF (Recirculação Generalizada) é um algoritmo de aprendizado
supervisionado, considerado biologicamente mais plausível (O’REILLY, 1996). Seu
princípio geral considera a propagação de dois sinais – a expectativa da rede,
também chamado de “menos” e o sinal de treinamento, também chamado de
47
“mais”. Propagando estes sinais, pode-se achar o erro relacionado a cada ponto da
rede com a finalidade de ajustar os respectivos pesos. Isso difere por exemplo do
algoritmo %DFNSURSDJDWLRQ, que aprende pela retropropagação do erro a partir das
saídas.
O algoritmo *HQH5HF foi criado para trabalhar com redes recorrentes de duas
camadas, que usam a função sigmóide para ativação. O algoritmo *HQH5HF
funciona nas suas duas fases (“mais” e “menos”) durante o processo de
aprendizado. Como a rede recorrente trabalha com as ativações das saídas
anteriores que são propagadas para os neurônios escondidos, a rede possui
memória e esta característica precisa ser aproveitada durante o aprendizado,
através do treinamento de seqüências de situações e não apenas situações
distintas (como por exemplo no %DFNSURSDJDWLRQ) (O’REILLY,1996).
Desta forma, deve-se começar cada treinamento de uma seqüência zerando
as saídas anteriores (fase “menos”), evitando assim que o sistema carregue uma
memória indesejável, produzindo efeito negativo sobre o novo treinamento. Logo
em seguida, os valores desejados são colocados como saída da fase “mais” da
rede e as entradas são fornecidas na camada de entrada da rede. Então, calcula-se
as ativações dos neurônios escondidos observando a seguinte fórmula:
Considerando todas as fórmulas aplicáveis no *HQH5HF, assume-se que
existem A entradas da rede, B neurônios escondidos e C saídas. xi simboliza os
valores nas entradas para i = {0..A}. wij descreve os pesos entre a camada de
entrada e a camada de neurônios escondidos com i = {0..A} e j = {0..B}.
48
Respectivamente, wjk são os pesos entre a camada escondida e as saídas, onde j =
{0..B} e k = {1..C}. Finalmente yk simboliza o conjunto de saídas desejadas. Sendo
assim, deve-se adicionar à soma dos produtos dos pesos entre a camada de
entrada e as entradas em si, a soma dos produtos das saídas desejadas com os
pesos entre a camada de neurônios escondidos e as saídas. Finalmente o resultado
é fornecido para a função sigmóide (σ) e as ativações são calculadas (ROSA,
2002).
Como próximo passo, precisa-se obter as ativações da fase “menos”
começando com as ativações nos neurônios escondidos, tendo-se:
A única diferença entre esta fórmula e a fórmula anterior é o uso das saídas
reais anteriores (ok(t-1)) em vez das saídas desejadas (yk). No começo de uma
seqüência, as saídas anteriores encontram-se zeradas, zerando-se assim o
segundo termo. Porém, nos passos seguintes, as saídas anteriores já influenciarão
os valores a serem computados.
Finalmente, calcula-se as próximas ativações (“menos”) seguindo:
Ao final do passo de processamento, tem-se então: as saídas desejadas (yk),
as saídas reais (ok(t)), as ativações fase “mais” e fase “menos” nos neurônios
escondidos (hj+ e hj-) como também as entradas (xi). Pode-se então fazer os ajustes
necessários nas sinapses entre a camada de entrada e a camada escondida como
49
também o ajuste entre a camada de neurônios escondidos e as saídas, o que
constitui o aprendizado propriamente dito, aplicando as fórmulas:
A taxa de aprendizado (η) pode ser fixa e definida com um valor apropriado
entre 0 e 1, sendo um valor possível, por exemplo, 0,05 (ROSA, 2002). Por fim,
para atualizar os pesos, adiciona-se aos mesmos os valores do ajuste resultante
(∆wjk e ∆wij) (ROSA, 2002).
Durante a fase de reconhecimento, a rede deve apenas trabalhar na fase
“menos” (de expectativa), continuando, porém, a propagação recorrente dos sinais
(O’REILLY, 1996).
O sistema BIOANT faz uso do algoritmo *HQH5HF para o treinamento da rede.
Maiores detalhes podem ser encontrados no capítulo 5 (Implementação).
•
&+/
&+/ significa &RQWUDVWLYH +HEELDQ /HDUQLQJ (aprendizado de contraste
hebbiano). Neste caso, a diferença entre dois termos hebbianos é usada para
formar o aprendizado, ou seja, a variação entre dois estados distintos é
considerada: no estado “mais”, ambos o estado desejado e o estado atual são
propagados, no estado “menos”, apenas o estado atual.
O aprendizado ocorre pela diferença dos co-produtos pré e pós-sinápticos nas
duas fases.
O algoritmo é parecido com o *HQH5HF, porém, os termos de ativação são
diferentes (O’REILLY, 1996).
50
•
:7$
:7$ é a abreviação para 7KH :LQQHU 7DNHV LW $OO (o ganhador leva tudo) e
descreve um algoritmo de competição que deixa apenas o ganhador propagar seu
sinal de ativação.
Este algoritmo não faz sentido quando se trata de neurônios isolados, pois
apenas um neurônio ativo eliminaria a competição por completo e dificultaria
consideravelmente o processo de aprendizado.
Em vez disso, este princípio está sendo aplicado a agrupamentos de
neurônios enquanto um agrupamento compete com o outro. Porém, neste caso, o
algoritmo mesmo como algoritmo de competição deve ser completado por outro
sistema para assegurar o funcionamento da rede.
O algoritmo em si é considerado biologicamente plausível em termos, porém
não é muito prático, o que levou os pesquisadores a adotarem o N:7$ (O’REILLY,
1996, 1998).
•
N:7$
O N:7$ - 7KH N :LQQHUV 7DNH LW $OO (os k ganhadores levam tudo) é uma
modificação do algoritmo anterior. Neste caso, há competição entre todos os
neurônios envolvidos, porém, em vez de um ganhador haverá N ganhadores. Desta
maneira, a propagação dos sinais não é simplificada da maneira do :7$ e pode-se
esperar um processamento que não tenda a ser linear (O’REILLY, 1996, 1998).
([HPSORVGH5HGHV%LRORJLFDPHQWH3ODXVtYHLV
•
/HDEUD
/HDEUD é um projeto que incorpora todos os seis princípios anteriormente
51
explicados e assim pretende ser uma rede biologicamente plausível, conforme
sugerido por (O’Reilly, 1998). A abreviação “/HDEUD” significa OHDUQLQJ LQ DQ HUURU
GULYHQ DQG DVVRFLDWLYH ELRORJLFDOO\UHDOLVWLF DOJRULWKP (aprendizado com um
algoritmo movido por erros, associativo e biologicamente realístico).
/HDEUD tem as seguintes características:
o Função de ativação SRLQW QHXURQ (neurônio ponto),
que implementa as propriedades eletrofísicas reais do
neurônio
enquanto
sua
extensão
geométrica
é
simplificada a um ponto apenas. Há fórmulas que
cuidam
da
mudança
de
potencial
elétrico
da
membrana, a definição do potencial de repouso, os
canais iônicos e eventuais interferências.
o Representação distribuída esparsa pelo algoritmo
N:7$ onde há N ganhadores da competição entre os
neurônios (não apenas um), deixando uma quantidade
definida de neurônios em estados de ativação.
o Aprendizado supervisionado (“movido por erros”)
utilizando o algoritmo *HQH5HF. A rede funciona em
duas fases, a de esperança (menos) e a dos
resultados (mais). A diferença da ativação présináptica e pós-sináptica é computada e o resultado
ajustado em cada unidade.
o Aprendizado Hebbiano é utilizado em conjunto com o
*HQH5HF fazendo uma mistura por porcentagem de
52
influência em cada sinapse.
/HDEUD obteve resultados interessantes. Principalmente provou-se que a rede
era capaz de absorver as funcionalidades de várias outras redes diferentes em uma
única abordagem. Neste caso, cabe lembrar que o cérebro também pode trabalhar
basicamente com todas as abordagens conexionistas e assim /HDEUD representa
um passo na direção certa (O’REILLY, 1998).
•
Uma Rede Biologicamente Inspirada para Formação de
Trajetória evitando Obstáculos
Trata-se de uma abordagem que pode ser utilizada no campo da robótica. Ela
foi desenvolvida para mover um robô de um ponto de origem até um ponto final sem
bater em um obstáculo presente (GLASIUS HWDO, 1994).
A implementação é feita em duas camadas distintas, sendo cada uma um
mapa de Kohonen (figura 11).
)LJXUD,OXVWUDomRGDVGXDVFDPDGDV*/$6,86HWDO
53
Os mapas são denominados de mapa sensorial e mapa de motor. Os
impulsos do ambiente definem o conteúdo do mapa sensorial. Nele, o ponto de
destino recebe o valor 1 e o obstáculo em todos seus pontos o valor 0. Como o
mapa tem a tendência de propagar estes impulsos para a vizinhança, tem-se a
figura de uma “montanha” no ponto de destino e um “vale” onde fica o obstáculo
como mostra a figura 12.
)LJXUD5HSUHVHQWDomRQDFDPDGDVHQVRULDO*/$6,86HWDO
O mapa de motor então recebe informações do mapa sensorial por
propagação como também o estado atual do atuador. Desta forma, o mapa motor
pode gerar os comandos de motor que mudam continuadamente enquanto o
atuador (robô) se movimenta do ponto inicial até o fim (destino) (figura 13).
54
)LJXUD'XDVVLWXDo}HVQRPDSDGHPRWRU±D³PRQWDQKD´pDSRVLomRDWXDO
GRURE{*/$6,86HWDO
Os potenciais no mapa de motor são definidos por um algoritmo próprio para a
tarefa, que representa uma mistura de aprendizado supervisionado levando em
consideração em cada instante a situação no mapa sensorial e não-supervisionado
utilizando princípios deagrupamento (FOXVWHULQJ) e competição.
O escopo deste projeto é razoavelmente limitado, porém a abordagem é
interessante em relação a sistemas mais realistas e mais criativos – já que é uma
tarefa difícil também afirmar regras fixas para o cérebro humano (GLASIUS HW DO,
1994).
•
O 1HRFRJQLWURQ Adaptado
O 1HRFRJQLWURQ (figura 14) original em si não é uma abordagem muito recente
(desenvolvida em 1980 por Fukushima). Trata-se de uma organização em camadas
distintas com propagação para frente de tal forma que a próxima camada extrai
certas características da camada anterior, abstraindo as entradas.
Existem camadas com neurônios S e C, que extraem informações das
camadas anteriores e emitem sinais excitatórios. A diferença é que junto com os
neurônios C também há neurônios V, que transmitem sinais inibitórios e apenas as
conexões a células S são variáveis em nível de impulso.
55
)LJXUD1HRFRJQLWURQ9$122<(19$13(/7
Como o nome 1HRFRJQLWURQ já tenta revelar, o sistema é utilizado para o
reconhecimento de padrões visuais. Na sua forma original, o 1HRFRJQLWURQ reage
sempre de forma igual a impulsos nas entradas, uma forma que não é
biologicamente plausível, pois os neurônios do cérebro respondem gradativamente
menos a impulsos iguais (VAN OOYEN, VAN PELT, 1993). Como provado em
macacos, apenas padrões visuais desconhecidos ou não vistos por um certo tempo
conseguem estimular bastante as células, ou seja, criar interesse.
Essa adaptação é feita de tal maneira que é adicionado um termo ao
denominador do termo de resposta das células C: T(k) que controla o grau de
adaptação deixando o sinal consideravelmente menor dependendo do valor
escolhido.
Mesmo com um princípio relativamente simples, o resultado é uma rede
consideravelmente mais biologicamente plausível, porém, como o exemplo anterior,
não flexível em seus usos (VAN OOYEN, VAN PELT, 1993).
56
•
Uma Rede Biologicamente Motivada
Tendo como ponto de partida um modelo conexionista clássico, este projeto
(Rosa, 2001) introduz o uso de variáveis representando transmissores, receptores e
controladores. Além da maneira tradicional de conexão (pesos, potencial de
ativação propagado etc.), esta abordagem considera o princípio de afinidade entre
receptor e transmissor, o que traz como resultado uma topologia bem específica e
biologicamente mais plausível (pois não há conexões “generalizadas” no cérebro).
O controlador foi utilizado para implantar o potencial gradual, que pode ser
produzido por um axônio (em vez de um sinal constante) como também para emular
as proteínas liberadas na junção de transmissor e receptor.
O Controlador pode modificar:
o O grau de afinidades da conexão
o A quantidade de substrato
o A expressão genética
A rede deve ser criada definindo:
o O número de camadas
o O número de neurônios em cada camada
o A quantidade inicial de substrato em cada camada
o A definição de genética de cada camada
Nesta rede, o assunto principal é a definição de quais conexões ocorrem e
quais não podem ser realizadas. Resultado disso pode ser a topologia da figura 15
(ROSA, 2001).
57
)LJXUD8PDSRVVtYHOWRSRORJLDGHUHGH526$
&RQWH[WXDOL]DomRGR%,2$17
O sistema BIOANT usa a topologia de uma Rede Neural Artificial Recorrente
de três camadas e emprega o algoritmo de aprendizado considerado mais
biologicamente plausível *HQH5HF (veja item 2.3.2). Dentro dos critérios de
(O’REILLY, MUNAKATA, 2000), o sistema satisfaz as exigência de Realismo
Biológico, Representação Distribuída, Propagação de Ativação Bidirecional e
Aprendizado Provocado por Erros. Os princípios ausentes (Competição Inibitória e
$SUHQGL]DGR+HEELDQR) deverão ser implementados em versões futuras.
Desta forma, BIOANT pode ser considerado um sistema conexionista
biologicamente mais plausível. Maiores detalhes são encontrados no capítulo 3
(Implementação).
58
5HGHV1HXUDLV$UWLILFLDLVH5REyWLFD
&RQVLGHUDo}HV*HUDLV
Em 1920, o dramaturgo tcheco Karel Capek escreveu o drama 585 2V
5RE{V 8QLYHUVDLV GH 5RVVXP. A sátira que alertava sobre a possível substituição
de seres humanos por máquinas andróides, criou um termo novo até então
desconhecido: robô (da palavra tcheca URERWD, que significa “trabalho forçado”)
(ROSA HWDO., 2003).
De acordo com uma definição do 5RERW,QVWLWXWHRI$PHULFD (1979) “um robô é
um manipulador programável multifuncional designado para mover materiais, peças
ou dispositivos específicos fazendo uso de vários movimentos pré-programados
para a execução de uma variedade de tarefas” (DOWLING, 2003).
Pode-se então dizer que os robôs têm basicamente as seguintes
características:
•
Conjunto mecânico
•
Programação
•
Execução de tarefas de movimentação ou manipulação de
objetos
Os robôs podem ser máquinas razoavelmente simples até bastantes
complexas controladas por computadores (ROSA HWDO., 2003).
A maioria dos robôs auxilia seres humanos na execução de tarefas perigosas,
altamente repetitivas ou que precisam ser executadas sem nenhuma interrupção.
Os robôs mais comuns de hoje em dia são os robôs em forma de braço, pois os
mesmos têm uma boa flexibilidade e podem alcançar facilmente qualquer ponto ao
59
seu redor.
No início dos chamados “robôs industriais”, a indústria automobilística,
principalmente, fazia uso desta nova tecnologia. Hoje pode-se achar robôs em
praticamente qualquer ramo da indústria.
3HUFHSomRSRU6HQVRUHV
O robô interage com seu ambiente através de sensores:
•
Sensores de proximidade indicam a presença de um objeto
em uma distância fixa através de um /(' e um receptor.
•
Sensores de espaço determinam a distância entre o robô e
um ponto. Estes sensores geralmente são realizados através
de duas câmeras.
•
Sensores acústicos podem receber ondas acústicas, analisálas e até reconhecer voz.
•
Sensores de toque detectam se um objeto foi tocado. Estes
sensores permitem o manuseio mais delicado de peças e
montagens mais detalhadas.
•
Sensores de força transmitem o valor necessário de força
mecânica em uma certa operação.
A capacidade mais complexa de um robô é a visão. O processo de visão pode
ser subdividido nas tarefas (LUNDQUIST, 2003):
•
Sentir
•
Pré-processar
60
•
Segmentar
•
Descrever
•
Reconhecer
•
Interpretar
$SOLFDo}HV&RPHUFLDLV
Cerca de 90% dos robôs existentes atualmente podem ser definidos como
robôs industriais, que ajudam em processos da indústria.
Fora das indústrias automobilísticas que tradicionalmente usam robôs
(principalmente para a solda em lugares de difícil acesso), também já se pode notar
um uso considerável em armazéns, laboratórios, plantas de pesquisa, usinas
produtoras de energia, hospitais e programas espaciais.
-XVWLILFDWLYDGH8VRGH5HGHV1HXUDLV$UWLILFLDLV
Os robôs atuais sofrem de limitações não apenas na percepção do ambiente,
mas também no processamento e na reação. Existem principalmente as seguintes
limitações:
•
Robôs não têm a capacidade de perceber seu ambiente de
uma maneira adequada, não apenas por falta de sensores,
mas também por falta de rotinas que poderiam processar as
informações fornecidas de uma maneira satisfatória.
•
Robôs não têm consciência de si ou são incapazes de
interpretar as suas ações.
•
Robôs não possuem criatividade (ROSA HWDO., 2003).
61
As redes neurais não têm a possibilidade de resolver todos estes problemas,
porém elas podem contribuir consideravelmente no tratamento de problemas que
incluem um alto grau de incerteza e flexibilidade. Principalmente pode-se melhorar a
percepção do ambiente e desenvolver reações flexíveis às mudanças (veja, por
exemplo (THRUN, MITCHELL, 1995)).
A seguir são descritos alguns projetos de robótica que incluem redes neurais
artificiais para a resolução de tarefas. Serão dados exemplos de soluções,
discutindo em cada uma delas como a rede neural influenciou o processo.
8VRGD5HGH3HUFHSWURQ0XOWLFDPDGDV0/3
Apesar do fato de que o campo de pesquisa em redes neurais artificiais
evoluiu muito nos últimos anos e que existem cada vez mais novas topologias (uma
mais complexa que a outra), mesmo em projetos relativamente recentes, pode-se
observar uma forte tendência em usar tecnologias simples para se ter um maior
controle do desenvolvimento ou para se chegar a resultados mais rápidos. Ainda
estão presentes, principalmente, o 3HUFHSWURQ e o algoritmo %DFNSURSDJDWLRQ em
suas variações como os seguintes projetos demonstram:
•
Daisy, o Robô
Daisy é um robô cuja serventia é o combate a incêndios. Trata-se de uma
construção feita com /HJR7HFKQLFWP para as partes mecânicas e 0DUWLQ¶V+DQG\
%RDUG6\VWHP como instância de controle (ZHOU HWDO, 1998).
O robô em sua primeira versão foi projetado para combate a pequenos
incêndios apenas, ou seja, velas acesas em cima de um bolo de aniversário. A
movimentação do robô é feita através de quatro rodas das quais as rodas da frente
determinam a direção. O mecanismo para extinção de incêndios é realizado usando
62
um pequeno ventilador.
Para simplificação o robô consegue receber apenas 4 comandos:
o Vá em frente
o Vire para a direita
o Vire para a esquerda
o Acione ventilador
O projeto utiliza um 3HUFHSWURQ simples, a função de ativação sigmóide e o
algoritmo %DFNSURSDJDWLRQ para o aprendizado. De acordo com (ZHOU HWDO, 1998),
a topologia foi escolhida devido a sua simplicidade e rapidez de aprendizado.
Apesar do fato de que o robô demora consideravelmente para aprender as
primeiras situações, com o tempo a rede mostra-se apta a resolver os problemas
propostos provando a eficiência de uma rede simples em um sistema de robótica
(ZHOU HWDO, 1998).
•
Aprendizado por %DFNSURSDJDWLRQ Indireto
Apesar de sua eficiência comprovada em várias situações, o algoritmo
%DFNSURSDJDWLRQ pode ser criticado quando usado em ambientes que envolvem
incerteza, uma característica comum para robôs que devem se adaptar com
sucesso. Como o %DFNSURSDJDWLRQ é um algoritmo supervisionado, ele precisa
receber um conjunto de saídas corretas cada vez que uma forma de aprendizado
acontece, porém, estas saídas concretas representam um problema sério em
muitas situações.
Uma modificação do algoritmo %DFNSURSDJDWLRQ, o %DFNSURSDJDWLRQ Indireto,
visa contornar estas dificuldades (HENAFF HW DO., 1994; HENAFF, DELAPLACE,
63
1996). Em vez de calcular erros concretos, ele utiliza um aprendizado por critérios,
ou seja, orienta-se por uma função de custo. Esta função é uma maneira de se
definir mais genericamente a direção certa do desenvolvimento.
•
1HXUDO/DE\ULQWK5RERW
O sistema Neural Labyrinth Robot é um sistema híbrido simbólicoconexionista. Dentro de vários pequenos labirintos, um algoritmo simbólico acha o
melhor caminho do ponto inicial do robô até a saída. O resultado do processamento
é passado em forma de pares de entradas e saídas para um 3HUFHSWURQ de duas
camadas (SCHNEIDER, ROSA, 2003).
Com a finalidade de facilitar o aprendizado emprega-se uma rotina de préprocessamento que:
o amplifica o impacto da posição do robô, assim
permitindo que o mesmo tenha a possibilidade de
aprender seqüências por passos isolados,
o processa as informações do labirinto obtidas até um
certo ponto, usando uma função não-linear para
ajudar o robô a distinguir nitidamente entre duas
situações parecidas.
O sistema mostrou-se apto a aprender 20 labirintos de teste e – como foram
necessárias apenas poucas iterações – é de se esperar que o sistema tenha a
possibilidade de aprender muitos outros labirintos (SCHNEIDER, ROSA, 2003).
5REyWLFD(YROXWLYD
Como forte tendência na criação de algoritmos eficientes que possam se
64
adaptar a qualquer ambiente foi inventada a robótica evolutiva, uma forma de
aplicar mais plausibilidade biológica no uso de redes neurais em robótica.
•
7R\%RW
Um projeto razoavelmente simples para a criação de redes neurais treinadas
através de evolução é o sistema 7R\%RWcom seu respectivo robô feito de Lego(tm).
A placa controladora do robô é realizada através de um microprocessador
Motorola de 64KB. Há uma placa exclusiva para detecção de luz e detecção de
sinais infravermelhos.
O robô faz uso dos seguintes sensores:
o Luz
o Infravermelho
o Interruptores mecânicos (toque)
O robô se movimenta sobre rodas com um motor de 6V e pode emitir sinais
com duas lâmpadas de 9V (LUND HWDO, 1998).
O projeto foi feito principalmente para entreter crianças. O algoritmo de
evolução pode ser usado de uma forma bastante intuitiva: no computador, o
comportamento de 9 robôs diferentes é simulado traçando os trajetos deles frente a
obstáculos. Destes 9 robôs, a criança pode escolher aquele robô de que goste
mais. Este robô então será o “pai” de uma nova geração de 9 robôs dos quais
novamente a criança pode designar um específico a ser o próximo passo de
evolução. O jogo de criação de um robô “perfeito” termina quando a criança se
mostra 100% satisfeita com o robô final.
A implementação das características do robô é feita usando uma rede neural
65
IHHGIRUZDUG com um total de 42 conexões. A cada passo de evolução, os pesos são
modificados criando assim comportamentos distintos.
Também há a possibilidade de se modificar o comportamento de um robô
específico usando um botão que – quando pressionado pela criança - indica
movimentos que devem ser evitados (LUND HWDO, 1998).
•
(9276
O nome (9276 ((YROXWLRQDU\ 5RERWV = Robôs Evolutivos) faz uso de uma
abordagem mais próxima da realidade biológica. O projeto pretende – por um
processo de evolução – criar automaticamente controladores para robôs.
A sistemática segue um ciclo de 4 passos. Inicialmente usa-se um processo
de morfogênese obtendo fenótipos interessantes para processamento, que
fornecem os dados, sendo processados por uma rede neural dinâmica. A rede
neural é implantada como instância de controle em um robô cujo metabolismo trará
resultados sobre a qualidade dos padrões usados. As características inadequadas
são eliminadas e novos genótipos são criados.
A rede neural utilizada é uma rede dinâmica que permite várias estruturas ao
mesmo tempo (recorrentes e IHHGIRUZDUG). Esta liberdade traz uma flexibilidade
muito maior de implementação. O aprendizado e a estrutura da rede são
controlados por um algoritmo genético.
A rede neural usa uma simples função de ativação fornecendo “0” para
valores abaixo de 0, o valor real para valores entre 0 e 1 e “1” para valores maior
que 1 (função linear por partes) (HAYKIN, 2001).
66
3HUFHSomR
Um dos maiores problemas para o desenvolvimento de robôs aptos a reagir
aos seus ambientes é a implementação satisfatória da percepção do ambiente,
especialmente da visão. Para tais tarefas existem projetos específicos na área de
robótica com significativos avanços pelo uso de redes neurais.
•
26&$5
Neste projeto, o robô 26&$5, que é um simples braço com uma câmera
abaixo de sua garra, deve seguir os movimentos de um objeto em cima de uma
mesa. Apesar do fato de que objetos como pequenos carros terem mais velocidade
que o robô quando em movimento, o robô deve manter a distância mais curta
possível da câmera em relação ao objeto (SCHRAM HWDO, 1996).
A rede neural neste caso é usada para prever a próxima posição do objeto
com a finalidade de minimizar as distâncias. Para tal usa-se uma rede IHHGIRUZDUG
comum fornecendo a ela dados atuais e dados passados e obtendo o respectivo
trajeto (SCHRAM HWDO, 1996).
•
(%11H;$9,(5
O (%11: ([SODQDWLRQEDVHG 1HXUDO 1HWZRUN /HDUQLQJ $OJRULWKP (algoritmo
para aprendizado em redes neurais baseado em explicações) é um algoritmo que –
com um certo nível de experiência alcançado – usa o conhecimento do domínio
para analisar e explicar os dados de treinamento com a finalidade de oferecer maior
ajuda ao usuário e uma melhor consistência dos resultados. Visa especialmente
tratar o problema de domínios desconhecidos, nos quais aplica as regras até então
aprendidas. Além destes pontos, o algoritmo também ajuda indiretamente na
fabricação e programação deixando os princípios mais importantes em evidência e
67
possibilitando uma simples replicação.
O algoritmo (%11 é um algoritmo híbrido que usa aprendizado indutivo num
primeiro instante tentando estabelecer os conceitos e num segundo passo
explicativo tentando detectar regras em exemplos de treinamento, analisando o
conjunto por elementos desnecessários e redefinindo os conceitos de acordo com o
resultado (THRUN, MITCHELL, 1995; THRUN, 1996).
;DYLHU é basicamente um robô que percorre escritórios realizando tarefas
predeterminadas e desviando de obstáculos no caminho. Para tal funcionamento,
encontra-se equipado com 24 sensores de sonar, um sensor de distância (laser) e
uma câmera colorida (SIMMONS HWDO, 1997).
Os sensores de sonar permitem ao robô uma visão de 360º sendo
complementada pelo laser que mede distâncias curtas com mais exatidão.
Nos testes feitos junto com a rede neural utilizando o método (%11 de
aprendizado o robô achou o caminho até um certo ponto final em situações
desconhecidas de uma maneira confiável (taxa de resolução maior de 90%)
enquanto a falta de conhecimento prévio inviabilizou o processo (THRUN,
MITCHELL, 1995; THRUN, 1996).
&RQWH[WXDOL]DomR%,2$17
Mesmo sendo uma simulação, o sistema BIOANT tem vários elementos de um
robô, como sensores, atuadores e controladores. Como uma Rede Neural Artificial
foi usada como instância de controle, o sistema se enquadra na linha de robôs
guiados de uma forma conexionista.
Maiores detalhes encontram-se no capítulo 3 (Implementação).
68
%LRORJLDGH)RUPLJDV
&RQVLGHUDo}HV*HUDLV
Formigas são insetos sociais que se organizam em formigueiros. Elas são da
família )RUPLFLGDH e da ordem +\PHQRSWHUD. Estima-se que existam no mundo
aproximadamente 9000 espécies – principalmente nas florestas tropicais, mas
também em zonas de clima mais temperados (MYERS HWDO, 2003).
&RUSR
)LJXUD(VTXHPDGRFRUSRGHXPDIRUPLJD6&+0,'7$
O corpo de uma formiga (figura 16) divide-se basicamente em três partes: a
cabeça, o tórax e o abdômen.
A cabeça pode variar dependendo da função da formiga (soldados têm uma
cabeça um pouco maior) e da espécie. Encontram-se na cabeça as antenas, os
olhos, as mandíbulas e uma glândula para fluídos digestivos.
O tórax faz a interligação da cabeça com o abdômen e é o ponto inicial das
seis pernas.
69
No abdômen localiza-se a maior parte do aparelho digestivo (intestino,
estômago comum, estômago social) como também os órgãos de defesa (ferrão e
glândulas de veneno).
As formigas variam bastante de tamanho; cujo tamanho médio é cerca de 2
mm (SCHMIDT, A. 2003).
2UJDQL]DomRGH&RO{QLDV
As colônias de formigas são compostas por um grande número de fêmeas, as
trabalhadoras e – dependendo da época – por um certo número de machos com
asas, como também uma rainha.
Dentro das colônias há uma organização rígida: soldados vigiam as entradas,
trabalhadoras mantêm a temperatura constante para as larvas e ficam carregandoas para lugares mais quentes ou frios dependendo das necessidades. Caçadores
deixam objetos na entrada e logo continuam a busca. Outras trabalhadoras fazem a
limpeza tirando restos de formigas mortas ou animais do formigueiro.
Desta forma, as formigas têm um comportamento social sofisticado e não
podem sobreviver sozinhas (SCHMIDT, A. 2003).
)XQGDomRGH&RO{QLDV
Novas rainhas geralmente desenvolvem novas colônias e mudam-se para
outros lugares distantes da colônia onde nasceram. Neste caso, devem se manter
vivas comendo os ovos e larvas até as primeiras trabalhadoras nascerem.
Em outros casos, algumas trabalhadoras podem acompanhar a rainha ou até
outras rainhas, criando assim colônias com várias rainhas.
As formigas costumam construir formigueiros (figura 17) ou outras formas de
70
moradia que possam abrigar um número grande de indivíduos. Dentro de cada
formigueiro podem viver mais de um milhão de formigas (KAISER-BENZ, 2000).
No formigueiro pode haver um número pequeno de visitantes, por exemplo,
provenientes de colônias que perderam a rainha (SCHMIDT, A. 2003).
)LJXUD(VTXHPDGHXPQLQKR.$,6(5%(1=
5HSURGXomR
A tarefa dos machos é a fecundação da rainha, que bota ovos minúsculos que
se desenvolvem em larvas brancas.
Destas larvas podem nascer novamente machos, fêmeas ou até rainhas.
Larvas – dependendo da espécie – precisam ser alimentadas e cuidadas de
algumas semanas a vários meses (SCHMIDT, A. 2003).
71
$GPLQLVWUDomR
Apesar do nome “rainha” que faz lembrar um sistema de monarquia, a tarefa
da rainha é exclusivamente garantir a reprodução botando ovos. Também não
existem situações nas quais uma formiga determina o que a outra deve fazer. Muito
pelo contrário, cada formiga parece ter um sólido conhecimento de suas tarefas, as
quais executa todos os dias. O comportamento social que se desenvolve é
entendido por um lado como emergência (JOHNSON, 2003; SHARKEY, 2003), por
outro lado como resultado de comunicação indireta usando cheiros (KLÜGL, 2001).
$OLPHQWDomR
Muitas espécies de formiga são onívoras, mas há exceções. O grande número
de formigas domésticas prefere açúcar e gorduras. Algumas espécies alimentam-se
de fungos (como a formiga cortadeira) ou de secreções de pulgões. Formigas
também processam animais mortos ou até podem caçar animais pequenos como no
caso da Formiga de Correição (PATTO, 2003; SCHMIDT, A. 2003).
3HUFHSomR
As formigas percebem seu ambiente através de olhos, que, porém não são
muito sofisticados e são compostos de uma (no caso da Formiga de Correição) a
várias facetas (PATTO, 2003). A formiga pode (dependendo do número de facetas)
ter um amplo campo de visão, porém sem muitos detalhes, pois a facetas servem
mais para enxergar proximidades. Algumas espécies tem “olhos de luz” separados
dos olhos normais de facetas, apenas para poder perceber diferenças na
luminosidade e assim poder se orientar pela posição do sol.
À procura de alimentos, as formigas seguem geralmente trechos marcados
72
com feromônio liberado por formigas que já passaram pelo mesmo local (figura 18)
como também pela luz solar. O caminho mais curto é achado pela maior taxa de
formigas / tempo, o que resulta em mais feromônio atraindo mais formigas do que
os caminhos mais longos.
)LJXUD7ULOKDGHIHURP{QLR.$,6(5%(1=
As antenas ajudam também a percepção, fornecendo sinais de toque para
evitar obstáculos que são de difícil visão para os olhos. Porém, as antenas também
podem ser usadas como instrumentos para comunicação e manipulação de objetos
(SCHMIDT, A. 2002) e finalmente como “orelhas” captando vibrações do ar
causadas por barulho (KÜCHLER, 2000).
Em caso de perigo, as formigas empregam um cheiro de alerta e defesa, o
alomônio, provocando a rápida fuga de todas as formigas em volta da fonte do
perigo (KÜCHLER, 2000).
73
7LSRV
Existem muitas espécies diferentes de formigas. Aqui serão dados apenas
alguns exemplos para demonstrar as grandes variações.
•
Formiga de Correição (HFLWRQEXUFKHOOL)
A mais agressiva dentre as formigas vive praticamente 100% da caça de
animais pequenos (figura 19). Ela tem uma visão péssima (apenas uma faceta no
olho) e ataca em um grande número de indivíduos. A formiga constrói um ninho
usando os próprios corpos dos membros da colônia. Tem uma maior flexibilidade de
migração. A fase de migração inicia-se após a formiga não encontrar mais nenhum
tipo de alimento ao alcance.
)LJXUD)RUPLJDVGH&RUUHLomR3,HWDO
Formigas de Correição podem ser achadas em florestas, principalmente
florestas tropicais (PATTO, 2003).
•
Formiga Carpinteira (FDPSRQRWXVVSS)
Chamada assim por sua preferência pela criação de ninhos em madeira, a
formiga pode ser achada principalmente em madeira morta, mas também em
troncos de árvores ou dentro de casa em vigas e falhas na estrutura. A formiga
carpinteira (figura 20) pode construir vários ninhos secundários, adaptando-se à
74
existência como praga doméstica. O corpo da formiga pode apresentar variações de
cor e pelos.
)LJXUD)RUPLJD&DUSLQWHLUD.$/,6&+
Os alimentos preferidos da Formiga Carpinteira são doces, ovos e carnes
(BUCNO, 1998; SMITH, 2003).
•
Formiga Cortadeira (DWWDVH[GHQV)
A formiga cortadeira (figura 21) costuma cortar folhas de árvores e plantas em
geral para uma criação de fungos que servem como alimento.
Os ninhos são construídos diretamente na terra, produzindo grandes colônias
subterrâneas.
Novas rainhas podem voar até 11 km para fundar uma nova colônia.
O trabalho dentro da colônia é dividido pelo tamanho do corpo da formiga,
sendo que as maiores trabalham como soldados (MYERS HW DO, 2003; SMITH,
2003).
75
)LJXUD)RUPLJDV&RUWDGHLUDV3,HWDO
•
Formiga Argentina (OLQHSLWKHPDKXPLOH)
Este tipo de formiga costuma fazer ninhos perto de fontes de água ou dentro
de casa perto das tubulações. A Formiga Argentina (figura 22) costuma expulsar
outras formigas dos locais onde constroem seus ninhos. Não há muitas variações, a
cor é geralmente marrom. A alimentação é feita através de sucos de frutas, insetos
mortos, mas também doces e carnes (BUCNO, 1998).
)LJXUD)RUPLJD$UJHQWLQD-$3$1(6(
•
Formiga Fantasma (WDSLQRPDPHODQRFHSKDOXP)
Essas formigas (figura 23) constroem ninhos dentro de casa em janelas,
portas e atrás de azulejos e no exterior no solo ou em árvores. Os indivíduos da
espécie são muito pequenos com um pouco mais de 1,3 mm de comprimento.
76
A formiga fantasma costuma formar novas colônias pela migração de uma ou
mais rainhas junto com operárias (BUCNO, 1998).
A formiga fantasma é onívora com uma preferência para alimentos doces. Ela
se movimenta em ]LJXH]DJXH à procura de alimentos.
Formigas fantasma são bastante comuns em residências ou hospitais no
Brasil.
)LJXUD)RUPLJD)DQWDVPD-$3$1(6(
3UHGDGRUHV
Além do tamanduá, que é um predador específico para formigas, mas que não
vive em todas as partes do mundo, há dois predadores mais importantes: o próprio
ser humano, que destrói de propósito ou acidentalmente o habitat da formigas e
vários tipos de pássaros que comem insetos (KAISER-BENZ, 2000).
,PSRUWkQFLD
Apesar de serem entendidas geralmente como pragas quando encontradas
em residências e jardins, as formigas têm grande importância ecológica, comendo
animais mortos, evitando pragas de outros insetos, ajudando na distribuição de
sementes e até como alimento de animais maiores (KAISER-BENZ, 2000).
77
&RQWH[WXDOL]DomRGR%,2$17
Um dos objetivos do sistema BIOANT é a implementação de formigas
artificiais com características próximas às reais. Por isso, um estudo biológico mais
profundo foi necessário. O resultado do sistema foi validado utilizando os
conhecimentos adquiridos.
Mais elementos sobre a plausibilidade biológica do sistema podem ser
encontrados no capítulo 3 (Implementação).
78
“Se você quer f azer um bolo de maçã a par t ir do início,
pr imeir o você pr ecisa r ecr iar o univer so.”
Carl Sagan
79
,03/(0(17$d­2
&RQVLGHUDo}HV*HUDLV
O sistema BIOANT é um sistema que simula uma pequena colônia de
formigas de tamanho configurável (até 99 formigas). A restrição As formigas
procuram alimento em um mundo virtual tri-dimensional e tentam se defender contra
predadores e outros perigos como morte causada pela ausência de alimento e
afogamentos.
O sistema faz uso de dois modos de operação: o algoritmo simbólico que se
baseia a cada passo apenas na situação atual (desprezando experiências
anteriores) e a rede neural que controla a formiga dentro de seqüências de ações,
que devem ser executadas em uma ordem lógica.
'HVFULomR
Este primeiro item fará uma apresentação técnica do sistema com a finalidade
de estabelecer a base de conhecimento necessária para o entendimento dos
resultados obtidos.
$PELHQWH
O sistema BIOANT apresenta um ambiente tri-dimensional no qual as
formigas se inserem, que tem as dimensões 80 unidades (largura) por 45 unidades
(comprimento) por 5 unidades (altura) (figura 24). Cada unidade equivale a cerca de
1,5 cm no mundo real. A altura máxima é um número relativamente pequeno para
poder por um lado simular os problemas específicos que um ambiente com altura
maior que zero oferece e pelo outro lado não criar processamentos 3D complexos
demais (que poderiam alterar inclusive o foco do trabalho).
80
)LJXUD20XQGR9LUWXDOGH%,2$17
Dentro do mundo virtual há o ninho (cinza / branco, no centro), paredes altas
(vermelhas, no lado esquerdo), elevações de terra (tons de verde, no lado direito),
açúcar (áreas brancas, espalhadas pelo mundo) e água (poça azul).
No início da simulação, as formigas devem sair do ninho à procura de
alimentos. Elas se orientam no ambiente, passam informações às outras formigas
via trilhas de feromônio e levam o alimento até o ninho, onde comem, descansam e
saem novamente.
3UHGDGRUHV
Há dois predadores emulados no ambiente: um ser humano (simbolizado por
um sapato que pode esmagar formigas) e um pássaro que deve ficar observando
81
uma pequena região e comendo uma ou outra formiga.
Com relação ao sapato, o usuário pode escolher o lugar onde pretende pisar.
Durante esta fase de escolha, o sistema aguarda com a finalidade de facilitar a ação
do usuário e garantir o efeito desejado. Existe a possibilidade do usuário “pisar”
repetidamente usando vários sapatos e de retirar todos os sapatos de uma só vez
do ambiente (sendo que a paisagem abaixo de cada sapato geralmente encontra-se
destruída, como na natureza).
O pássaro é implementado na forma de um quadrado simbolizando seu
campo de visão. Este quadrado pode ser posicionado pelo usuário. Não há a
possibilidade de se posicionar vários pássaros no ambiente e por razões de
simplicidade o pássaro não se locomove por si só. Conforme as formigas vão
passando na frente dele, o pássaro tenta pegá-las. A chance de sucesso
configurada é de 10% por formiga e por iteração.
Perigos são avisados pela emissão de alomônio e as outras formigas devem
reagir de acordo: ou fugindo para outros lugares ou voltando diretamente para o
ninho.
$WXDOL]DomRGR$PELHQWH
O ambiente é constantemente atualizado:
•
conforme o açúcar é levado para o ninho, o cheiro diminui
até acabar completamente com o fim do alimento
•
as trilhas de feromônio são degradadas depois de um certo
número de passos (configurável pelo usuário)
•
as zonas de alerta marcadas por alomônios são degradadas
82
conforme parametrização
•
barulhos duram bem pouco tempo no ambiente se não
houver emissão constante
•
O número de formigas decresce de acordo com os incidentes
de morte que ocorrem no ambiente.
&DXVDVGH0RUWH
Mesmo não tendo um tempo de vida pré-definido na presente versão do
sistema, toda formiga pode morrer dentro do ambiente. Distingue-se entre as
seguintes causas:
•
A formiga se afoga ao entrar na água. No sistema BIOANT
este afogamento é instantâneo, apesar de durar mais tempo
na natureza dependendo da temperatura da água
•
A formiga pode ser esmagada pelo sapato. Neste caso a
formiga não tem como se defender ou alertar outras formigas
em tempo hábil. O ser humano na natureza também é o pior
dos predadores, pois o ferrão das formigas e o alomônio não
fazem efeito de uma maneira satisfatória (GORDON, 2002;
KAISER-BENZ, 2000).
•
A formiga pode ser comida pelo pássaro. Neste caso, pelo
menos, ainda há como avisar outras formigas do perigo pelo
alomônio. Além disso, o pássaro também não consegue
pegar todas as formigas que passam na frente dele.
•
A formiga pode morrer pela falta de alimento. Isto ocorre
83
quando o estômago comum estiver completamente vazio.
Para evitar este tipo de morte, a formiga sente fome com 10
ou menos unidades no estômago comum e dirige-se para o
ninho com a finalidade de ser alimentada.
•
As formigas do sistema BIOANT têm seu tempo de vida
ilimitado, ou seja, não há morte natural. Porém, o usuário
pode configurar um limite de simulação, o que se aproxima
ao resultado da implementação deste tipo de morte.
6HQVRUHV
Cada formiga faz uso de um conjunto de sensores.
•
Olfato
O olfato é o sentido mais importante da formiga, pois a formiga
comunica-se com os outros membros da colônia, seguindo
trilhas de feromônio ou evitando regiões com cheiro forte de
alomônio (KLÜGL, 2001).
A formiga não precisa entender quando há muito cheiro apenas,
mas também quando e onde o cheiro aumenta ou diminui para
poder usá-lo como guia (indicando a direção certa).
No sistema BIOANT a formiga tem a informação do cheiro atual,
os cheiros à frente (esquerda, centro, direita) e ainda o último
cheiro sentido no passo anterior (histórico) (figura 25). Saber a
intensidade do cheiro à frente antes de chegar em determinada
posição é um artifício, já que na natureza a formiga precisa
apenas se virar um pouco para sentir as diferentes intensidades.
84
)LJXUD(VTXHPDGHROIDWRGDIRUPLJD
Cada formiga do sistema BIOANT pode sentir cheiro de:
o Alomônio
o Feromônio
o Ninho
o Alimento
•
Tato
Para o tato, formigas reais usam as antenas. Com elas, as
formigas descobrem tamanho, forma e textura dos objetos.
No BIOANT as formigas têm a capacidade de “tocar” todos os
objetos diretamente à frente (ou seja, não incluindo aqueles ao
lado, pois as antenas não alcançam) (figura 26).
85
)LJXUD6HQWLGRGHWDWRGDIRUPLJD
Assume-se que a formiga sabe a partir do simples tato qual
objeto está à frente. Esta forma de processamento é uma
simplificação da realidade, onde a formiga não sabe de forma
direta qual objeto ela está tocando (mas ela pode descobrir
depois de um certo tempo).
•
Visão
No sistema BIOANT, a formiga pode enxergar seu ambiente
usando dois olhos de facetas (totalizando 40 facetas) ou
observar a posição do sol usando seus dois olhos de luz.
Na horizontal, a formiga pode “ver” elementos em um ângulo
máximo de 135o para a esquerda e 135o para a direita, ou seja,
a formiga só não consegue enxergar elementos atrás dela
(figura 27).
86
)LJXUD9LVmRGDIRUPLJDQDKRUL]RQWDO
Na vertical, a formiga pode perceber seu mundo até um ângulo
de 90o (para cima) e 22,5o para baixo (figura 28).
)LJXUD9LVmRGDIRUPLJDQDYHUWLFDO
Desta maneira, a formiga pode enxergar alturas diferentes (vista
de até 45o para cima) e fugir de eventuais perigos de cima dela
(vista 90o para cima) como também evitar a entrada em buracos
muito fundos (vista 22,5o para baixo).
Atrações visuais são usadas apenas na ausência de cheiros,
pois não tendo a habilidade de distinguir cores, a visão da
87
formiga é bastante limitada (veja também EGELHAAF HW DO,
2002).
•
Audição
As antenas da formiga captam o nível atual do barulho no
ambiente pelas vibrações causadas (figura 29). Desta forma, a
audição é um caso especial do tato da formiga, pois a formiga
na natureza não possui orelhas.
A audição não é usada para fins de comunicação, mas sim para
fins de alerta em situações com muito barulho (pois poderia ser
um
predador
desabamento
se
etc.).
aproximando,
Estas
uma
tempestade,
características
um
encontram-se
implementadas no sistema BIOANT.
O volume de barulho no mundo virtual deve ser um valor entre 0
(sem barulho) e 99 (mais alto possível).
)LJXUD6LVWHPDGHDXGLomRGDIRUPLJD
•
Estômagos
A formiga no BIOANT tem dois tipos de estômago: o estômago
social, a partir do qual a formiga alimenta outros membros da
88
colônia, e o estômago comum, que é o início da digestão da
própria formiga (figura 30).
É necessário implementar sensores nos dois casos, pois não faz
sentido a formiga procurar alimento no ambiente, se não tiver
mais espaço para carregá-lo no estômago social. Da mesma
forma a formiga pode morrer por falta de alimento e ela deve agir
de acordo, procurando o ninho para poder ser alimentada por
outras formigas.
Os sensores de estômago fornecem o nível de abastecimento
nos dois casos, com valores de 0 a 99.
)LJXUD6HQVRUHVGHHVW{PDJRGDIRUPLJD
$WXDGRUHVGH%DL[R1tYHO
Atuadores de baixo nível são, tecnicamente falando, procedimentos que
executam tarefas básicas de um ou poucos passos com um certo propósito dentro
da situação atual. Seguem-se as funções no sistema BIOANT, apresentadas com
os nomes que possuem dentro do programa.
•
“fugir_perigo”
Esta função (figura 31) consiste de três passos. Primeiramente,
a formiga muda a direção atual de maneira aleatória. Depois
89
libera alomônio para o ambiente com a finalidade de alertar as
outras formigas do perigo aumentando o passo (duas vezes a
velocidade normal) para fugir rapidamente. Para não “esquecer”
da situação de ameaça, um sensor interno de alerta será ligado,
ou seja, a formiga sabe se está “em pânico”.
)LJXUD3URFHGLPHQWR³IXJLUBSHULJR´
•
“fugir_alomonio”
Neste procedimento, a formiga comporta-se de forma parecida
ao caso anterior, porém sem liberar alomônio. Isto ocorre, pois a
formiga tenta justamente fugir de uma área de alomônio e liberar
o mesmo cheiro significaria um espiral sem fim de emissão de
alomônio e um ambiente cheio deste cheiro de alerta, até em
lugares improváveis.
•
“voltar_normalidade”
Quando o perigo acaba, ou seja, o cheiro de alomônio não
90
estiver mais presente, a formiga pode voltar à velocidade normal
e desligar o sensor de alerta.
•
“evitar_colisao”
Uma formiga não deve andar diretamente em cima de outra
formiga a não ser que não tenha outra saída (nesse caso uma
formiga ficará de fato por pouco tempo em cima da outra). Isso
ocorre para evitar estresse desnecessário, pois objetos acima da
formiga têm grandes chances de serem predadores ou
apresentar um perigo em geral e a formiga de baixo poderá
soltar alomônio sem ter necessidade.
Na hora de evitar a “colisão” com a outra formiga, há duas
saídas para fora da direção atual: para a direita ou para a
esquerda. Esta decisão é tomada de forma aleatória.
)LJXUD3URFHGLPHQWR³HYLWDUBFROLVmR´
•
“pegar_comida”
Quando a formiga não está com o estômago social cheio e
estabelece tato com alimento (água ou açúcar) ela deve
armazenar este alimento no estômago social (figura 33) até este
ficar cheio ou o alimento acabar. Voltando então ao ninho, a
91
formiga soltará feromônio no caminho que servirá para recrutar
mais formigas e guiá-las até o alimento.
É importante observar que as formigas costumam ter hábitos
bem distintos de alimentação (veja, por exemplo, BUCNO,
1998). Desta forma, o consumo de apenas água e/ou açúcar é
uma simplificação da situação real para fins de simulação.
)LJXUD3URFHGLPHQWR³SHJDUBFRPLGD´
•
“sair_alerta”
Caso não tenha modificado a velocidade ainda, neste atuador a
formiga aumenta o passo para duas vezes da velocidade normal
com o objetivo de sair rapidamente da zona de perigo. Caso
algum obstáculo seja encontrado no caminho, a formiga mudará
aleatoriamente de direção.
•
“sair_caminho_ruim”
Quando a formiga sai por exemplo de uma trilha de feromônio
ou entra numa zona de alerta, ela precisa mudar de direção.
Neste caso deve mudar aleatoriamente para dentro de qualquer
caminho livre para tentar restabelecer o “bom caminho”.
92
•
“entrar_ninho”
Quando a formiga está com o estômago social cheio ou sente
fome, ela deve entrar no ninho (figura 34) para descarregar o
estômago
social
alimentando
outra
formiga,
deixar
ser
alimentada, ficar mais um tempo “descansando” e sair
novamente. Na natureza o ninho também é lugar da rainha e de
reprodução. No sistema BIOANT porém, por razões de
simplificação, não se encontra implementada a reprodução, ou
seja, a simulação começa com um número fixo de formigas, que
podem morrer, mas não se reproduzem.
)LJXUD3URFHGLPHQWR³HQWUDUBQLQKR´
•
“seguir_atracao_frente”
Uma atração pode ser um cheiro ou a visão de um objeto a uma
certa distância (SHARKEY, 2003). Em situações de dúvida –
várias direções com atrações visuais ou por cheiro – a atração
em frente da formiga tem preferência, pois seguí-la não implica
em mudança de direção e evita um comportamento “localista” da
93
formiga (apenas se movimentando em círculos em uma
determinada área da tela).
•
“seguir_atracao_ambigua”
Quando a atração da frente não existe ou não está forte o
suficiente, as atrações dos lados são consideradas. Pode então
haver um empate entre os estímulos do lado direito e do lado
esquerdo. Neste caso a formiga escolherá aleatoriamente um
dos lados.
•
“seguir_atracao_direita”
Neste caso, a formiga deve seguir um pólo de atração à direita,
ou seja, também virar para a direita e depois seguir em frente.
•
“seguir_atracao_esquerda”
A formiga seguirá um pólo de atração à esquerda.
•
“buscar_sinal”
Quando não há sinal que pode servir como guia para a formiga,
ela mantém por um certo número de passos a direção atual e –
se não tiver resolvido o problema – muda aleatoriamente de
direção, seguindo desta maneira até encontrar um sinal.
,QWHUSUHWDGRU9LVXDO%DL[R1tYHO
Como as informações visuais estão sendo fornecidas em uma matriz de 8 por
5 e estas informações poderiam confundir os algoritmos ou causar dificuldades na
programação pelo grande número de diferentes casos possíveis, desenvolveu-se
interpretadores de baixo nível que fornecem para a visão para cima, para a frente,
94
para a esquerda, para a direita e para baixo os seguintes valores:
•
sem objetos
•
um objeto está longe
•
um objeto está perto
•
um objeto está muito perto
•
um objeto está muito perto e ele é baixo
•
um objeto está muito perto e ele é alto
$OJRULWPR6LPEyOLFR
O algoritmo simbólico (figura 35), que foi desenvolvido antes do algoritmo
simbólico-conexionista para validar as idéias de comportamento da formiga de uma
forma experimental, faz uso dos sensores, atuadores e interpretadores de baixo
nível (veja SCHAAL, 2003).
)LJXUD(VTXHPDGRDOJRULWPRVLPEyOLFRGH%,2$17
95
Este algoritmo consiste de uma lista de condições que é trabalhada em ordem
de prioridade, ou seja, se uma condição com mais prioridade já foi satisfeita, não
serão mais checadas condições de menos prioridade.
O algoritmo simbólico usa um total de 18 regras e não utiliza nenhuma
estrutura de autômato para garantir a seqüência, que é estabelecida pelo correto
uso da regra e a inclusão de alerta e estômagos na avaliação apenas.
A interpretação do quadro a seguir (figura 36) funciona da seguinte forma:
(exemplo da primeira condição)
se ((tato==predador)
ou (objeto_acima==muito_perto)
ou (barulho>=10))
então fugir_perigo
senão (continuar na seqüência)
96
)LJXUD2FRQMXQWRFRPSOHWRGHUHJUDVGRDOJRULWPRVLPEyOLFRGR%,2$17
É interessante observar que todos os valores descritivos (longe, perto, muito
perto, baixo etc.) correspondem a valores numéricos com a finalidade de facilitar o
processamento.
,QWHUSUHWDGRUHV$OWR1tYHO
Além dos sensores e interpretadores de baixo nível, o sistema BIOANT faz
uso de interpretadores de um nível mais abstrato com a finalidade de uso junto ao
algoritmo simbólico-conexionista.
97
São estes interpretadores:
•
“perigo_presente”
Esta função verifica se há ou não perigo presente para a formiga
atual, mais especificamente se há um predador por perto ou se
há barulho ou objetos acima da formiga que implicam na
probabilidade da iminência de perigo.
•
“objeto_visual_presente”
Este interpretador informa se há ou não um objeto no campo de
visão da formiga, porém sem especificar onde se encontra este
objeto e a qual distância.
•
“tato_alimento_presente”
Esta função determina se a formiga atual estabeleceu tato com
água ou açúcar diretamente a frente dela.
•
“entrada_ninho_presente”
Se a formiga estiver de frente para a entrada do ninho, esta
função retorna “verdadeiro”. É importante observar que não
basta estar apenas de frente para o ninho, pois a entrada se
encontra na parte de cima do ninho.
•
“cheiro_alomonio_presente”
Esta função determina se há a presença de alomônio por perto,
ou seja na posição atual da formiga ou diretamente a frente dela.
•
“cheiro_feromonio_presente”
Este interpretador devolve “verdadeiro” se tiver cheiro de
98
feromônio perto da formiga atual.
•
“cheiro_ninho_presente”
A função “cheiro_ninho_presente” analisa a presença do ninho
pelo cheiro que ele emite. Como é um cheiro forte, normalmente
encontra-se presente em praticamente todo o mundo virtual.
•
“cheiro_alimento_presente”
Perto do alimento haverá cheiro que indica sua presença. Este
interpretador determina se o cheiro encontra-se próximo à
formiga atual.
•
“fome_presente”
A função “fome_presente” analisa se a formiga atual está com
fome, ou seja, se o nível de alimento no estômago comum está
baixo.
•
“carga_presente”
Em analogia ao interpretador anterior, “carga_presente” devolve
se há algo no estômago social da formiga, o que é entendido
como carga, pois será transportado para o ninho com a
finalidade de alimentar outras formigas.
•
“prestes_a_sair_do_ninho”
Neste caso, trata-se de um artifício que serve apenas como
ponto inicial de seqüência. Não é uma função, mas uma entrada
de rede que é colocada em “1” sempre que a formiga descansa
no ninho.
99
$WXDGRUHV$OWR1tYHO
No algoritmo simbólico-conexionista do BIOANT a rede neural escolhe qual
controladora simbólica (ou seja, qual atuador de alto nível) será usada em
determinada situação.
São tais atuadores:
•
“saia do ninho!”
Este procedimento controla a saída da formiga do ninho e
(diferente do atuador de baixo nível) fica tentando fazer a
formiga sair se a saída do ninho estiver bloqueada.
•
“explore ambiente!”
Esta rotina faz a formiga explorar o ambiente, seguindo em um
primeiro instante geralmente apenas atrações visuais. Caso já
haja atrações olfativas, outros procedimentos se aplicam (veja
abaixo). Na ausência de sinais, a função faz a formiga
locomover-se aleatoriamente até achar um sinal que possa ser
usado como referência.
•
“segue cheiro feromônio!”
É um procedimento específico para a formiga não sair
acidentalmente de uma trilha de feromônio. A formiga não
entende apenas quando está se movendo para a direção errada
(para fora da trilha), mas também qual será a direção correta:
aquela com o maior cheiro de feromônio.
•
“segue cheiro alimento!”
100
O funcionamento é igual à função anterior, mas é aplicado ao
cheiro de alimento.
•
“pegue alimento!”
Este procedimento faz a formiga continuar comendo até quando
estiver com o estômago social cheio ou o alimento à frente
terminar.
•
“ache cheiro ninho!”
Após comer, a formiga deve se preocupar em achar o ninho.
Sendo assim, primeiramente ela precisa achar o cheiro do ninho
que irá guiá-la até a entrada. O procedimento é praticamente
idêntico ao da rotina de exploração de ambiente, com a
diferença de que, no primeiro caso, o procedimento deve ser
usado até achar cheiro de feromônio ou cheiro de alimento, e no
caso da rotina “ache cheiro ninho!” deve-se usar como condição
de finalização o encontro do cheiro de ninho.
•
“segue cheiro ninho!”
Uma vez achado o cheiro do ninho, a formiga pode seguí-lo
como no caso de feromônio ou alimento. A presente rotina
encarrega-se deste funcionamento.
•
“entre no ninho!”
Frente ao ninho, a formiga deve entrar. É um funcionamento
simples, que é feito por este procedimento.
•
“alerta perigo!”
101
Como primeiro passo após descobrir um perigo próximo, a
formiga deve soltar alomônio para alertar as outras formigas que
poderiam passar pelo local e também aumentar o passo para
sair rapidamente do perigo. A função “alerta perigo!” faz este
trabalho.
•
“foge do perigo!”
A formiga foge do perigo usando as “trilhas” de alomônio das
quais tenta fugir de uma forma mais eficiente, procurando andar
na direção do menor valor de alomônio possível. Ao mesmo
tempo a formiga deve tentar se orientar pelo cheiro do ninho,
pois o ninho servirá – na versão atual do sistema – como abrigo
em casos de perigo.
$OJRULWPR6LPEyOLFR&RQH[LRQLVWD
A parte simbólica do algoritmo simbólico-conexionista compreende os
elementos explicados nos itens anteriores (interpretadores e atuadores de alto
nível) (figura 37) (veja MILLAN, 2003).
102
)LJXUD(VTXHPDGRDOJRULWPRVLPEyOLFRFRQH[LRQLVWDGH%,2$17
O gerenciamento de atuadores a partir de interpretadores é tarefa da rede,
que trabalha com seqüências de pares “interpretador:atuador”. Estas seqüências
também podem ser entendidas como uma programação mais abstrata de passos. O
sistema BIOANT possibilita a programação destes passos pelo usuário. Com a
finalidade de se obter resultados concretos, criou-se um conjunto inicial padrão de
cinco seqüências.
É importante observar que não apenas o atuador correto será escolhido a
partir de um interpretador em combinação com a situação atual, mas também os
interpretadores a serem desconsiderados no próximo passo. Este procedimento tem
o objetivo de simplificar o funcionamento da rede junto ao ambiente virtual, onde
103
pode haver muito ruído que potencialmente interfere nos resultados.
•
Topologia de Rede
A rede usada é uma rede recorrente de três camadas (entradas
binárias, camada escondida e saídas) (figura 38). As entradas
correspondem aos interpretadores de alto nível, as saídas são
ligadas nos atuadores de alto nível. Nas entradas não ocorre
amplificação, ou seja, cada entrada corresponde exatamente a
um interpretador.
A propagação dos sinais é feita das entradas para a camada
escondida, da camada escondida para as saídas e das saídas
retornando à camada escondida. Isto significa que na ativação
da camada escondida deve-se levar em consideração, a cada
passo, o estímulo das entradas, mas também os sinais
retropropagados das saídas.
)LJXUD7RSRORJLDHVTXHPDWL]DGDGDUHGHGRVLVWHPD%,2$17YHUPHOKR HQWUDGDVDPDUHOR QHXU{QLRVHVFRQGLGRVYHUGH VDtGDV
104
•
Algoritmo de Aprendizado
O algoritmo de aprendizado usado é o algoritmo GeneRec em
uma de suas diversas variações (O’REILLY, 1996) descrita no
item 2.3.2. Este algoritmo representa uma maneira mais
biologicamente plausível de ensinar a rede (O’REILLY, 1996).
É importante observar que a rede funciona nas duas fases
(menos e mais) apenas durante o processo de aprendizado.
Para o reconhecimento, isto é, quando já tiver atingido o nível de
conhecimento desejado, a rede é usada apenas na fase menos
(expectativa da rede). Isso é trivial, pois o sinal “mais” é o sinal
de treinamento que não existe em situações reais.
•
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
4
4
4
5
5
5
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
1
2
3
4
1
2
3
1
2
3
0
0
0
0
0
(INIBIDA)
(INIBIDA)
(INIBIDA)
0
0
0
0
(INIBIDA)
(INIBIDA)
(INIBIDA)
/
(INIBIDA)
(INIBIDA)
(INIBIDA)
0
(INIBIDA)
(INIBIDA)
0
(INIBIDA)
(INIBIDA)
0
Conjunto Pré-Programado de Seqüências
! "
# $# ! 0
0
0
(INIBIDA) (INIBIDA)
0
(INIBIDA) (INIBIDA) (INIBIDA)
0
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
/
(INIBIDA)
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
/
(INIBIDA) (INIBIDA)
(INIBIDA)
0
0
0
0
/
(INIBIDA) (INIBIDA)
0
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
/
(INIBIDA)
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA)
0
(INIBIDA)
0
0
0
0
/
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
/
(INIBIDA) (INIBIDA)
(INIBIDA)
0
0
0
0
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
/
(INIBIDA) (INIBIDA)
(INIBIDA)
/
0
0
0
(INIBIDA) (INIBIDA) (INIBIDA) (INIBIDA)
/
(INIBIDA) (INIBIDA)
(INIBIDA)
/
$# %
! $# # 0
0
(INIBIDA) (INIBIDA)
/
(INIBIDA)
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA)
/
(INIBIDA)
(INIBIDA) (INIBIDA)
0
0
(INIBIDA) (INIBIDA)
0
(INIBIDA)
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA)
/
(INIBIDA)
(INIBIDA) (INIBIDA)
0
0
(INIBIDA) (INIBIDA)
/
(INIBIDA)
(INIBIDA) (INIBIDA)
0
0
/
(INIBIDA)
(INIBIDA) (INIBIDA)
0
0
/
(INIBIDA)
(INIBIDA) (INIBIDA)
$# ! %
! $
0
0
0
(INIBIDA) (INIBIDA) (INIBIDA)
0
0
(INIBIDA)
/
0
(INIBIDA)
(INIBIDA)
0
(INIBIDA)
/
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
0
0
0
(INIBIDA) (INIBIDA) (INIBIDA)
/
0
(INIBIDA)
(INIBIDA)
0
(INIBIDA)
/
(INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
0
0
0
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
/
0
0
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
0
0
0
(INIBIDA) (INIBIDA) (INIBIDA)
(INIBIDA) (INIBIDA) (INIBIDA)
/
****
****
****
****
****
****
****
/
****
****
****
****
****
****
0000
****
****
****
0000
****
****
0000
****
****
)LJXUD6HTrQFLDVSDGUmRSDUDRWUHLQDPHQWRGDUHGH
"
* # &
+,
'(
- %
$( %
')
. saia do ninho!
explore ambiente!
segue cheiro feromônio!
segue cheiro alimento!
pegue alimento!
ache cheiro ninho!
segue cheiro ninho!
entre no ninho!
saia do ninho!
explore ambiente!
segue cheiro alimento!
pegue alimento!
ache cheiro ninho!
segue cheiro ninho!
entre no ninho!
alerta perigo!
foge do perigo!
segue cheiro ninho!
entre no ninho!
ache cheiro ninho!
segue cheiro ninho!
entre no ninho!
foge do perigo!
segue cheiro ninho!
entre no ninho!
105
O conjunto pré-programado (figura 39) de seqüências é uma maneira rápida e
eficiente de instruir a rede neural para guiar a formiga dentro do ambiente, tratando
tanto as situações de busca de alimento como também perigos e a eventual fome
da formiga.
O usuário pode ajustar o conjunto de treinamento para fazer experiências com
outros padrões de comportamento.
$SOLFDomRGRV&RQFHLWRV
Aplicam-se diretamente os conceitos básicos mencionados anteriormente
(item 2) na implementação do sistema BIOANT. No presente item será feita uma
contextualização mais detalhada.
&DUDFWHUtVWLFDVH$UTXLWHWXUDGR$JHQWH%,2$17
As formigas do sistema BIOANT são agentes inteligentes. Elas têm as
seguintes características básicas:
•
Autonomia: dentro do conjunto de regras estabelecido ou
usando a rede neural como controladores (dependendo do
modo de operação) o agente toma decisões de uma forma
independente do usuário ou de outros agentes.
•
Habilidade social: as formigas não se comunicam com o
usuário, mas precisam se comunicar entre elas. Desta forma
elas precisam ter habilidades sociais.
•
Percepção: cada formiga usa seus sensores para entender a
situação atual no ambiente. Os dados obtidos pelos sensores
passam – dependendo do caso – ainda por interpretadores
106
antes da formiga tomar alguma decisão baseada na sua
percepção.
•
Pró-atividade: é difícil separar ação de reação, pois de certa
forma todo comportamento pode ser interpretado como
reação a alguma ação anterior (mesmo distante). Limitando
então um pouco o escopo daquilo que seja “ação”, pode-se
interpretar que a formiga não apenas reage a seu ambiente,
mas também age, por exemplo soltando feromônio ou
alomônio quando considera adequado e sem a intervenção
do usuário. Desta forma há pró-atividade.
•
Comunicabilidade: as formigas usam cheiros como meio de
comunicação. Desta forma elas estabelecem um ambiente de
cooperação.
Dentro das demais características desejáveis, as formigas do BIOANT podem
ser descritas da seguinte forma:
•
Flexibilidade: mesmo que o ambiente não mude no sistema,
as
formigas
ambientes
estão
preparadas
diferentes,
processamento
que
pois
não
para
são
são
enfrentar
usadas
específicas
vários
formas
para
de
uma
determinada configuração de mundo virtual, mas que podem
se aplicar em várias situações. Sendo assim, as formigas
apresentam flexibilidade.
•
Racionalidade:
os
agentes
do
BIOANT
trabalham
exclusivamente para seus interesses e os interesses da
107
colônia (nesta ordem). Atendem, portanto, ao requisito de
racionalidade.
•
Agenda de Tarefas: há um entendimento de fases na
abordagem simbólico-conexionista, onde cada formiga deve
se concentrar em determinadas tarefas durante certas
circunstâncias no ambiente. Isso – e a lista de regras no
algoritmo simbólico – pode ser entendido como uma agenda
de tarefas.
Os agentes do sistema BIOANT seguem princípios da arquitetura de agentes:
•
Controlador: controlador no caso do algoritmo simbólico é a
lista de prioridades. Controlador do algoritmo simbólicoconexionista é a rede neural artificial.
•
Configurador: o configurador pode ser entendido como as
próprias condições implementadas (algoritmo simbólico) ou
os dados de treinamento (algoritmo simbólico-conexionista).
•
Interfaces: as formigas do BIOANT não têm interface direta
com o usuário, que apenas pode interferir no ambiente
através da inserção de predadores e da configuração geral
do ambiente.
•
Outros Agentes e Ambiente: a interface com os outros
agentes é feita através do próprio ambiente (pelos cheiros
emitidos). As formigas reconhecem estes cheiros e outras
características do ambiente e agem de acordo.
•
Mobilidade: as formigas têm mobilidade dentro do mundo
108
virtual, mas não através de uma rede de computador para
computador, considerado fora do escopo do projeto.
As formigas do BIOANT seguem uma configuração específica que se pode
verificar na seguinte tabela (figura 40):
,WHP
Cognição
5HDOL]DomRQR%,2$17
Agente cognitivo, pois tem um modelo interno simples da
realidade virtual que o cerca
Foco
Similaridades comportamentais com formigas reais
Interação
Interação possível com outros agentes
Mobilidade
Máquina individual (em um mundo virtual)
Perspectiva
Simulação social
Abertura
Apesar do mundo ser um ambiente pré-definido, o sistema por
sua natureza é um sistema aberto que está preparado para
mudanças. Durante o processamento há várias alterações
dinâmicas (quantidade de comida, cheiros e barulho como
também eventuais predadores)
Granularidade
Na versão atual pode-se configurar livremente um ambiente de 1
a 100 formigas
Homogeneidade Os agentes são iguais na versão atual, porém, preparados para a
modificação deste item pelo fato de cada agente usar a própria
rede neural
Interação
Há um ambiente de cooperação entre os agentes que se
comunicam por cheiros e evitam se atrapalhar na locomoção
)LJXUD&RQILJXUDomRGDVIRUPLJDVGR%,2$17
O sistema BIOANT foi programado usando Visual C++ .NET, ou seja, não foi
usada nenhuma plataforma de construção, apesar do fato de existir uma série de
sistemas no mercado que poderiam ter facilitado o trabalho, como por exemplo o
SeSam (KLÜGL, 2001) com o qual já foram desenvolvidas simulações complexas
de colônias de formigas (KLÜGL HWDO, 2001).
Preferiu-se usar uma programação de mais baixo nível para ser possível ter
maior controle, liberdade e principalmente ser possível implementar a rede neural
corretamente.
Como o sistema BIOANT não foi criado, num primeiro passo, com a finalidade
109
de atender às necessidades de usuário, mas sim simular certos fatores de
comportamento de uma pequena colônia de formigas, não faz sentido falar em
vantagens, apesar do fato de que na natureza a mesma organização tem vantagens
óbvias para a sobrevivência da colônia.
3URMHWRGH9LGD$UWLILFLDO
Sendo uma simulação de uma colônia de pequenos animais, o projeto
BIOANT é um projeto de vida artificial.
•
Morfogênese: o nível mais baixo de implementação é o nível
dos sensores e atuadores de baixo nível. Futuramente podese pensar em descer a níveis mais profundos com a primeira
finalidade da criação de um robô em hardware (verifique item
4.4).
•
Ontogênese: cada formiga tem uma memória de curto prazo
implementada pela rede recorrente na abordagem simbólicoconexionista. Desta forma, as formigas usam experiências
para agir da forma certa, porém, não há aprendizado na fase
de simulação. Isto seria também um foco de interesse de
uma futura versão, na qual as formigas aprendem com o
ambiente, dispensando qualquer treinamento anterior feito
pelo usuário (verifique item 4.4).
•
Filogênese: atualmente não há nascimento de novas
formigas, portanto, sem a possibilidade de haver evolução.
Em um sistema mais aberto porém, como planejado para
futuras implementação, é imperativo que haja filogênese
110
(verifique item 4.4).
•
Cultura: Não havendo filogênese, também não há cultura por
não haver várias gerações. A partir do momento em que a
filogênese
estiver
implementada,
pode-se
pensar
na
implementação de cultura. Deve-se neste caso apenas fazer
a pergunta se as formigas realmente têm cultura ou se elas
não nasceram já com um certo comportamento fixo (veja item
3.4.4).
•
Eliminação: formigas podem ser mortas por predadores ou
circunstâncias adversas (falta de alimento, afogamentos).
Existe de fato então eliminação, mas esta forma de seleção
não transmite ainda uma mensagem com relação a
indivíduos mais ou menos preparados, pois atualmente todos
os indivíduos têm as mesmas características.
•
Dinâmica: o ambiente é dinâmico, satisfazendo assim um dos
requisitos de sistemas de Vida Artificial.
•
Implementação: a implementação inicialmente foi feita
apenas em software, ou seja, criou-se uma simulação
computacional. Pela facilidade de manipulação dos dados,
tratou-se de um importante passo inicial – futuramente podese pensar em uma implementação em KDUGZDUH, criando um
robô real. Desta forma, o projeto poderia apresentar
resultados mais concretos ou até mesmo servir como base
para projetos comerciais (veja item 4.2).
111
-XVWLILFDWLYDGR8VRGH5HGHV1HXUDLV
Em relação ao uso de abordagens conexionistas, há questionamentos
freqüentes de pesquisadores (principalmente daqueles mais acostumados com
abordagens simbólicas) em relação às vantagens do seu uso. Os pontos a seguir
são as justificativas do uso da Rede Neural Artificial Biologicamente mais Plausível
dentro do contexto do projeto BIOANT.
•
Realismo Biológico
As Redes Neurais Artificiais são por si só abordagens mais
biologicamente plausíveis quando usadas em projetos de Vida
Artificial, pois os cérebros de seres humanos e animais (mesmo
pequenos) são construídos por um conjunto de neurônios. Com
uma Rede Neural Artificial modela-se então parte de uma
realidade biológica dos seres vivos enquanto abordagens
baseadas em regras os reduzem a resultados comportamentais
e aspectos de computabilidade. Desta forma, as redes neurais
artificiais são mais adequadas e parecem ser, no futuro, mais
propícias para evolução artificial (verifique item 3.6).
•
Emergência
Emergência é a organização espontânea dentro de um ambiente
com regras simples que definem apenas os limites, mas não o
comportamento em si. Tirando suas próprias conclusões, redes
neurais podem criar novos comportamentos sem ninguém ter
explicitamente pensado neles. No caso concreto do BIOANT não
há
aprendizado
contínuo,
mas
várias
tentativas
de
112
implementação de rede que não funcionaram da maneira
prevista, não apenas serviram para iniciar uma mudança na
topologia da rede, mas também nos dados em si. Desta forma,
houve influência imprevista pelo lado da rede no processo de
desenvolvimento, uma forma de emergência (GORDON, 2002;
JOHNSON, 2003).
•
Flexibilidade
Como a rede apenas disponibiliza os meios de programação,
mas não fornece a programação em si, ela é – por sua natureza
– uma entidade flexível que pode aceitar vários conjuntos de
seqüência diretamente sem ajuste nenhum no código fonte do
programa. Regras, pelo outro lado, são por natureza algo muito
mais fácil de se implementar de maneira fixa, pois o próprio
ambiente de desenvolvimento da linguagem de programação
(neste caso Visual C++ .NET) é um ambiente que faz uso de
regras.
Esta
maior
flexibilidade
é
fundamental
para
futuros
desenvolvimentos (veja item 4.4), pois sistemas realmente
abertos, prontos para trabalharem com evolução, precisam disto.
•
Simplicidade
As Redes Neurais Artificiais precisam de poucas linhas de
código para programá-las de uma maneira eficiente e podem –
dependendo das dimensões – absorver um número grande de
conjuntos ou até entender ambientes complexos por si só. Desta
113
forma há uma simplicidade muito maior quando comparados
com algoritmos simbólicos baseados em regras, que geralmente
consomem muitas linhas de código (dependendo do caso) e são
muito mais difíceis de depurar (no caso da rede, a “máquina” e
as regras são separadas, em soluções simbólicas não
costumam ser).
•
Performance
Algoritmos com conjuntos grandes de regras ou principalmente
recursivos (como em SCHNEIDER, ROSA, 2002, 2003) gastam
muito tempo de processamento de uma forma imprevisível
(processamento e tempo necessário podem ser exponenciais),
enquanto a rede processa os dados sempre da mesma forma.
Assim, a performance se mantém constante. Quem usa a rede
pode fazer previsões mais exatas de resolução de problemas.
•
Demonstração de Uso
O
sistema
abordagens
BIOANT pretende
conexionistas
não apenas mostrar que
podem
ser
melhores
do
que
abordagens simbólicas (verifique item 3.4.2), mas também, que
Redes Neurais Biologicamente mais Plausíveis (neste caso a
rede recorrente com o algoritmo de aprendizado *HQH5HF) são
adequadas para o processamento em um sistema de Vida
Artificial (verifique, por exemplo, item 3.4.1). É interessante
realizar experimentos com abordagens conexionistas como
contribuição ao desenvolvimento desta área de pesquisa.
114
5HVXOWDGRV
Neste item serão discutidos os resultados obtidos pelo sistema BIOANT.
$SUHQGL]DGR
Como primeiro ponto, avaliou-se o sucesso de treinamento da rede neural
artificial através do número de iterações necessárias, os neurônios na camada
escondida, a taxa de aprendizado e a taxa de recorrência.
Partindo de uma rede com 20 neurônios na camada escondida, uma taxa de
aprendizado de 0,7 (compare com o item 2.3.2) e uma taxa de recorrência de 1,0
(100% de recorrência), chegou-se ao seguinte resultado (figura 41):
1322 465 798
)LJXUD,WHUDo}HVQHFHVViULDVSDUDVHFRQVHJXLUGHWD[DGHHUURLVWRp
XPDVLWXDomRVHPHUURVQRSURFHVVDPHQWRHL[R[ LWHUDo}HVHL[R\ WD[DGH
HUUR
Já com apenas 40 iterações o conjunto de seqüências padrão encontra-se
100% aprendido. Desta forma, o aprendizado pode ser considerado bem-sucedido.
Examinando a figura 42, é possível afirmar que a melhor configuração para a
camada escondida consiste de 12 neurônios. Apesar de variações consideráveis
115
mesmo com um número maior de neurônios, deve-se considerar a tendência geral
de melhorar o aprendizado com números maiores de neurônios escondidos.
É importante destacar que as figuras 42, 43 e 44 consideram situações de
aprendizado com 30 iterações executadas, ou seja, onde não há 0% de erro ainda,
justamente para poder avaliar melhor as diferenças até este ponto.
1322 465 798
)LJXUD1HXU{QLRVQDFDPDGDHVFRQGLGDHL[R[HWD[DGHHUURHL[R\
De forma parecida, também pode-se observar uma tendência com relação à
taxa de aprendizado (figura 43). Taxas viáveis começam com 0,5 (como se pode
verificar na figura 43). Na implementação do BIOANT, escolheu-se a taxa de 0,7
como padrão, pois se trata do valor mínimo obtido (figura 43).
116
E>:
D>:
C :
B>:
A :
T>U U VHW XLY
@ :
?>:
=>:
;<:
:
FJI
FHG
KI
FHG
M I
FLG
NJI
FHG
OI
FHG
I
FHI G
P I
FHG
Q I
FHG
R I
FHG
SJI
FLG
)LJXUD7D[DGHDSUHQGL]DGRHL[R[HWD[DGHHUURHL[R\
Foi implementada no sistema BIOANT uma taxa de recorrência configurável.
Esta taxa é o fator do sinal recorrente vindo das saídas. Se o valor for baixo, a
influência da recorrência diminui e a rede começa a trabalhar de uma maneira
IHHGIRUZDUG. Apesar do fato de que o sistema BIOANT – pela abordagem escolhida
– assume que este valor sempre deve ficar em 1 (ou seja, deve haver 100% de
recorrência), o seguinte diagrama (figura 44) mostra, que existem erros menores
com taxas diferentes.
E
D
C
B
A
T>U U VHW XLY
@
?
=
;
:
:[Z ;\:[Z =]:[Z ?^:[Z @
:[Z A
:[Z B^:[Z C
:[Z D^:>Z E
;
)LJXUD7D[DGHUHFRUUrQFLDHL[R[HWD[DGHHUURHL[R\
117
&RPSDUDomRGDV$ERUGDJHQV
Para demonstrar a eficiência do algoritmo híbrido (simbólico-conexionista),
testes foram feitos comparando-o com o resultado do algoritmo simbólico.
Escolheu-se duas situações sem predador no ambiente e uma com a presença de
um predador (sapato no lado esquerdo da tela).
$OJ6LPE
$OJ+tEULGR
)LJXUD3ULPHLURWHVWHHPXPDPELHQWHVHPSUHGDGRUHL[R[ LWHUDo}HV
HL[R\ TXDQWLGDGHGHDo~FDUQRDPELHQWH
No primeiro teste (figura 45) pode-se observar que o algoritmo híbrido
consegue acabar antes com o açúcar do ambiente, mesmo que o algoritmo
simbólico inicialmente seja mais eficiente. Isto se deve ao fato que o algoritmo
simbólico costuma demorar para achar pequenos restos de açúcar no final da
118
simulação.
_a` b[cdfe g9hic
_a` b[ckjml h>2e ni4
)LJXUD6HJXQGRWHVWHHPXPDPELHQWHVHPSUHGDGRUHL[R[ LWHUDo}HV
HL[R\ TXDQWLGDGHGHDo~FDUQRDPELHQWH
No seguinte teste (figura 46) o resultado da rede ficou muito melhor ainda,
pois conseguiu levar todo açúcar para o ninho de uma forma direta, enquanto o
algoritmo simbólico continua sofrendo os mesmos problemas mencionados
anteriormente (figura 45).
Com relação à diferença entre os dois testes é importante destacar que não
houve alteração no ambiente, apenas diferentes ordens na saída das formigas do
ninho.
119
_a` b[cdfe g9hic
_a` b[ckjml h>2e ni4
)LJXUD7HVWHHPXPDPELHQWHFRPSUHGDGRUHL[R[ LWHUDo}HVHL[R\ TXDQWLGDGHGHDo~FDUQRDPELHQWH
Finalmente analisando os dois algoritmos em uma situação com a presença
de um predador (figura 47), pode-se observar que o algoritmo híbrido (simbólico
conexionista) está mantendo sua vantagem desde o início. As finalizações estão
próximas uma da outra, mas o algoritmo simbólico conexionista mesmo assim
conseguiu uma diferença notável.
É importante destacar que muitos testes afirmaram estes resultados aqui
mencionados, porém, como o ambiente é dinâmico (com inclusive alguns
imprevistos e uma pequena percentagem de ações aleatórias), as situações podem
variar bastante. Assim, houve em vários testes valores de 1500 até 7500 iterações
para ambos os algoritmos.
Com relação à rede, é importante treiná-la bem para conseguir um
conhecimento sólido que pode ser aplicado de uma forma melhor a situações
desconhecidas.
120
2UJDQL]DomR
Colônias de formigas costumam ter milhões de indivíduos (KAISER-BENZ,
2000). No sistema BIOANT existe a possibilidade de configurar de 1 a 99 formigas.
Apesar do fato de que mesmo uma única formiga sabe o que deve fazer no
ambiente, este processamento unitário faz pouco sentido, primeiramente porque o
transporte até o ninho leva muito mais tempo e segundo porque esta situação não
tem plausibilidade biológica por causa do comportamento social das formigas
(GORDON, 2002).
Desta forma, examinou-se situações de 10 a 99 formigas para estabelecer um
número ideal para a tarefa proposta. Pode-se ver (figura 48) que 40 formigas
conseguem transportar todo alimento até o ninho quase ao mesmo tempo que 99.
Levando em consideração princípios de custo e lucro, esta então passou a ser
considerada a configuração ideal para a colônia do BIOANT.
É importante destacar que este resultado (figura 48) e os demais (figura 49 a
figura 54) referem-se exclusivamente ao funcionamento do BIOANT com o
algoritmo simbólico-conexionista.
Pequenas perturbações nos resultados podem ser interpretadas como ruído
resultante do ambiente aberto, no qual as formigas saem do ninho em ordem
aleatória e onde há a possibilidade de ações não previstas (quando não há sinais
ou quando existe ambigüidade).
121
3DVVRV
)LJXUD1~PHURGHIRUPLJDVQRDPELHQWHHL[R[UHODFLRQDGRFRPRQ~PHUR
GHLWHUDo}HVDWpRDo~FDUDFDEDUHL[R\
&RPXQLFDomRSRU&KHLURV
O olfato é o sentido principal da formiga pelo qual ela estabelece uma forma
de comunicação (chamado de “VWLJPHUF\” por KLÜGL, 2001). Desta forma a
influência da parametrização dos cheiros no resultado final (fim do açúcar) foi
estudada.
t p o[o
t[omo[o
s p o[o
s[omo[o
zi{}|}|<~<|
q p o[o
qromo[o
p o[o
o
u
v
w
x
y
u u
uv
uw
ux
uy
)LJXUD1~PHURGHFDVDVGRDOFDQFHGHIHURP{QLRHL[R[HPUHODomRDR
Q~PHURQHFHVViULRGHLWHUDo}HVDWpRDo~FDUDFDEDUHL[R\
122
O alcance do cheiro de feromônio é importante para o processamento na
simulação, como demonstra a figura 49. Trilhas largas de feromônio (cerca de 11
casas) são vantajosas, porém, se forem largas demais (a partir de 14 casas)
começam a confundir as formigas, aumentando o número de passos necessários
até o fim da simulação.
[€‚‚i4<
)LJXUD,WHUDo}HVDWpXPSDVVRGHGHJUDGDomRGHIHURP{QLRHL[R[H
LWHUDo}HVDWpRDo~FDUDFDEDUHL[R\
A degradação do feromônio é importante para a dinâmica do processamento.
Trilhas antigas não devem ser seguidas, pois o alimento no ponto final deles
provavelmente já acabou. Pelo outro lado, as trilhas não podem degradar de uma
forma rápida demais para poder recrutar e guiar mais formigas. Nos testes
realizados, o ponto de equilíbrio foi um passo de degradação a cada 140 iterações
(figura 50).
123
[€‚‚i4<
)LJXUD1~PHURGHFDVDVTXHRFKHLURGRQLQKRDOFDQoDHL[R[HPUHODomR
FRPRQ~PHURGHLWHUDo}HVDWpRILPGRDo~FDUHL[R\
O ninho precisa emitir um cheiro razoável para poder atrair as formigas que
estão com comida no estômago social. Foi interessante observar que um cheiro
presente em todo o mundo virtual (70 casas) não representa o caso ideal, mas sim
o cheiro que cobre 2/3 do ambiente (30 casas de alcance) (figura 51). Este
resultado foi obtido com o tamanho de 80 x 45 x 5 (veja item 3.2.1). Porém, ainda
precisa ser validado para ambientes com tamanhos diferentes.
‡[ƒmƒ[ƒ
† „ ƒ[ƒ
†[ƒmƒ[ƒ
… „ ƒ[ƒ
‰iŠ}‹}‹<Œ<‹
…rƒmƒ[ƒ
„ ƒ[ƒ
ƒ
…
…iƒ
†mƒ
‡[ƒ
ˆ3ƒ
)LJXUD$OFDQFHGRFKHLURGHDOLPHQWRHL[R[HLWHUDo}HVDWpRILPGR
Do~FDUHL[R\
124
O cheiro de alimento (que sofre constantes alterações conforme o alimento
está sendo levado até o ninho) também não deve cobrir o mundo virtual todo, pois
esta situação confunde as formigas. No caso deste cheiro, o ponto ideal encontrase em 20 casas alcançadas.
Pelos testes feitos, é complicado fazer afirmações com relação ao alomônio
(figuras 53 e 54). Aparentemente, os melhores resultados ocorrem com um alcance
médio (20 casas) e uma duração bem curta (atualização a cada passo). Este
resultado também precisa ser validado para ambientes diferentes.
[€‚‚i4<
)LJXUD$OFDQFHGRFKHLURGHDORP{QLRHL[R[HPUHODomRjVLWHUDo}HVDWpR
Do~FDUDFDEDUHL[R\
125
[€‚‚i4<
)LJXUD,WHUDo}HVDWpXPSDVVRGHGHJUDGDomRGHDORP{QLRHL[R[H
LWHUDo}HVDWpRILPGRDo~FDUQRDPELHQWHHL[R\
Os resultados mostram que no mundo virtual deve existir um equilíbrio bem
elaborado para se chegar em um mínimo de iterações.
Também provou-se que a abordagem simbólico-conexionista é adequada para
a tarefa proposta, servindo como controladora das formigas virtuais.
4XHVW}HV3HUWLQHQWHV
Existe uma grande variedade de questões levantadas, na grande maioria
dúvidas que surgiram pela falta ou impossibilidade de conhecimento biológico. O
grande problema neste caso é o foco diferente entre ciência da computação e
biologia: enquanto a informática precisa descrever todos os conteúdos de maneira
muito exata, pois o computador atual não entende assuntos abstratos, a biologia
desenvolve pesquisas que geralmente não chegam ao nível de detalhamento
necessário para o analista.
A seguir várias perguntas que devem mostrar esta dificuldade:
•
Em que exato momento deve acontecer o que? Mesmo
126
conhecendo os princípios (que também não são os mesmos
para todas as espécies) as descrições tornam a seqüência
das ações imprevisível.
•
A formiga sempre age de acordo com seus princípios? É
claro que formigas doentes ou com lesões não vão se
comportar da mesma forma, mas as formigas saudáveis
podem ter um “mau dia”? Elas podem – por alguma razão –
decidir agir contra a própria natureza e não trabalhar como
sempre? E elas sempre agem de forma lógica, ou há
quebras, nas quais elas não mordem um predador, não
liberam alomônio etc.?
•
Como as formigas se comunicam? Existe a opinião de que
esta comunicação seja apenas pelo ambiente (KLÜGL, 2001;
KÜCHLER, 2000) e o presente projeto segue esta linha.
Outros, porém, acham que há também contato direto na hora
de uma formiga encontrar outra, entretanto, sem ter noção
dos detalhes da comunicação (GORDON, 2002).
•
Qual comportamento tem preferência? Dentro da mesma
linha da primeira dúvida, entre elementos parecidos (por
exemplo predadores diferentes) não se sabe quais terão
preferência no tratamento ou melhor, se realmente existe
alguma preferência.
•
As formigas nascem sabendo tudo ou aprendem? Se
nascem sabendo tudo não haverá cultura (veja item 3.3.2) e
127
provavelmente também não haverá aprendizado contínuo.
•
Qual a dimensão correta de uma rede neural artificial? Este
dado
pode
ser
configurações e
encontrado
validando
a
experimentando
hipótese pelo
várias
resultado
comportamental. Não existe conhecimento biológico de fácil
acesso sobre cérebros de formigas em um nível tão
detalhado.
Desta forma, apenas se pode sugerir que especialistas em biologia devam
participar de projetos de Vida Artificial, uma tendência nova que já foi entendida por
alguns e está sendo colocada em prática (INTERNATIONAL, 2003).
128
“Uma viagem de mil milhas
pr ecisa começar com um único passo”
Lao Tsu
129
&21&/86­2
&RQVLGHUDo}HV*HUDLV
Com o projeto BIOANT, pretendeu-se simular uma pequena colônia de
formigas utilizando duas abordagens nos algoritmos de controle: uma simbólica e
outra simbólico-conexionista. Demonstrou-se que a controladora conexionista tem
ganhos sobre o algoritmo simbólico configurado e é adequada para ser usada neste
tipo de simulação.
O sistema BIOANT pode ser considerado um sistema que apresenta
plausibilidade biológica:
•
por empregar um modelo de Rede Neural Artificial Biologicamente
Plausível (arquitetura conexionista e algoritmo de treinamento);
•
por implementar aspectos comportamentais típicos de formigas; e
•
por simular elementos físicos de formigas (sensores e atuadores).
O modelo teórico encontra-se validado pelo sucesso que obteve em um
ambiente de teste razoavelmente complexo.
A finalidade do projeto foi contribuir com as pesquisas das áreas relacionadas:
Redes Neurais Artificiais, Vida Artificial, Agentes Inteligentes e Robótica.
(YROXomR$UWLILFLDO
Acredita-se, com o sistema BIOANT, ter contribuído para um conceito de
evolução artificial, ou seja, a evolução dos sistemas de Vida Artificial. A evolução
natural levou bilhões de anos e não cabe aos pesquisadores dos tempos atuais
achar, que se pode descobrir todos os princípios de uma hora para outra (BENYUS,
130
1997). Sendo assim (mesmo sabendo que tempos modernos são tempos cada vez
mais apressados e estressantes) o ser humano nunca deve perder de vista que
também os conhecimentos precisam crescer, paradigmas precisam ser quebrados e
isso leva tempo.
O presente projeto pretendeu se inserir na evolução artificial, começando –
como a evolução natural – com uma situação mais simples. É interessante pensar
em iniciar projetos de Vida Artificial desta forma, pois do ser humano – por exemplo
– existe ainda muito menos conhecimento biológico. Tudo em volta do sistema
precisa amadurecer com o tempo (e não apenas nossas tecnologias de
programação), pois o fato da natureza ter levado bilhões de anos para chegar ao
ponto atual, deve servir como alerta de que há muito trabalho e pesquisa pela frente
(BENYUS, 1997).
$SOLFDo}HV&RPHUFLDLV
Apesar de não serem muitas, já existem aplicações comerciais para sistemas
de Vida Artificial ou até de formigas artificiais (FULKERSON, PARUNAK, 1995;
CICIRELLO, SMITH, 2001).
O artigo de (FULKERSON, PARUNAK, 1995), por exemplo, menciona várias
abordagens para resolver problemas logísticos e de chão de fábrica com
tecnologias de algoritmos genéticos, agentes concorrentes e simulações de bandos.
Enquanto isso (CICIRELLO, SMITH, 2001) apresentam um sistema chamado
AC2 ($QW &RORQ\ &RQWURO = Controle de Colônia de Formigas), com o propósito de
resolver problemas de chão de fábrica (locomoção, abastecimento, execução de
tarefas) por uma colônia artificial de formigas na qual cada formiga deve resolver
sua tarefa sem atrapalhar as outras.
131
Desta forma também poderá haver aplicações comerciais para uma nova
versão do sistema BIOANT, mesmo que este tenha sido desenvolvido com o
propósito de ser um projeto acadêmico.
7UDEDOKRV)XWXURV
Existem várias possibilidades para desenvolvimentos futuros. O objetivo geral
é a criação de uma simulação ainda mais voltada à situação real.
•
Desenvolvimento
de
uma
abordagem
completamente
conexionista (figura 55): como primeira – e mais simples –
idéia tem-se o desenvolvimento de uma abordagem que
dispensa qualquer rotina simbólica. A programação neste
caso é simples, pois a controladora (sendo a parte mais
difícil) já foi implementada.
)LJXUD3URSRVWDGHXPDDERUGDJHPFRPSOHWDPHQWHFRQH[LRQLVWD
132
•
Criação de um sistema mais aberto: apesar do fato de que as
formigas na natureza não aprendem exatamente com o
ambiente
e
implementar
a
evolução
um
sistema
é
bastante
mais
aberto
lenta,
em
pode-se
que
haja
aprendizado contínuo e evolução com a finalidade de
descobrir as dinâmicas nestes processos e criar uma “superformiga” sem ter sido definido antes o que isso significa.
Este tipo de pesquisa poder contribuir fundamentalmente às
pesquisas biológicas e explicar o quão apta uma espécie de
formiga é com relação à sobrevivência em séculos futuros
(verifique HECK, GOSH, 2001).
•
Criação de um robô: olhando para a possibilidade de
utilização destes conhecimentos para aplicações comerciais
(veja item 4.2), deve-se considerar a possibilidade da criação
de um robô a partir das regras e arquiteturas estabelecidas
pela simulação.
133
5()(5Ç1&,$6
ACKLEY, D. H. &KULV /DQJWRQ ³/LIH DV LW &RXOG %H´ Disponível em:
<http://keys.cs.unm.edu/cgi-bin/alr/wiki?ChrisLangton>. Acesso em: 15 nov. 2003.
BENYUS, J. M. %LRPLPLFU\ New York: William Morrow, 1997.
BEDAU, M. A. et al. Open problems in artificial life. $UWLILFLDO/LIH, v. 6, p. 363-376,
2000.
BENEVENISTE, J. 'LJLWDO%LRORJ\ Disponível em: <http://www.digitalbiology.com/>.
Acesso em: 15 nov. 2003.
BREAZEAL,
Cynthia.
.LVPHW
WKH
URERW
Disponível
em:
<http://www.ai.mit.edu/projects/sociable/baby-bits.html>. Acesso em: 15 nov. 2003.
BROOKS, R. A. Artificial life and real robots. In: EUROPEAN CONFERENCE ON
ARTIFICIAL LIFE, 1, 1992. 3URFHHGLQJVCambridge: MIT Press, p. 3-10, 1992.
BUCNO, O. C. Formigas urbanas: comportamento das espécies que invadem as
cidades brasileiras5HYLVWD9HWRUHV3UDJDV, ano 1, n. 12, p. 13-16, 1998.
BUTTAZZO, G. Can a machine ever become self-aware? In: AURICH, R.,
JACOBSEN, W. JATHO, G. (Ed.). $UWLILFLDOKXPDQV: a historical retrospective of the
Berlin International Film Festival 2000. Los Angeles: Goethe Institute, 2000. p. 45-49.
CICIRELLO, V. A.; SMITH, S. F. Ant colony control for autonomous decentralized
shop floor routing. In: INTERNATIONAL SYMPOSIUM ON AUTONOMOUS
DECENTRALIZED SYSTEMS, 5, 2001. 3URFHHGLQJV IEEE Computer: 2001.
CRICK, F.H.C. The recent excitement about neural networks1DWXUH, v.337, p. 129132, 1989.
DOWLING, K. 5RERWLFV IDT Disponível em: <http://www.frc.ri.cmu.edu/roboticsfaq/>. Acesso em: 15 nov. 2003.
EGELHAAF, M. et al. Ein Blick ins Cockpit der Fliege – Von der Bildverarbeitung im
Nervensystem zu künstlichen visuellen Systemen. )RUVFKXQJ DQ GHU 8QLYHUVLWlW
%LHOHIHOG v. 24, 2002.
FININ, T. et. al. KQML as an agent communication language. In: INTERNATIONAL
CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT (CIKM’94),
3, 1994. 3URFHHGLQJVACM Press, 1994.
FORBES, N. Life as it could be: a life attempts to simulate evolution.,(((,QWHOOLJHQW
6\VWHPV, p. 2-7, nov./dez. 2000.
FULKERSON, B.; PARUNAK, V. The living factory: applications of artificial life to
manufacturing. In: INTERNATIONAL SYMPOSIUM ON AUTONOMOUS
DECENTRALIZED SYSTEMS (ISADS’95), 2, 1995. 3URFHHGLQJV IEEE Computer
Press, 1995.
134
GARCIA, A. C. B.; SICHMAN, J. S. Agentes e sistemas multiagentes. In:REZENDE,
S.O. (Ed.). 6LVWHPDV LQWHOLJHQWHV: fundamentos e aplicações. Barueri: Manole,
2002. p. 269-306.
GLASIUS, R.; KOMODA, A.; GIELEN, S. Biologically inspired neural net for
trajectory formation and obstacle avoidance. %LRORJLFDO &\EHUQHWLFV, Nijmegen,
1994.
GORDON, D. )RUPLJDVHPDomR:como se organiza uma sociedade de insetos. Rio
de Janeiro: Jorge Zahar Editor, 2002.
HAYKIN, S. 5HGHV QHXUDLV: princípios e prática. 2. ed. Porto Alegre: Bookman,
2001.
HEBB, D. O. The organization of behavior New York: Wiley. 1949. $SXGRUSSELL,
S.; NORVIG, P. $UWLILFLDOLQWHOOLJHQFH: a modern approach. Upper Saddle River, N.
J. : Prentice Hall, 1995.
HECK, P.; GHOSH, S. A study of synthetic creativity through behavior modeling and
simulation of an ant colony. In: INTERNATIONAL SYMPOSIUM ON AUTONOMOUS
DECENTRALIZED SYSTEMS (ISADS’01), 5, 2001. 3URFHHGLQJV IEEE Computer
Press, 2001.
HELBIG, H.; SCHERER, A. 1HXURQDOH 1HW]H, Hagen (Alemanha): Fernuniversität
Hagen, 2000.
HENAFF, P.; MILGRAM, M.; RABIT, J. Adaptive neural control with back propagation
algorithm. In: IMACS INTERNATIONAL SYMPOSIUM ON SIGNAL PROCESSING,
ROBOTICS AND NEURAL NETWORKS (SPRANN'
94), 1994. 3URFHHGLQJV Villeneuve D'
asq (France), 1994.
HENAFF, P.; DELAPLACE, S. Using backpropagation algorithm for neural adaptive
control: experimental validation on an industrial mobile robot. In: CISM-IFToMM
Symposium, Theory and Practice of Robots and Manipulators (ROMANSY 11), 11,
1996. 3URFHHGLQJV Udine, Italy, 1996.
INTERNATIONAL Conference on Bioinformatics and Computations Biology.
Disponível em: <http://www.icobicobi.com.br>. Acesso em: 15 nov. 2003.
JAPANESE Ant Database Group, -DSDQHVH$QW&RORU,PDJH'DWDEDVH:Tapinoma
Melanocephalum.
Disponível
em:
<http://ant.edb.miyakyou.ac.jp/Taxo_E/F70301.html>. Acesso em: 15 nov. 2003.
JELSOFT Inc. CD-MAX Enterprises. %DUJDLQ ILQGHU. Disponível
<http://www.cdrom-guide.com/bargainfinder.htm>. Acesso em: 15 nov. 2003.
em:
JENNINGS, N. R.; WOOLRIDGE, M. Applying agent technology. $SSOLHG $UWLILFLDO
,QWHOOLJHQFH, v. 9, n. 4, p. 351-361, 1995.
JOHNSON, S. (PHUJrQFLD: a dinâmica de rede em formigas, cérebros, cidades e
softwares. Rio de Janeiro: Jorge Zahar, 2003.
135
KAISER-BENZ, M. 0LOOLRQHQYRON LP :DOG: Biologie und Bedeutung der roten
Waldameisen, Faktenblatt 4, Das Amt für Wald Graubünden, 2000.
KALISCH, J. &DUSHQWHU DQWV. University of Nebraska. Disponível em:
<http://entomology.unl.edu/images/carpants/carpants.htm>. Acesso em: 15 nov.
2003.
KANDEL, E. R.; SCHWARTZ, J. H.; JESSELL, T. M. (VVHQWLDOVRIQHXUDOVFLHQFH
DQGEHKDYLRU Stanford: Appleton & Lange, 1995.
KLÜGL, F. Simulated ant colonies as a framework for evolutionary models. In:
INTERNATIONAL CONFERENCE ON INTELLIGENT METHODS IN PROCESSING
AND MANUFACTURING OF MATERIALS (IPMM 2001), 2001. 3URFHHGLQJV 2001.
KLÜGL, F.; OECHSLEIN, C. ; PUPPE, F. Artificial Life Modelle für soziale Insekten,
In: JOCHEN WITTMANN; LARS BERNAARD (EDS). 6LPXODWLRQ LQ *HR XQG
8PZHOWZLVVHQVFKDIWHQ Workshop Münster, Aachen (Alemanha): Shaker Verlag, p.
35-47, 2001.
KÜCHLER, J. $UWLILFLDO/LIHder virtuelle Ameisenstaat, Ein Beitrag im Rahmen des
Seminars: Multimedia + 3D Animation, Johann-Wolfgang-Goethe Universität,
Frankfurt am Main, 2000.
KUNKLE, D. R. -RKQ YRQ1HXPDQQJHQLXVRIPDQDQGPDFKLQH, Disponível em:
<http://www.rit.edu/~drk4633/vonNeumann/>. Acesso em: 15 nov. 2003.
LUND, H. H. et al.
Evolutionary robotics: a children´s game. In: IEEE
INTERNATIONAL CONFERENCE ON EVOLUTIONARY COMPUTATION, 5, 1998.
3URFHHGLQJV IEEE PRESS, NJ, 1998.
LUNDQUIST,
J.
,QWURGXFWLRQ
WR
URERWLFV
Disponível
em
<http://www.ite.his.se/ite/research/automation/course/toc.htm>. Acesso em: 15 nov.
2003.
MAES, P.; GUTTMAN, R. H.; MOUKAS, A. G. Agents that buy and sell.
&RPPXQLFDWLRQVRIWKH$&0, v. 42, p. 81-91, 1999
MATURANA,
A.
$QW
IDUP
VLPXODWRU,
Disponível
em:
<http://www.geocities.com/chamonate/hormigas/antfarm/> . Acesso em: 15 nov.
2003.
MENZEL,
P.
&RJ
RYHUYLHZ
Disponível
<http://www.ai.mit.edu/projects/humanoid-robotics-group/cog/overview.html>.
Acesso em: 15 nov. 2003.
em:
MCLURKIN, J. 7KH DQWV D FRPPXQLW\ RI PLFURURERWV Disponível em:
<http://www.ai.mit.edu/projects/ants/>. Acesso em: 15 nov. 2003.
MILLÁN, J. R. 5RERW QDYLJDWLRQ. In: Michael A. ARBIB, M. A. (Ed.).
The Handbook of brain theory and neural networks. 2. ed. Cambridge,
Massachusetts: MIT Press, 2003. p. 987-990.
136
MINDBEAT,
7DONLQJ
PDLOER[
Disponível
<http://www.msagentring.org/apps/list.htm>, Acesso em: 15 nov. 2003.
MYERS,
P.
et
al.
$QLPDO
GLYHUVLW\
ZHE
Disponível
<http://animaldiversity.ummz.umich.edu/>. Acesso em: 15 nov. 2003.
em:
em:
O´REILLY, R. C. Biologically plausible error-driven learning using local activation
differences: the generalized recirculation algorithm 1HXUDO &RPSXWDWLRQ, p. 895938, 1996.
O´REILLY, R. C.; MUNAKATA, Y. &RPSXWDWLRQDO H[SORUDWLRQV LQ FRJQLWLYH
QHXURVFLHQFHunderstanding the mind by simulating the brainCambridge, London:
MIT Press, 2000.
O´REILLY, R. C. Six principles for biologically-based computational models for
cortical cognition. 7UHQGVLQ&RJQLWLYH 6FLHQFHV, v. 2, p. 455-462, 1998.
PACKARD, N. H.; BEDAU, M. A. $UWLILFLDO OLIH In: ENCYCLOPEDIA of cognitive
science. Portland: Macmillan Reference, 2000.
PATTO, C. 2OKDQGR H SHUWR IRUPLJDV GH FRUUHLomR Disponível em:
<http://www.olhandodeperto.bio.br/formigascorreicao.htm>. Acesso em: 15 nov.
2003
PI, P. et al. $QW&RORQ\WKHGHILQLWLYHVRXUFHIRUDQWHQWKXVLDVWV Disponível em:
<http://www.antcolony.org/>. Acesso em: 15 nov. 2003.
PREM, E. *URXQGLQJDQGWKHHQWDLOPHQWVWUXFWXUHLQURERWLFVDQGDUWLILFLDOOLIH
In: EUROPEAN CONFERENCE ON ARTIFICIAL LIFE. 3URFHHGLQJV1995. p. 3951.
RODRÍGUEZ-AGUILAR, J. A. et al. 7KH )LVKPDUNHW SURMHFW Disponível em:
<http://www.iiia.csic.es/Projects/fishmarket/newindex.html>. Acesso em: 15 nov.
2003.
ROSA, C.; SCHWARTZ, E.; TOBON, G. ,QWURGXFWLRQWRURERWLFVDisponível em:
<http://www.thetech.org/exhibits_events/online/robots/intro/>. Acesso em: 15 nov.
2003.
ROSA, J. L. G. An artificial neural network model based on neuroscience: looking
closely at the brain. In: KURKOVÁ, V. et al. (Ed). Artificial neural nets and genetic
algorithms. INTERNATIONAL CONFERENCE IN PRAGUE. 3URFHHGLQJV Czech
Republic - Wien, New York: Springer, 2001
ROSA, J. L. G. A biologically inspired connectionist system for natural language
processing In: Brazilian Symposium on Neural Networks (SBRN’02), 7, 2002.
3URFHHGLQJV IEEE Computer Press, 2002. p. 243-248.
RUMELHART, D. E.; HINTON, G. E.; WILLIAMS, R. J. /HDUQLQJ LQWHUQDO
UHSUHVHQWDWLRQVE\HUURUSURSDJDWLRQ In: RUMELHART, D. E.; MCCLELLAND , J.
L. (Ed). Parallel Distributed Processing, v. 1, A Bradford Book The MIT Press, 1986.
137
RUSSELL, S.; NORVIG, P. $UWLILFLDO LQWHOOLJHQFH D PRGHUQ DSSURDFK, Upper
Saddle River, NJ: Prentice Hall, 1995.
SCHAAL,
S.
5RERW
OHDUQLQJ.
In:
ARBIB,
M.
A.
(Ed.)
The Handbook of Brain Theory and Neural Networks. 2. ed. Cambridge,
Massachusetts, The MIT Press, 2003. p. 983-987,
SCHMIDT, P. 2Q -DFTXHV GH 9DXFDQVRQ DQG KLV GXFN, Disponível em:
<http://www.swarthmore.edu/Humanities/pschmid1/essays/pynchon/vaucanson.html
>. Acesso em: 15 nov. 2003.
SCHMIDT, A. 0\UPHFRORJ\ WKH VFLHQWLILF VWXG\ RI DQWV. Disponível em:
<http://www.myrmecology.org/>. Acesso em: 15 nov. 2003.
SCHNEIDER, M.; ROSA, J. L. G. Neural connect four: a connectionist approach to
the game. In: Brazilian Symposium on Neural Networks (SBRN’02), 7, 2002.
3URFHHGLQJV IEEE Computer Press, 2002. p. 236-241.
SCHNEIDER, M.; ROSA, J. L. G. Neural labyrinth robot: finding the best way in a
connectionist fashion. In: CONGRESSO DA SOCIEDADE BRASILEIRA DE
COMPUTAÇÃO (SBC, 2003), 23, 2003. $QDLV SBC, 2003. p. 151.
SCHRAM, G. et al. Visual tacking of moving objects using a neural network
controller. 5RERWLFV DQG $XWRQRPRXV 6\VWHPV, Amsterdam, v. 18, p. 293-299,
1996.
SIMMONS, R. G. et al. Xavier: experience with a layered robot architecture. $&0
6,*$57%XOOHWLQ, v. 8, p. 22-33, 1997.
SIPPER, M. An introduction to artificial life.$,([SHUW, p. 4-8, 1995.
SHARKEY, N. E. Biologically inspired robotics. In: ARBIB, M. A. (Ed.). 7KH
KDQGERRN RIEUDLQWKHRU\DQGQHXUDOQHWZRUNV. 2. ed. Cambridge, Massachusetts:
MIT Press, 2003. p. 160-164.
SMITH,
K.
$QWV ,Q DQG DURXQG WKH KRPH. Disponível
<http://ohioline.osu.edu/hyg-fact/2000/2064.html>. Acesso em: 15 nov. 2003.
THE FOUNDATION for Intelligent Physical
<http://www.fipa.org/>. Acesso em: 15 nov. 2003.
Agents.
Disponível
em:
em:
THORPE,
S.
J.
Localized
versus
distributed
representations.
In: ARBIB, M. A. (ed.).
7KH KDQGERRN RI EUDLQ WKHRU\ DQG QHXUDO
QHWZRUNV. 2. ed. Cambridge, Massachusetts: The MIT Press, 2003. p. 643-646.
THRUN, S.; MITCHELL, T. Lifelong robot learning. 5RERWLFV DQG $XWRQRPRXV
6\VWHPV, v. 15, p. 25-46, 1995.
THRUN, S. An approach to learning mobile robot navigation. 5RERWLFV DQG
$XWRQRPRXV6\VWHPV, v. 15, p. 301-319, 1996.
138
VAARIO, J. $UWLILFLDO OLIH SULPHU. ATR Human Information Processing Research
Laboratories, 1993. Technical Report 33..
VAARIO, J. Artificial life as constructivist AI. -RXUQDO RI WKH -DSDQHVH 6RFLHW\ RI
,QVWUXPHQWDQG&RQWURO(QJLQHHUV, v. 33, n. 1, p. 65-71, 1994.
VAN OOYEN, A.; VAN PELT, J. Pattern Recognition in the Neocognitron is Improved
by Neural Adaptation. %LRORJLFDO&\EHUQHWLFV, Amsterdam, v. 70, p. 47-53, 1993.
WALKER, J. F.; OLIVER, J. H. $ VXUYH\ RI DUWLILFLDO OLIH DQG HYROXWLRQDU\
URERWLFV Disponível em: <http://citeseer.nj.nec.com/walker97survey.html>. Acesso
em: 15 nov. 2003
WOOLRIDGE, M.; JENNINGS, N. R. Intelligent agents: theory and practice.
.QRZOHGJH(QJLQHHULQJ5HYLHZ, v. 10, n. 2, p. 115-152, 1995.
ZHOU, Y.; WILKINS, D. ; COOK, R. P. Neural network control for a fire-fighting robot.
6RIWZDUH±&RQFHSWVDQG7RROV, v. 19, n. 3, p. 146-152, 1998.

Documentos relacionados