Arquitetura Neural Cognitiva para Controle 278409 PDF
Arquitetura Neural Cognitiva para Controle 278409 PDF
Arquitetura Neural Cognitiva para Controle 278409 PDF
Tese submetida à
Universidade Federal de Santa Catarina
como parte dos requisitos para a
obtenção do grau de Doutor em Engenharia Elétrica.
Banca Examinadora:
iii
iv
“A natureza esconde seu segredo porque é sublime,
não por astúcia.”
Albert Einstein
v
AGRADECIMENTOS
vi
Resumo da Tese apresentada à UFSC como parte dos requisitos necessários
para obtenção do grau de Doutor em Engenharia Elétrica.
vii
Abstract of Thesis presented to UFSC as a partial fulfillment of the
requirements for the degree of Doctor in Electrical Engineering.
February/2010
viii
Sumário
Sumário ix
1 Introdução 1
1.1 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Breve Histórico . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 Arquiteturas de Controle para Robótica Inteligente . 3
1.3 O Estado da Arte: Robótica Móvel . . . . . . . . . . . . . . 4
1.3.1 Robótica Bioinspirada . . . . . . . . . . . . . . . . 4
1.3.2 Redes Neurais Artificiais . . . . . . . . . . . . . . . 6
1.4 Objetivo da Tese . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Organização da Tese . . . . . . . . . . . . . . . . . . . . . 7
3 Estratégias de Navegação 37
3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Navegação: Conceitos Básicos . . . . . . . . . . . . . . . . 38
3.3 A Hierarquia da Navegação . . . . . . . . . . . . . . . . . . 39
3.3.1 Busca . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.2 Seguimento de Direção e Integração de Caminho . . 41
3.3.3 Apontamento . . . . . . . . . . . . . . . . . . . . . 42
3.3.4 Orientação . . . . . . . . . . . . . . . . . . . . . . 42
3.3.5 Resposta ao Disparo de Reconhecimento . . . . . . 44
3.3.6 Navegação Topológica . . . . . . . . . . . . . . . . 46
3.3.7 Navegação Métrica . . . . . . . . . . . . . . . . . . 48
3.4 Navegação Baseada em Mapa . . . . . . . . . . . . . . . . 50
3.5 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8 Conclusão 189
8.1 Principais Considerações . . . . . . . . . . . . . . . . . . . 189
8.2 Principais Contribuições . . . . . . . . . . . . . . . . . . . 192
8.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . 193
8.3.1 Questões Preliminares . . . . . . . . . . . . . . . . 193
8.3.2 Simplificação da Camada Reativa . . . . . . . . . . 194
8.3.3 Limitação do Aprendizado Aleatório . . . . . . . . . 195
8.3.4 Tratando a Problemática de Ruídos . . . . . . . . . 196
xii
Lista de Acrônimos
xiii
Lista de Figuras
xvii
Lista de Tabelas
xviii
Lista de Algoritmos
xix
xx
CAPÍTULO 1
Introdução
1.1 Descrição
Este trabalho de tese está dividido em oito capítulos, onde esta intro-
dução é o primeiro deles.
O Capítulo 2 apresenta uma revisão sobre as principais arquiteturas
de robôs móveis inteligentes segundo os paradigmas de controle hierárquico,
reativo e híbrido.
8 1. Introdução
2.1 Introdução
Combinar
Extração de Planejar Planejar Controle
Sensores Características Atuadores
Características Tarefas Execução Motor
dentro do
Modelo
Planejador
Missão
SENTIR PLANEJAR
Navegador
Modelo
Mundo/
Base
Conhecimento Piloto
Controlador
baixo nível AGIR
sensores atuadores
neja quais ações irá tomar. O planejamento para navegação tem um procedi-
mento local consistindo de três passos executados pelo Planejador de Mis-
são, Navegador e Piloto. Cada um destes módulos tem acesso ao Modelo
de Mundo para computar sua porção de planejamento. No último passo do
planejamento, o módulo Piloto gera ações específicas para o robô fazer (ex.
virar à esquerda, virar à direita, mover-se para frente a uma dada velocidade).
Estas ações são traduzidas em sinais de controle pelo Controlador de baixo
nível. Juntos, o Controlador de baixo nível e atuadores formam a porção
agir da arquitetura.
Uma vantagem da arquitetura NHC é sua característica de interpor pla-
nejamento e ação. O robô inicia executando um plano que pode ser alterado
caso o mundo seja diferente do que ele espera. Esta decomposição é ineren-
temente hierárquica em inteligência e escopo. O Planejador de Missão é
hierarquicamente superior ao Navegador e este é hierarquicamente superior
ao Piloto. Ou seja, Planejador de Missão é responsável por um nível de abs-
tração mais alto do que o Navegador, etc. A organização da arquitetura NHC
foi muito utilizada por outras arquiteturas hierárquicas e também por híbri-
das. Uma desvantagem desta decomposição da função de planejamento NHC
é que ela é apropriada apenas para tarefas de navegação. A regra de um Piloto
para controle dos atuadores não é clara. Em seu desenvolvimento inicial, a
arquitetura NHC nunca foi implementada e testada em um robô móvel real,
2. Arquiteturas de Controle Inteligente 13
Planejador Missão
Navegador
Piloto
(a)
Percepção Geração
Modelagem
Sensória planos, Comportamento
percepção, Mundo
foco de estado de
Base de dados ações
atenção
Conhecimento
AGIR
entradas comando
observadas de ações
(b)
(a) (b)
(c) (d)
Figura 2.5: Quatro dos diversos robôs que têm usado a arquitetura RCS. (a)
Um robô submarino. (b) Um veículo guiado. (c) Um robô de escavação.
(c) Um robô limpador de chão comercial. Fotos cortesia do NIST (National
Institute of Standards and Technology). Fonte adaptada de Murphy (2000).
explorar
atuadores
sensores
vagar
evitar colisões
Comportamento
SENTIR AGIR
Comportamento
Comportamento
SENTIR AGIR
Comportamento
Comportamento
SENTIR AGIR
Sentir Agir
SENTIR AGIR
(a) (b)
Nível 3
Nível 2
Nível 1
Atuadores
Sensores
Nível 0
Figura 2.8: O robô “inseto” Genghis: robô andador com seis pernas cons-
truído no MIT AI Laboratory a partir da arquitetura de subsunção. Fonte
adaptada de (MURPHY, 2000).
distância, direção
PERMANECER INTEGRAR
OLHAR percorrida
corredor MEIO
direção
p/ meio
Nível 1
VAGAR S
EVITAR direção
força modificada
Nível 0
FORÇA SEM
S GIRAR
TOQUE força CONTROLE
direção
táculo enquanto ele gira e se move para frente. Portando o Nível 0 ilustra
como um conjunto razoavelmente complexo de ações podem emergir a partir
de módulos simples. O fluxo de dados dos sensores percorrem comporta-
mentos concorrentes até os atuadores. Estes comportamentos primitivos (sem
controle e colidir) fazem emergir o comportamento de evitar obstáculos,
ou uma camada de competência.
Considerando a construção de um robô que vaga e ao mesmo tempo
evita obstáculos ao invés de apenas parar na presença deles. Sob subsunção,
uma segunda camada de competência, Nível 1, seria adicionada (Figura 2.9).
Neste caso, o Nível 1 consiste de um módulo VAGAR que computa uma di-
reção aleatória a cada n segundos, que necessita ser passada para os módulos
GIRAR e MOVER P/ FRENTE. Porém esta direção não pode ser passada
para o módulo GIRAR diretamente, pois isto sacrificaria o comportamento
de evitar obstáculos, dado que GIRAR aceita somente uma entrada. Uma so-
lução é adicionar outro módulo no Nível 1, EVITAR, que combina o vetor
FORÇA TOQUE com o vetor VAGAR. Como a adição de um novo módulo
EVITAR cria-se uma resposta mais sofisticada com relação aos obstáculos.
EVITAR combina a direção da força de escape com a direção desejada. Isto
resulta em uma direção mais efetiva do que fazer o robô girar 180o , perdendo
o progresso de mover-se para frente. O módulo EVITAR também é hábil
para observar os componentes da camada mais baixa. A direção de saída
do módulo EVITAR tem a mesma representação da saída do módulo SEM
CONTROLE, e assim, GIRAR pode aceitar a direção de ambas as origens.
O problema é decidir de qual módulo ou camada aceitar o vetor de
direção. A subsunção torna esta decisão simples: a saída do nível mais alto
subsume a saída do nível mais baixo. Desta forma a subsunção pode ser feita
de duas maneiras:
que novas camadas sejam construídas no topo das camadas menos competen-
tes, sem modificar as camadas mais baixas. Isto proporciona modularidade,
simplificação de testes e robustez, haja visto o caso do Nível 0 permanecer
intacto, ainda que alguma situação desabilite os comportamentos do Nível
1. Deste modo o robô ainda se torna hábil para preservar seu mecanismo de
auto-defesa, livrando-se de obstáculos próximos.
Considerando-se ainda a adição de uma terceira camada para permitir
ao robô percorrer corredores (Figura 2.9). O módulo OLHAR examina a plo-
tagem polar do sonar e identifica um corredor. Porque identificar um corredor
é computacionalmente mais custoso do que apenas extrair dados dos sensores,
OLHAR pode levar mais tempo para executar do que os comportamentos das
camadas mais baixas. OLHAR passa o vetor representando a direção do meio
do corredor para o módulo PERMANECER MEIO. PERMANECER MEIO
subsume o módulo VAGAR e entrega sua saída para o módulo EVITAR que
então pode mudar a direção rapidamente ao redor de obstáculos.
Um problema normalmente encontrado é como fazer o robô manter
seu curso enquanto o módulo OLHAR não computa a nova direção. Neste
caso, o módulo INTEGRAR é quem observa os movimentos correntes do
robô a partir dos codificadores nos atuadores. Isto dá uma estimativa de quão
fora do curso o robô está percorrendo, dado a última atualização feita por
OLHAR. PERMANECER MEIO pode usar dados de integração de caminho
mais o curso pretendido, para computar um novo curso. INTEGRAR é um
exemplo de módulo que fornece um estado interno, substituindo uma reali-
mentação a partir do mundo real. Se por alguma razão, o módulo OLHAR
não se atualizar, então o robô pode operar sem dados sensórios, ou até que-
brar. Por esta razão, sistemas baseados na arquitetura de subsunção incluem
constantes de tempo na supressão e inibição. Se a supressão a partir do PER-
MANECER MEIO executou por mais de n segundos sem uma nova atualiza-
ção, a supressão cessa. Então o robô começaria a vagar, e qualquer problema
(como o corredor sendo totalmente bloqueado) que tenha conduzido à perda
de sinal se resolveria por si mesmo. Porém, o projeto supõe que um corredor
estará sempre presente no ambiente do robô. Caso não esteja, o robô não
irá se comportar como pretendido. Isto é um exemplo da conotação de que
sistemas reativos são sem memória.
PLANEJAR
SENTIR AGIR
Percepção
Mapa Mundo/
Rep. Conhecimento
sensor virtual
Comportamento
Comportamento
Comportamento
Arquitetura AuRA
A Figura 2.14 ilustra a arquitetura AuRA (Autonomous Robot Archi-
tecture) (ARKIN; RISEMAN; HANSEN, 1987) a qual é baseada na teoria es-
quema2 e consiste de cinco subsistemas ou módulos, equivalente a classes
orientadas a objeto.
Estes subsistemas são descritos na sequência:
Camada deliberativa
Planejador missão,
Sequenciador,
Agente monitorador desempenho
Planejador
Cartógrafo
planejador missão
Cartógrafo navegador
piloto
Controle
Homeostático
Camada reativa
Gerenciador Comportamental
Percepção Motor
gerenciador esquema motor
111
000
000
111 111
000
000
111
000
111
p1 000
111
em1
000
111 000
111
000
111 000
111
111
000
000
111
p2 111
000
000
111
em2 Σ
000
111 000
111
000
111
000
111
p3 000
111
000
111
em3
000
111 000
111
sensores atuadores
Arquitetura PiramidNet
A arquitetura PiramidNet (ROISENBERG, 2000) é um exemplo de arqui-
tetura baseada em comportamentos e híbrida no estilo gerencial. Ela é com-
posta por RNAs organizadas em estruturas modulares e hierárquicas como
ilustra a pirâmide de controle da Figura 2.15. A inspiração biológica desta
abordagem se baseia na estrutura hierárquica em camadas que compõe a or-
ganização global do cérebro de animais. Sua camada deliberativa envolve
2. Arquiteturas de Controle Inteligente 29
Ca
m
Módulo
ad
ad
Simbólico
eli
be
ra
ão
tiv
luç
a
vo
Comportamentos motivados
avé
Ca
atr
m
nta
ad
Comportamentos motivados
me
ar
ea
Au
tiv
RNAs que implementam autômatos finitos
DO ES
S
Comportamentos reativos
RE
S
UA OR
E
OR
AT AD
NS
Comportamentos reflexivos
U
SE
AT
Aumenta através da evolução
Arquitetura 3T
A arquitetura 3T, usada pela NASA, é um exemplo de arquitetura no
estilo hierarquia de estados, mostrada na Figura 2.16. Como o nome sugere,
3T se divide em 3 camadas, reativa, deliberativa e a intermediária que serve
de interface entre as duas. A arquitetura 3T foi usada primeiramente para
construção de robôs excursionistas planetários, veículos subaquáticos e robôs
assistentes para astronautas. Na camada superior o Planejador realiza as res-
ponsabilidades do planejador de missão e cartógrafo configurando os objeti-
vos e planos estratégicos. Os objetivos são passados à camada intermediária,
chamada de Sequenciador.
O Sequenciador usa uma técnica de planejamento reativo chamada
RAPs [reactive-action packages (FIRBY; PROKOPWICZ; SWAIN, 1995)], que se-
leciona um conjunto de comportamentos primitivos a partir de uma biblioteca
e desenvolve uma rede de tarefas especificando a seqüência de execução dos
comportamentos para o sub-objetivo particular. O Sequenciador é responsá-
vel pela seqüência e por funções de monitoramento de desempenho em uma
arquitetura híbrida genérica.
2. Arquiteturas de Controle Inteligente 31
Cartógrafo
Camada Deliberativa
Tarefa Tarefa Tarefa Tarefa Tarefa Modelo
Mundo
Gerenciador
Recursos
Agenda Sequenciador
Tarefa
Interpretador Memória
Subtarefa
RAP
Camada Reativa
Primitiva
Caminhar
Subtarefa
Sequenciador
Habilidade Habilidade
Evento
Gerenciador
Habilidade Evento
Habilidade
Arquitetura Saphira
A arquitetura Saphira (KONOLIGE; MYERS, 1998), apresentada na Fi-
gura 2.17, é usada numa variedade de robôs dentre eles os descendentes dire-
tos do robô Shakey: Flakey e Erratic. A motivação desta arquitetura se baseia
Gerenciador Recursos,
Planejador Missão,
Agente Monitor Desempenho
PRS−Lite
(agente planejador)
Agentes
Software
Cartógrafo
Seguir Planejador
Pessoas Topológico
Camada Deliberativa
Camada Reativa
Comportamentos Lógica
Reativos Nebulosa
Sensores Atuadores
Arquitetura TCA
1111111
0000000
0000000
1111111
0000000
1111111
0000000
1111111
0000000 Planejamento Caminho
1111111
0000000
1111111
Cartógrafo
0000000
1111111
0000000
1111111
0000000
1111111
Modelos
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
Mundo
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
Global
0000000
1111111
0000000
1111111 Sequenciador,
0000000
1111111
0000000
1111111 Navegação Gerenciador Recurso
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111 Camada Deliberativa
0000000
1111111
Evitar obstáculo Camada Reativa
Sensores Atuadores
2.5 Conclusão
Estratégias de Navegação
3.1 Introdução
por um estímulo. Exemplos de tais atividades direcionadas a estímulo são quimio-taxia (taxia
química), geo-taxia (gravidade), foto-taxia (luz) e fono-taxia (auditivo).
3. Estratégias de Navegação 39
3.3.1 Busca
Como pode ser visto na Figura 3.1, um agente que navega apenas
com a estratégia de busca não mostra nenhuma orientação efetiva em dire-
ção ao objetivo. O objetivo pode ser encontrado somente pela possibilidade
do agente atingi-lo enquanto se move. Esta é a forma de navegação mais
Objetivo
Início
Objetivo
Início
3.3.3 Apontamento
Como pode ser visto na Figura 3.3, um agente que utiliza a estratégia
de navegação por apontamento, deve orientar o eixo de seu corpo de maneira
que o objetivo esteja à sua frente. Para isto, o objetivo deve estar associado a
alguma referência que esteja sempre perceptível durante a operação do robô.
Em um domínio visual, esta referência é freqüentemente chamada de beacon.
Por exemplo, um agente pode navegar apontando sempre para um
marco visível, que funciona como um beacon. Ao contrário do seguimento de
direção visto anteriormente, o objetivo pode ser alcançado a partir de várias
direções sem o perigo de acumular erros. A área onde a referência pode ser
percebida é denominada área de alcance do objetivo.
3.3.4 Orientação
A estratégia de navegação por orientação pode ser utilizada quando o
objetivo não está sinalizado por uma referência, ou está escondido. Como
3. Estratégias de Navegação 43
Objetivo
Início 1
Início 2
M1 M2
Objetivo
Início
M3
M4
agente tenta alcançar uma posição fixa entre várias marcos observados.
Portanto uma estratégia de navegação do tipo orientação aplica-se to-
das as vezes que for necessário ao agente otimizar algum critério relacionado
a sensor, baseado na informação sensória armazenada, para alcançar seu ob-
jetivo. Ao contrário disto, os próximos níveis de estratégias de navegação,
como os descritos a seguir, irão requerer algum tipo de representação espa-
cial.
ção memorizada para o objetivo pode ser definida com relação a uma direção
de referência local e arbitrariamente selecionada. Esta direção de referência
pode ser determinada pela configuração espacial de marcos. Então, o agente
terá que se rotacionar até certo ângulo dado, com relação a sua direção de
referência.
Tais estratégias de respostas inflexíveis baseadas em configurações de
marcos locais conduzirá o agente ao próximo lugar, onde a mesma estraté-
gia deve ser aplicada. Com o reconhecimento de qual movimento tomar em
cada lugar, o agente então é hábil para alcançar o objetivo por uma série de
trajetórias sucessivas.
Neste nível, o agente identifica lugares com base em marcos locais e
produz uma série de respostas fixas (Figura 3.6). Mas ele não tem nenhuma
representação interna das relações entre os lugares correntes e outros lugares
no ambiente. O agente ainda não pode, a partir da informação disponível
neste nível, planejar seu caminho, i. e. representar a trajetória completa a
partir do lugar corrente a um objetivo distante. A cada passo, o conhecimento
é limitado à próxima ação a executar. Se a execução da ação selecionada leva
a um lugar incorreto, por causa de obstáculos, por exemplo, o agente não será
hábil para alcançar o objetivo a menos que ele possa vagar, reconhecer outro
46 3. Estratégias de Navegação
3 Integração de caminho é uma habilidade do agente em estimar sua posição atual relativo a
3.5 Conclusão
4.1 Introdução
tura. Para um estudo detalhado sobre diversos tipos de RNAs e suas respecti-
vas técnicas de aprendizado tem-se (HAYKIN, 2001). Para o desenvolvimento
deste trabalho de tese, este capítulo direcionou principalmente a construção
da camada reativa da arquitetura final NeuroCog, uma vez que diferentes ar-
quiteturas de RNAs foram sendo gradualmente incorporadas, juntamente com
dois processos de aprendizado em tempo de operação.
sensores
B
sensores sensores
A Piloto B
(a) (b)
Como pode ser visto no exemplo da Figura 4.1, em (a) a rede neural
foi treinada com os exemplos coletados a partir da operação do piloto con-
trolando o robô veículo. Todavia, esta rede neural treinada em (a) nem sem-
pre será hábil para encontrar uma correta aproximação do comportamento
humano em (b), pois muitas vezes o operador humano pode utilizar outras
informações (sensores A) além das que são fornecidas como entrada à rede
(sensores B) para gerar o sinal de navegação em (b). Por exemplo, o piloto po-
deria evitar uma árvore durante o percurso, ora passando pela esquerda e ora
pela direita, introduzindo uma ambiguidade ao conjunto de treinamento da
rede neural. Mais especificamente, na abordagem supervisionada, redes dire-
tas são treinadas através do algoritmo de aprendizagem por retro-propagação
(backpropagation), que depende da seqüência e da distribuição dos exemplos
de treinamento. Uma outra desvantagem da aprendizagem supervisionada,
para uma rede usada como controlador, é que ela não será adaptativa, se al-
guma coisa mudar no sistema, a rede deverá ser re-treinada para produzir o
56 4. RNAs aplicadas à Navegação de Robôs Móveis
modelo
de
referência
ε
A
detecção de crítica
reforço
r
Vetor treinamento
SOM
4.3.1 Localização
(a) (b)
Figura 4.7: Rede de Kohonen como mapa geométrico do ambiente: (a) Robô
simulado e seu ambiente. (b) A distribuição de pesos na rede de Kohonen que
representa o mapeamento do ambiente em (a). Fonte adaptada de (OLIVEIRA,
2001)
Mapas Topológicos
Segundo Kröse e van Dam (1997), abordagens de representação do
ambiente no domínio de sensor podem ser consideradas como abordagens to-
pológicas porque ambas constroem uma representação do ambiente a partir
do aprendizado local de marcos perceptíveis. Esta representação corresponde
a um grafo onde cada nó representa um marco pré-definido. Representa-
ções espaciais entre marcos são codificadas por ligações entre nós vizinhos
no grafo, produzindo uma estrutura isomórfica da topologia do ambiente. O
tratamento de ambiguidades entre padrões sensórios similares pode ser feito
por discriminação contextual ou pela adição de informação métrica.
Como visto anteriormente, mapas auto-organizáveis ou de Kohonen
são uma maneira alternativa para construir mapas topológicos, outros exem-
plos de abordagens são apresentadas em (KURZ, 1996; ZIMMER, 1996). Mas
ao invés de usar um mapa auto-organizável com uma estrutura fixa (dimensio-
nalidade ou número de unidades), também é possível aprender o mapa topoló-
gico do ambiente por meio de um mapa auto-organizável dinâmico (MILLáN,
1997; ZIMMER, 1996). Este método adiciona uma nova unidade se a per-
cepção sensória corrente é diferente o suficiente de qualquer outra unidade
existente. Neste tipo de rede a topologia do ambiente se dá pelas ligações
entre suas unidades. A Teoria da Ressonância Adaptativa (redes ART) pode
produzir quantizações do ambiente similar a um mapa auto-organizável dinâ-
mico, mas o mapa resultante não exibe relacionamentos topológicos entre as
unidades.
Buscando uma maior robustez, flexibilidade e adaptabilidade, mui-
tas pesquisas em navegação de robôs autônomos tem se inspirado em des-
cobertas neurofisiológicas que deram origem por exemplo à teoria dos ma-
pas cognitivos e à hipótese de que a memória espacial de mamíferos é for-
mada por neurônios sensíveis à localização (place cells) presentes no hipo-
campo.Métodos de aprendizado em tempo de operação são bastante utiliza-
dos nas propostas biologicamente inspiradas, tais como o trabalho de Arleo
e Gerstner (2000), onde é proposto um modelo do hipocampo, que através
do aprendizado Hebbiano não supervisionado, se obtém um mapa espacial do
ambiente de maneira incremental e on-line.
Já a Figura 4.10 (a) apresenta o sistema de navegação proposto por
Schölkopf e Mallot (1995) que consiste de uma abordagem de rede neu-
ral para aprendizado de mapa cognitivo de um labirinto hexagonal [Figura
4.10(b)], a partir de uma sequência de perspectivas e decisões de movimento.
O processo de aprendizado se baseia em uma representação intermediária
chamada grafo de perspectiva [Figura 4.10(c)], cujos nós correspondem às
70 4. RNAs aplicadas à Navegação de Robôs Móveis
ambiente labirinto
percepção e ação
comportamento seqüência
mapa visão
sistema navegação
mapa cognitivo
(a) (b)
(c)
Figura 4.12: Exemplo de uma representação do espaço livre gerada pela rede
descrita em Najand, Lo e Bavarian (1992). Fonte adaptada de (KRöSE; EECEN,
1994).
Figura 4.13: Exemplo de uma representação gerada pela rede neural descrita
em (MORASSO; VERCELLI; ZACCARIA, 1992). Os círculos preenchidos repre-
sentam espaço ocupado e círculos abertos representam espaço livre. A figura
mostra claramente que os neurônios representam precisamente as bordas entre
o espaço livre e ocupado. Fonte adaptada de (KRöSE; EECEN, 1994).
4.4 Conclusão
5.1 Introdução
at
Controle neural
ξt at−1
S2 S3
S1 S4
Sistema
Percepção motor S0 S5
velesq veldir
...
S0 S1 S7 θ θ velesq veldir S7 S6
(a) (b)
Figura 5.1: (a) Estrutura geral das arquiteturas reativas propostas. (b) O robô
simulado.
−π/2
2 3
1 4
0 5
00
11 00
11
11
00
00
11 11
00
00
11
±π 00
11 roda roda 00
11 0
00
11 00
11
00
11 00
11
00
11
00
11 esquerda direita 00
11
00
11
sensor de proximidade
7 6
+π/2
Figura 5.2: Robô Khepera e as direções globais definidas como oeste (θ =
±π), norte (θ = −π/2), leste (θ = 0) e sul (θ = −π/2).
Como pode ser visto na Figura 5.2, com base no sistema de coordena-
das angulares utilizado pelo sensor de compasso do robô, as direções oeste,
norte, leste e sul se referem a quatro diferentes poses relacionadas à frente
do robô, cujo ângulo de direção é determinado através da variável θ. Sendo
assim, a direção oeste corresponde à frente do robô estar situada a um ângulo
θ igual a ±π, a direção norte referente à frente do robô equivaler a θ igual
a −π/2, a direção leste a θ igual a 0 e finalmente a direção sul a θ igual a
+π/2.
Desta maneira, uma ação enviada ao módulo Sistema motor é repre-
sentada pela quádrupla at = (ao , an , al , as ), onde os valores para at podem
ser: (1, 0, 0, 0) que equivale a um movimento na direção oeste ou (0, 1, 0, 0)
na direção norte ou (0, 0, 1, 0) na direção leste ou (0, 0, 0, 1) na direção sul.
Levando isto em consideração, o módulo Percepção determina o es-
tado do ambiente através da quádrupla ξt :
5. Evolução das Abordagens Reativas 79
−π/2
F
E 1
0000 0
1111 2
1111
0000
0000
1111
0000
1111
0000
1111
3
r
0000oda
0000
1111
1111
0000
1111
esq
0000
1111
ue 4
rd a
±π 5
0
sen
so r 1111
rd dir od1111
0000
0000
a
0000
1111
ep eit 1111
7 rox a 0000
0000
1111
0000
1111
im 1111
0000
ida 0000
1111
0000
1111
de 0000
1111 D
6
F V
+π/2
Figura 5.3: Robô Khepera e um exemplo do esquema de coordenadas
relativas à pose do robô. Direções definidas como esquerda, E, igual a
−(|θ| + | − π/2|), frente, F, igual a θ, direita, D, igual a θ + π/2 e volta igual
a θ + π.
ξt = (ξe , ξ f , ξd , ξv ) at = (ae , a f , ad , av )
3 1 ξS = (1, 0, 1, 0) aS = (0, 1, 0, 0)
E
ξ1 = (0, 1, 0, 1) a1 = (0, 0, 1, 0)
V F ξ2 = (1, 0, 1, 0) a2 = (0, 0, 0, 1)
D 2 ξ3 = (0, 1, 0, 1) a3 = (1, 0, 0, 0)
Sinal de Sinal de
entrada saída
...
...
Camada de
Camada de Camada saída
entrada intermediária
Figura 5.5: Grafo arquitetural de uma rede MLP com uma camada interme-
diária. Fonte adaptada de Haykin (2001).
82 5. Evolução das Abordagens Reativas
Controle: MLP−R
Políticas
r aprendizado
ξt
at N
(a) (b)
Figura 5.7: (a)Controle MLP-R: rede multi layer perceptrons com aprendi-
zado por reforço. (b) Primeira tarefa de navegação.
duas saídas. Como resultado, para o contexto desta tarefa de navegação onde
uma única entrada (estado do ambiente) pode estar relacionado a duas saídas
(ações corretas), inviabiliza qualquer processo de aprendizado para uma rede
MLP, inclusive através do algoritmo backpropagation.
Uma maneira plausível de resolver este problema é incorporar a pro-
priedade de realimentação ao sistema de controle, característica esta presente
em todo sistema nervoso biológico. Porque deseja-se que o robô ande para
frente independente da direção inicial escolhida, ele precisa “lembrar” da
ação executada anteriormente, para assim percorrer todo o labirinto evitando
obstáculos. A realimentação da ação executada no passo de controle ante-
rior, tanto à entrada da rede MLP, quanto ao processo de aprendizado on-line,
modificando o controle neural para MLP-R-RR, rede MLP recorrente com
aprendizado por reforço recorrente [Figura 5.8(a)], possibilitou esta memória
e fez emergir o comportamento desejado [Figura 5.8(b)]. As respectivas mo-
Controle: MLP−R−RR
at−1
Políticas
ξt r
aprendizado
at
(a) (b)
(c)
(a)
(b)
Figura 5.9: Treinamento off-line da rede MLP por backpropagation. (a) Com
realimentação da ação anterior à entrada da rede. (b) Sem a realimentação.
5. Evolução das Abordagens Reativas 91
Padrão de entrada
Camada F1
ρ
Camada F2
...
MLP seleção
Controle: ART1−R−MLPs−RR
ART1
at−1
Padrão entrada
MLP seleção
ξt
MLPs
at
...
r Políticas at−1
aprendizado
(a) (b)
(c)
das redes MLPs como no caso da Figura 5.11(c), dado que redes MLPs iguais
seriam acessadas em situações diferentes como no caso da Figura 5.12.
5.4.3 Considerações
A partir do arranjo neural ART1-R-MLPs-RR foram obtidos dois ob-
jetivos principais relacionados a um controle inteligente. O primeiro corres-
ponde à convergência do aprendizado de todas as redes que compõe o arranjo
neural, e segundo, um correto comportamento de navegação emergente (se-
guir paredes evitando obstáculos). A seguir são aumentadas as complexidades
96 5. Evolução das Abordagens Reativas
Padrão ξt = Indicadores
corredor {(0, 0, 0, 0), (0, 0, 1, 1), (0, 1, 1, 0), bifur = beco = F
(1, 0, 0, 1), (1, 1, 0, 0), (0, 1, 0, 1),
(1, 0, 1, 0), (0, 0, 0, 1), (0, 0, 1, 0),
(0, 1, 0, 0), (1, 0, 0, 0)}
bifurca- {(0, 0, 0, 1), (0, 0, 1, 0), (0, 1, 0, 0), bifurc = V
ção T (1, 0, 0, 0)}
beco sem {(0, 1, 1, 1), (1, 0, 1, 1), (1, 1, 0, 1), beco = V
saída (1, 1, 1, 0)}
Controle: ART1−R−MLPs−RR−Marcos
ART1
ξt , bifurc Padrão entrada at−1
ξt at−1 bits_bifurc
MLPs
at
...
Ψ r
Políticas at−1
aprendizado
ξt , bifurc, beco
(a)
000
111 000
111
111
000 111
000
000
111
000
111 000
111
000
111 000
111
000
111
111
000 000
111
111
000
000
111 000
111
000
111 000
111
111
000 000
111 000
111
000
111 000
111 000
111
Ψ
000
111
000
111
000
111
000
111 Punição a longo prazo em
Empilhamento em Ψ
111
000
000
111
000
111 000
111
000
111 111
000
000
111 000
111
000
111
N 000
111 000
111
111
000
000
111 111
000
000
111 000
111
000
111 000
111
000
111 000
111
000
111
000
111 000
111
(b) (c)
de trajetória obtida onde as diferentes cores do robô indicam redes MLPs dis-
tintas, alocadas pela rede ART1 recorrente e treinadas em tempo de operação.
7: r ← punição
8: else if ¬bifurc and at−1 t
o = 1 and al = 1 then
9: r ← punição
10: else if bifurc then
11: if at−1 t
o = 1 and al = 1 then
12: r ← punição
13: else if at−1 t
n = 1 and as = 1 then
14: r ← punição
15: else if at−1
s = 1 and atn = 1 then
16: r ← punição
17: else
18: r ← recompensa
19: Ψindice ← j ⊲ Empilhamento
20: Ψacao ← at
21: Ψacao−alternativa ← aalternativa
22: end if
23: else r ← recompensa
24: end if
25: end if
··· ⊲ Seção A.2
26: if beco then ⊲ Punição de longo prazo
27: aaux ← MLPΨindice
28: while aaux 6= Ψacao−alternativa do
29: Alterar um peso qualquer da rede MLPΨindice .
30: aaux ← MLPΨindice
31: end while
32: end if
33: else
34: r ← punição ⊲ código incorreto de ação
35: end if
36: return r
37: end procedure
102 5. Evolução das Abordagens Reativas
5.5.3 Considerações
11
00
00
11
00
11 ⋆ ⋄ 11
00 11
00
⋆ 00
11
00
11
00
11
00
11 ∗
11
00 11
00 11
00
00
11 00
11
00
11 00
11
11
00 00
11 00
11
00
11 ⋆ ⋄
00
11
11
00
00
11
00
11 ⋄ ⋄
(a) (b)
11
00
00
11 × × 11
00
00
11
N
11
00
00
11 ⋆ ⋆ 11
00
00
11
(c)
ocorre, porém com um beco sem saída localizado a leste. Isto caracteriza
o problema do erro de percepção onde duas bifurcações em lugares diferen-
tes parecem ser idênticas para o controle neural, segundo a discriminação
realizada pela rede ART1. Ou seja, o problema ocorre quando o robô em
momentos distintos alcança as bifurcações “×” através da direção norte, por
exemplo. Pois o rede MLP selecionada pela rede ART1 recorrente nestas
bifurcações será a mesma e as ações corretas para evitar beco sem saída se-
rão contrárias, considerando-se as direções distintas dos becos sem saída em
questão. Por esta razão o sistema ART1-R-MLPs-RR-Marcos neste caso fa-
lha tanto no aspecto de não conseguir realizar o aprendizado online das redes
MLPs, quanto por não obter a trajetória desejada. E assim não foi possível
fazer da abordagem ART1-R-MLPs-RR-Marcos um sistema neural de con-
trole flexível e adaptativo, apenas através da detecção e tratamento de marcos
incorporado a seu processo de aprendizado de mapeamentos percepção-ação.
104 5. Evolução das Abordagens Reativas
5.6 Conclusão
6.1 Introdução
Camada deliberativa
Mapeamento
cognitivo
Camada reativa
Controle neural S
ART1−R−MLPs−RR
S2 S3
S1 S4
Sistema
Percepção motor S0 S5
velesq veldir
...
S0 S1 S7 θ (x, y) θ velesq veldir S7 S6
(a) (b)
saída da camada reativa, a ser enviada ao módulo Sistema motor, que ao fi-
nal do ciclo de controle, computa as velocidades das rodas esquerda e direita
(velesq , veldir ), que são fornecidas aos atuadores, para fazer com que o robô
ande em linha reta, em uma das direções oeste, norte, leste ou sul.
Assim como visto na Seção 5.2, o robô simulado, Figura 6.1(b), não
possui informação a priori e conta apenas com seus sensores de proximidade
(S0 , . . . , S7 ), ângulo de orientação (θ) e posição (x, y).
A arquitetura NeuroCog habilita a navegação autônoma de um robô
móvel em ambientes do tipo labirinto, cujas bifurcações apresentam formato
em T. Os labirintos podem ser modificados durante a execução da tarefa de
navegação executada pelo robô. Por exemplo, seja o labirinto da Figura 6.2,
à medida que o robô alcança becos sem saída e bifurcações (círculos azuis),
o módulo Percepção estabelece o conceito de marcos e invoca o sistema de
Mapeamento cognitivo, na camada deliberativa. O reconhecimento de bifur-
cações no labirinto é realizado assim como descrito na Seção 5.5.1. Ao passo
que, durante a execução dos corredores (círculos de cor rosa) o robô está sob
o controle neural reativo ART1-R-MLPs-RR.
Um das principais funções do sistema de Mapeamento Cognitivo é
construir uma representação de conhecimento explícita do ambiente, através
de informação sensória. Esta representação corresponde a um mapa topoló-
gico, como por exemplo, representado pelo grafo da Figura 6.2(b), após uma
108 6. Arquitetura Neural Cognitiva: NeuroCog
n s
n
o s
n
n l
o s
l n l n s n
s o l
o n
s n s l n s n l
o
o l o
n
N s s n s s
o
l
n s
s
Camada deliberativa n s
Camada reativa
(a) (b)
Este dilema é analisado sob dois aspectos a serem vistos a seguir. As mo-
dificações incluem bloqueios de caminhos conhecidos e anteriormente livres
e novas aberturas anteriormente bloqueadas ou inexistentes. Estes tipos de
modificações no labirinto durante a operação do robô visam demonstrar a fle-
xibilidade e a adaptabilidade da abordagem NeuroCog, mediante a dinâmica
do ambiente, mesmo após uma fase de aprendizado do sistema.
T T T
S S S
Camada deliberativa
Camada reativa
Percepção
(x, y) Identificação ξt , pcur , pold Controle deliberativo
Mapeamento cognitivo
S0 marcos
S1
Detecção
...
A Figura 6.5 ilustra o módulo Sistema motor híbrido que atua a cada
ciclo de controle, onde recebe como entrada, a ação corrente a ser executada,
at = (ao , an , al , as ). Esta ação pode ser determinada ou pela camada reativa
através do arranjo neural ART1-R-MLPs-RR, ou pela camada deliberativa
112 6. Arquitetura Neural Cognitiva: NeuroCog
Sistema motor
d
Camada deliberativa at−1 Contador
Mapeamento cognitivo ciclos
at
Camada reativa velesq
Controle neural: at Controle
ART1−R−MLPs−RR S
direção
veldir
θ
Como visto na Seção 6.3, o robô não usa visão e conta apenas com
a informação de seus sensores de proximidade, ângulo de orientação e posi-
ção. A partir destes dados, o módulo Percepção detecta tipos de padrões de
estado do ambiente desviando o controle, ora para a camada reativa (quando
o tipo identificado é corredor), ora para a camada deliberativa (quando o tipo
identificado é beco sem saída ou bifurcação). Como o conceito de marco é
um elemento fundamental na construção de mapas cognitivos e navegação
topológica, o módulo Percepção utiliza a identificação de padrões de estado
do ambiente do tipo becos-sem-saída e bifurcações em T, como marcos iden-
tificáveis para construção do mapa cognitivo.
Mapeamento cognitivo
pcur , pold at−1 , d
Sistema motor
Manutenção
Percepção
mapa
ξt at
Tomada decisão
Manutenção mapa
pcur , pold M
Percepção ...
t−1 pexp pold
Sistema motor a , d Reajuste ...
...
...
...
mapa ...
pcur
M pexp ,pold , cuja direção leva a uma região do ambiente modificada. A variável
Aexplorer , cujos valores representam pesos para o comportamento de explora-
ção, será explicitada na Seção 6.5.2. Realizadas as correções, o subsistema
Reajuste mapa então insere as novas informações em M (Algoritmo 6.1, da
linha 9 a 11).
pcur pcur11
00 pexp
00
11
3 4 3 13 11
00
00 ?
11 4
00
11
pold pold
pexp pcur
pexp
pcur M 0 3 4 12 13
... ...
0
M
...
0 3 4 12
... ... pold 3
0
...
4
pold 3
...
13
4
...
...
M 3,4 = 0/
M 3,4 = (out pold , d) = (l, d)
M 4,3 = 0/
M 4,3 = (in pcur , d) = (o, d)
M 3,13 = (out pold , d) = (l, d)
M 13,3 = (in pcur , d) = (o, d)
Figura 6.8: Um exemplo de modificação no ambiente. Em (a) nenhuma
mudança é detectada. Em (b) uma mudança é detectada e portanto M deve
ser corrigido.
Tomada decisão
Explorer Planner
Percepção
ξt o n l s o n l s
...
...
Sistema motor
1−Γ Γ
at
s
∂
+
o n l
1 se não existe obstáculo na direção i,
explorer cur
Ai (p ) = 0 caso contrário, (6.1)
para i = o, n, l, s.
γ · Ai
explorer explorer
Ai (pcur ) ← (pcur ) onde i = in pcur (6.2)
γ · Ai
explorer old explorer old
Ai (p ) ← (p ) onde i = out pold
Isto faz com que o comportamento de exploração seja guiado pela ex-
periência adquirida no passado, onde as ações mais recentemente executadas
tem seus pesos descontados, para que as outras ações alternativas possam ser
priorizadas posteriormente.
Como visto na seção 6.5.1, o subsistema Manutenção mapa detecta
uma alteração no ambiente, através da informação de que o lugar corrente,
pcur , é diferente do lugar esperado, pexp . Então o mapa cognitivo é reajustado
e o peso da ação que liga pexp ao lugar anterior pold é inicializado (Algoritmo
6.1, linha 7):
explorer
AM (pexp ) ← 1
pexp ,pold
Esta inicialização do peso da ação M pexp ,pold em Aexplorer , para o lugar espe-
rado, pexp , permite que uma região do ambiente anteriormente modificada,
seja novamente priorizada no contexto do comportamento de exploração.
Para competir com o subsistema Explorer, o subsistema Planner de-
fine e mantém a quádrupla A planner a cada lugar alcançado no ambiente. Ele
atua somente depois que o lugar objetivo, pob j , é descoberto (Algoritmo 6.2,
linha 8). Para tal, a variável α será zero enquanto o lugar objetivo não for
encontrado, caso contrário, α será 1 (Algoritmo 6.2, linhas 7 e 13). Para
cada lugar corrente alcançado, o conteúdo de A planner é calculado a partir do
algoritmo de Dijkstra (1959) sobre o mapa cognitivo (Algoritmo 6.2, linha
9):
1 − Γ ∀ Ai
planner explorer
Ai (pcur ) ← (pcur ) = 1
Isto faz com que estas ações, nunca exploradas em pcur , recebam um reforço
no contexto do comportamento de planejar caminho, além de já estarem com
o peso máximo relativo ao comportamento de explorar o ambiente.
Calculados Aexplorer (pcur ) e A planner (pcur ), o subsistema Tomada de
decisão decide sobre a próxima ação at através da quádrupla A (pcur ) = (A o ,
A n , A l , A s ), que combina os comportamentos de explorar ambiente e planejar
caminho, através do parâmetro Γ (0 < Γ < 1) (Algoritmo 6.2, linha 15):
Caso ocorra empate dentre os valores dos pesos das ações alternativas, o crité-
rio de desempate priorizará uma ação conforme a seqüência oeste, norte, leste
e sul. Em seguida a ação at é enviada ao módulo Sistema motor como res-
posta da camada deliberativa da arquitetura NeuroCog (Algoritmo 6.2, linha
17).
Exemplo
A Figura 6.10 ilustra um exemplo de funcionamento do subsistema
Tomada decisão no instante em que o robô encontra-se em pcur =4, tendo
pold =3 e pob j =5, durante execução do labirinto (a). Em (b), os subsistemas
Explorer e Planner efetuam as operações, a partir do mapa cognitivo, M , ne-
cessárias à decisão da ação at , (quadrados vermelhos e azul respectivamente).
O subsistema Explorer, através da Equação 6.2, produz Aexplorer (pold ) =
Aexplorer (3) = (0.8, 0.7, 0.7, 0) e Aexplorer (pcur ) = Aexplorer (4) = (0.7, 0, 0.8,
0.8), com fator de desconto γ = 0.999. Estes valores indicam que o robô já
visitara antes estes locais, inclusive detectando o lugar 5 como objetivo. E
ainda, segundo o subsistema Explorer, as ações alternativas “leste” e “sul”
em pcur concorrem com pesos iguais. O subsistema Planner utiliza distâncias
122 6. Arquitetura Neural Cognitiva: NeuroCog
(a)
Legenda:
pold pcur
: Algoritmo 6.1, (9 ∼ 11)
3 4 : Equação 6.2, γ = 0.995
: Equação 6.3
: Γ = 0.5
pob j 5 : 1 − Γ = 0.5
: Equação 6.4 e 6.5
(b) pcur
0 ... 3 4 5 ...
Planner
M
o n l s
0
...
pold
3 l 0 0 1 0
+
4 o s 0 0 0 1
+
n
pob j
5 0 1 0 0
...
o 0.8 0.7 0 N
Explorer
n 0.7 0 0.8
l 0.7 0.8 0
s 0 0.8 0 at = (0, 0, 0, 1)
entre lugares envolvidos nos possíveis caminhos entre pcur e pob j , armazena-
das em M (quadrados brancos não vazios), para calcular, através do algoritmo
Dijsktra, Equação 6.3, a ação que compõe o caminho mais curto até o lugar
pob j . Assim, A planner (pcur ) = A planner (4) = (0, 0, 0, 1), indica que a ação “sul”
é a ação que levará o robô ao objetivo de maneira mais eficiente, com relação
à soma de d’s. Calculados os valores de atração das ações alternativas em
pcur , para ambos os comportamentos de explorar ambiente e planejar cami-
nho, a seguir, no círculo azul em pcur , o valor do parâmetro Γ na Equação
6.4 (triângulos) determinará os valores de atração finais para as ações alter-
nativas. Em seguida, a Equação 6.5 irá estabelecer a ação resultante como
at = (0, 0, 0, 1), por possuir o maior peso, devido a Γ = 0.5.
1
Goals
1
Current places
2
II.
3
Vi j W jh
p1 p2 p3
Goal1 Goal2
(a) (b)
Values Motivation
Map Cognition
G
Word Schemas
(a) (b)
níveis. O nível reativo está limitado somente a interpretar dados dos sensores
e determinar ações, sem gerar ou acessar memória. Sua função consiste em
receber comandos dos níveis mais altos, tal como, “desça o corredor por três
quadrados”, mantendo o robô centralizado no corredor, e observando valores
cinemáticos para determinar quando o cumprimento da ação terminou.
Na arquitetura NeuroCog, a leitura dos sensores também é fornecida
aos níveis reativo e deliberativo. Porém, ambos os níveis funcionam inde-
pendentemente, onde os aspectos em comum são que ambos necessitam da
informação do estado do ambiente (informação de parede) e da ação exe-
cutada no ciclo de controle anterior. E ainda, o nível reativo da arquitetura
NeuroCog gera e acessa memória, referente ao mapeamento de percepção-
ação produzido pelo arranjo neural, diferente do nível reativo da arquitetura
de Wyeth e Browning (1998).
Os níveis cognitivo e motivacional da arquitetura de Wyeth e Brow-
ning (1998), utilizam a leitura dos sensores para produzir informação de pa-
redes. Enquanto o nível cognitivo gerencia assuntos de representação, locali-
zação e planejamento, o nível motivacional é responsável pela estratégia a ser
seguida pelo robô, tal como a definição do objetivo e a velocidade a qual o
robô deve executar. Este nível também é responsável por decidir quando ces-
sar a exploração e gerar uma rápida resolução do labirinto, proporcionando
ao robô o comportamento geral de ambos se mover e resolver o labirinto.
Sob este aspecto, o nível deliberativo da arquitetura NeuroCog tam-
bém utiliza a leitura dos sensores para produzir informação de paredes, so-
128 6. Arquitetura Neural Cognitiva: NeuroCog
15
8 14 12
7
6 13
6 8
7 w 11
w 10
15 5 9
5 14
n
3 4 9 17
28 17 16
4 16 n
2 10 12 13 28 29
G 11 18
26 27 3 21 e e
25 27
e 19
20 25
19 18
2 22
26 24 20
1
23 22 21 s
1 23
29 n
0 24
S 0
(a) (b)
6.6.4 Considerações
6.7 Conclusão
Simulações e Resultados
7.1 Introdução
1 O simulador WSU Khepera Robot foi desenvolvido pela Wright State University e
Ohio Board of Regents. Seu uso é dirigido pela Licença Pública da KSIM versão
1.0. O código fonte, documentação, e o texto da licença encontram-se juntos com esta
versão do programa. Na falta desta, uma distribuição completa pode ser obtida em:
http://gozer.cs.wright.edu/classes/ceg499/resources/
7. Simulações e Resultados 135
S1 S2 S3 S4
S0 S5
velesq veldir
S7 S6
(a)
(b)
Figura 7.1: (a) WSU Khepera Robot Simulator v7.2. (b) O robô físico e seu
ambiente no Laboratório de Dinâmica Neural e Computação da WSU (Wright
State University).
136 7. Simulações e Resultados
0 1 ... 7 ART1−R
Padrão entrada
0 1 ... 7
Camada F1 0.9
0 1 39
Camada F2 ...
r MLP seleção
Políticas MLPs−R
aprendizado
0 ... at
1
...
33
at at
at = (aw , an , al , as )
(a) (b)
(c)
Por outro lado, a partir dos resultados das simulações, verifica-se que
dentre os três casos analisados, o aprendizado efetivo ocorreu mais rapida-
mente no labirinto (b), com somente 975 passos (Tabela 7.1). Isto se deve
ao fato de que este labirinto possui corredores mais extensos com relação aos
outros dois e isto aumenta o número de vezes com que o mesmo padrão de
estado do ambiente é apresentado à entrada da rede ART1-R. Esta caracterís-
140 7. Simulações e Resultados
100
90
80
70
% media de açoes corretas
60
50
40
30
20
Labirinto (a)
10 Labirinto (b)
Labirinto (c)
0
0 0.5 1 1.5 2 2.5 3 3.5
Passos x 10
4
(a)
35
30
25
Total de classes (MLPs)
20
15
10
5 Labirinto (a)
Labirinto (b)
Labirinto (c)
0
0 0.5 1 1.5 2 2.5 3 3.5
Passos 4
x 10
(b)
at−1
bits_bifurc
ξt ART1−R
0 1 ... 7 ... 10
Padrão entrada
ξt , bifurc, beco
0 1 ... 7 ... 10
0.9 Camada F1
0 1 49
... Camada F2
MLP seleção
Políticas
MLPs−R
aprendizado
0 ... at
1
...
41
at at at
r Ψ
at = (aw , an , al , as )
Figura 7.5: Configuração da arquitetura neural reativa
ART1-R-MLPs-RR-Marcos.
90
80
70
% media de açoes corretas
60
50
40
30
20
Labirinto (a)
10 Labirinto (b)
Labirinto (c)
0
0 1000 2000 3000 4000 5000 6000 7000 8000
Passos
0.25 18
16
0.2
14
12
0.15
10
8
0.1
4
0.05
0 0
−2 0 2 4 6 8 10 12 14 16 18 0 1000 2000 3000 4000 5000 6000 7000 8000
Redes MLPs ativadas Passos
0.18
30
0.16
25
0.14
Redes MLPs ativadas
% media de ativaçao
0.12
20
0.1
15
0.08
0.06
10
0.04
5
0.02
0 0
−5 0 5 10 15 20 25 30 35 0 1000 2000 3000 4000 5000 6000 7000 8000
Redes MLPs ativadas Passos
30
0.2
25
Redes MLPs ativadas
% media de ativaçao
0.15
20
15
0.1
10
0.05
0 0
−5 0 5 10 15 20 25 30 35 0 1000 2000 3000 4000 5000 6000 7000 8000
Redes MLPs ativadas Passos
... at Sistema
...
at−1 M ...
Planner
motor
...
...
...
Sistema
pob j o n l s
motor
...
Toda vez que uma bifurcação ou beco sem saída é detectado, a ca-
mada deliberativa Map-Tree recebe as informações ξt , pcur e pold através do
módulo Percepção (Seção 6.3) e at−1 a partir do módulo Sistema motor. A
camada de mapeamento cognitivo Map-Tree é assim denominada devido à
fase de exploração do robô ser responsável por construir o mapa cognitivo
enquanto a fase de planejamento de caminho transpõe este mapa para uma ár-
vore binária a fim de determinar o planejamento de ações em cada bifurcação
que levará ao lugar objetivo.
O mapa cognitivo, M , é representado por um grafo, onde os nós re-
presentam lugares (becos sem saída e bifurcações no labirinto) e as arestas
armazenam informações referentes a ações de saída e chegada entre os nós.
Como descrito no Algoritmo 7.1, M é construído à medida que novos lugares
são encontrados, e enquanto a fase de exploração é mantida (linhas 4 a 10).
Assim como definido na Seção 6.5.1, out pold e in pcur , correspondem as ações
de saída em pold e chegada em pcur , respectivamente. A ação de saída em pold
é obtida a partir de A (linha 2), que contém os valores de pesos para as ações
alternativas no lugar anteriormente alcançado, pold . Já a ação de chegada em
pcur é obtida diretamente através de at−1 (linha 3).
148 7. Simulações e Resultados
Camada deliberativa
ξt S
Controle neural
at−1
at
Sistema
Percepção motor
...
S0 S1 S7 θ (x, y) θ velesq veldir
(a) (b)
150
Punicoes
100 Navegando →
50
0
0 500 1000 1500
Passos
(a)
Mapeamento percepçao−açao: ART1−MLPs−RR
200
150
Punicoes
100 Navegando →
50
0
0 500 1000 1500
Passos
(b)
Mapeamento percepçao−açao: ART1−R−MLPs−RR
200
150
Punicoes
100 Navegando →
50
0
0 500 1000 1500
Passos
(c)
−280 −280
−300 −300
−320 −320
Objetivo Objetivo
−340 −340
−360 −360
−380 −380
−400 −400
−440 −440
−460 −460
0 50 100 150 200 250 300 0 50 100 150 200 250 300
35
ρ=1
30
nº de classes (neuronios ativavos em F2) = nº de MLPs
ρ = 0,9
ρ = 0,8
25
ρ = 0,7
20 ρ = 0,6
15
10
0
0 1000 2000 3000 4000 5000 6000 7000 8000
Passos
100
90 ρ=1
ρ = 0,9
80
ρ = 0,6 ρ = 0,8
70
ρ = 0,7
60
% de acertos
50
40
30
20
10
0
0 1000 2000 3000 4000 5000 6000 7000 8000
Passos
S
S
(a) (b)
S T
(c)
Como ilustrado nas Figuras 7.15 (a), (b) e (c), foram utilizados três
labirintos do tipo T, onde o robô iniciou sua operação a partir dos luga-
res nos labirintos identificados como S (lugar origem). O lugar objetivo é
identificado com T. Foram computados o número de passos para completar a
fase de exploração, bem como a quantidade de classes criadas (mapeamentos
percepção-ação) pela rede ART1 na camada reativa da arquitetura analisada.
A Tabela 7.4 mostra os dados de simulação obtidos durante a execução
do robô nos três labirintos. A fase de exploração no labirinto (a) termina com
a menor quantidade de passos, pelo fato deste labirinto ser o menor em com-
158 7. Simulações e Resultados
20
15
10
5 450
400
0 350
300 300
250
250 200
200 150
100
150 50
100 0
l
9 8 l
o
n 10
n s
T
l
7 6
5 o
l n s n s
l l l
3 2 4 10 9 11 l
o o o o l l 5 11
T
n s n s n s
3 2 4 o
o o
l l l s n s
0 1 7 6 8 o
o o o l
S n s n s
1 0
13 12 o S
(a) (b)
n
2 6 8 10
n
n s n s n s n s
l l l
1 3 4 5 7 9
o o o
n s n s n s n s
s
0 13 12 11
s
S T
(c)
Ob j Ob j Ob j
(a) II 11 p (b) II 10 p (c) II 11 p
l l s
9 8 9
n l n l l s
8 10 6 9 7 10
l n n l s s
6 12 5 7 5 8
s l n o l s
4 7 1 11 4 6
l s o s n s
2 5 0 2 3 12
n l l o l s
1 3 3 4 1 13
l n s
n
0 13 0 2
Figura 7.18: Árvores de decisão criadas a partir dos mapas cognitivos (a),
(b) e (c) da Figura 7.17.
162 7. Simulações e Resultados
... at Sistema
...
at−1 , d M ...
Planner
motor
...
...
...
o n l s
Dijkstra
Sistema
motor
...
Reajuste
Explorer
M 0 1 2 3 4 5 6 7 8
o n l s
Explorer n 0.0 0.9 0.0 0.0
0 d
M 0 1 2 3 4 5 6
o n l s 1
s
d
n
d 0.0 0.9 1.0 0.9
nd 0.0 0.9 0.0 0.0 s o l 0.8 0.0 0.9 0.9
0 2 d d d
s n o n s
1 d d 0.0 0.9 1.0 0.9 3 d d d 0.8 0.8 0.0 0.8
0 1 2 3 4 5 6 7 8 9 10 11
Explorer
M n
o n l s
0 d 0.0 0.9 0.0 0.0
s n ld 0.0 0.8 0.9 0.9
1 d d
2 s o ld 0.8 0.0 0.8 0.8
d d
3 o n s 0.8 0.8 0.0 0.8
d d d 3
4 n o ld 0.9 0.8 0.9 0.0 T
d d
5 ld o s 0.9 0.0 0.9 0.9 6 5 4 9
d d 8
6 n ld s 0.0 0.8 0.9 0.9
d d
7 o nd l 0.8 0.9 0.9 0.0
d d
8 o l s 0.9 0.0 0.8 0.9
d d d 2 7 11 10
o
9 d 0.8 0.0 0.0 0.0
s l d o
10 d d 0.8 0.0 0.9 0.9
1
11 n o ld 0.9 0.9 0.8 0.0
d d
S 0
a T.
Os gráficos (a), (b) e (c) da Figura 7.20 descrevem em três etapas
subsequentes, a exploração completa e a construção do mapa cognitivo do
labirinto (d). Cada gráfico apresenta a configuração do mapa cognitivo no
momento em que o robô executou os respectivos passos de controle. À direita
de cada mapa são apresentados os valores da variável Aexplorer gerenciadas
pelo subsistema Explorer, que segue a prioridade oeste, norte, leste e sul,
quando ocorre empate entre os valores dos pesos das ações alternativas em
Aexplorer , para um dado lugar corrente.
Por exemplo, o mapa topológico M em (a), Figura 7.20, é obtido com
627 passos de controle. Ou seja, até este momento, o robô tem alcançado 7
lugares no labirinto, onde são incorporados 7 nós em seu grafo topológico. O
grafo armazena informações referentes as ações de entrada e saída entre nós
vizinhos (o, n, l, ou s) mais a distância percorrida em número de passos de
controle (d). Neste primeiro intervalo de exploração, entre os passos 1 até
627, o robô percorreu a seguinte trajetória: 0 −− n→ 1 −− n→ 2 −−o→ 3 −−
n→
−−→ −−→
4 o 5 o 6. No segundo intervalo, entre os passos 627 até 1253, o
robô obtém o mapeamento cognitivo correspondente ao gráfico (b), onde mais
dois novos lugares são adicionados a M , para tal o robô executa a seguinte
−−→ −−→
trajetória: 6 −− n→ 3 −−
o→ 2 l 7 −− n→ 6 −−n→ 3 −− n→ 4 l 8. E finalmente,
no terceiro intervalo, entre os passos 1254 a 1881 a fase de exploração é
completada, com a inclusão de mais três lugares restantes a M , ao passo que
−−→
o robô executa a seguinte trajetória: 8 l 9 −− o→ 8 −−s→ 10 −− o→ 11 −−
o→
− −→ −−→ −−→ −−→ −−→
7 o 2 s 1 l 10 l 11 n 5. E assim o mapeamento o cognitivo
do labirinto é apresentado no gráfico (c) da Figura 7.20.
−50 −50
−100 −100
−150 −150
−200 −200
Objetivo Objetivo
−250 −250
−300 −300
−350 −350
Inicio Inicio
−400 −400
0 50 100 150 200 250 300 350 400 450 0 50 100 150 200 250 300 350 400 450
−50 −50
Neuronio ativado em F2
Neuronio ativado em F2
−100 −100
30 30
20 −150 20 −150
Objetivo Objetivo
10 10
−200 −200
0 0
Inicio Inicio
0 −250 0 −250
50 50
100 100
150 −300 150 −300
200 200
250 −350 250 −350
300 300
350 350
400 −400 400 −400
450 450
−50
−100
−150
←T
3
T −200
6 5 4 8 9 −250
−300
2 7 11 10 −350
↑
S
−400
1
S 0 −450
0 50 100 150 200 250 300 350 400 450
(a) (b)
−50
−100
3
T −150
6 5 4 8 9 −200
−250
14 12
−300
2 7 11 10 13
−350
−400
1
S 0 −450
0 50 100 150 200 250 300 350 400 450
(a) (b)
...
0 M0 4 5 6 7 8 9 10 11 12 13 14
0
...
−50
4 o ld
d
−100
5 ld o
d 0/
−150
←T
6 ld 0/
7 0/ l n
−200 d d
d 0/
8 o l
d
−250
9 o
d
−300 10 0/ o
d ld
11 0/ o
d ld n
d
−350
12 s
S d
−400
13 o
d
−450 14 s
0 50 100 150 200 250 300 350 400 450 d
(c) (d)
Figura 7.24. Conforme pode ser visualizado na Figura 7.24 (b) o robô parte
do lugar S com o plano de executar a trajetória (0 ∼ 1 ∼ 2 ∼ 7 ∼ 11 ∼ 5 ∼ 4
∼ 8 ∼ 9), mas ao sair do lugar 11 para alcançar o lugar 5, por exemplo, o robô
detecta um bloqueio, o qual reconhece como um beco sem saída, atribuindo a
este novo lugar a identificação 12 [Figura 7.24 (a)]. Neste momento, o mapa
cognitivo é reajustado [Figura 7.24 (d)], onde M [11][5] ← M [5][11] ← 0, /
M [11][12] ← n e M [12][11] ← s, e a partir de lugar 12, um novo caminho
de desvio é planejado: (12 ∼ 11 ∼ 10 ∼ 8 ∼ 9). Porém, quando o robô
saí do lugar 10 para alcançar o lugar 8, um novo bloqueio é detectado no
percurso, deste modo, o novo beco sem saída é identificado como 13 [Fi-
gura 7.24 (a)]. E neste lugar, o mapa cognitivo é novamente reajustado:
M [10][8] ← M [8][10] ← 0, / M [10][13] ← l e M [13][10] ← o [Figura 7.24
7. Simulações e Resultados 171
de controle em questão.
(a) (b)
(c) (d)
Desta forma, foram executadas três simulações para cada um dos la-
birintos (a), (b), (c) e (d) ilustrados na Figura 7.25. As simulações realizadas
se diferenciam pelas prioridades de escolha (horária, anti-horária e aleató-
ria) estabelecidas na camada deliberativa. Em cada labirinto, o robô simu-
lado se encontra sobreposto ao lugar identificado como 0, que corresponde
ao lugar onde ele inicia sua tarefa de exploração. A cada simulação, o robô
executa uma exploração completa, onde ao final são anotadas medidas de de-
sempenhos, relacionadas à utilização de recursos de tempo e memória. As
numerações indicadas nos labirintos da Figura 7.25 exemplificam a seqüên-
cia de identificações dos lugares encontrados e inseridos no mapa cognitivo,
à medida que o robô explora os labirintos, seguindo a prioridade “horária” na
7. Simulações e Resultados 173
800
4000
600
400
2000
200
0 0
(a) (b) (c) (d) (a) (b) (c) (d)
Labirintos Labirintos
(a) (b)
30 1500
20 1000
10 500
0 0
(a) (b) (c) (d) (a) (b) (c) (d)
Labirintos Labirintos
(c) (d)
maior o tempo despendido para completar a tarefa. Por outro lado, as dife-
rentes medidas relacionadas às prioridades “horária”, “anti-horária” e “alea-
tória”, em cada labirinto, não apresentam diferenças significativas e demons-
tram um desempenho médio.
Já os gráficos relacionados à quantidade de redes MLPs ativadas e pu-
nições aplicadas [Figura 7.26 (c) e (d)] correspondem aos custos da atuação
da camada reativa ART1-R-MLPs-RR, durante o processo de exploração dos
labirintos. A quantidade de redes MLPs corresponde diretamente à classifi-
cação de padrões executada pela rede ART1, e ainda, esta classificação sofre
influência quanto à sequência e frequência com que os padrões de entrada
são apresentados à rede. Já com relação à quantidade de punições aplicadas,
estas medidas estão relacionadas em parte à quantidade de classes ou MLPs
criadas. Entretanto, estas são as medidas mais desiguais entre as prioridades
de exploração estabelecidas, devido à característica aleatória do aprendizado
online das rede MLPs.
Portanto, com base nestes quatro tipos de informações coletadas, pode-
se concluir que as diferentes prioridades de exploração consomem em média a
mesma quantia de recursos de memória e tempo e que as pequenas diferenças
observadas quanto ao desempenho da arquitetura Map-Dijkstra/ART1-R-
MLPs-RR dependerá do tamanho e da configuração do formato dos labirin-
tos.
Já os gráficos (a), (b) e (c) da Figura 7.27 mostram respectivamente as
informações sobre punições e quantidade de MLPs ativadas mediante as pri-
oridades de exploração “horária”, “anti-horária” e “aleatória” estabelecidas
pela camada deliberativa, durante as simulações no labirinto (d).
270
250 41
MLPs ativadas
200
Punicoes
30
150
20
100
50 10
0 0
0 1000 2000 3000 4000 5000 6189
Passos
MLPs ativadas
150
Punicoes
30
100
20
50 10
0 0
0 500 1000 2000 3000 4000 5000 6000 7000 7423
Passos
256
41
MLPs ativadas
200
Punicoes
30
150
20
100
50 10
0 0
0 500 1000 2000 3000 4000 5000 6000 70007332
Passos
1 1
Horaria Horaria
Anti−horaria Anti−horaria
Exploraçao media
Exploracao media
0.4 0.4
0.2 0.2
0 0
0 20 40 60 80 100 0 20 40 60
Passos de exploraçao Passos de exploraçao
1 1
Horaria Horaria
Anti−horaria Anti−horaria
Exploracao media
Exploracao media
0.4 0.4
0.2 0.2
0 0
0 10 20 30 40 50 0 20 40 60 80 100
Passos de exploraçao Passos de exploraçao
Os gráficos (a), (b), (c) e (d) da Figura 7.28 comparam os dados ob-
tidos a partir das simulações executadas no experimento anterior, mais as
simulações executadas com a modalidade de exploração randômica, para os
labirintos (a), (b), (c) e (d) da Figura 7.25. A cada passo de exploração, a
exploração média, A (t) é computada para as três prioridades de exploração
“horária”, “anti-horária” e “aleatória” e a modalidade randômica estabele-
cidas na camada deliberativa da arquitetura. Como pode ser observado nos
gráficos, A (t) é mantida em 1 enquanto o número de ações alternativas ainda
não executadas for igual ao número de lugares encontrados até o momento. E
ainda, se no início da tarefa de exploração, o robô for alcançando mais novas
bifurcações do que becos sem saída, o valor da exploração média é mantida
próxima ou igual a 1.
Portanto, a partir dos gráficos da Figura 7.28, nota-se a importância
de considerar a experiência realizada pelo robô na decisão da ação corrente.
Caso contrário, o robô consome muito tempo para completar a exploração,
como no caso do labirinto (d) da Figura 7.25. Sendo assim, o desempenho da
arquitetura Map-Dijkstra/ART1-R-MLPs-RR, ao estabelecer a modalidade
de exploração randômica na camada deliberativa, torna-se bastante inferior
ao desempenho da mesma arquitetura, ao estabelecer as prioridades de explo-
ração “horária”, “anti-horária” ou “aleatória”.
T 8 Camada deliberativa:
Mapeamento cognitivo
7 Camada reativa:
Mapeamento percepção−ação
6 9
5 4 17 16 10
3 11 12
15 14
N 2 13
S 0
1200 41
40
Desempenho medio (S − T)
400
28
200
(a) 0 − 0.4 (×104 ) passos (b) 0.4001 − 1.2 (×104 ) passos (c) 1.2001 − 2 (×104 ) passos
o labirinto sofre uma primeira modificação onde todos dos caminhos entre S
e T, com exceção de um, são interceptados. Eles são mantidos assim durante
o intervalo de 0.4001 − 1.2 (×104 ) passos, como pode ser visto na Figura
7.31(b). Em seguida, durante o intervalo de 1.2001 − 2 (×104 ) passos, como
mostrado na Figura 7.31(c), o labirinto sofre uma segunda modificação onde
os caminhos anteriormente bloqueados são liberados, ao passo que o único
caminho livre entre S e T até então torna-se interceptado.
O objetivo da primeira modificação no labirinto - Figura 7.31(b) - é
observar o quanto uma exploração completa é necessária quando o ambi-
ente sofre modificações bruscas. Uma exploração completa proporciona um
comportamento mais adaptativo onde o robô torna-se apto para tentar outros
caminhos alternativos até o objetivo, quando caminhos conhecidos são blo-
queados. Neste caso, o valor mais apropriado ao parâmetro Γ na Eq. 6.4
é aquele que detecta o momento em que o comportamento de explorar já foi
executado o suficiente, para então ser substituído pelo comportamento de pla-
nejar. Ainda com o mesmo valor para o parâmetro Γ , o objetivo da segunda
modificação - Figura 7.31(c) - é avaliar se o robô será hábil para substituir
o comportamento de planejar pelo comportamento de explorar, a fim de en-
contrar novamente o caminho mais curto então desbloqueado, e como con-
seqüência salvar mais vítimas.
Os gráficos das Figuras 7.32 e 7.33 mostram as medidas de desem-
penhos das camadas deliberativa e reativa, implementadas pelos módulos de
Mapeamento cognitivo e de Controle neural respectivamente. O eixo Per-
formance S-T (T-S) da Figura 7.32 mede a quantidade de ciclos de controle
7. Simulações e Resultados 183
3000
Desempenho S−T (T−S)
Figura 7.31(a) Figura 7.31(b) Γ = 0.0 Figura 7.31(c)
2500 Γ = 0.1
Γ = 0.2
2000 Γ = 0.5
Γ = 0.7
1500
1000
500
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Passos 4
x 10
50
Figura 7.31(a) Figura 7.31(b) Figura 7.31(c)
Custos controle reativo
40
30
Γ = 0.0
Γ = 0.1
20
Γ = 0.2
Γ = 0.5
10 Γ = 0.7
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Passos 4
x 10
Figura 7.31(b), os desempenhos são mostrados nos gráficos das Figuras 7.32
e 7.33. Neste intervalo, por esta mudança ser de grande escala, para todos
os valores de Γ na Figura 7.33 dá-se um aumento nos custos do controle rea-
tivo. Como a maioria dos caminhos entre S e T são bloqueados, o padrão de
seqüência das percepções de entrada para rede ART1 sofrem modificações,
aumentando assim o número de novas classes e conseqüentemente punições.
Ainda durante o segundo intervalo, o desempenho do módulo Mapeamento
cognitivo, Figura 7.32, para valores de Γ iguais a 0.0 e 0.1 são baixos, pois
somente o comportamento de exploração é predominante nestes casos. Para
Γ = 0.7, o robô consome algum tempo explorando, pois o único caminho co-
nhecido entre S e T até o momento fora bloqueado, e quando ele encontra um
novo caminho de acesso a S e T, o comportamento de planejar torna-se pre-
dominante. Para os valores de Γ iguais a 0.2 e 0.5 vê-se que o robô também
encontra o único caminho disponível, porém, antes disso, o mesmo consome
algum tempo tentando o acesso ao lugar objetivo por outros caminhos alter-
nativos conhecidos.
Durante o terceiro intervalo da execução da tarefa de resgate, entre os
passos 12001 a 20000 o robô deve tratar com a segunda mudança no labi-
rinto. Esta mudança envolve o bloqueio do único caminho então disponível
entre S e T, Figura 7.31(c), levando o robô a novamente explorar o ambiente
a fim de buscar por outros caminhos alternativos. Como visto na Figura 7.33,
os desempenhos do controle reativo, para todos os valores de Γ, obtiveram
uma pequena elevação dos custos, devido à mudança na seqüência tempo-
ral dos padrões de entrada para a rede ART1 no módulo Controle neural.
Considerando-se o desempenho do módulo Mapeamento cognitivo, para os
valores de Γ que fazem predominar o comportamento de exploração, 0.0, 0.1
7. Simulações e Resultados 185
28
Vitimas resgatadas
19
11
Arquiteturas propostas:
Reativas Híbridas
s
arco
R-M
R∗
Ps -R
Ps -R
∗
tra/
L
e/∗
R-M
R-M
ks
og
-Tre
-Dij
roC
1-
1-
ART
ART
Map
Map
Neu
LESBB × × × × ×
Ambientes
LEE × × × ×
LESC × × ×
LCM1 × ×
LCM2 ×
Comportamentos
RF × × × × ×
RE × × × × ×
EPE × ×
D × ×
EPD ×
Legenda:
LESBB = labirintos estáticos sem bifurcações e becos sem saída.
Ambientes
RF = reflexivo.
RE = reativo.
EPE = exploração e planejamento estáticos.
D = desvio.
EPD = exploração e planejamento dinâmicos.
7.7 Conclusão
Conclusão
locais.
Outro aspecto importante é estender a aplicação e utilização de RNAs
como blocos de construção básicos também para o desenvolvimento da ca-
mada deliberativa da arquitetura NeuroCog. Onde por exemplo, uma RNA
com aprendizado auto-supervisionado pudesse gerar um comportamento ex-
ploratório e ao mesmo tempo representar de maneira incremental e explícita
o mapa topológico do ambiente.
Durante todo o processo de desenvolvimento da abordagem Neuro-
Cog, não foram consideradas questões de plausibilidade biológica, em am-
bos os níveis comportamental e neurofisiológico. Entretanto seria importante
dar maior atenção a estes aspectos, dado o avanço das pesquisas em robótica
bioinspirada.
Todos os experimentos realizados nesta tese foram testados em um
ambiente de simulação. Para uma validação mais concreta do sistema Neu-
roCog, se faz necessário testar a abordagem proposta em um robô real, que
está sendo desenvolvido no LCA/DAS.
Além disto, questões de portabilidade devem ser desenvolvidas a fim
de adaptar o sistema NeuroCog a ambientes abertos, incorporando os aspec-
tos da abordagem topológica implementados no contexto da navegação em
labirinto.
Figura 8.1: Ruído nos dados sensórios: exemplo de colisão devido a uma
parede “imaginária”.
θ
Interface de Fuzzy ART / ART2
S0 ξtf uzzy at−1
...
"fuzificação"
S7 Padrão entrada
MLP seleção
Base de Máquina de
regras fuzzy inferência
fuzzy Conjunto MLPs
at
r
Interface de Políticas at−1
aprendizado
"defuzificação" ξtcrisp
ξtf uzzy
ξt−1
f uzzy MB B A MA
MB ZE ZE ZE UM
B ZE ZE UM UM
A ZE UM UM UM
MA UM UM UM UM
1 MB B A MA
0.75
0.5
0.25
0
256 512 768 1023
Valor sensor IR
MB B A MA
1
0.75
0.5
0.25
0
0 3 6
Velocidade
Figura 8.5: Função de pertinência para a variável de saída atf uzzy . Notações -
MB: Muito baixa. B: Baixa. A: Alta. MA: Muito alta.
}
/* OESTE NORTE LESTE SUL caso = 0010*/
else if(estado[0]==0 && estado[1]==0 && estado[2]==1 && estado[3]==0){
if (movimento[2]==1)
r = punicao;
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else if (estado[mov_ant] == 1 && movimento[0]==1) // quer ir para Oeste
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0011*/
else if(estado[0]==0 && estado[1]==0 && estado[2]==1 && estado[3]==1){
if (movimento[2]==1 || movimento[3]==1)
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == Leste e movimento atual != Norte OU
//se mov. anterior == Sul e movimento atual != Oeste
if ( (mov_ant==2 && movimento[1]!= 1) || (mov_ant==3 && movimento[0]!= 1))
r = punicao;
else r = recompensa;
}
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0100*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==0 && estado[3]==0){
if (movimento[1]==1)
r = punicao;
// direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else if (estado[mov_ant] == 1 && movimento[3]==1) // quer ir para SUL
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0101*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==0 && estado[3]==1){
if (movimento[1]==1 || movimento[3]==1 )
r = punicao;
//direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0110*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==1 && estado[3]==0){
if (movimento[1]==1 || movimento[2]==1)
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == Leste e movimento atual != SUL OU
//se mov. anterior == NORTE e movimento atual != Oeste
if ( (mov_ant==2 && movimento[3]!= 1) || (mov_ant==1 && movimento[0]!= 1))
A. Regras de Políticas de Aprendizado Online - redes MLPs 203
r = punicao;
else r = recompensa;
}
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0111*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==1 && estado[3]==1){
if (movimento[1]==1 || movimento[2]==1 || movimento[3]==1 )
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1000*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==0 && estado[3]==0){
if (movimento[0]==1)
r = punicao;
// direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else if (estado[mov_ant] == 1 && movimento[2]==1) // quer ir para LESTE
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1001*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==0 && estado[3]==1){
if (movimento[0]==1 || movimento[3]==1 )
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == OESTE e movimento atual != NORTE OU
//se mov. anterior == SUL e movimento atual != LESTE
if ( (mov_ant==0 && movimento[1]!= 1) || (mov_ant==3 && movimento[2]!= 1))
r = punicao;
}
else r = recompensa;
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1010*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==1 && estado[3]==0){
if (movimento[0]==1 || movimento[2]==1 )
r = punicao;
//direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1011*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==1 && estado[3]==1){
if (movimento[0]==1 || movimento[2]==1 || movimento[3]==1 )
r = punicao;
else r = recompensa;
}
204 A. Regras de Políticas de Aprendizado Online - redes MLPs
}
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0010*/
else if(estado[0]==0 && estado[1]==0 && estado[2]==1 && estado[3]==0){
if (movimento[2]==1)
r = punicao;
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (!ocorreu_bifurcacao && estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else if (!ocorreu_bifurcacao && estado[mov_ant] == 1 && movimento[0]==1)
// quer ir para Oeste
r = punicao;
else if (ocorreu_bifurcacao){
if((mov_ant + 2) > 3 ){
if(movimento[mov_ant - 2] == 1)
r = punicao;
else r = recompensa;
}
else if (movimento[mov_ant + 2] == 1)
r = punicao;
else r = recompensa;
}
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0011*/
else if(estado[0]==0 && estado[1]==0 && estado[2]==1 && estado[3]==1){
if (movimento[2]==1 || movimento[3]==1)
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == Leste e movimento atual != Norte OU
//se mov. anterior == Sul e movimento atual != Oeste
if ( (mov_ant==2 && movimento[1]!= 1) || (mov_ant==3 && movimento[0]!= 1))
r = punicao;
else r = recompensa;
}
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0100*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==0 && estado[3]==0){
if (movimento[1]==1)
r = punicao;
// direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (!ocorreu_bifurcacao && estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else if (!ocorreu_bifurcacao && estado[mov_ant] == 1 && movimento[3]==1)
// quer ir para SUL
r = punicao;
else if (ocorreu_bifurcacao){
if((mov_ant + 2) > 3 ){
if(movimento[mov_ant - 2] == 1)
r = punicao;
else r = recompensa;
}
206 A. Regras de Políticas de Aprendizado Online - redes MLPs
else if (movimento[mov_ant + 2] == 1)
r = punicao;
else r = recompensa;
}
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0101*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==0 && estado[3]==1){
if (movimento[1]==1 || movimento[3]==1 )
r = punicao;
//direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0110*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==1 && estado[3]==0){
if (movimento[1]==1 || movimento[2]==1)
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == Leste e movimento atual != SUL OU
//se mov. anterior == NORTE e movimento atual != Oeste
if ( (mov_ant==2 && movimento[3]!= 1) || (mov_ant==1 && movimento[0]!= 1))
r = punicao;
else r = recompensa;
}
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 0111*/
else if(estado[0]==0 && estado[1]==1 && estado[2]==1 && estado[3]==1){
ocorreu_beco = true;
if (movimento[1]==1 || movimento[2]==1 || movimento[3]==1 )
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1000*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==0 && estado[3]==0){
if (movimento[0]==1)
r = punicao;
// direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (!ocorreu_bifurcacao && estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else if (!ocorreu_bifurcacao && estado[mov_ant] == 1 && movimento[2]==1)
// quer ir para LESTE
r = punicao;
else if (ocorreu_bifurcacao){
if((mov_ant + 2) > 3 ){
if(movimento[mov_ant - 2] == 1)
r = punicao;
else r = recompensa;
}
else if (movimento[mov_ant + 2] == 1)
r = punicao;
else r = recompensa;
A. Regras de Políticas de Aprendizado Online - redes MLPs 207
}
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1001*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==0 && estado[3]==1){
if (movimento[0]==1 || movimento[3]==1 )
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == OESTE e movimento atual != NORTE OU
//se mov. anterior == SUL e movimento atual != LESTE
if ( (mov_ant==0 && movimento[1]!= 1) || (mov_ant==3 && movimento[2]!= 1))
r = punicao;
else r = recompensa;
}
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1010*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==1 && estado[3]==0){
if (movimento[0]==1 || movimento[2]==1 )
r = punicao;
//direcao do mov. anterior esta livre
// nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1011*/
else if(estado[0]==1 && estado[1]==0 && estado[2]==1 && estado[3]==1){
ocorreu_beco = true;
if (movimento[0]==1 || movimento[2]==1 || movimento[3]==1 )
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1100*/
else if(estado[0]==1 && estado[1]==1 && estado[2]==0 && estado[3]==0){
if (movimento[0]==1 || movimento[1]==1)
r = punicao;
else if (estado[mov_ant] == 1){ //direcao do mov. anterior NAO esta livre
//se mov. anterior == OESTE e movimento atual != SUL OU
//se mov. anterior == NORTE e movimento atual != LESTE
if ( (mov_ant==0 && movimento[3]!= 1) || (mov_ant==1 && movimento[2]!= 1))
r = punicao;
else r = recompensa;
}
//direcao do mov. anterior esta livre &&
//nao repetiu mov. anterior
else if (estado[mov_ant] == 0 && movimento[mov_ant]!= 1)
r = punicao;
else r = recompensa;
}
/* OESTE NORTE LESTE SUL caso = 1101*/
else if(estado[0]==1 && estado[1]==1 && estado[2]==0 && estado[3]==1){
ocorreu_beco = true;
if (movimento[0]==1 || movimento[1]==1 || movimento[3]==1 )
r = punicao;
else r = recompensa;
208 A. Regras de Políticas de Aprendizado Online - redes MLPs
}
/* OESTE NORTE LESTE SUL caso = 1110*/
else if(estado[0]==1 && estado[1]==1 && estado[2]==1 && estado[3]==0){
ocorreu_beco = true;
if (movimento[0]==1 || movimento[1]==1 || movimento[2]==1 )
r = punicao;
else r = recompensa;
}
Referências Bibliográficas
MILLáN, J. del R. The handbook of brain theory and neural networks. In:
. [S.l.]: Michael A. Arbib, MIT Press, 2003. cap. “Robot Navigation”,
p. 987–990.
MORAVEC, H. P. The stanford cart and the cmu rover. Proceedings of the
IEEE, v. 71, n. 7, p. 872–884, July 1993.
OMIDVAR, O.; SMAGT, P. van der (Ed.). Neural Systems for Robotics.
[S.l.]: Academic Press, 1997. ISBN 0-12-526280-9.
ZHANG, J.; WILLE, F.; KNOLL, A. Fuzzy logic rules for mapping sensor
data to robot control. Advanced Mobile Robots, Euromicro Workshop on,
IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p. 29, 1996.