Vous êtes sur la page 1sur 95

Aplicaes de Sistemas Classificadores para Robtica Autnoma Mvel com Aprendizado

por

Lubnen Name Moussi


Orientador

Prof. Dr. Marconi Kolm Madrid


Co-Orientador

Prof. Dr. Ricardo Ribeiro Gudwin

Dissertao apresentada como requisito parcial para a obteno do ttulo de Mestre em Engenharia Eltrica.

Banca examinadora: 1. Prof. Dr. Alexandre Pinto Alves da Silva - COPPE - UFRJ 2. Prof. Dr. Fernando Antnio Campos Gomide - FEEC - UNICAMP 3. Prof. Dr. Fernando Jos Von Zuben - FEEC - UNICAMP

7 de Novembro de 2002

FEEC
Faculdade de Engenharia Eltrica e de Computao

UNICAMP
Universidade Estadual de Campinas

As Trs Leis da Robtica, segundo Isaac Asimov - Primeira Lei: um rob no pode ferir um ser humano, ou, por omisso, permitir que um ser humano sofra algum mal. - Segunda Lei: um rob deve obedecer s ordens que lhe sejam dadas por seres humanos, exceto nos casos em que tais ordens contrariem a Primeira Lei. - Terceira Lei: um rob deve proteger sua prpria existncia enquanto tal proteo no entrar em conflito com a Primeira ou Segunda Leis. Ref.: Isaac Asimov, "Eu, rob", Editora Expresso e Cultura, 8a. edio, pg 61, 1974.

Dedicatria

Com muito amor dedico este trabalho a Dna. Ditinha, Silvia e Marina

Agradecimentos
Silvia e Marina pela confiana, entusiasmo e carinho por mim enquanto busco ideais que procuro atingir desde minha infncia. Aos meus sogros Seu Chico e Dna. Ditinha, tia Maria, minha cunhada Dra. Luciana e aos meus cunhados Pedro e Tinha por todo o apoio minha famlia. Em especial Dna. Ditinha, minha querida incentivadora. todos os meus familiares, irmos, cunhados e sobrinhos pelo apoio. Ao Beor, Cristiane, ao Rafael e Silvia, pela torcida e por me fazerem sentir seu afeto mesmo distante. Ao Prof. Dr. Marconi Kolm Madrid que me acolheu como seu orientado, e sempre me incentiva e transmite amizade, confiana e conhecimento. Alm de bom companheiro nas horas difceis. Ao Prof. Dr. lvaro Badan Palhares, que me aceitou como seu orientado oficial enquanto, por questes regimentais, o Prof. Madrid no pode, possibilitando meu ingresso como aluno regular. Aos Prof. Drs. Ricardo Ribeiro Gudwin, meu co-orientador, e Fernando Jos Von Zuben, professor e grande amigo sempre presente neste meu trabalho, parceiros desde a formulao das primeiras idias com relao minha Tese, passando pela publicao de vrios artigos, at a sua finalizao. Aos colegas de mestrado, de diversas reas, Cristiane, Renato, Edlson, Valdei, Rangel, Vnio e tantos outros. Aos colegas do DSCE Mrio e Fabrcio pela orientao e ajuda em tantos detalhes. Arthur C. Clarke, Isaac Asimov e Carl Sagan, representando seres Humanos especiais que olham para a Cincia com encantamento e criatividade e a veiculam em obras maravilhosas, fontes de inspirao para aqueles que se propem a estudar o Universo, tanto para entender e saborear os seus mistrios quanto para poderem sugerir novas formulaes que concretizem um mundo bem melhor. UNICAMP pelo que ela representa no cenrio nacional e internacional e por ter me propiciado uma infra-estrutura humana e material de pesquisa das mais qualificadas. CAPES por contribuir para subsidiar meus estudos. PR-VIDA e seu idealizador e fundador Dr. Celso Charuri, que atravs de seus cursos, monitores, preceptores e inmeros amigos, tem propiciado fundamentos e ambiente para eu me estruturar mental e espiritualmente na busca dos meus ideais. Em especial ao meu amigo Ariovaldo, Diretor do Departamento Cientfico da PR-VIDA, que em nossos contatos faz renascer e fortalecer em mim meu gosto pela Cincia e pela Filosofia. Sou imensamente grato a meus pais Name e Iesmin e ao Universo por eu estar existindo no Planeta Terra, que me fascina, e poder me manifestar, o que procuro fazer de forma verdadeira e com amor. Obrigado Deus.

Resumo
Resumo
A Robtica Mvel tem como meta fundamental elaborar trajetrias para evitar colises, localizar e alcanar alvos, auto-suficincia do rob em termos de suprimento de energia, transporte de objetos, etc. Uma soluo que d autonomia ao rob no aprendizado de seu comportamento se contrasta com outras abordagens mais clssicas que exigem um modelo prvio do ambiente em que o rob est inserido. Caso seja necessrio colocar o rob em outro ambiente, ou caso o ambiente tenha componentes variantes no tempo, estes modelos apresentam grande ineficincia, exigindo do projetista todo um reclculo de trajetrias, ou at mesmo inviabilizando seu uso. A utilizao de procedimentos de aprendizagem libera o projetista de ter que inserir no seu projeto conhecimentos detalhados do ambiente e do ao rob a possibilidade de se comportar adequadamente em ambientes diferentes. Este trabalho se dirige soluo do problema do aprendizado do rob em tempo real de como se locomover evitando colises. Evitar colises essencial para a movimentao do rob mvel e faz parte de sua estratgia mais ampla, qualquer que seja o seu objetivo. Quanto abordagem para se resolver esse problema, investigada, em ambiente virtual, a utilizao de Redes Neurais em Sistemas Classificadores, soluo no encontrada na literatura. A utilizao de redes neurais pretende aumentar o poder de descrio dos sistemas classificadores, substituindo suas regras binrias, limitadas em termos de seu poder de processamento, por uma ferramenta mais poderosa. feita tambm a simulao de Sistemas Classificadores em sua forma convencional, proporcionando um termo de comparao para os Sistemas Classificadores com Redes Neurais. Um resultado interessante obtido a suavizao de trajetrias proporcionadas pelas redes neurais. Vrias sugestes so apresentadas para pesquisas futuras. Foi necessria a elaborao de um Simulador, que tambm parte integrante deste trabalho, para se conseguir os resultados pretendidos, o qual utiliza ambiente virtual em 2 dimenses e considera algumas das caractersticas de um rob real, o mini rob Khepera.

Abstract
Mobile robotics has as its fundamental goal to elaborate trajectories avoiding collisions, locating and reaching targets, power supply self sufficiency, objects transportation, etc. A solution providing autonomy to the robot for learning its behavior is contrasting with more classical approaches that require a previous model of the environment in which the robot is inserted. In the case in which is needed to put the robot in another environment, or in which the environment has its configuration varying with time, these models present a great deficiency, demanding that the designer recalculates the trajectory, or even making its use unviable. The use of learning procedures releases the designer of inserting detailed knowledge of the environment and gives to the robot the possibility of behaving well in different environments. This work is directed to the solution of the robot's real time learning problem concerned with how to move avoiding collisions. To avoid collisions is essential for the movement of a mobile robot and is part of its wider strategy, whatever could it be its objective. Related to the approach to solve this learning problem, this work investigates, in a virtual environment, the use of Neural Networks within classifier systems, a solution not found in the literature. The use of neural networks has the intention of giving more descriptive power to the classifier systems, substituting its binary rules, limited in terms of its processing power, by a more powerful tool. It's also made a simulation of the Classifier Systems in its conventional form, which provides a comparison reference for the Neural Networks Classifier Systems. An interesting result obtained is trajectory smoothing provided by the neural networks. A number of suggestions are presented for future research. To achieve the intended results it was required to elaborate a Simulator, which is also part of this work, utilizes a 2 dimensional environment and takes into account some of the characteristics of a real robot, the mini robot Khepera.

ndice
As Trs Leis da Robtica, segundo Isaac Asimov..............................................................................................2 Dedicatria............................................................................................................................................................3 Agradecimentos ....................................................................................................................................................4 Resumo..................................................................................................................................................................5

Resumo.............................................................................................................................................. 5 Abstract............................................................................................................................................. 5
ndice.....................................................................................................................................................................6 Captulo 1: Introduo.........................................................................................................................................9

1.1 Prlogo ........................................................................................................................................ 9 1.2 Breve Histrico ........................................................................................................................ 10 1.3 Proposio e Metodologia....................................................................................................... 11 1.3.1 Proposio .......................................................................................................................... 11 1.3.2 Metodologia........................................................................................................................ 13 1.4 Sobre o Contedo deste Documento ..................................................................................... 13
Captulo 2: Sistemas Classificadores Convencionais ......................................................................................14

2.1 Introduo ................................................................................................................................ 14 2.2 Nvel Bsico da Hierarquia .................................................................................................... 15 2.2.1 Sistemas classificadores reativos e dinmicos .................................................................. 17 2.2.2 Especificidade e fora ........................................................................................................ 17 2.3 Nveis Superiores da Hierarquia ........................................................................................... 18 2.3.1 Atribuio de Crditos ....................................................................................................... 18 2.3.2 Principais diferenas na implementao do algoritmo...................................................... 21 2.3.3 Algoritmo Gentico (AG) .................................................................................................. 22 2.4 Trmino da Aprendizagem .................................................................................................... 23
Captulo 3: Sistemas Classificadores com Redes Neurais...............................................................................24

3.1 Sistemas Classificadores com Redes Neurais....................................................................... 24 3.1.1 Por que usar redes neurais.................................................................................................. 25 3.1.2 O Classificador Neural....................................................................................................... 26 3.1.3 Configurao das redes neurais ......................................................................................... 27 3.2 Semelhanas com outras abordagens ................................................................................... 28 3.2.1 Evolutionary Reinforcement Learning .............................................................................. 28 3.2.2 Adaptive Critic ................................................................................................................... 28 3.3 Nveis Superiores da Hierarquia ........................................................................................... 29 3.3.1 Atribuio de Crditos ....................................................................................................... 29 3.3.2 Principais Diferenas na Implementao do Algoritmo de Atribuio de Crditos ........ 29 3.3.3 Algoritmo Gentico (AG) .................................................................................................. 30
Captulo 4: O Simulador....................................................................................................................................31 6

4.1 Por que Simular ?.................................................................................................................... 31 4.1.1 A simulao faz parte do mecanismo de inteligncia ....................................................... 31 4.1.2 Simular ou no ?................................................................................................................. 31 4.1.3 Vantagens ........................................................................................................................... 32 4.1.4 Inconvenincias.................................................................................................................. 32 4.2 Escolha da Linguagem de Programao .............................................................................. 33 4.2.1 Decises preliminares ........................................................................................................ 33 4.2.2 MATLAB 6.0 Release 12 a linguagem escolhida.......................................................... 34 4.3 Viso Geral............................................................................................................................... 34 4.3.1 Recursos do simulador ....................................................................................................... 34 4.3.2 O rob e suas caractersticas .............................................................................................. 34 4.3.3 Os algoritmos de controle .................................................................................................. 34 4.3.4 Resumo das classes e mtodos........................................................................................... 35
Captulo 5: Detalhes do Simulador...................................................................................................................36

5.1 Entrada, Sada de Dados e Apresentao da Simulao .................................................... 36 5.2 Recursos Especficos do Simulador....................................................................................... 36 5.3 Ambiente................................................................................................................................... 36 5.3.1 Funes para Ambiente...................................................................................................... 36 5.4 Classe FormaGeometrica ....................................................................................................... 37 5.4.1 Construtor: FormaGeometrica ........................................................................................... 37 5.4.2 NovasCoordenadas............................................................................................................. 38 5.4.3 set ........................................................................................................................................ 38 5.4.4 DadosParaPlot .................................................................................................................... 39 5.5 Classe RobotMovel.................................................................................................................. 39 5.5.1 Construtor: RobotMovel .................................................................................................... 41 5.5.2 Sensor (mtodo privado).................................................................................................... 41 5.5.3 DWS ................................................................................................................................... 42 5.5.4 set ........................................................................................................................................ 43 5.5.5 DadosParaPlot .................................................................................................................... 43 5.5.6 Detecta ................................................................................................................................ 44 5.5.7 DetectaAuxiliar (mtodo privado)..................................................................................... 46 5.5.8 Posiciona (mtodo privado) ............................................................................................... 47 5.6 Recursos Referentes Tcnica de Controle Utilizada ........................................................ 47 5.7 Mtodos dos Algoritmos de Controle.................................................................................... 48 5.7.1 AlgoritmoGenetico............................................................................................................. 48 5.7.2 Atuador ............................................................................................................................... 49 5.7.3 Classificador....................................................................................................................... 50 5.7.4 Atribuio de Crditos ....................................................................................................... 52 5.8 O Controlador.......................................................................................................................... 52 5.8.1 Apresentao ...................................................................................................................... 52 5.8.2 Controlador para o Sistema Classificador com Redes Neurais ........................................ 54 5.8.3 Controlador para o Sistema Classificador Convencional ................................................. 56
Captulo 6: Aplicaes .......................................................................................................................................58 7

6.1 As Aplicaes ........................................................................................................................... 58 6.1.1 Configurao Geral ............................................................................................................ 59 6.1.2 Cuidados ao Interpretar os Resultados .............................................................................. 62 6.1.3 Usando o Workspace .......................................................................................................... 64 6.2 Sistema Classificador com Redes Neurais............................................................................ 65 6.2.1 Parmetros Gerais .............................................................................................................. 65 6.2.2 Experimentos e Resultados ................................................................................................ 67 6.3 Sistema Classificador Convencional ..................................................................................... 70 6.3.1 Parmetros gerais ............................................................................................................... 70 6.3.2 Experimentos e Resultados ................................................................................................ 71
Captulo 7: Concluses e Perspectivas .............................................................................................................79

7.1 Concluses ................................................................................................................................ 79 7.1.1 O Uso de Redes Neurais Como Classificadores ............................................................... 79 7.1.2 Matching............................................................................................................................. 80 7.1.3 Reinforcement Learning..................................................................................................... 80 7.1.4 Especificidade .................................................................................................................... 80 7.1.5 Conseqente ....................................................................................................................... 80 7.1.6 Nmero de Classificadores para Resolver um Ambiente Estacionrio............................ 81 7.1.7 Nmero de Classificadores Versus Nmero de Aes para Resolver Um Ambiente ..... 81 7.1.8 Conhecimento Inicial ......................................................................................................... 81 7.1.9 Insero de Conhecimento Durante o Treinamento.......................................................... 82 7.1.10 Dependncia de Condies Iniciais................................................................................. 82 7.1.11 Suavizao da Trajetria Utilizando Redes Neurais....................................................... 82 7.2 Conjecturas .............................................................................................................................. 83 7.3 Limitaes Deste Trabalho..................................................................................................... 84 7.4 Perspectivas de Trabalhos Futuros....................................................................................... 85
Apndice A: Khepera .........................................................................................................................................86 Apndice B: Algoritmo Gentico.......................................................................................................................88

B.1 Roulette Wheel ........................................................................................................................ 88 B.1.1 Intervalos para Roulette Wheel......................................................................................... 88 B.1.2 Formao dos pares ........................................................................................................... 88 B.2 Crossover ................................................................................................................................. 89 B.3 Mutao.................................................................................................................................... 89
Apndice C: Clculos para DWS ......................................................................................................................90

C.1 Determinao das novas coordenadas ................................................................................. 90 C.1.1 Clculo do raio de curvatura R.......................................................................................... 90 C.1.2 Clculo do deslocamento angular ................................................................................ 91 C.1.3 Clculo de gama ................................................................................................................ 91 C.1.4 Clculo de alfa ................................................................................................................... 91 C.1.5 Clculo dos deslocamentos dx e dy .................................................................................. 92
Bibliografia.........................................................................................................................................................93

Captulo 1: Introduo
1.1 Prlogo
A literatura de fico cientfica vrias vezes tem servido para o desenvolvimento de novas tecnologias. o que ocorre com muitas das criaes de Jlio Verne em seus livros como "As 20 mil Lguas Submarinas", que na poca de sua publicao pareciam completamente impossveis, e so hoje produtos comerciais encontrados em prateleiras de lojas de produtos eletrnicos. No futuro, aquilo que hoje considerado fico cientfica poder tambm ser parte de nosso dia-a-dia. Em Eu, Rob, Isaac Asimov [18], apresenta robs com capacidade de locomoo, aes especializadas, percepo refinada do ambiente, comunicao entre si e com os humanos, dotados de crebros "positrnicos" capazes de pensar como ns. Arthur C. Clarke no deixa por menos com seu computador HAL, em "2001 - Uma Odissia no Espao" [3]. Causa um grande fascnio a possvel existncia dessas criaturas artificiais. Tanto pelo que elas representariam como conquistas da cincia e da tecnologia, como em decorrncia das especulaes a respeito das suas implicaes prticas e filosficas, relativas ao destino do ser Humano no planeta Terra. Estas implicaes podem ser positivas ou negativas, quer seja imaginando-se robs inteligentes mas meramente serviais que tornem realidade a volta do Paraso Perdido ou, ao contrrio, robs inteligentes com autonomia para formularem seus objetivos e que assim, eventualmente, possam se transformar em uma nova Espcie Dominadora. Implicaes filosficas parte, desde as ltimas dcadas do sculo XX pesquisadores tm procurado uma maneira (por enquanto ainda no bem sucedida) de formular e implementar tcnicas de Sistemas Inteligentes que elevem o comportamento das mquinas, dotando-as de Inteligncia Artificial (IA). A meta de tais sistemas seria que seu processamento interno pudesse ter alguma semelhana ao do apresentado pelos seres humanos, em termos de representao do conhecimento, aprendizado, capacidade de resolver problemas, etc. No d para esconder uma certa tristeza em quem assistiu, h mais ou menos trinta e cinco anos, "2001: A Space Odyssey", de Stanley Kubrick [23], pensando tratar-se de uma fico que, mesmo parcialmente, poderia tornar-se realidade em um futuro no muito distante. O desenvolvimento acelerado de novos conhecimentos e de tecnologias para a conquista do espao dava a entender que era s questo de um pouco mais de tempo para se obter os princpios fundamentais dessa nova tecnologia de IA , e o processo de seu desenvolvimento poderia comear antes da virada do sculo. Mas isso no aconteceu. Uma mquina com capacidade de pensar, da mesma maneira que ns humanos pensamos, ainda no foi elaborada. A despeito de vrios mecanismos exibirem comportamento que poderia ser entendido como inteligente, ainda que com ressalvas, o processo interior que conduz a esse comportamento nada tem a ver com o processo de pensar. Conceitos como pensamento, inteligncia, mente, conscincia e emoo, que apesar de to discutidos no mbito das cincias cognitivas, como caractersticas subjetivas prprias do ser humano (e sem nenhum consenso, digase de passagem), raramente aparecem na agenda de pesquisadores mais pragmticos como engenheiros e cientistas da computao. Apesar disso, um nmero considervel de novas teorias tm surgido no intuito de preparar o caminho para que isso possa acontecer. Algoritmos computacionais derivados das Neuro-cincias, da Gentica e da Imunologia, do estudo dos fenmenos de complexidade e do caos, tm atrado a ateno de filsofos e engenheiros, no somente por sua inspirao em fenmenos da prpria natureza, mas principalmente pelos resultados
9

pragmticos que tais algoritmos so capazes de demonstrar. Dentre estes algoritmos, algumas metodologias com fundamentao na Semitica - conjunto de conceitos formulados pelo filsofo americano e fundador da Teoria dos Signos Moderna, Charles Sanders Peirce (1839-1914), apresentam-se como novos horizontes de possibilidades a serem explorados. Uma das reas de aplicao em que o uso de algoritmos de inteligncia computacional vem sendo empregado com muito xito a robtica, principalmente na formulao de estratgias de planejamento de ao para os robs. Entretanto, apesar dos inmeros progressos, tais teorias trazem contribuies somente parciais, considerando-se que ainda no fazem parte de uma teoria mais ampla da inteligncia, onde elas se apresentariam eventualmente como partes integrantes de um todo maior. Este panorama apresentado fonte de motivao para este trabalho - conhecer mais a respeito dessas tecnologias e aplic-las em um contexto prtico, o contexto da robtica mvel. Esta Dissertao de Mestrado um pequeno passo, mas significativo, nesta empreitada. Com ele se inicia o processo de ganhar competncia na direo desejada, elaborando uma plataforma de trabalho e pesquisa que, espera-se, possa permitir o desenvolvimento de sistemas de controle autnomo em tempo real com capacidade de aprendizado e outras manifestaes caractersticas de seres inteligentes. A idia iniciar estes estudos utilizando um ambiente virtual de desenvolvimento de robs mveis (simulao). Esta estratgia corroborada por diversos estudos encontrados na literatura que indicam a simulao como melhor maneira de se adentrar no mundo da robtica mvel. planejada para o futuro (possivelmente em um trabalho de Doutorado), a utilizao dos mesmos algoritmos de controle empregados aqui, mas aplicados a robs mveis reais, onde questes como rudo, tecnologias de sensores, no-conformidade dos modelos, etc. podero ser analisadas.

1.2 Breve Histrico


Esta pesquisa teve incio em um trabalho prtico experimental desenvolvido no mbito da disciplina "Computao Evolutiva" do curso de ps-graduao da FEEC/UNICAMP, onde foi proposto o uso de sistemas classificadores para o controle de um rob mvel em ambiente virtual bem simples, como ilustrao para a compreenso do funcionamento dos sistemas classificadores. Ainda, como projeto da disciplina "Redes Neurais", os sistemas classificadores originais foram ento sofisticados com a insero de redes neurais em sua constituio, e novos resultados interessantes foram obtidos. Com o auxlio dos Professores Von Zuben e Gudwin (co-orientador), e do Prof. Madrid (orientador), surgiram os "Sistemas Classificadores Com Redes Neurais", cujos resultados deram origem s publicaes: "Sistemas Classificadores com Redes Neurais (NNCS) : Aplicao ao Controle de um Veculo Autnomo Simulado Computacionalmente" [27] e "Neural networks in classifier systems (NNCS): An application to autonomous navigation" [28]. A partir da ficou claro que seria necessrio um investimento maior no trabalho, utilizando um ambiente computacional de simulao mais adequado realidade, implementando caractersticas mais sofisticadas ao Sistema Classificador e verificando o desempenho do Sistema Classificador com Redes Neurais em comparao ao clssico. Seria utilizado, como inspirao, o algoritmo reativo apresentado por Richards em "Zeroth-order Shape Optimization Utilizing a Learning Classifier System", [33]. Apesar da no disponibilidade de robs mveis nas instalaes da FEEC/UNICAMP durante o desenvolvimento deste trabalho, j havia sido proposta a compra de mini robs Khepera [21] (ver
10

Apndice A - com fotos e informaes tcnicas), pelo Grupo de Robtica Mvel da UNICAMP. O Khepera um mini rob mvel muito utilizado no meio cientfico para o desenvolvimento de pesquisas. Assim seria interessante a utilizao de um simulador que permitisse a simulao do Khepera. O passo a seguir foi a pesquisa de simuladores para essa finalidade, a qual foi feita de forma mais ampla para proporcionar uma viso de como a simulao estava sendo abordada na robtica. Simuladores para robs so apresentados em [19], [41], [26], [11], [2] e [31], sendo as referncias [19] e [41] relativas a simuladores para o Khepera, o "Khepera Simulator v. 2.0" e o "Webots 3.0", respectivamente. As referncias [37] e [34] tratam de simuladores para manipuladores de robs. Especificamente do IEEE, foram encontradas as seguintes referncias para robs autnomos mveis com aprendizado: [10], [5], [40], [4], [30], [39], [42], [6], [24] e [35], sendo a [4] referente utilizao do simulador Webots [41]. Outros trabalhos em que so utilizados simuladores podem ser encontrados em [15], [9] e [13]. Nem todos esses simuladores so disponibilizados gratuitamente e alguns nem so disponibilizados. Seu exame mostra a inexistncia de um simulador que seja de propsito geral, o que, de certa forma, de se esperar, pois cada autor focaliza seu trabalho para fornecer as facilidades que lhe so mais interessantes. Existem dois simuladores que podem ser utilizados para o Khepera: O Khepera Simulator verso 2.0 [19] um software antigo, permite a construo de ambientes simples e acesso ao controle do rob. Foi descontinuado em favor do Webots , comercializado pela empresa Cyberbotics. Por isso no foi considerado. O Webots 3.0 [41] um produto comercial e possvel obter-se uma verso trial gratuita, para Windows e bem documentada, sendo compatvel com C e C++. O ambiente, os obstculos e os robs so configurados em VRML, inclusive com utilizao de recursos de cortar, copiar e colar. Tem modelos j elaborados para diversos robs, alm do Khepera.

Como at ento o simulador tinha sido implementado em Matlab, seria interessante aproveitar as funes j desenvolvidas acoplando-as ao Webots utilizando-se recursos e bibliotecas de C/C++ do Matlab. Dentre as opes de linguagens C/C++ que tnhamos a nossa disposio, o Webots s era compatvel com o DEV-C++, software gratuito [12] e recomendado para ser utilizado com ele. Infelizmente as bibliotecas de C/C++ do MATLAB no so compatveis com o DEV-C++. Por esse motivo, optou-se por desistir de usar o Webots. Em virtude de no ter sido encontrado um simulador que servisse diretamente para os propsitos desta pesquisa, tornou-se mais apropriado o desenvolvimento de nosso prprio simulador - um que permitisse controle de todas as suas particularidades, e que seria desenvolvido de tal forma a facilitar a implementao de algoritmos de IA tanto para alto como para baixo nvel.

1.3 Proposio e Metodologia


1.3.1 Proposio
A Robtica Mvel tem como sua meta fundamental a elaborao de trajetrias para robs mveis, de tal forma que eles possam atingir seus objetivos. Dentre outros objetivos, tem-se a realizao de movimentos sem colises, a localizao e alcance de alvos, a auto-suficincia do rob em termos de suprimento de energia, o transporte de objetos, etc. A procura de uma soluo que d autonomia ao rob no aprendizado de seu comportamento se contrasta com outras abordagens mais clssicas que exigem um modelo prvio do ambiente em que o rob est inserido. Nestas abordagens, apesar de ser possvel o clculo da trajetria tima para o
11

rob, existe uma grande dependncia do rob com seu ambiente. Caso seja necessrio inserir o rob em outro ambiente, ou caso o ambiente tenha componentes variantes no tempo, estes modelos apresentam grande ineficincia, exigindo do projetista todo um reclculo de trajetrias, ou at mesmo inviabilizando seu uso. A utilizao de procedimentos de aprendizagem libera o projetista de ter que inserir no seu projeto conhecimentos detalhados do ambiente e do ao rob a possibilidade de se comportar adequadamente em ambientes diferentes. claro que a insero de algum conhecimento desejvel e facilita o aprendizado. Este trabalho se dirige soluo do problema do aprendizado em tempo real de como se locomover evitando colises. Evitar colises essencial para a movimentao do rob mvel e faz parte de sua estratgia mais ampla, qualquer que seja o seu objetivo. Quanto abordagem para se resolver esse problema, pretende-se aprofundar o conhecimento da utilizao de Redes Neurais em sistemas classificadores, apresentada inicialmente em "Sistemas Classificadores com Redes Neurais (NNCS): Aplicao ao Controle de um Veculo Autnomo Simulado Computacionalmente" [27] e "Neural networks in classifier systems (NNCS): An application to autonomous navigation" [28], ambas utilizando ambiente virtual bastante simplificado e, posteriormente em A Simulator using Classifier Systems with Neural Networks for Autonomous Robot Navigation [29], utilizando ambiente virtual atravs de um simulador que j considera algumas das caractersticas de um rob real, o mini rob Khepera. Em relao utilizao de Redes Neurais em Sistemas Classificadores, cuja abordagem mostrada no Captulo 3, no foi encontrado nada similar na literatura. Existem apenas algumas semelhanas aparentes que sero comentadas. Por isso a sua implementao tem carter investigativo, proporcionando um ponto de partida para trabalhos futuros. Ser tambm simulada a utilizao de Sistemas Classificadores, que neste texto passaro a ser chamados de Sistemas Classificadores Convencionais, com a finalidade inicial de proporcionar um termo de comparao para os Sistemas Classificadores com Redes Neurais, sendo que, por si s, tambm se constitui em um dos objetivos deste trabalho. O Simulador tambm parte integrante deste trabalho, em funo da necessidade da sua elaborao para a consecuo dos resultados pretendidos. A escolha de Sistemas Classificadores para a soluo em tempo real no foi feita em detrimento de qualquer outra tcnica de IA para resolver este problema. Pode ser entendido que as duas aplicaes a serem implementadas, mais o Simulador, se constituem em uma plataforma inicial de estudos e pesquisas para Robtica Autnoma Mvel com Aprendizado. Este trabalho, alm de abrir novas possibilidades de pesquisa para o Grupo de Robtica Mvel, para o Laboratrio de Robtica do DSCE e, quem sabe, para outros interessados, se constitui em um ponto de partida para o trabalho de Doutorado do autor, onde, alm de aperfeioamentos no Simulador para adequ-lo de forma efetiva realidade e para o controle do Khepera, sero verificadas alternativas de controle em tempo real, inclusive com a considerao de objetivos mais amplos. Em resumo, este trabalho se prope a: 1. Construir um Simulador com abordagem modular que permita de forma facilitada a reutilizao de recursos j desenvolvidos e a incluso de novos recursos necessrios, tanto relativos a funcionalidades do rob Mvel quanto a algoritmos de IA. 2. Implementar um Sistema Classificador Convencional como sistema de controle para o rob mvel.
12

3. Implementar um Sistema Classificador com Redes Neurais e investigar a sua funcionalidade, procurando fornecer subsdios para pesquisas futuras. A base terica e os algoritmos para os itens 2 e 3 acima so apresentadas nos Captulos 2 e 3.

1.3.2 Metodologia
As duas aplicaes de Sistemas Classificadores sero verificadas atravs de experimentos com o Simulador em diversos ambientes e utilizando vrias sementes aleatrias para a sua obteno. Sero apresentados os experimentos efetuados e seus resultados. Sero apresentadas concluses finais comparando os dois sistemas. Quanto ao Simulador, ele ser desenvolvido e testado passo a passo. Este trabalho sua validao.

1.4 Sobre o Contedo deste Documento


A seguir, no Captulo 2, mostrada a abordagem de Sistemas Classificadores Convencionais com os seus principais conceitos e funcionalidades, bem como um algoritmo que implementa a Atribuio de Crditos e as caractersticas do Algoritmo Gentico a ser utilizado. O Sistema Classificador Com Redes Neurais introduzido no Captulo 3, mostrando-se o papel que as redes neurais iro desempenhar e as modificaes necessrias nos procedimentos do sistema convencional para receb-las. O Captulo 4 aborda o tema do Simulador, onde a pertinncia de se efetuar simulaes bem como as suas vantagens e desvantagens so discutidas. mostrado tambm o porqu da escolha do Matlab como linguagem para desenvolvimento do software do simulador. Nem todos leitores estaro interessados na leitura do Captulo 5, Detalhes do Simulador, e ele no essencial para o entendimento desta pesquisa. Este Captulo, pela sua natureza, foi escrito em linguagem tcnica familiar para pesquisadores que utilizam o Matlab e apresenta detalhes da implementao do simulador, contendo informaes para a sua utilizao, manuteno e incluso de novos recursos. O Captulo 6 apresenta os experimentos das aplicaes Sistemas Classificadores com Redes Neurais e Sistemas Classificadores Convencionais permitindo ter-se um entendimento dos seus desempenhos. Como resultados principais neste captulo, tem-se o projeto do Sistema Classificador Convencional funcionando a contento e a investigao sobre Sistemas Classificadores com Redes Neurais trazendo contribuies relevantes. Por fim, no captulo 7, encontram-se as concluses e as perspectivas de trabalhos futuros. Quanto aos Sistemas Classificadores com Redes Neurais, eles iro exigir criatividade na elaborao de sua arquitetura em pesquisas futuras e algumas sugestes so apresentadas. A expectativa principal das redes neurais apresentarem uma aproximao mais suave para as trajetrias do rob fica confirmada. Nos apndices A, B e C tem-se os detalhes tcnicos referentes ao rob Khepera, detalhes sobre o funcionamento do algoritmo gentico e o modelo cinemtico do rob utilizado nas simulaes. Ao final do trabalho, apresentada a lista de referncias bibliogrficas utilizadas.

13

Captulo 2: Sistemas Classificadores Convencionais


Neste captulo apresentada a abordagem dos Sistemas Classificadores Convencionais com os seus principais conceitos e funcionalidades, bem como um algoritmo que implementa a Atribuio de Crditos e as caractersticas do Algoritmo Gentico a ser utilizado. O Sistema Classificador Com Redes Neurais introduzido no Captulo 3, mostrando-se o papel que as redes neurais iro desempenhar e as modificaes necessrias nos procedimentos do sistema convencional para receb-las.

2.1 Introduo
Os Sistemas Classificadores, neste texto chamados de Sistemas Classificadores Convencionais (SC), foram introduzidos por Holland [17] em 1975. Algumas referncias a SC so o artigo de Booker de 1989 [7], para quem os sistemas classificadores se constituem em uma metodologia para criao e atualizao evolutiva de regras, o livro do Goldberg de 1989 [14] e a tese de Richards em 1995 [33], que traz uma descrio bem detalhada sobre sistemas classificadores. uma das abordagens que se inspiram nos processos da natureza [20] e recebem normalmente a denominao genrica de Computao Natural. O que mais interessa para este trabalho so as habilidades dos SC de poderem aprender em ambientes no estacionrios e em tempo real, inclusive com a presena de rudo. Uma maneira para se introduzir o conceito de SC fazendo uma analogia com Sistemas Especialistas (SE). Um SE simples ou bsico pode ser entendido como se constituindo de um conjunto de regras proposicionais: dada uma condio tem-se, por exemplo, uma concluso ou ao. A condio forma o antecedente da regra e a concluso ou ao o seu conseqente. Um projetista deste SE simplificado tem como tarefa obter todas as possveis informaes do ambiente a que os sensores do sistema a ser controlado sero expostos e codific-las nos antecedentes das regras. Para cada um dos possveis antecedentes o projetista dever tambm produzir o conseqente, que ir conter as informaes para o sistema de ao. Se o projetista de IA no tiver o conhecimento de como colher as informaes e convert-las em regras desta natureza, ele ter de consultar um especialista, o que normalmente tem que ser feito nesta abordagem, e da vem o seu nome. Desta forma um SE tem que conter um conjunto de regras que resolva todas as situaes que o rob, ou outro sistema que ir controlar, ter que enfrentar. Este conjunto, uma vez programado, no se modifica - no existe aprendizado, nem adaptao. Assim, se o rob encontrar uma situao diferente, ou se for colocado em outro ambiente, no ter normalmente condies de continuar sendo bem sucedido. Haver a necessidade de re-programar o seu componente de IA, incorporando as novas regras necessrias e, quem sabe, excluindo as no mais necessrias. Os SC tambm utilizam um conjunto de regras com antecedente e conseqente, mas elas no precisam ser especificadas por um especialista, pois o SC tem condies de aprender e se adaptar.
14

Podem partir de um conjunto de regras aleatrias e chegar ao conjunto de regras vlidas para o seu comportamento. Isto feito valorizando-se, atravs de realimentao do ambiente, as boas regras, atravs do aumento de sua fora, conceito associado a cada uma das regras nos SC. Regras no apropriadas tm as suas foras diminudas. Uma regra nos SC chamada de classificador. A fora de um classificador representa a sua utilidade e a tendncia que classificadores com pouca fora sejam excludos. Alm desse processo de seleo de regras, os SC tambm apresentam um mecanismo de gerao evolutiva de novas regras, utilizando-se um Algoritmo Gentico (AG) para a sua obteno. O AG normalmente aplicado em uma sub populao das regras, constituda pelas melhores, utilizando como funo de fitness a fora. Para se entender todo o processo de aprendizagem e atualizao de regras do SC a sua arquitetura pode ser estudada em trs nveis hierrquicos: Nvel Bsico: cuida do processamento das mensagens e preparao para os outros nveis. Atribuio de Crditos: faz a seleo dos classificadores alocando valores maiores para as foras dos classificadores que tm maior utilidade. Algoritmo Gentico: utiliza os melhores classificadores do SC para, utilizando as suas foras como funo de fitness, formular novos classificadores por um processo evolutivo.

Fica claro que a capacidade de um SC aprender e se adaptar ocorre atravs dos procedimentos de Atribuio de Crditos e da aplicao do Algoritmo Gentico. Neste Captulo so apresentados os 3 nveis da arquitetura dos Sistemas Classificadores Convencionais e os algoritmos que sero utilizados para a sua implementao.

2.2 Nvel Bsico da Hierarquia


A Fig. 2.1 ilustra o Nvel Bsico da arquitetura dos SC. O SC interage com o ambiente atravs de suas Interfaces de Entrada e de Sada. As informaes do ambiente so coletadas atravs de sensores e a interface de entrada as codifica em forma de mensagens que sero colocadas na Lista de Mensagens (LM). Uma mensagem na LM um arranjo de caracteres composto de duas partes: os caracteres iniciais identificam quem enviou a mensagem e os seguintes identificam ocorrncias no ambiente, detectadas pelos sensores. Por exemplo, uma mensagem pode ter a seguinte constituio:
1 0 0 1 1 0 1 0 0 1 0

No exemplo hipottico acima, para um rob mvel, os dois primeiros bits "10" identificam a Interface de Entrada como a autora da mensagem. Os 9 bits seguintes descrevem a existncia de obstculos no campo de viso do veculo, cada bit correspondendo a uma regio, onde o valor 0 corresponde a no haver obstculo e 1 indica a existncia de obstculo. Observe que no somente a interface de entrada envia mensagens para a LM, mas tambm a Lista de Classificadores (LC). O porqu disso ser explanado na seo em que descrito o mecanismo de Atribuio de Crditos. Por ora esta possibilidade no ser considerada.

15

Lista de Classificadores Lista de Mensagens

Interf. de Entr ada

Interface de Sada

Figura 2.1: Sistema Classificador, Nvel Bsico

A LC composta por um conjunto de Classificadores (regras), constitudos de um arranjo de caracteres dividido em 3 partes. Na primeira, temos os caracteres que identificam o tipo de conseqente ou ao do Classificador - por exemplo, se ele ser uma nova mensagem dirigida LC, ou uma mensagem interface de sada. Na segunda, temos caracteres que constituem a sua condio, tambm chamada de antecedente. Na terceira, esto os que correspondem ao conseqente. Sendo o classificador escolhido para enviar a sua mensagem LM, ela ser composta pela sua primeira e terceira partes. A seguir, temos um exemplo de um classificador:
0 1 # 1 # 0 1 # 0 # # 0 1

No exemplo acima, os dois primeiros bits, por uma conveno arbitrria, indicam que o conseqente uma mensagem para a interface de sada. Os 9 bits seguintes correspondem condio, onde nota-se a presena do caractere #, significando dont care, ou tanto faz. Se a condio de um classificador for igual mensagem da interface de entrada, ocorreu um matching. Os smbolos # valem 0 ou 1, favorecendo o matching. Na terceira parte, o conseqente do classificador, pode ser de dois tipos: uma mensagem que ser usada pelos classificadores no prximo ciclo, ou uma mensagem para a interface de sada providenciar uma determinada ao. Os Classificadores que apresentarem matching com alguma(s) mensagem(ns) da LM iro participar de uma competio - procedimento de Atribuio de Crditos, e o vencedor coloca a sua mensagem na LM. Seguindo o exemplo, como houve matching entre o antecedente do classificador e a informao dos sensores codificada na mensagem de entrada, e supondo que este classificador venceu a competio, a sua mensagem ser colocada na LM:
0 1 0 1

Por uma conveno arbitrria esta mensagem dirigida interface de sada. Isto est representado nos dois bits iniciais, que so tambm os dois iniciais do arranjo de caracteres do classificador. Os dois bits finais da mensagem correspondem ao conseqente do classificador. A interface de sada, da mesma forma que a LC, fica constantemente monitorando a LM, e uma vez que verifique a existncia de mensagem para si, recolhe-a da lista, executando as instrues que nela estiverem contidas. Isto feito decodificando a mensagem recebida e transformando o seu contedo em comandos para os atuadores. Esse loop inicial em nada difere de um mecanismo de base de regras proposicionais. Ele pressupe que a LC represente um conjunto de regras que possua o conhecimento necessrio para processar as informaes vindas do ambiente. Entretanto, ao contrrio de uma base de regras usual, onde o conhecimento adquirido de um especialista, nesta tcnica as regras, ou classificadores, so introduzidas por meio de um mecanismo evolutivo.
16

2.2.1 Sistemas classificadores reativos e dinmicos


Da maneira apresentada, temos um processamento de mensagens apropriado para SC Dinmicos, nos quais, alm da possibilidade de respostas imediatas aos estmulos de entrada, existe tambm a possibilidade de construo de uma seqncia de mensagens que iro produzir uma ao em tempo futuro. Por exemplo, seja um sensor percebendo um objeto distante. A sua mensagem na LM aps ser processada pela LC tem a possibilidade de ser uma mensagem na LM dirigida novamente LC. Esta mensagem, no prximo ciclo, ser capturada pela LC podendo resultar em uma nova mensagem para a LM ou para a interface de sada. Um algoritmo que permite a implementao da Atribuio de Crditos para um SC Dinmico o chamado algoritmo Bucket Brigade e foi apresentado por Booker et. al., em 1989 [7]. Utiliza a idia de que os classificadores podem postar mensagens que iro gerar novas mensagens para a LC, formando um encadeamento at gerar uma ao. O Bucket Brigade permite a existncia de mltiplas mensagens na LM, sendo algumas delas para a LC e algumas para a interface de sada, a qual ter a atribuio adicional de resolver possveis conflitos oriundos das mensagens a ela destinadas. Assim, para estes SC dinmicos necessrio que se faa a identificao do destino das mensagens a serem postadas na LM. Neste caso tem-se a lista de classificadores constituda por classificadores de vrios tamanhos. Seguindo o exemplo usado anteriormente, eles podero ter a parte inicial de seu arranjo de caracteres, que identifica o destinatrio da mensagem, de mesmo tamanho. Os antecedentes de todos os classificadores tm o mesmo tamanho, 9 caracteres. Quanto ao conseqente, ter dois caracteres se for para a interface de sada e ter nove caracteres se for para a LM. Assim, quando a LC coloca uma mensagem na LM dirigida LC, ela tem a aparncia da mensagem produzida pela interface de entrada. Neste trabalho utilizamos a abordagem reativa para SC, significando que para cada valor de entrada o SC produz uma sada e a LC produz sua mensagem apenas para a interface de sada. O modelo segue, em linha geral, o especificado por Richards em [33]. Nos SC reativos os classificadores tm todos o mesmo tamanho, a LM contm uma mensagem por vez e no necessrio ter-se a identificao do destinatrio da mensagem. O ciclo de processamento se encarrega de enderear as mensagens. Assim, a mensagem de entrada dirigida LC e a mensagem da LC destinada interface de sada.

2.2.2 Especificidade e fora


Considerando o nosso exemplo, para o SC reativo as mensagens no necessitam de identificao. Ento, a mensagem da interface de entrada colocada na LM pode ser apresentada assim:
0 1 1 0 1 0 0 1 0

Supondo que a lista de classificadores contenha 5 classificadores, eles poderiam ser:


# # 0 0 1 1 # 1 1 0 # 0 1 1 0 0 1 1 0 # 1 1 # 1 # # 1 0 0 1 0 0 1 0 # # # 1 1 # # 1 1 0 1 0 0 0 0 1 1 1 0 0 0

17

O primeiro e o quarto classificadores do matching com a mensagem da interface de entrada. Notase que o quarto classificador no tem nenhum caractere #, por isso ele um classificador especfico para essa mensagem. O primeiro classificador, por causa dos caracteres tanto faz, um classificador genrico, ele pode dar matching tambm com mensagens diferentes desta. Este o conceito de especificidade (E), que tem sua medida determinada pelo nmero de caracteres diferentes de tanto-faz do antecedente do classificador dividido pelo comprimento do antecedente. E = (na nt)/na onde na: nt: comprimento do antecedente n de # do antecedente (2.1)

Os conseqentes dos dois classificadores tambm so diferentes. Eles iro competir e o vencedor ir envi-lo para a interface de sada. Isto feito pela Atribuio de Crditos. Se o primeiro vencer, esta ser a sua mensagem para a interface de sada:
0 1

Se o quarto ganhar, ser esta:


0 0

Como o conseqente tem dois caracteres, que podem ser 0 ou 1, possvel mapear 4 mensagens diferentes para a interface de sada. Inicialmente os classificadores normalmente so gerados de forma aleatria e vo ter um valor associado a eles que a sua strength ou fora. Tambm normalmente todos eles recebem o mesmo valor, no incio, para a sua fora, a qual ser alterada a cada iterao pela Atribuio de Crditos.

2.3 Nveis Superiores da Hierarquia


Os classificadores so normalmente criados inicialmente de forma aleatria. claro que sempre que for possvel introduzir algum conhecimento inicial, ou mesmo durante o aprendizado, o aprendizado facilitado. Ento, necessrio descobrir quais classificadores geram comportamentos apropriados, criar novos classificadores e descartar aqueles que sejam ou tornem-se inapropriados, considerando a variabilidade do ambiente. Esse mecanismo de aprendizagem de regras implementado pelo algoritmo de Atribuio de Crditos (AC) e pelo Algoritmo Gentico (AG), que atuam nos nveis superiores da hierarquia estrutural do sistema classificador.

2.3.1 Atribuio de Crditos


O modelo segue, em linha geral, o especificado por Richards em [33]. So feitas algumas alteraes para adequ-lo s necessidades especficas encontradas.
18

Clculo da aposta

No nvel bsico da hierarquia so identificados os classificadores que do matching com a mensagem de entrada. O matching no SC verificado observando-se cada caractere da mensagem de entrada comparado com o caractere correspondente do antecedente do classificador, sendo que o caractere # do antecedente sempre garante matching. Ainda, para o SC, a especificidade calculada pela expresso 2.1. Os classificadores com matching selecionados participam de uma competio efetuando uma aposta dada pela expresso 2.2. O classificador com maior aposta ganha a competio. B = k 0.( k1 + k 2.E k 3 ).F onde: B: k0: k1: k2: k3: E: F: Aposta do classificador Coeficiente de aposta, valor positivo menor ou igual a 1. Valor positivo, menor ou igual a 1, que corresponde participao da parte no referente especificidade na aposta.. Valor positivo, menor ou igual a 1, correspondente participao da especificidade na aposta. Parmetro controlando a importncia da especificidade para determinar a aposta (padro = 1). Especificidade. Fora do classificador (2.2)

Seja um exemplo como o visto na seo anterior, agora apresentando para cada classificador, na sua parte final, o valor de sua fora. Imaginando que esses classificadores acabaram de ser criados e receberam todos como valor inicial para a sua fora o valor 50:
# # 0 0 1 1 # 1 1 0 # 0 1 1 0 0 1 1 0 # 1 1 # 1 # # 1 0 0 1 0 0 1 0 # # # 1 1 # # 1 1 0 1 0 0 0 0 1 1 1 0 0 0 50 50 50 50 50

Lembrando que o primeiro e o quarto classificadores deram matching, para calcular a sua aposta preciso antes calcular a sua especificidade utilizando a expresso (2.1). Sejam E1 e E4 as especificidades desses classificadores: E1 = (9 5)/9 = 0.44 E4 = (9 0)/9 = 1 Se forem adotados os valores k0 = 0.1, k1 = 0, k2 = 1 e k3 =1, a expresso (2.2) resulta em:
B = 0.1E . F

e calculando as suas apostas B1 e B4 tem-se: B1 = E1.F1 = 0.1x 0.44x50 = 2.2 B4 = E4.F4 = 0.1x1x50 = 5.0
19

com o quarto classificador ganhando.


# # 0 0 1 1 # 1 1 0 # 0 1 1 0 0 1 1 0 # 1 1 # 1 # # 1 0 0 1 0 0 1 0 # # # 1 1 # # 1 1 0 1 0 0 0 0 1 1 1 0 0 0 50 50 50 50 50

Taxa de aposta

O classificador vitorioso aquele que oferece maior aposta, e este valor integralmente subtrado de sua fora. Os outros classificadores que participaram da competio multiplicam a sua aposta pela taxa de aposta, TaxaBid, antes de fazerem essa subtrao. Assim, a fora dos classificadores aps a aposta calculada pelas expresses: F(t+1) = F(t) B F(t+1) = F(t) TaxaBid.B onde TaxaBid: t Taxa de aposta iterao em processamento para o classificador ganhador para os outros apostadores (2.3) (2.4)

Continuando com o exemplo e adotando TaxaBid = 0.8, as foras dos classificadores sero obtidas por: F1(t+1) = 50 0.8x2.2 = 48.24 F4(t+1) = 50 5.0 = 45.0 Resultando em:
# # 0 0 1 1 # 1 1 0 # 0 1 1 0 0 1 1 0 # 1 1 # 1 # # 1 0 0 1 0 0 1 0 # # # 1 1 # # 1 1 0 1 0 0 0 0 1 1 1 0 0 0 48.24 50.00 50.00 45.00 50.00

Taxa de vida

Finalmente, em cada iterao, todos os classificadores ficam sujeitos a um decrscimo em sua fora devido a uma taxa de vida determinada por: TxVida = 1 (1 2) (1 n ) onde: n: Vida mdia, medida em iteraes (2.6) que diminui a sua fora utilizando-se a expresso abaixo. F= (1 - TxVida)*F(t+1) Adotando uma vida mdia n = 100, pela expresso (2.5) obtm-se: TxVida = 0.0069
20

(2.5)

e utilizando-se este valor na expresso 2.6 aplicada a todos os classificadores, obtemos o novo valor para a fora:
# # 0 0 1 1 # 1 1 0 # 0 1 1 0 0 1 1 0 # 1 1 # 1 # # 1 0 0 1 0 0 1 0 # # # 1 1 # # 1 1 0 1 0 0 0 0 1 1 1 0 0 0 47.91 49.65 49.65 45.00 49.31

Recompensa ou punio

At este ponto, tivemos a determinao por competio do classificador ganhador, os classificadores que participaram tiveram que pagar uma taxa de aposta e todos ficaram sujeitos a uma taxa de vida. A atribuio de crditos prossegue para sua etapa final, onde ir colher um feedback do ambiente que determinar se a ao resultante do conseqente do classificador ganhador teve resultado bom ou ruim. O resultado bom dar uma recompensa ao classificador ganhador e o resultado ruim o penalizar utilizando um valor. No caso da recompensa, ser restituda a aposta do classificador, alm de ser somada a recompensa sua fora. Assim, temos as seguintes expresses para a obteno da fora pela aplicao do mecanismo de recompensa e punio: F=F+B+R F=FP onde R P valor especificado para a recompensa valor especificado para a punio para recompensa para punio (2.7) (2.8)

No ocorrendo matching

Quando no ocorre matching o algoritmo do Richards introduz um novo classificador com antecedente igual ao valor codificado pelos sensores, com o conseqente gerado aleatoriamente e com fora igual mdia das foras dos classificadores na iterao em curso. Este procedimento corresponde, de certa forma, a uma introduo automatizada de conhecimento e foi implementado desta forma nos SC.

2.3.2 Principais diferenas na implementao do algoritmo


Considerando a abordagem definida por Richards, o algoritmo utilizado neste trabalho tem as seguintes diferenas.
No ocorrendo mudana na mensagem da interface de entrada

Quando em uma dada iterao a mensagem da interface de entrada repete a da iterao anterior o mesmo classificador ir vencer e determinar a nova ao, recebendo a recompensa por isso. Esta ocorrncia comum em Robtica Mvel, por exemplo, quando existe um trecho sem obstculos, o que faz com que o classificador responsvel pelas mesmas aes sucessivas tenha sua fora aumentada indevidamente, podendo ter implicaes negativas caso ele seja genrico e leve o rob a uma coliso. A punio da ltima iterao fica quase que sem efeito em face das recompensas das anteriores. Assim no sero recompensadas aes desta natureza, considerando recompensa apenas quando for requerida mudana de atitude.

21

Punio

Quando ocorre uma coliso, so punidos classificadores que ganharam as ltimas iteraes. Isto feito respeitando-se o parmetro n mximo de classificadores a serem punidos NGP, limitado tambm pelo nmero de iteraes desde a ltima coliso. Estes ganhadores tero a Recompensa e a Taxa de Aposta subtradas de sua fora. Alm disso ser tambm aplicada a eles uma punio adicional subtraindo da sua fora o valor obtido pela seguinte expresso: (i/m)*P P: NGP: m: i: valor da punio n mximo de classificadores a serem punidos nmero de ltimos ganhadores a punir, com m <= NGP valor de 2 a m (2.9)

O classificador responsvel pela coliso punido independentemente , por isso i vai de 2 a m. Nota-se que os classificadores ganhadores de iteraes mais anteriores sero punidos com mais intensidade. Desta forma est sendo considerado que o resultado obtido na iterao atual foi influenciado pelas iteraes anteriores (memria de aprendizagem). Esta abordagem necessria no caso do controle da orientao do rob pelo fato de que se no forem tomadas medidas quanto seqncia de aes que o levaram a colidir, ou seja, se for punida somente a ultima ao, os classificadores que ganharam anteriormente estaro tendo a sua fora aumentada, o que acabar por forar este comportamento. Assim o rob fica dependendo de mudana acentuada de direo, que, eventualmente, pode estar fora dos limites permitidos. Isto uma espcie de armadilha, e a sua eliminao aumenta o desempenho e ajuda a garantir que o aprendizado possa ocorrer. Aps a punio, caso a fora do classificador atinja valor menor do que 1 ela zerada, o que, no modelo adotado, elimina a possibilidade deste classificador participar de novas apostas.

2.3.3 Algoritmo Gentico (AG)


O processo de descoberta de regras em sistemas classificadores utiliza um algoritmo gentico. Basicamente, o AG seleciona os classificadores com as maiores foras ou strengths como pais, gerando novos indivduos por meio da recombinao e mutao destes. Os novos classificadores gerados tomam o lugar dos mais fracos, modificando o conjunto de classificadores do sistema [17]. O AG (ver Apndice B), seleciona um determinado nmero n de melhores classificadores e aplica o algoritmo Roulette Wheel, apresentado por Goldberg em 1989 [14] para formar os pares. No SC utilizado crossover de 1 ponto e mutao simples. No crossover de 1 ponto selecionado aleatoriamente um ponto nos cromossomos dos pais, formados por classificadores, e os genes so permutados como indicado na Fig. 2.2. Na mutao simples, selecionado um ponto de um cromossomo e o seus gene trocado de valor, se for um passa para zero e se for zero passa para um.

Figura 2.2 Crossover de um ponto

22

So utilizados dois critrios para disparar o AG: nmero de iteraes, ou nmero de colises, aquele que ocorrer primeiro: Nmero de colises: muitas colises podem indicar insuficincia de classificadores adequados, o que seria resolvido acionando-se o AG. Nmero de iteraes: se no h colises no significa que o comportamento no possa ser melhorado.

2.4 Trmino da Aprendizagem


O mecanismo dos Sistemas Classificadores pode ter alternativas de operao considerando que ir existir uma fase de aprendizado e depois dela, com o conhecimento j adquirido, as hierarquias superiores podem ser desligadas ou terem seu funcionamento modificado. Neste caso interessante deixar um gatilho para dispar-los de novo caso o rob volte a apresentar uma determinada taxa de colises.

23

Captulo 3: Sistemas Classificadores com Redes Neurais


No Captulo 2 foi mostrada a abordagem dos Sistemas Classificadores Convencionais com os seus principais conceitos e funcionalidades. Neste captulo introduzido o Sistema Classificador Com Redes Neurais, mostrando-se o papel que as redes neurais iro desempenhar e as modificaes necessrias nos procedimentos do sistema convencional para receb-las. So tambm apresentadas algumas semelhanas com outras abordagens, apesar de no ter sido encontrada na literatura nenhuma abordagem equivalente aqui apresentada

3.1 Sistemas Classificadores com Redes Neurais


O Sistema Classificador com Redes Neurais (SCRN) est inteiramente fundamentado no Sistema Classificador Convencional (SC). A modificao no SC para se obter o SCRN feita substituindose o seu classificador, apresentado no Captulo 2, por um classificador neural, mostrado na Fig. 3.1 e explicado a seguir. Nos SCRN as regras binrias existentes nos classificadores convencionais so substitudas por redes neurais. So utilizadas duas redes neurais para substituir cada classificador convencional, uma para o antecedente e outra para o conseqente da regra. O antecedente da regra responsvel pela avaliao da adequabilidade do classificador a uma dada situao e a rede neural que o substitui recebe o nome de Rede de Avaliao. O conseqente da regra responsvel pela determinao da ao causada pelo classificador e a rede neural que o substituiu chamada de Rede de Ao. A Fig. 3.1 apresenta a constituio do Classificador Neural, evidenciando as suas duas redes neurais.

Classificador Neural

RN para Avaliao (antecedente) RN para Ao (conseqente)


Figura 3.1: O classificador neural de um SCRN. O classificador neural constitudo de duas redes neurais, uma para avaliao e outra para ao.

24

Em um SCRN, classificadores neurais sero processados de maneira equivalente que os classificadores convencionais o so em um SC convencional, passando pelos mesmos processos nas hierarquias superiores do sistema, onde sero selecionados e evoludos.

3.1.1 Por que usar redes neurais


A utilizao de redes neurais nos SC pretende aumentar o poder de descrio dos sistemas classificadores, substituindo as regras binrias, limitadas em termos de seu poder de processamento, por uma ferramenta mais poderosa. O uso de redes neurais como classificadores de regies contnuas vem desde os primrdios de sua proposio como ferramenta computacional. Uma rede neural do tipo Perceptron com 3 camadas, Fig. 3.2, pode classificar com preciso determinada (dependendo-se do nmero de neurnios em suas camadas internas) qualquer tipo de regio (inclusive regies no conexas) [16]. Da mesma maneira, redes do tipo Perceptron com 3 camadas constituem aproximadoras universais de funes [16] (tambm com preciso determinada, dependendo-se do nmero de neurnios em suas camadas internas) o que as torna particularmente interessantes para a determinao de qualquer tipo de funo de atuao.

Figura 3.2: Perceptron de trs camadas (uma camada intermediria) So consideradas redes Perceptron para constiturem as redes neurais do classificador neural.

Se analisarmos com cuidado o funcionamento de um classificador, veremos que seu antecedente avalia se a regra (o classificador) deve ou no ser utilizada dada uma determinada situao. Isso feito no classificador convencional por meio do pattern matching entre o antecedente a mensagem. Essa tarefa substituda no classificador neural, por uma rede neural com a mesma finalidade. A diferena que ao invs de limitar-se s regies cobertas por uma regra binria, tem-se a flexibilidade de classificao que uma rede neural proporciona. O mesmo se d com relao ao conseqente. No classificador convencional, o conseqente arbitra uma ao nica (constante). Utilizando uma rede neural, ao contrrio, pode-se fazer com que a sada do sistema seja uma funo qualquer arbitrria (implementada pela rede neural) da entrada, que pode inclusive ser constante! Assim, v-se que o uso de um classificador neural no altera a funcionalidade bsica de um classificador, mas to somente aumenta seu poder descricional, permitindo que um maior nmero
25

de regies (situaes) seja considerado, e tambm modificando seu poder de atuao, permitindo que funes mais sofisticadas sejam utilizadas na atuao do sistema.

3.1.2 O Classificador Neural


As redes neurais do classificador neural so perceptrons de 3 camadas, como na Fig. 3.2. Estas redes tm tantos neurnios na camada de entrada quantas sejam as entradas, mais um neurnio para o sinal de polarizao. A camada de sada tem um neurnio para cada sada. A camada intermediria deve ter uma quantidade de neurnios que permita a aproximao desejada. As funes de ativao g dos neurnios da camada intermediria so normalmente sigmodais, sendo que a dos neurnios da camada de sada usualmente so lineares. Cada classificador neural representado no SCRN por um vetor, cujo antecedente formado pelos pesos da rede neural de avaliao e cujo conseqente formado pelos pesos da rede neural de ao. A Fig. 3.3 ilustra o papel desempenhado pelo classificador neural nos SCRN. Todos os classificadores neurais recebem nas entradas das suas redes de ao e de avaliao a mensagem de entrada. Em primeiro lugar, todas as redes de avaliao (de todos os classificadores neurais do sistema) processam essa mensagem, produzindo o que seria equivalente ao matching e especificidade de cada um dos classificadores neurais. Estes valores so enviados para o processamento da Atribuio de Crditos, onde haver competio, sendo que apenas um dos classificadores neurais vencer.

Classificador Neural

Mensagem de Entrada

RN para Avaliao (antecedente) RN para Ao (conseqente)

Matching e Especificidade enviados para a Atribuio de Crditos Retorno da Atribuio de Crditos Mensagem de Sada

Figura 3.3: O funcionamento do classificador neural.

A rede neural de ao do classificador neural vencedor recebe um sinal de retorno da Atribuio de Crditos, tendo permisso para processar a mensagem de entrada, e, ento, produz a sua mensagem de sada. V-se que todas as redes de avaliao processam a mesma mensagem de entrada, mas apenas uma rede neural, a rede de ao do classificador vencedor, ter permisso para process-la e fornecer a sada. Assim existe uma grande similaridade com o sistema classificador convencional, mas na realidade existem mudanas no comportamento, que sero examinadas posteriormente no Captulo 6.
26

3.1.3 Configurao das redes neurais


As redes neurais de ao e de avaliao so do tipo perceptron com uma camada intermediria de um ou mais neurnios. A camada de sada da rede de avaliao tem um ou dois neurnios, que fornecem o matching e o nvel de especificidade, considerados iguais no caso de apenas um neurnio. A camada de sada da rede de ao tem um neurnio, com a funo de comandar a orientao do rob. A funo de ativao da camada intermediria a tangente hiperblica, e a camada de sada tem ativao linear. A entrada das redes a mensagem da Interface de Entrada mais polarizao, sendo, portanto, dependente do n de sensores e de como as suas informaes so codificadas. Seja um exemplo para ilustrar a configurao de um classificador neural. A especificao da camada de entrada das redes de ao e de avaliao dependente da mensagem de entrada. Para um sensor que tem condies de detectar 3 regies do ambiente, a mensagem codificada pela interface de entrada ser composta por um vetor com 3 elementos, cada elemento tendo um valor binrio, 0 para a existncia de obstculo na regio, 1 para a ausncia: { E1 E2 E3 } mensagem de entrada

Esta mensagem determina o nmero de neurnios da camada de entrada, que ser 4, 3 para o vetor de entrada e 1 para a polarizao. A mensagem enviada pelos neurnios da camada de entrada para o neurnio da camada intermediria ser acrescida de um elemento, correspondente polarizao, formando o vetor: { E1 E2 E3 1 } mensagem para a camada intermediria

Considerando apenas 1 neurnio na camada intermediria das redes de ao e de avaliao, este ter um peso para cada neurnio de entrada, ou seja, 4 pesos. Considerando 1 neurnio na camada de sada para a rede de avaliao e de ao, este ter 1 peso para cada neurnio da camada intermediria, mais 1 peso para polarizao, resultando em 2 pesos: Sejam os pesos do neurnio da camada intermediria da rede de avaliao representados por XI1, XI2, XI3 e XI4, e da rede de ao por YI1, YI2, YI3 e YI4. Sejam os pesos da 3. camada, ou camada de sada, da rede de avaliao representados por XS1 e XS2 os da rede de ao por YS1 e YS2. O antecedente do classificador neural representado por um vetor constitudo pelos pesos da rede de avaliao, colocando-se em seqncia os pesos do neurnio da camada intermediria e os da camada de sada. De forma anloga formado o conseqente do classificador neural. { XI1 XI2 XI3 XI4 XS1 XS2 } { YI1 YI2 YI3 YI4 YS1 YS2 } antecedente do classificador neural conseqente do classificador neural

Finalmente, o classificador neural tem a sua representao formada pelo vetor constitudo pelos elementos do antecedente e do conseqente:

27

{ XI1 XI2 XI3 XI4 XS1 XS2 YI1 YI2 YI3 YI4 YS1 YS2 }

classificador neural

Se a rede de avaliao tivesse dois neurnios na camada de sada, cada um desses neurnios teria dois pesos, podendo ser identificados por XS11 e XS12 para o primeiro neurnio e XS21 e XS22 para o segundo neurnio, o que resultaria em { XI1 XI2 XI3 XI4 XS11 XS12 XS21 XS22 YI1 YI2 YI3 YI4 YS1 YS2 } para o seu classificador neural.

3.2 Semelhanas com outras abordagens


Apesar de no ter sido encontrada na literatura nenhuma abordagem equivalente aqui apresentada, existem algumas abordagens que, mesmo no sendo equivalentes, apresentam algumas semelhanas quanto aos procedimentos aqui empregados. Vale a pena portanto destac-las aqui para efeito de comparao:

3.2.1 Evolutionary Reinforcement Learning


Ackley e Littman em [1], formulam o conceito de Evolutionary Reinforcement Learning (ERL). Uma populao de agentes em um ambiente com predadores e alimento tem que evoluir para sobreviver. Cada agente tem seu comportamento comandado pela atuao de duas redes neurais, uma para avaliao e outra para ao. A rede de avaliao faz um mapeamento dos valores de entrada dos sensores dos agentes em um escalar real, representando o grau de goodness da situao atual. Os pesos desta rede so herdados e no se modificam durante a vida do indivduo. A rede de ao faz um mapeamento das entradas dos sensores do agente em comportamento, sendo que seus pesos so herdados e podem ser modificados durante a sua vida. A modificao dos pesos feita utilizando um algoritmo de Reinforcement Learning, atravs de um sinal de reforo da rede de avaliao e, pelo fato dos pesos serem genes e estarem sendo modificados durante a vida, Ackley e Littman acrescentaram Evolutionary ao Reinforcement Learning. No SCRN a rede de avaliao fornece sua sada ao mecanismo de Atribuio de Crditos e no diretamente rede de ao. Alm disso, a populao de classificadores do SCRN no tem comportamento isolado, a competio faz com que apenas um deles gere comportamento para uma mensagem de entrada, e no cada um deles em particular como no ERL. O principal ponto em comum que as redes so evoludas geneticamente nos dois casos, mas lembrando que, no ERL, a rede de ao pode ter seus pesos modificados durante a vida do agente, o que no ocorre com o SCRN, onde a rede de ao no modificada durante a existncia do classificador.

3.2.2 Adaptive Critic


O treinamento supervisionado de uma rede neural s pode ser efetuado em situaes onde se conhece ou pode-se obter uma amostra dos valores de entrada com as sadas esperadas. Esta amostra apresentada rede neural permitindo o seu treinamento. Existem situaes em que alm de no se ter esta amostra, as nicas informaes que podem ser fornecidas para a rede so um escalar que mede o acerto de sua sada perante uma dada entrada. Este o caso onde se aplicam tcnicas de Reinforcemente Learning (RL) [38]. No caso em que a informao do ambiente no pode ser utilizada imediatamente, ou seja, quando existe a necessidade de se fazer a previso do acerto futuro, utilizado um algoritmo de RL onde o sinal de reforo gerado por uma rede neural denominada Critic [22], sendo uma de suas variaes denominada Adaptive Critic.
28

A rede neural desempenhando a funo de critic recebe informaes do ambiente e da sada da rede neural de controle e fornece o sinal de reforo para a rede de controle. Dessa forma pode-se entender o critic desempenhando a funo da rede neural de avaliao no SCRN. De fato existe a semelhana funcional entre o adaptive critic e o classificador neural utilizado no SCRN, mas os procedimentos so bastante diferentes. Primeiro, em RL o que se procura otimizar um nico controlador neural responsvel pelo comportamento total, utilizando-se o algoritmo de RL para fornecer as informaes de avaliao, e este algoritmo numrico, no evolutivo. No SCRN o sinal da rede de avaliao no vai diretamente para a rede de ao - enviado para a Atribuio de Crditos, estando em evoluo um conjunto de classificadores, que dividem a responsabilidade do controle do sistema. No RL o mecanismo de aprendizagem efetua modificaes diretas nos pesos da rede de controle, e no SCRN isto ocorre por evoluo gentica.

3.3 Nveis Superiores da Hierarquia


As arquiteturas dos nveis superiores so inteiramente semelhantes s apresentadas para o SC.

3.3.1 Atribuio de Crditos


O modelo segue, em linha geral, o especificado por Richards em [33]. So feitas algumas alteraes para adequ-lo s necessidades especficas encontradas.
Clculo da aposta

No nvel bsico da hierarquia so identificados os classificadores com matching com a mensagem de entrada. Com o SCRN, o matching e a especificidade so sadas da rede de avaliao, tendo como entrada a mensagem de entrada. Sendo estes valores nmeros reais, adotado o critrio de considerar a ocorrncia de matching quando forem positivos e, se a especificidade for negativa o classificador no aceito para competir. Este procedimento permite a ocorrncia de um grande n de classificadores competindo, assim adotado o critrio adicional de aceitar apenas um determinado n de classificadores, utilizando o seu valor de matching para selecion-los, ou seja, sero aceitos um dado n de classificadores com maior matching. utilizada a Exp. 2.2 para o clculo da aposta.
Taxa de aposta

So utilizadas as expresses 2.3 e 2.4 para calcular-se a fora dos classsificadores neurais aps a aplicao da taxa de aposta.
Taxa de vida

utilizada a Exp. 2.5 para o clculo da taxa de vida e a Exp. 2.6 para o clculo da fora.
Recompensa ou punio

Tem-se as expresses 2.7 e 2.8 para a obteno da fora pela aplicao do mecanismo de recompensa e punio.

3.3.2 Principais Diferenas na Implementao do Algoritmo de Atribuio de Crditos


Considerando a abordagem definida por Richards, o algoritmo utilizado neste trabalho tem as seguintes diferenas.

29

No ocorrendo matching

Quando no ocorre matching o algoritmo do Richards introduz um novo classificador com antecedente igual ao valor codificado pelos sensores, com o conseqente gerado aleatoriamente e com fora igual mdia das foras dos classificadores na iterao em curso. No entanto, a sua implementao no SCRN requer a obteno de uma Rede Neural para o antecedente do novo classificador, a sua rede de Avaliao, que produza matching. Mas neste sistema tanto matching como especificidade so valores reais e, como ser mostrado posteriormente, devem ser positivos, ou seja, um classificador ser considerado com matching apenas se o seu matching e especificidade forem maiores que zero. Finalmente, tem-se ainda que obter a Rede Neural que produza esses valores como sada. Assim, este novo classificador introduzido, na abordagem com Redes Neurais, de forma aleatria, isto , seu antecedente e seu conseqente, pesos das Redes Neurais de Avaliao e Ao, so gerados aleatoriamente. tomado o cuidado para que sejam obtidos classificadores com matching e especificidade positivos, testando-se estes valores e, se eles no respeitarem tal condio, ento feita uma nova tentativa, gerando-se um novo classificador. Decidiu-se fazer at 10 repeties desse ciclo e, caso no tenha sido conseguido matching e /ou especificidade, repete-se a ao anterior.
No ocorrendo mudana na mensagem da interface de entrada

Este procedimento inteiramente semelhante ao utilizado no SC.


Punio

Este procedimento inteiramente semelhante ao utilizado no SC.

3.3.3 Algoritmo Gentico (AG)


Este procedimento inteiramente semelhante ao utilizado no SC. Com relao aos operadores genticos, utiliza-se crossover de dois pontos, no qual so escolhidos aleatoriamente dois pontos nos cromossomos dos pais, sendo permutados os genes localizados entre eles. usada mutao inversiva, onde so selecionados dois pontos de um cromossomo e os seus genes so permutados, como indicado na Fig. 3.4.

Figura 3.4 Mutao Inversiva

30

Captulo 4: O Simulador
Este captulo aborda o tema do Simulador, onde a pertinncia de se efetuar simulaes bem como as suas vantagens e desvantagens so discutidas. mostrado tambm o porqu da escolha do Matlab como linguagem para desenvolvimento do software do simulador. Por fim, apresentada uma viso geral do simulador e de seus recursos

4.1 Por que Simular ?


4.1.1 A simulao faz parte do mecanismo de inteligncia
Simular um procedimento inerente ao ser humano e pode ser visto como sendo parte de seu mecanismo de inteligncia, conforme ilustrado a seguir: Quando tem-se que tomar uma deciso, lana-se mo de simulaes para verificar qual a ao mais apropriada em funo do objetivo pretendido. Por exemplo, ao querer-se pegar um objeto, feito pela mente um traado imaginrio do percurso a ser seguido e o crebro passa a comandar o movimento da mo, procurando seguir o traado obtido. O clculo da trajetria pode ser entendido como uma simulao prvia para estabelecer a trajetria a ser seguida. Em situaes bastante simples, sem a existncia de obstculos e com alvos estacionrios, o traado mental apenas refeito de tempos em tempos, como realimentao para as alteraes nas posies da mo. Em situaes mais complexas faz-se necessrio o planejamento de vrios traados para se chegar deciso de qual o mais indicado e as realimentaes sero mais freqentes. Ve-se que simular e calcular so termos com significados parecidos. Os clculos de um projeto so elaborados para se obter uma soluo mais adequada do que a que seria obtida sem eles. Efetuar um projeto para se obter algo, efetuar uma simulao prvia. Atualmente as simulaes ganham mais poder, ou seja, mais realidade e velocidade, com o uso de processamento digital. Por isso quase que natural, principalmente com os recursos computacionais existentes, pensar-se em efetuar simulaes como etapa inicial do desenvolvimento de um projeto.

4.1.2 Simular ou no ?
Existem no meio cientfico divergncias quanto possibilidade dos resultados obtidos por simulao serem significativos quanto a representarem a realidade. A oposio ao uso de simuladores em robtica mvel em geral tem Brooks como um grande aliado em seu artigo Intelligence Without Reason [8]. de se esperar que os resultados obtidos na simulao sejam diferentes dos obtidos utilizando-se a situao real. No entanto, devem existir maneiras de se minimizar estas diferenas. o que relata Grefenstette em vrios artigos onde justifica a utilizao do simulador Samuel [15]. Schultz & Grefenstette em seu trabalho Using a Genetic Algorithm to Learn Behaviors for Autonomous Vehicles [36] e Ramsey et al em seu trabalho Simulation-assisted learning by competition: Effects of noise differences between training model and target environment [32] mostraram que os conhecimentos adquiridos por procedimentos de aprendizagem em simulaes computacionais podem ser robustos e portanto aplicveis ao mundo real, no caso da simulao incluir condies mais realistas a respeito do mundo real, como por exemplo se a simulao incorporar rudo e um conjunto diversificado de condies ambientais.

31

4.1.3 Vantagens
Agilidade nas implementaes e anlises

Dentre todas as vantagens em se utilizar um simulador, provavelmente a agilidade com que as implementaes e anlises podem ser feitas talvez seja a de maior relevncia para o pesquisador. No existem as atividades relativas ao provimento de energia, download de programas, medidas de segurana para se evitar danos ao rob e ao ambiente. O mesmo se pode dizer com relao observao e obteno dos dados para anlise.
Investimento e custeio

Uma simulao normalmente exigir investimento de capital menor do que a aquisio de um rob real. Mas, no caso de optar-se por simulaes prvias implementao real, este item deve ser considerado como um investimento adicional. Talvez o investimento maior seja relativo ao tempo do profissional dedicado ao desenvolvimento do software. Cabe, no entanto, a observao de que haver economia de tempo nas modificaes e testes. Ainda, o mesmo simulador poder ser aproveitado para diferentes tcnicas experimentadas. Uma vez que simulador e modelos sejam adequados para a representao dos ambientes reais, o custeio ser mais barato, demandar apenas o uso do computador, dispensando o uso do rob e toda a infra-estrutura necessria para a fase de experimentaes e treinamento.
Consideraes tericas

Uma implementao de um modelo terico em um simulador, mesmo sendo bastante simplificada, pode se tornar um grande auxiliar na anlise de implicaes gerais. Pode inclusive indicar a viabilidade do modelo terico, antes de sua implementao mais detalhada. Esta uma aplicao muito importante do simulador, principalmente se este for construdo de tal forma que a insero de diferentes tcnicas de controle seja facilitada. Da o interesse em desenvolver o Simulador de forma modular, utilizando programao estruturada com Classes e Objetos.
Tempo de execuo reduzido

As simulaes podem tambm reduzir o tempo da experimentao, pois possvel executar o modelo em velocidade superior real, dependendo apenas do desempenho do microcomputador.
Portabilidade.

O Simulador um software - pode ser transportado, por exemplo, do Laboratrio de Pesquisas, que pode ser um mero Escritrio com um microcomputador, para casa, etc.
Replicao

Devido sua portabilidade, o Simulador pode ser utilizado por vrios pesquisadores ao mesmo tempo, diminuindo significativamente a demanda pelo rob.
Segurana

Evita danos ao rob, ao ambiente e ao pesquisador, em caso de funcionamento em condies incertas ou desconhecidas de operao, que podem ser processadas em simulao.

4.1.4 Inconvenincias
Modelagem do rob

Esta , talvez, a maior dificuldade, principalmente na modelagem dinmica.


Modelo do Ambiente e Obstculos

A modelagem do ambiente com os obstculos no tarefa simples, mais ainda considerando um ambiente no estacionrio.
32

Investimento, custeio e tempo adicionais

Pode ser necessria a compra de hardware adicional para se fazer a simulao, por exemplo, um microcomputador com o desempenho requerido. O custeio ser praticamente relativo ao tempo despendido no desenvolvimento do software do simulador para os modelos do rob e do ambiente com seus obstculos. Os algoritmos de controle tero que ser desenvolvidos em ambos os casos, para a simulao e para o experimento real. Todo este processo requer um tempo adicional, entre a deciso de se efetuar a pesquisa e a sua implementao.

4.2 Escolha da Linguagem de Programao


4.2.1 Decises preliminares
Para escolher a linguagem de programao foi considerada a facilidade a partir de recursos disponveis na linguagem, o desempenho e sua aceitao e utilizao nos meios cientficos e na engenharia. O uso de classes apropriado para a abordagem estruturada e modular, o que permite extenso do simulador para vrios tipos de robs, com seus dispositivos peculiares de direo, detectores e algoritmos de navegao. Com relao a recursos grficos tm-se duas demandas distintas. A primeira relativa visualizao do comportamento dinmico do rob - sem requerer muita sofisticao. A segunda relativa visualizao dos dados em grficos, que, com recursos apropriados da linguagem, podem ter a sua eficincia de interpretao aumentada. A insero de dados dos parmetros e a recuperao de dados para anlise so fatores primordiais nas pesquisas, que, dependendo da linguagem, iro requerer o desenvolvimento de programas e rotinas especficas. Foram consideradas trs linguagens como candidatas: C++, Java e MATLAB, sendo a inclinao pessoal do autor pela terceira. As linguagens C++ e Java atendem a quase todos os requisitos, exceto com relao recuperao de dados e sua visualizao em grficos, que requerem o desenvolvimento de rotinas especficas, alm da inexistncia de facilidades intrnsecas da linguagem para o desenvolvimento dos programas do simulador, como funes para o uso de matrizes e para as tcnicas de IA que sero utilizadas no futuro. Uma soluo neste caso o uso de bibliotecas, o que requer a aquisio de softwares adicionais e a verificao de sua funcionalidade. Mas no resta dvida que com relao ao desempenho a linguagem C++ estaria em primeiro lugar, seguida de Java. Com relao ao MATLAB, em primeiro lugar entra a familiaridade do autor com a linguagem e seu estilo pessoal. O uso de matrizes e as funes de matrizes existentes no MATLAB facilitam muito o desenvolvimento dos algoritmos e tambm a entrada e recuperao de dados. A existncia nesta linguagem de vrios recursos adicionais para programao que podero ser utilizadas no controle com aprendizado (como, por exemplo, o Neural Network Toolbox, o Control Systems Toolbox, o Simulink) tornam-na bastante atraente. O MATLAB uma linguagem interpretada, o que usualmente significa um desempenho ruim, ou, ao menos, no muito bom em termos de velocidade de computao. No entanto as verses mais recentes apresentam um desempenho bastante melhorado e, o que melhor, a possibilidade de transformar funes em dynamic link libraries (dlls), permitindo desempenho quase equivalente ao das linguagens C/C++.

33

4.2.2 MATLAB 6.0 Release 12 a linguagem escolhida


claro que a escolha da linguagem de suma importncia e no pode se basear apenas nas qualificaes apresentadas. Assim, esta etapa foi concluda aps o desenvolvimento do simulador bsico, cujos testes iniciais comprovaram a viabilidade do uso do MATLAB. Por exemplo, um processador de 300 MHz com 128 MB de RAM confortvel para a maior parte dos testes, sendo recomendvel um processador mais rpido dependendo da complexidade do ambiente e/ ou da existncia de mais de um rob. Como ilustrao, utilizando-se um processador Pentium III, com 256 MB de RAM, sendo o rob configurado com dois sensores e o ambiente contendo um obstculo, foi obtido o desempenho de 1000 iteraes por minuto. Assim, alguns dos experimentos do Captulo 6, que utilizaram 15000 iteraes, podem ser executados cada um deles, com este hardware, em aproximadamente 15 minutos.

4.3 Viso Geral


As facilidades oferecidas pelo Simulador so de trs naturezas distintas: Recursos do Simulador, o rob e suas caractersticas e os algoritmos de controle.

4.3.1 Recursos do simulador


Os recursos do simulador so os componentes do Simulador utilizados para a definio do ambiente onde o rob dever operar, independentemente do tipo e caractersticas do rob que ser utilizado. Estes recursos permitem a definio dos obstculos e dos contornos do ambiente. Os obstculos so implementados como objetos da classe FormaGeometrica. O contorno do ambiente definido pelo mtodo Ambiente. O Simulador foi desenvolvido para ambiente 2D, com contorno de qualquer formato, a ser definido pelo usurio.

4.3.2 O rob e suas caractersticas


So considerados robs com direo por rodas diferenciais, com forma circular, como objetos da classe RobotMovel, representando de maneira simplificada o mini rob Khepera [21] que, pretende-se, ser utilizado futuramente na consecuo deste trabalho. O rob pode ter um nmero qualquer de sensores, podendo ser especificado para cada um deles a sua posio, abertura e alcance mximo. A abordagem modular permite a implementao de outras formas de direo e de outros tipos de sensores.

4.3.3 Os algoritmos de controle


A simulao implementada utilizando um programa Controlador que
inicializa parmetros define o ambiente define os objetos obstculos da classe FormaGeometrica define os objetos robs da classe RobotMovel chama os mtodos das classes chama os mtodos referentes aos algoritmos de controle em uso (AlgoritmoGenetico, Atuador, Classificador) efetua a Recompensa ou Punio

34

4.3.4 Resumo das classes e mtodos


Classes
RobotMovel

Mtodos Pblicos
RobotMovel (construtor) DWS set DadosParaPlot Detecta FormaGeometrica (construtor) NovasCoordenadas set DadosParaPlot

Mtodos Privados
DetectaAuxiliar Posiciona Sensor

FormaGeometrica

Posiciona

Mtodos dos Algoritmos de IA


AlgoritmoGenetico Atuador Classificador Recompensa e Punio (dentro do controlador) Mtodo para Ambiente Tabela 4.1 Resumo das Classes e Mtodos do Simulador

35

Captulo 5: Detalhes do Simulador


Deve ser mencionado inicialmente que nem todos os leitores estaro interessados na leitura deste captulo e ele no essencial para o entendimento desta pesquisa. Ele est escrito, pela sua natureza, em linguagem tcnica familiar para pesquisadores que utilizam o Matlab e apresenta detalhes da implementao do simulador, contendo informaes para a sua utilizao, manuteno e incluso de novos recursos. Os leitores que desejarem ter um conhecimento apenas um pouco mais aprofundado das possibilidades do simulador sem terem que passar por todos os detalhes deste captulo, podem se dirigir diretamente ao ltimo item, o Controlador, onde encontraro uma viso da dinmica do funcionamento do simulador e tambm entraro em contato mais especificamente com os parmetros necessrios para a configurao do sistema para um experimento.

5.1 Entrada, Sada de Dados e Apresentao da Simulao


A entrada de dados feita atravs de parmetros localizados no programa Controlador, apresentado no ltimo item deste captulo. A sada de dados utiliza o workspace do MATLAB. Os dados a serem recuperados so guardados em matrizes do programa Controlador, ficando disponveis no workspace, portanto, quando a execuo finaliza, ou interrompida. No caso de necessitar-se de informaes sobre os dados referentes a algum mtodo de controle em particular, pode-se utilizar os recursos de depurao do MATLAB para observ-los, ou ento pass-los como parmetro de sada para o programa do Controlador. Uma vez obtidos os dados (e com os recursos grficos do MATLAB), produz-se os grficos necessrios para a anlise, interpretao e avaliao. Isto pode ser feito pelo programa VeResultados de forma automatizada. A apresentao da simulao feita em uma figura contendo o ambiente com os obstculos e o rob. Concomitantemente so apresentados dois grficos, um mostrando a curva de aprendizado, e outro o nmero de iteraes transcorridas entre colises sucessivas.

5.2 Recursos Especficos do Simulador


So os recursos elaborados especificamente para o Simulador, independentes do tipo e caractersticas do rob que ser utilizado. Compreendem a criao da figura que ir conter o ambiente de simulao, os grficos, o ambiente e os objetos a serem utilizados.

5.3 Ambiente
O ambiente estabelecido por desenho dos pontos com suas coordenadas contidas em dois vetores linhas: contornox e contornoy.

5.3.1 Funes para Ambiente


Existem vrios mtodos acompanhando o Simulador que podem ser utilizados para a definio do ambiente de simulao com seu contorno e obstculos. Eles so utilizados como parmetro no
36

programa Controlador. A partir deles fica fcil, por edio, introduzir alteraes no ambiente de simulao. Por exemplo, o mtodo Ambiente0
Sintaxe

[VetorObjetos,contornox, contornoy] = Ambiente0


Parmetros de sada VetorObjetos contornox, contornoy Contm os objetos criados pelo mtodo Contm os pontos referentes s coordenadas cartesianas para desenho do contorno do ambiente.

5.4 Classe FormaGeometrica


A classe FormaGeometrica usada para produzir objetos geomtricos de vrias formas. Foram elaborados dois tipos diferentes de objetos, com forma circular e forma retangular.

5.4.1 Construtor: FormaGeometrica


Chama o mtodo privado Posiciona para determinar os pontos para desenho do objeto. Esta classe permite a criao de objetos de forma geomtrica e seu desenho no ambiente. Podem ser criados dois tipos de objetos: com forma circular e com forma retangular, que atendem as necessidades dos experimentos, com a sintaxe:
Sintaxe

h = FormaGeometrica(tipo,dadoespecifico,xcentro,ycentro) que, para a forma circular, resulta em ucircular = FormaGeometrica('Circulo',raio,xcentro,ycentro) onde so fornecidos o raio e as coordenadas do centro. Para a forma retangular resulta em uretangulo = FormaGeometrica('Retangulo',[l1 l2],xcentro,ycentro) onde fornecido um vetor linha com os lados e as coordenadas do centro do retngulo. Os objetos retangulares so criados com os lados paralelos aos eixos de coordenadas x,y. A introduo de novas formas geomtricas bastante facilitada pela modularidade do desenvolvimento do software. Inclusive poder-se-ia introduzir um novo tipo SemForma onde seriam fornecidos os pontos de definio de seu contorno. Eventualmente, por clareza no desenvolvimento, poder-se-ia criar uma nova classe para esse tipo de objeto.
Parmetros de entrada tipo dadoespecifico xcentro,ycentro Parmetros de sada h Objeto FormaGeometrica. 37 Especifica a forma do objeto ('Circulo' ou 'Retangulo') Para 'Circulo' o raio, para 'Retangulo' um vetor com ladohorizontal e ladovertical Coordenadas do centro do objeto

5.4.2 NovasCoordenadas
Calcula as novas coordenadas do objeto. Chama Posiciona para efetuar os clculos. Aparentemente NovasCoordenadas poderia ser embutido em set, mas assim o MATLAB no forneceria os resultados desejados para a atualizao dos campos do objeto. necessrio, para tanto, que os novos dados sejam passados de fora, ou seja, no de dentro de algum mtodo do objeto. Por isso, para: posicionar o objeto em um novo lugar, alterar o registro de seus dados e exibi-lo deve ser usado NovasCoordenadas e set. Como o mtodo NovasCoordenadas calcula as novas propriedades do objeto em uma nova posio definida por um novo centro, ele permite tambm a mudana de posio do objeto, facilitando a gerao de ambientes no estacionrios. Note que este mtodo apenas calcula as novas propriedades. Para estabelec-las e visualizar o objeto na nova posio deve-se usar o mtodo set.
Sintaxe [fgx,fgy] = NovasCoordenadas(u,xcentro,ycentro) Parmetros de entrada u xcentro,ycentro Parmetros de sada fgx,fgy Coordenadas para desenhar o contorno do objeto. Identificador do objeto. Contm a estrutura com dados do objeto. Coordenadas do centro do objeto

5.4.3 set
set atribui novos valores a campos do objeto e o re-exibe. Observar que a varivel de retorno deve ser o prprio objeto. Este mtodo no d o resultado desejado se chamado por outro mtodo do objeto. Estas observaes so caractersticas da maneira como o MATLAB utiliza classes e objetos. Lembrar que aps definir novas propriedades com o mtodo NovasCoordenadas temos que utilizar o mtodo set para estabelec-las como novas propriedades do objeto FormaGeometrica e para visualiz-lo na nova posio.
Sintaxe

u = set(u, xcentro,ycentro,fgx,fgy) interessante notar a semelhana na utilizao de set para a classe RobotMovel e para a classe FormaGeometrica.
Parmetros de entrada u xcentro,ycentro fgx,fgy Parmetros de sada u Identificador do objeto. 38 Identificador do objeto. Contm a estrutura com dados do objeto. Coordenadas do centro do objeto. Coordenadas para desenhar o contorno do objeto.

5.4.4 DadosParaPlot
DadosParaPlot permite acesso aos dados para desenho. Foi desenvolvido para ser usado pelo mtodo Detecta da classe RobotMovel. Mas como mtodo pblico poder ter outras finalidades.
Sintaxe [fgx,fgy] = DadosParaPlot(u); Parmetros de entrada u Parmetros de sada fgx,fgy Posiciona Coordenadas para desenhar o contorno do objeto. Identificador do objeto.

Posiciona calcula todos os pontos para desenhar o objeto nas coordenadas pedidas. Como se trata de um mtodo privado, tem que ser colocado em uma pasta denominada private. Somente os mtodos pblicos ficam no mesmo diretrio, da classe. Deve ser mtodo privado pois utilizado pelo construtor, antes de definir o objeto.
Sintaxe [fgx, fgy] = Posiciona(varargin)

Quando chamado pelo construtor utiliza a sintaxe:


[fgx fgy] = Posiciona(tipo,dadoespecifico,xcentro,ycentro);

Quando chamado por NovasCoordenadas utiliza a sintaxe:


[fgx fgy] = Posiciona(u,xcentro,ycentro); Parmetros de entrada u tipo dadoespecifico xcentro,ycentro Parmetros de sada fgx,fgy Coordenadas para desenhar o contorno do objeto Identificador do objeto. Especifica a forma do objeto ('Circulo' ou Retangulo) Para 'Circulo' o raio, para 'Retangulo' um vetor com ladohorizontal e ladovertical Coordenadas do centro.

5.5 Classe RobotMovel


Esta classe tem a finalidade de servir de ponto de partida para a modelagem de um mini rob Khepera, que pretende-se utilizar futuramente na seqncia deste trabalho. Assim o rob tem forma circular, seu controle de direo feito pela velocidade diferencial em suas rodas de direo e, ainda, utiliza sensores para detectar o ambiente. No se pretende por enquanto uma modelagem completa e pormenorizada do rob. Desta forma, com relao ao movimento, so considerados apenas os aspectos relativos cinemtica, sem
39

acelerao. Os sensores so representativos de sensores de distncia, podendo ser definida a sua quantidade, posicionamento e abertura. simulada tambm a existncia de sensores de contato ao longo de sua superfcie. A Classe RobotMovel implementa o mtodo DWS para efetuar mudana de direo por velocidade diferencial, que pode ser considerado como mtodo especfico, podendo aceitar mtodos para outros tipos de abordagem. Implementa tambm um mtodo chamado Detecta, que permite ao rob detectar, atravs de seus sensores, os contornos do ambiente, os objetos e outros robs. Utiliza o mtodo privado Posiciona para determinar os pontos de desenho do rob, que por sua vez utiliza o mtodo privado Sensor para determinar os pontos de desenho dos contornos de cobertura dos sensores. A sintaxe para criar um objeto RobotMovel : u = RobotMovel(Eixo,XIn,YIn,TetaIn,DadosSensor) onde Eixo: define o eixo do rob XIn,YIn: coordenadas x e y do centro do rob TetaIn: orientao angular DadosSensor: vetor linha definindo os sensores

Figura 5.1 Ilustrao de um objeto RobotMovel

Seja o seguinte exemplo a definio dos sensores DadosSensor = [35 10 100 0 10 100 -35 10 100]

40

de um rob como o definido na Fig. 5.1. Podemos perceber a rea de percepo de trs sensores, o primeiro 35 graus esquerda do rumo do rob, o segundo no rumo do movimento e o terceiro 35 graus direita. Todos os sensores tm uma abertura de 10 graus e um alcance de 100 pixels. O Khepera tem 70 mm de dimetro, correspondendo na figura a 50 pixels, o que significa uma escala de 1.4 mm/pixel. O alcance dos sensores de 100 pixels est representando um alcance de 140 mm.

5.5.1 Construtor: RobotMovel


Sintaxe

u = RobotMovel(eixo,x,y,teta,dadossensor)
Propriedades

Os parmetros a serem utilizados para a criao do eixo e dos sensores do objeto RobotMovel constituem propriedades da classe. Estas propriedades foram definidas de modo a no serem alteradas, no existindo mtodo para tanto. Os parmetros a serem utilizados para as coordenadas do centro do rob e sua orientao so propriedades. Elas podem ser alteradas pelo mtodo DWS.
Parmetros de entrada eixo x,y teta dadossensor Dimetro ou tamanho do eixo diferencial. Coordenadas do centro do rob. Orientao e sentido do rob. Vetor cujos elementos so considerados de trs em trs, correspondendo ao deslocamento da posio do sensor, sua abertura e seu alcance.

Parmetros de sada u Identificador do objeto. Contm a estrutura com dados do objeto.

5.5.2 Sensor (mtodo privado)


A classe RobotMovel utiliza o mtodo privado Sensor para definir o sensor, o qual pode detectar (atravs do mtodo Detecta) objetos em trs regies: perto, meia distncia e longe. Note que existe a facilidade de introduzirem-se novos modelos de sensores como novos mtodos, bastando desenvolverem-se novos mtodos privados. Calcula os pontos para desenhar os sensores. chamada por Posiciona. Utiliza duas funes locais DireitaEsquerda e Arco.
sintaxe

[sx1, sy1, sx2, sy2, sx3, sy3] = Sensor(eixo,x,y,teta,dadossensor)


Parmetros de entrada eixo x,y Dimetro ou tamanho do eixo diferencial. Coordenadas do centro do veculo. 41

teta dadossensor Parmetros de Sada sx1, sy1 sx2, sy2 sx3, sy3

Orientao do veculo. Vetor contendo dados para a definio dos sensores, organizados de trs em trs, correspondendo posio, abertura e alcance.

Vetores com as coordenadas da primeira seo do sensor. Idem segunda seo. Idem terceira seo.

5.5.3 DWS
O mtodo DWS executa os clculos para computar a mudana de direo por rodas diferenciais. Neste modelo considerada a cinemtica sem acelerao, suposio que preenche as necessidades desta abordagem. Seus parmetros de entrada so a posio atual do rob e sua orientao, o intervalo de tempo dt que ir transcorrer e as velocidades das rodas direita e esquerda. Os parmetros de sada fornecero as novas coordenadas do rob e dados para a seu desenho. Dadas as coordenadas atuais, a orientao atual, a velocidade atual e o intervalo de tempo dt, calcula as novas coordenadas do centro do veculo e sua orientao. A seguir calcula os pontos para desenho do objeto e dos sensores chamando o mtodo privado Posiciona, que por sua vez chama Sensor, tambm mtodo privado. DWS apenas calcula os novos pontos para desenho. Para alterar o registro de seus dados e exibi-lo deve ser usado set.
sintaxe

[x,y,teta,vx, vy, sx, sy, SX1, SY1, SX2, SY2, SX3, SY3] = DWS(u,dt,x,y,teta,ve,vd)
Parmetros de entrada u dt x,y teta ve,vd Parmetros de sada x,y teta vx,vy sx,sy SX1,SY1 SX2,SY2 SX3,SY3 Coordenadas do centro do veculo. Orientao do veculo. Vetores com coordenadas dos pontos para desenhar o veculo. Coordenadas do ponto indicativo da orientao e sentido. Cell contendo as coordenadas da primeira seo de todos os sensores. Idem segunda seo. Idem terceira seo. 42 Identificador do objeto. Contm a estrutura com dados do objeto. Intervalo de tempo Coordenadas do centro do veculo. Orientao do veculo. Velocidade das rodas esquerda e direita.

Ver o apndice relativo ao desenvolvimento matemtico das relaes entre os vrios parmetros que efetuam a movimentao por DWS.

5.5.4 set
O mtodo set utilizado para definir novas propriedades para o objeto e atualizar a sua posio. Ele precisa ser usado aps chamar DWS. set atribui novos valores a campos do objeto e o re-exibe. Observar que a varivel de retorno deve ser o prprio objeto. Este mtodo no d o resultado desejado se chamado por outro mtodo do objeto. interessante notar a semelhana na utilizao de set para a classe RobotMovel e para a classe FormaGeometrica.
Sintaxe

u = set(u,x,y,teta,vx,vy,sx,sy,SX1,SY1,SX2,SY2,SX3,SY3)
Parmetros de entrada u x,y teta vx,vy sx,sy SX1,SY1 SX2,SY2 SX3,SY3 Parmetros de sada u Identificador do objeto. Identificador do objeto. Coordenadas do centro do veculo. Orientao do veculo. Vetores com coordenadas dos pontos para desenhar o veculo. Coordenadas do ponto indicativo da orientao e sentido. Cell contendo as coordenadas da primeira seo de todos os sensores. Idem segunda seo. Idem terceira seo.

5.5.5 DadosParaPlot
DadosParaPlot d acesso s propriedades referentes aos dados para desenho do objeto. Foi desenvolvido para ser usado pelo mtodo Detecta. importante notar que DadosParaPlot no precisa ser usada para obter-se os dados do objeto RobotMovel para serem usados por Detecta, pois como Detecta um mtodo do objeto RobotMovel, ele tem acesso aos dados diretamente. Alias, isto vlido para qualquer mtodo RobotMovel. Isto significa que este mtodo ser til principalmente se outros objetos precisarem dos dados de desenho do objeto RobotMovel. Assim, este mtodo para o RobotMovel relevante somente no caso em que tivermos mais de um rob, para um deles poder detectar o outro. O que ser feito atravs de Detecta, que chamar DadosParaPlot do outro rob para obter os seus dados para deteco. Outro ponto importante que a classe FormaGeometrica tem tambm o mtodo DadosParaPlot. Qual deles ser usado definido pelo objeto dado como parmetro de entrada. Este comportamento
43

caracterstico do MATLAB - lidar com classes, o que permite uma padronizao da terminologia utilizada.
Sintaxe

[vx,vy,sx,sy,SX1,SY1,SX2,SY2,SX3,SY3] = DadosParaPlot(u); Os parmetros correspondem aos pontos do contorno do rob, da indicao da sua orientao e das sees dos sensores.
Parmetros de entrada u Parmetros de sada x,y vx,vy sx,sy SX1,SY1 SX2,SY2 SX3,SY3 Coordenadas do centro do veculo. Vetores com coordenadas dos pontos para desenhar o veculo. Coordenadas do ponto indicativo da orientao e sentido. Cell contendo as coordenadas da primeira seo de todos os sensores. Idem segunda seo. Idem terceira seo. Identificador do objeto. Contm a estrutura com dados do objeto.

5.5.6 Detecta
Detecta o mtodo que ir verificar se o objeto RobotMovel tocou um obstculo, outro rob ou o contorno do ambiente. Ele tambm obtm as leituras dos sensores. Requer como entrada todos os objetos mais o contorno do ambiente a serem detectados. Ele utiliza o mtodo DadosParaPlot do objeto a ser detectado. O mtodo Detecta responsvel pelo cdigo de maior custo computacional do simulador. A sua dificuldade aumenta em funo do nmero de objetos. O contorno do ambiente e cada obstculo devem ser verificados quanto s suas posies relativas ao rob e quanto a estarem na rea de cobertura dos sensores e em qual de suas sees. A tcnica utilizada lana mo do mtodo inpolygon do MATLAB com a seguinte sintaxe: IN = INPOLYGON(X, Y, XV, YV) retorna uma matriz IN do tamanho de X e Y. IN(p,q) = 1 se o ponto (X(p,q), Y(p,q)) est estritamente dentro da regio do polgono cujos vrtices so especificados pelos vetores XV e YV. IN(p,q) = 0.5 se o ponto est sobre o polgono. IN(p,q) = 0 se o ponto est fora do polgono.

44

Figura 5.2 O rob em um ambiente com obstculos.

Com relao deteco do contorno do ambiente verificado se o rob tem algum ponto em contato ou invadindo os limites do ambiente. A mesma abordagem usada para cada seo dos sensores. Assim, uma vez que o ambiente tem dimenses necessariamente maiores do que as do rob e das regies detectveis pelos sensores, ele no precisar utilizar muitos pontos para a sua definio, apenas aqueles necessrios para caracterizar a sua forma. Se fosse feito o inverso, ou seja, se fosse verificado se algum ponto do ambiente est em contato ou invadiu o rob (o mesmo para os Sensores), ele teria que utilizar uma resoluo compatvel com as dimenses do rob (e dos Sensores). J, com relao aos objetos, utilizada a abordagem inversa, uma vez que os objetos podem inclusive ser menores que o rob (e que as reas de deteco dos sensores). Assim verificado se algum ponto dos objetos est em contato ou invadiu o polgono que define os contornos do rob (o mesmo para os Sensores). Isto no exige alta definio para o rob e para os Sensores, mas apenas resoluo compatvel para o traado dos objetos. Desta forma, os procedimentos relativos ao clculo e desenho dos pontos do rob e das regies de deteco dos sensores (Posiciona, Sensor e set) acabam por ter seu tempo do processamento melhorado. Adicionalmente, para melhorar o desempenho, ao invs da verificao ser feita objeto por objeto, todos eles tm os seus pontos concatenados em um nico par de vetores, um para x e outro para y. como se tivssemos um nico objeto a ser detectado. Detecta no faz tudo sozinho, utiliza DetectaAuxiliar, um mtodo privado, para fazer a maior parte dos clculos. A idia permitir compilar DetectaAuxiliar, transformando-o em uma biblioteca dinmica (DLL), para melhorar o desempenho. Isto porque o MATLAB ainda no compila funes que utilizam objetos, sendo previsvel que suas novas verses tero essa possibilidade. Desta forma Detecta identifica os objetos a serem detectados e por quem, deixando os clculos por conta de DetectaAuxiliar.
Sintaxe

[h, contato] = detecta(u,VetorObjADetectar,contornox,contornoy);

45

Parmetros de entrada u VetorObjADetectar contornox,contornoy Parmetros de sada h contato Contm o vetor linha com o resultado da deteco efetuada pelos sensores. Indica se houve ou no contato. Identificador do objeto RobotMovel. Contm a estrutura com dados do objeto. Contm os identificadores dos objetos que sero detectados. Contornos do Ambiente.

5.5.7 DetectaAuxiliar (mtodo privado)


Este mtodo chamado por Detecta fazendo os clculos necessrios para a deteco.
Sintaxe

[h,contato] = DetectaAuxiliar(contato,nrsensores,nrsecoes,vx,vy, SX1,SY1,SX2,SY2,SX3,SY3,contornox,contornoy,FGX,FGY)


Parmetros de Entrada contato nrsensores nrsecoes vx,vy SX1,SY1 SX2,SY2 SX3,SY3 contornox,contornoy FGX,FGY Parmetros de Sada h contato Contm o vetor linha com o resultado da deteco efetuada pelos sensores. Indica se houve ou no contato. Indica se houve ou no contato (inicializao). Nmero de sensores. Nmero de sees dos sensores. Vetores com coordenadas dos pontos para desenhar o veculo. Cell contendo as coordenadas da primeira seo de todos os sensores. Idem segunda seo. Idem terceira seo. Contornos do Ambiente. Contm todos os pontos para desenho de todos os objetos a serem detectados.

46

5.5.8 Posiciona (mtodo privado)


Posiciona calcula os pontos para desenhar o rob na posio x,y com orientao teta. Utiliza o mtodo privado Sensor para calcular os pontos para desenhar os campos de deteco dos sensores. Como se trata de um mtodo privado da classe, deve ser colocado na pasta private, pois somente os mtodos pblicos ficam na pasta da classe. Foi criado como mtodo privado pois utilizado pelo construtor fornecendo dados para definir o objeto.
Sintaxe

[vx, vy, sx, sy, SX1, SY1, SX2, SY2, SX3, SY3] = Posiciona(varargin) Quando chamada por RobotMovel, na criao do objeto, utiliza a seguinte sintaxe: [vx, vy, sx, sy, SX1, SY1, SX2, SY2, SX3, SY3] = Posiciona(eixo,x,y,teta,dadossensor); Quando chamada por DWS utiliza a seguinte sintaxe: [vx, vy, sx, sy, SX1, SY1, SX2, SY2, SX3, SY3] = Posiciona(u,x,y,teta);
Parmetros de entrada u x,y teta eixo dadossensor Identificador do objeto. Contm a estrutura com dados do objeto. Coordenadas do centro do veculo. Orientao do veculo. Eixo das rodas diferenciais. Vetor contendo dados para a definio dos sensores, organizados de trs em trs, correspondendo posio, abertura e alcance.

Parmetros de sada x,y teta vx,vy sx,sy SX1,SY1 SX2,SY2 SX3,SY3 Coordenadas do centro do veculo. Orientao do veculo. Vetores com coordenadas dos pontos para desenhar o veculo. Coordenadas do ponto indicativo da orientao e sentido. Cell contendo as coordenadas da primeira seo de todos os sensores. Idem segunda seo. Idem terceira seo.

5.6 Recursos Referentes Tcnica de Controle Utilizada


Estes recursos so referentes aplicao que utilizar o simulador. Sero apresentados nos itens a seguir e referem-se a mtodos dos algoritmos de controle e ao Controlador especficos para cada uma das aplicaes.

47

5.7 Mtodos dos Algoritmos de Controle


Foram implementados quatro mtodos: AlgoritmoGenetico, Atuador, Classificador e Recompensa e Punio. Os tpicos a seguir apresentam primeiro os mtodos nos seus aspectos gerais e depois o seu detalhamento relativo s duas aplicaes desenvolvidas: Sistemas Classificadores com Redes Neurais (SCRN) e Sistemas Classificadores Convencionais (SC). Para facilitar a diferenciao do uso dos mtodos, os utilizados para o Sistema Classificador Convencional recebero o prefixo SC em seu nome.

5.7.1 AlgoritmoGenetico
Este mtodo aplica um algoritmo gentico bsico aos classificadores com maiores foras para criar uma nova gerao que ir substituir os indivduos mais fracos na populao atual. A fora dos classificadores utilizada como funo de fitness. Os pares so formados utilizando-se o procedimento Roulette Wheel. Utiliza crossover de dois pontos e mutao inversiva para a abordagem com Redes Neurais. Para a abordagem convencional usa crossover de um ponto e a mutao, quando ocorre, inverte o valor do alelo para o antecedente e sorteia entre 0, 1 e -1 (tanto faz) para o conseqente.
Com Redes Neurais Sintaxe

[Populacao,Avaliacao,Pares,CrossOver,Mutacao] = AlgoritmoGenetico(Populacao,PcCrossOver,PcMutacao) Foram acrescentados alguns parmetros de sada a mais para poder v-los no workspace do programa Controlador. O nico parmetro de sada que ser utilizado pelo Controlador Populacao.
Parmetros de entrada Populacao Subconjunto dos Classificadores com suas foras. composto pelos classificadores com maior fora e que iro ser utilizados pelo Algoritmo Gentico. Taxa de crossover. Taxa de mutao.

PcCrossOver PcMutacao Parmetros de sada Populacao Convencional Sintaxe

Contm uma nova gerao de classificadores que ir substituir os mais fracos.

[Populacao,Avaliacao,Pares,CrossOver,Mutacao] = AlgoritmoGenetico(TCons,Populacao,PcCrossOver,PcMutacao); Da mesma forma que para o caso de Redes Neurais, foram acrescentados alguns parmetros de sada a mais para poder v-los no workspace do programa Controlador. O nico parmetro de sada que ser utilizado pelo Controlador Populacao. Os parmetros tm o mesmo significado, tendo um a mais, como apresentado a seguir.
48

Parmetros TCons Tamanho do conseqente.

5.7.2 Atuador
No caso dos Sistemas Classificadores com Redes Neurais, o Atuador utiliza a Rede Neural de Ao do classificador vitorioso para processar as informaes dos sensores, tomando as suas sadas para controlar a prxima movimentao do rob. utilizada uma rede Perceptron multi camada [16]. A primeira camada tem o seu nmero de neurnios ajustado automaticamente de acordo com o nmero de sensores e do nmero de regies de deteco por sensor. O nmero de neurnios da camada intermediria um parmetro de entrada. O nmero de neurnios na camada de sada um dado de projeto do sistema e da rede, correspondendo ao nmero de variveis requeridas para controlar o rob, por exemplo, duas variveis, uma para controlar velocidade e outra para direo. O Atuador utiliza a Rede Neural de Ao do Classificador vitorioso para processar as informaes dos sensores, tomando as suas sadas para controlar a prxima movimentao do rob. No caso do Sistema Classificador Convencional, o Atuador fornecer sadas pelo mapeamento de valores dos sensores produzidos pela interface de entrada com o conseqente do classificador, fornecendo as variveis necessrias para controlar a movimentao do rob. As duas aplicaes, neste trabalho, tero a incumbncia de produzir um nico valor como sada, denominado difv, entendido como um nmero expresso em porcentagem de velocidade. Este valor ser aplicado velocidade da roda esquerda se for negativo, ou da direita se positivo, diminuindo a velocidade da roda considerada do valor obtido. Desta forma ser possvel comandar as mudanas de direo do rob. Por exemplo, se difv for negativo ele aplicado velocidade da roda esquerda, obtendo-se o valor a ser subtrado desta velocidade, durante a iterao. Isto implica que a roda esquerda diminuir a sua velocidade, girando para a esquerda. O Sistema com Redes Neurais produz um nmero real para difv, enquanto que o Sistema Convencional ir mapear o valor do conseqente em valores pr-definidos.
Com Redes Neurais Sintaxe

difv = Atuador... (h,NEntRede,NNeurCInter,NEntCSaida,NNeurCSaidaAt,TCond,TCons,ct,GV,Ganhador )


Parmetros de entrada h NEntRede NNeurCInter NEntCSaida NNeurCSaidaAt TCond TCons ct GV Dados dos sensores N de entradas da rede, contando a de polarizao N de neurnios da camada intermediria (o mesmo para Classificador e Atuador) N de entradas da camada de sada N de neurnios da camada de sada do Atuador Tamanho da condio Tamanho do conseqente Coeficiente da tangente hiperblica Ganho para amplificar a velocidade difv 49

Ganhador Parmetros de sada difv Convencional Sintaxe

Classificador ganhador

Diferena de velocidade, a ser subtrada da velocidade da roda esquerda ou direita.

difv = CSAtuador(TCond,TCons,Ganhador);
Parmetros de entrada TCond TCons Ganhador Parmetros de sada difv Diferena de velocidade, a ser subtrada da velocidade da roda esquerda ou direita. Tamanho da condio Tamanho do conseqente Classificador ganhador

5.7.3 Classificador
Este mtodo calcula o matching, a especificidade, faz a aposta, e, assim determina o ganhador. Subtrai a aposta da fora dos classificadores e aplica a taxa de vida. O modelo criado mostrado no captulo das Aplicaes. No caso de redes neurais so utilizadas as redes avaliao, cujos pesos correspondem ao antecedente dos classificadores. Podem ser utilizadas redes com um ou dois neurnios na camada de sada. Com dois neurnios, um deles produzir uma sada que ser utilizada para matching e o outro produzir a especificidade. Caso seja definida uma rede com apenas um neurnio na camada de sada, o mtodo utiliza o mesmo valor para matching e especificidade.
Com Redes Neurais Sintaxe

[Match,Ganhador,MC,MUGan] = Classificador(h,NNeurCSaidaCl,NEntRede,NNeurCInter,... NEntCSaida,NC,MC,ct,Ganhador,MUGan,nugan,NClMatch,TxVida) A matriz Match no requerida, a sua incluso como parmetro de sada para poder v-la no workspace do controlador.
Parmetros de entrada h NNeurCSaidaCl NEntRede NNeurCInter Dados dos sensores N de neurnios na camada de sada do classificador N de entradas da rede, contando a de polarizao N de neurnios da camada intermediria (o mesmo para 50

Classificador e Atuador) NEntCSaida NC MC ct Ganhador MUGan nugan NNeurCSaidaAt NClMatch TxVida Parmetros de sada Match Ganhador MC MUGan Convencional Sintaxe Matriz dos classificadores com matching Classificador ganhador Matriz dos classificadores Matriz dos classificadores ltimo ganhadores N de entradas da camada de sada N de classificadores Matriz de classificadores Coeficiente da tangente hiperblica Classificador Ganhador Matriz dos ltimos ganhadores N de elementos para MUGan N de neurnios da camada de sada do Atuador N mximo de classificadores considerados com matching Taxa de Vida.

[Match,Ganhador,MC,MUGan] = ... CSClassificador(h,NC,MC,TCond,TCons,Ganhador,MUGan,nugan,TxVida); A matriz Match no requerida, a sua incluso como parmetro de sada para poder v-la no workspace do Controlador.
Parmetros de entrada h NC MC TCond TCons Ganhador MUGan nugan TxVida Dados dos sensores N de classificadores Matriz de classificadores Tamanho da condio Tamanho do conseqente Classificador ganhador Matriz dos ltimos ganhadores N de elementos para MUGan Taxa de Vida.

51

Parmetros de sada Match Ganhador MC MUGan Matriz dos classificadores com matching Classificador ganhador Matriz dos classificadores Matriz dos classificadores ltimo ganhadores

5.7.4 Atribuio de Crditos


A Atribuio de Crditos obtida atravs do mtodo Classificador e da Rotina Recompensa ou Punio dentro do programa Controlador. O mtodo Classificador, citado no item anterior, faz a seleo dos classificadores que iro participar da aposta, baseado no seu matching, especificidade e strength (ou fora). Faz o procedimento determinado pelo algoritmo de Atribuio de Crditos aos vencedores e determina o vencedor, aquele que ir postar a sua mensagem. No caso dos classificadores serem redes neurais, o matching e a especificidade sero sadas da rede neural de avaliao. A Recompensa ou Punio faz a avaliao do resultado da ao determinada pelo classificador vencedor. Aplica os critrios determinados pelo algoritmo de Atribuio de Crditos em uso para recompensar ou punir os classificadores que participaram da ltima aposta, do vencedor e dos classificadores vencedores nas ltimas iteraes. A recompensa ou punio se traduz no aumento ou diminuio da fora do classificador.

5.8 O Controlador
5.8.1 Apresentao
O Controlador um programa MATLAB usado para controlar o processo da simulao. Seu algoritmo base est apresentado na Figura 5.3 e os seus passos detalhados a seguir. Foram desenvolvidos dois controladores, um para Sistemas Classificadores com Redes Neurais, chamado Controlador, e outro para Sistemas Classificadores Convencionais, chamado CSControlador. Neste item descrita a funcionalidade geral, vlida para os dois e nos prximos itens sero apresentados os detalhes para a utilizao de cada um deles. Inicializao de Parmetros relacionada a todos os tipos de parmetros requeridos para configurar o tipo de experimento em questo. Definio do Ambiente cria a figura que ir conter o ambiente e os objetos e define o contorno do ambiente. Definio dos Objetos define todos os objetos que sero usados. Eles podem ser criados a qualquer momento, no apenas aqui. Definio do RobotMovel ir configurar e colocar no ambiente todos os robs do experimento. claro tambm com relao aos robs que eles podem ser criados e posicionados no ambiente quando necessrio e a qualquer instante do processamento. Inicializao dos Classificadores ir gerar o conjunto inicial de classificadores, usualmente atravs de um processo aleatrio. Atuador: com o Atuador o ciclo principal tem incio, chamado o mtodo Atuador do objeto RobotMovel para obter as variveis de controle do rob. Na primeira passagem o Atuador no tem uso, pois nada ter ocorrido.
52

Posicionamento do rob: o mtodo DWS utiliza a sada do Atuador para determinar a nova posio do rob. Para que elas se tornem efetivas e o rob seja visualizado na nova posio utilizado o mtodo set. Estes procedimentos tambm no so usados no primeiro ciclo.

Inicializao de Parmetros Definio do Ambiente Definio dos Objetos Definio do RobotMovel Inicializao dos Classificadores Atuador Posicionamento do RobotMovel Leitura dos Sensores e Deteco de Coliso Punio ou Recompensa Gatilho do Algoritmo Gentico Classificao

Figura 5.3 O Controlador

Leitura dos Sensores e Deteco de Coliso: agora preciso verificar se houve coliso e a nova leitura dos sensores, o que feito utilizando o mtodo Detecta do objeto RobotMovel. Este procedimento ter utilidade a partir da segunda passagem. Recompensa ou Punio: aqui acontece a realimentao do processo, referente avaliao dos classificadores. Comeando na segunda passada, a ao proposta pelo classificador vencedor ser avaliada a partir dos resultados da Deteco e ser efetuada a recompensa ou punio. Gatilho do Algoritmo Gentico: o Algoritmo Gentico disparado por uma das ocorrncias, a que ocorrer primeiro: um dado nmero de colises e um dado nmero de ciclos desde a ltima vez que ele foi chamado. Classificao: a Classificao faz a seleo dos classificadores que iro apostar e obtm o classificador vencedor, que ir determinar a prxima ao.

53

5.8.2 Controlador para o Sistema Classificador com Redes Neurais


Parmetros gerais de configurao definidos pelo usurio

Estes parmetros se encontram logo no incio do programa, assim fica facilitada a sua manipulao pelo usurio, esto agrupados de acordo com sua finalidade no Simulador.
Semente aleatria rand('state',0); Sistema Classificador NC NCAG ITAG NBAT Credito Recompensa Punicao PcCrossOver PcMutacao nugan NClMatch NrItAVoltar NrGanAPunir N de classificadores N de classificadores a serem utilizados pelo AG Intervalo de iteraes para se aplicar o AG N de colises para se aplicar o AG Fora alocada aos classificadores da gerao inicial Recompensa pela ao bem sucedida Punio pela ao mal sucedida Probabilidade de crossover Probabilidade de mutao Nmero de ltimos ganhadores (define a matriz dos ltimos ganhadores) Nmero mximo de classificadores a serem considerados com matching Nmero mximo de iteraes a voltar quando ocorre uma coliso Nmero mximo de ltimos ganhadores a serem penalizados quando ocorre uma coliso. Semente aleatria

O parmetro nugan utilizado para definir o tamanho de MUGan, matriz dos ltimos ganhadores, que contm os classificadores que ganharam nas ltimas iteraes. Quanto a NClMatch, trata-se de uma particularidade dos Sistemas Classificadores com Redes Neurais. No sistema convencional, um classificador em face de uma mensagem da interface de entrada, produz matching ou no. Com Redes Neurais o matching relacionado a uma sada da Rede de Avaliao, portanto um nmero real, o que requer algum critrio para considerar-se a existncia de matching. Assim, neste modelo so considerados classificadores com matching apenas aqueles que produzirem sada positiva da rede e, adicionalmente, o seu nmero limitado por NClMatch, sendo considerados os com maior valor. NrItAVoltar e NrGanAPunir so utilizados em uma rotina disparada quando ocorre uma coliso. O rob volta no mximo NrItAVoltar iteraes, dependendo do nmero de iteraes desde a ltima coliso, acumulado em nitbat, varivel do Controlador, no ser menor, caso em que ele volta nitbat iteraes. NrGanAPunir corresponde ao nmero mximo de ltimos ganhadores que sofrero punio devido coliso atual. Este nmero tambm restringido por nitbat. A inteno permitir ao sistema responsabilizar uma seqncia de classificadores que contriburam para a coliso, e no apenas o atual.
54

Redes Neurais GV MultPesosInic NNeurCInter ct NNeurCSaidaCl NNeurCSaidaAt Ganho na sada da rede do atuador para amplificar a velocidade Multiplicador para os pesos gerados inicialmente N de neurnios da camada intermediria (o mesmo para Classificador e Atuador) Coeficiente da tangente hiperblica N de neurnios da camada de sada dos classificadores (1 ou 2) Idem Atuadores. Cuidado: a alterao deste parmetro implica em alteraes no software

GV aplicado ao valor da sada da rede neural do atuador, pois esta sada um nmero normalmente pequeno, em vista da configurao da rede, para a finalidade de produzir um valor que ser subtrado da velocidade de uma das rodas para proporcionar a mudana de direo. Os pesos das redes neurais que iro compor os classificadores gerados inicialmente correspondem a valores randmicos entre -0.1 e 0.1, com distribuio uniforme. O parmetro MultPesosInic utilizado como um multiplicador desses resultados, podendo portanto alterar seus limites. O nmero de neurnios da camada intermediria utilizado para ambas as redes. definido por NneurCInter, no existindo restrio quanto ao seu valor. Deve-se, contudo, observar que, como a idia no obter-se uma rede que resolva todo o ambiente, mas sim um conjunto de redes, cada uma especializada para solues particulares, este valor no deve ser grande, provavelmente 1 ou 2 neurnios. Quanto ao nmero de neurnios da camada de sada da rede de avaliao, que utilizada pelo Classificador, ou parmetro NneurCSaidaCl, este pode assumir apenas os valores 1 ou 2. Caso seja escolhido o valor 1, ser entendido pelo Classificador que se pretende atribuir o valor nico da sada da rede como valor a ser utilizado para o matching e para a especificidade. Com valor 2 cada um desses valores corresponder a uma das sadas da rede. Para a alterao do parmetro NneurCSaidaAt requer-se uma mudana no Simulador. O valor que deve ser especificado 1, que ir corresponder a utilizar a sada da rede de ao para controlar a velocidade diferencial, permitindo mudana de direo. Com mais sadas, por exemplo, com 2, terse-ia a possibilidade de controlar duas variveis do rob, que poderiam ser mudana de direo e mudana de velocidade.
Preparao do ambiente e objetos usando funes Ambiente

A preparao do ambiente e dos objetos feita atravs do mtodo Ambiente. J existem vrios mtodos preparados para diversas situaes, a sua identificao feita pela utilizao de Amb ou Ambiente na parte inicial de seu nome. O mtodo Ambiente prepara desenha a figura do Matlab que ir conter o ambiente, incluindo a definio do contorno e dos objetos. Por exemplo, na linha abaixo seria escolhida o mtodo Ambiente1c. [VetorObjetos,contornox, contornoy] = Ambiente1c;

55

Objeto RobotMovel V dt Eixo Xin Yin TetaIn alcance Multdifv DadosSensor Velocidade inicial Intervalo de tempo de uma iterao Eixo das DWS do RobotMovel Coordenada x inicial do RobotMovel Coordenada y inicial do RobotMovel Orientao inicial do RobotMovel Alcance do sensor Multiplicador para ajuste de difv (tambm pode ser ajustado por GV) Vetor com os dados do sensor

As coordenada so medidas em pixels, Xin na horizontal e Yin na vertical. Os ngulos so positivos a partir do eixo horizontal no sentido anti-horrio. O parmetro Multdifv utilizado para multiplicar o valor de difv, parmetro de sada do Atuador, que contm o valor que ser subtrado da velocidade de uma das rodas durante o intervalo de tempo dt da iterao para provocar a mudana de direo. Por outro lado, deve-se notar que difv obtido no Atuador multiplicando-se a sada da rede por GV. Assim existem dois parmetros considerados na obteno do valor difv. Como ser visto na seo referente ao Sistema Convencional, l existe apenas o parmetro Multdifv para fazer ajustes em difv. DadosSensor um vetor que contm as informaes para a composio dos sensores do rob. Cada sensor requer 3 parmetros na seguinte ordem: posio angular em graus a partir do sentido de deslocamento do rob, abertura em graus e alcance em pixels. O exemplo abaixo define 3 sensores, 35 graus esquerda, em frente e 35 graus direita, todos com abertura de 10 graus e alcance de 100 pixels. No caso de querer-se o mesmo alcance para todos os sensores, pode-se utilizar o parmetro alcance. Cada sensor pode ser definido com caractersticas totalmente diferentes dos outros. DadosSensor = [35 10 100 0 10 100 -35 10 100];

5.8.3 Controlador para o Sistema Classificador Convencional


Este sistema apresenta vrios pontos em comum com o sistema relativo s redes neurais. Por isso neste item sero relatados apenas os aspectos especficos, ou que tenham diferenas de interpretao.
Parmetros gerais de configurao definidos pelo usurio Semente aleatria rand('state',0); Semente aleatria

56

Sistema Classificador NC NCAG ITAG NBAT Credito Recompensa Punicao PcCrossOver PcMutacao nugan NrItAVoltar NrGanAPunir N de classificadores N de classificadores a serem utilizados pelo AG Intervalo de iteraes para aplicar o AG N de colises para aplicar o AG Fora alocada aos classificadores da gerao inicial Recompensa pela ao bem sucedida Punio pela ao mal sucedida Probabilidade de crossover Probabilidade de mutao Nmero de ltimos ganhadores (define a matriz dos ltimos ganhadores) Nmero mximo de iteraes a voltar quando ocorre uma coliso Nmero mximo de ltimos ganhadores a serem penalizados quando ocorre uma coliso.

Nota-se a inexistncia do parmetro NClMatch, especfico para o Sistema Classificador com Redes Neurais.
Preparao do ambiente e objetos usando mtodos Ambiente

A preparao do ambiente feita de forma idntica do Sistema Classificador com Redes Neurais.
Objeto RobotMovel V dT Eixo Xin Yin TetaIn alcance Multdifv DadosSensor Velocidade inicial Intervalo de tempo de uma iterao Eixo das DWS do RobotMovel Coordenada x inicial do RobotMovel Coordenada y inicial do RobotMovel Orientao inicial do RobotMovel Alcance do sensor Multiplicador para ajuste de difv (tambm pode ser ajustado por GV) Vetor com os dados do sensor

Estes parmetros so estabelecidos de forma idntica aos correspondentes do Sistema Classificador com Redes Neurais. A nica diferena que, neste caso, o parmetro Multdifv o nico multiplicador para definir o valor de difv.

57

Captulo 6: Aplicaes
Neste captulo apresentada a parte prtica desta pesquisa. So mostrados experimentos efetuados utilizando o simulador para as duas aplicaes de sistemas classificadores, a convencional e a utilizando redes neurais. No texto deste captulo so utilizados alguns termos referentes a parmetros mostrados no "Captulo 5: Detalhes do Simulador", sendo que no essencial o seu conhecimento para entendimento do que aqui apresentado. No entanto, os leitores que quiserem tirar um maior proveito desta leitura devem, pelo menos, lerem o item "O Controlador" do Captulo 5. As concluses e perspectivas de trabalhos futuros so mostradas no Captulo 7.

6.1 As Aplicaes
As duas aplicaes consideram um rob mvel com caractersticas semelhantes s do mini rob Khepera [21] (ver apndice A), com um sistema inteligente que lhe propicie a capacidade de adquirir autonomia para se deslocar em um ambiente com obstculos, deslocando-se com velocidade constante e aprendendo a no colidir. Assim, o nico objetivo do rob nestas aplicaes no colidir. O rob inicia o seu aprendizado, em um ambiente com obstculos, sem a suposio de ter conhecimento inicial, inicializando seus classificadores de forma aleatria, sendo utilizadas vrias sementes para a funo geradora, pretendendo-se, dessa forma, verificar a independncia das condies iniciais. O sistema inteligente tem como mensagem de entrada as informaes detectadas pelos sensores sobre o ambiente e seus obstculos. Cada sensor do rob simulado divide seu campo de atuao em trs regies para deteco: perto, meia distncia e longe, fornecendo atravs da interface de entrada um vetor de 3 elementos para identificarem os valores detectados destas regies, 0 para a ausncia de obstculo na regio e 1 para a presena. A mensagem de entrada formada por um vetor obtido pela concatenao dos vetores dos sensores. A sada fornecida pelo sistema inteligente uma informao para comandar a diminuio da velocidade de uma das rodas do rob, durante a iterao de durao dt executada pelo controlador, obtendo-se assim mudana na sua direo de deslocamento. Para se executar um experimento com o simulador, em primeiro lugar escolhido o controlador: Controlador.m CSContolador.m para SCRN, ou para SC.

Em seguida devem ser especificados os "PARMETROS GERAIS DE CONFIGURAO DEFINIDOS PELO USURIO", encontrados na parte inicial do controlador. Estes parmetros configuram o simulador para o experimento e definem as caractersticas do ambiente, dos obstculos, do rob com seus sensores e do sistema inteligente. Uma vez definidas as caractersticas requeridas para o rob, ambiente e obstculos, a escolha dos parmetros para o sistema inteligente conseguida por procedimentos empricos, envolvendo
58

tentativas e erros, intuio e bom senso. Nos prximos itens so utilizados nos experimentos.

apresentados

os

parmetros

6.1.1 Configurao Geral


O rob

A inteno simular, em uma primeira aproximao, o mini rob Khepera. Nesta primeira aproximao, especificaes exatas com relao s dimenses, velocidade, acelerao e sensores do rob no so estritamente consideradas, sendo que o ponto central atender apenas algumas caractersticas gerais de seu comportamento. Primeiro com relao sua forma que aproximadamente cilndrica, a qual foi representada no ambiente bidimensional por um crculo de 50 pixels de dimetro. Em segundo lugar tem-se a maneira como efetuada a sua mudana de direo. O Khepera possui duas rodas que permitem o seu deslocamento e orientao, sendo que o eixo que as une foi considerado como tendo as mesmas dimenses do dimetro do crculo correspondente ao seu contorno. Cada uma das rodas tem um motor, e a mudana de direo efetuada comandando-se velocidades diferentes para elas. Este tipo de comando designado na literatura por Differential Wheels Steering (DWS), que ser traduzido neste texto para Direo por Rodas Diferenciais. Este comportamento atendido pela utilizao do mtodo DWS da classe RobotMovel. Finalmente, so simulados os seus sensores de distncia e proximidade. Os sensores de distncia tm os valores detectados, pelo mtodo Detecta, escalonados em trs regies pr-definidas, sendo possvel especificar a posio, a abertura e o alcance de cada sensor. So utilizados dois sensores de distncia nos experimentos. O mtodo Detecta tambm efetua a deteco de contato (ou invaso) com os contornos do ambiente e/ou algum obstculo. Quanto s iteraes, correspondem a ciclos de leitura dos sensores, verificao de coliso e deslocamento, que ser efetuado velocidade constante, de 50 pixels por unidade de tempo, exceto nas mudanas de orientao do rob, quando uma das rodas tem sua velocidade alterada durante o intervalo de tempo dt da iterao, para ser restabelecida depois. utilizado o intervalo de tempo de 0.25 da unidade considerada [segundos].
Parmetros Utilizados para o Rob

Com estas consideraes, a seguir so apresentados os parmetros do rob conforme utilizado na simulao.
V dT Eixo alcance Multdifv DadosSensor 50 .25 50 100 .025 c/ Redes Neurais e 1.5 Convencional [35 30 alcance -35 30 alcance]

Tabela 6.1: Parmetros para o rob

V-se que o rob tem velocidade constante V de 50 pixels por unidade de tempo, cada iterao efetuada em dT = 0.25 unidade de tempo, o Eixo das rodas diferenciais, que na simulao tambm corresponde ao seu dimetro externo, de 50 pixels. Os sensores so especificados por
59

DadosSensor, um vetor cujos elementos, de 3 em 3, definem a posio angular do sensor, a sua abertura e seu alcance. Assim, tem-se dois sensores de distncia, iguais e simtricos com relao ao seu eixo de deslocamento, um a 35 graus esquerda e o outro 35 direita, tendo aberturas de 30 graus e alcance de 100 pixels.

Figura 6.1: O rob no ambiente Ambiente1. O Ambiente1 delimitado por um quadrado com 500 pixels de lado, o objeto central o obstculo, um quadrado com 180 pixels de lado.

A Fig. 6.1 ilustra o rob na sua configurao para os experimentos, evidenciando a rea de deteco de seus dois sensores de distncia, em um dos ambientes de simulao, o Ambiente1. O Atuador produz o valor difv, que aplicado velocidade da roda esquerda ou direita para diminu-la e permitir a mudana de direo. No sistema com redes neurais este valor um nmero real, sada da rede neural de ao. No sistema convencional ele o obtido pelo mapeamento do conseqente do classificador vitorioso em valores pr-definidos, mostrados na Tab. 6.2. Observar que o conseqente formado por trs genes, com valores 0 ou 1 cada.

Conseqente difv [0 0 0] -0.8 [0 0 1] -0.5 [0 1 0] - 0.2 [0 1 1] - 0.0 [1 0 0] 0.0 [1 0 1] 0.2 [1 1 0] 0.5 [1 1 1] 0.8 Tabela 6.2: Valores de difv para o SC

60

Limitaes do Modelo do Rob

No captulo 4 foram vistas vantagens em se utilizar um simulador. O simulador um software cujos parmetros e mecanismos de funcionamento podem ser modificados de forma mais simples e rpida do que no hardware real. Assim, interessante evidenciar que o simulador pode ser utilizado na fase de desenvolvimento do sistema inteligente de controle para entend-lo mais profundamente, de tal forma a permitir a introduo de modificaes fundamentais necessrias ao modelo, at se obter o desempenho esperado. Este processo pode ser considerado como uma fase do desenvolvimento virtual de grande utilidade, e, uma vez que a funcionalidade fundamental do sistema no depende inteiramente de sua complexidade, um ganho significativo pode ser obtido utilizando-se modelos mais simplificados. Assim, a limitao na modelagem ora implementada no acidental e nem meramente baseada em restries de recursos, principalmente computacionais. Deve ser normalmente entendida como uma fase do desenvolvimento, que ser seguida, posteriormente, pela modelagem completa, pelo menos at os limites em que isso possa realmente ser feito e/ ou que seja significativo ser feito. As principais limitaes impostas ao modelo para os experimentos aqui apresentados so: No foi includo o modelo dinmico do rob Utiliza apenas dois sensores de distncia O intervalo de tempo para as iteraes de 0.25 [s].

Estas simplificaes trazem duas conseqncias imediatas de grande relevncia nesta fase: 1. Baixo custo computacional, que pode tanto ser considerado na necessidade de recursos computacionais, quanto em menor tempo para o desenvolvimento dos experimentos. 2. A anlise qualitativa dos resultados com menos sensores fica mais facilitada em vista da diminuio da quantidade de informao.
O Ambiente

O rob se desloca em um ambiente bidimensional em que possvel definir-se o seu contorno e os obstculos. Existem j prontos para uso, como mtodos de ambiente acompanhando o software do simulador, vrios ambientes de simulao, com seus contornos e obstculos. Estes mtodos de ambiente so invocados pelo controlador e esto acessveis ao usurio nos parmetros gerais de configurao do simulador. Dentre eles temos as seguintes: Ambiente0.m: Ambiente com contorno quadrado de 500 pixels de lado, com um obstculo quadrado de 40 pixels de lado no seu centro. Ambiente1.m: Ambiente com contorno quadrado de 500 pixels de lado, com um obstculo quadrado de 180 pixels de lado no seu centro, Fig. 6.1. AmbContornoCorredor1.m: um corredor situado numa figura com 800 por 800 pixels de superfcie, Fig. 6.2.

possvel obter-se facilmente outros ambientes por edio desses mtodos j existentes.

61

Figura 6.2: Ambiente AmbContornoCorredor1

6.1.2 Cuidados ao Interpretar os Resultados


rbitas Locais ou Explorao de Todo o Ambiente

O rob tem o objetivo de se desviar dos obstculos deslocando-se com velocidade constante. Assim, para um dado ambiente, aps a fase de aprendizado, o rob poder assumir inmeros comportamentos, como solues para este ambiente, alguns extremamente simples e outros potencialmente mais sofisticados. Por exemplo, no Ambiente1, Fig. 6.1, uma soluo obtida com o rob descrevendo um movimento em torno do objeto central no sentido horrio ou anti-horrio. Este movimento pode ser feito com o rob mais perto dos contornos externos ou do objeto central, ou ainda, alguma mistura destes comportamentos. Alm disso, o rob pode simplesmente ficar em um movimento circular em qualquer parte do ambiente, em qualquer sentido, horrio ou antihorrio. Em qualquer desses resultados o rob ter atingido o comportamento de no colidir. Ento qual o melhor? A rigor todos so bons pois esto de acordo com o objetivo definido, mas se o movimento resultante explorar toda a extenso do ambiente existe a possibilidade de o rob estar resolvendo um nmero maior de situaes, obtidas a partir de seus sensores. Por isso, feita a tentativa de induzi-lo a este comportamento, alterando-se Multdifv, Tab. 6.1. Quanto maior este valor, maior a versatilidade do rob para alterar a sua direo, o que aumenta a probabilidade dele estabilizar em rbitas locais. Quanto menor, maior a probabilidade dele se deslocar por regies mais extensas do ambiente, mas com o cuidado de no diminu-lo demais, o que resultaria na impossibilidade de executar manobras para desviar de obstculos. claro que nem sempre possvel encontrar-se o valor ideal de Multdifv, sendo ento aceita a rbita local.
Acompanhamento da Simulao

A execuo do simulador permite o acompanhamento visual do desenrolar do processo. O rob colocado em uma determinada posio inicial no ambiente e passar a se deslocar aprendendo a no colidir. O seu comportamento apresentado em trs figuras do Matlab que so atualizadas a cada iterao. A figura 1 do Matlab contm o ambiente de simulao, como, por exemplo, na Fig.
62

6.1; a figura 2 contm o grfico do n de iteraes entre colises versus n de iteraes, Fig. 6.3; e a figura 3 o grfico n de colises dividido pelo n de iteraes versus n de iteraes, Fig. 6.4.

400

350

300

250

200

150

100

50

200

400

600

800

1000

1200

1400

1600

1800

2000

Figura 6.3: N de iteraes entre colises. Eixo Vertical: n de colises Eixo Horizontal: n de iteraes Este grfico deve ser lido apenas nos pontos de descontinuidade Observar que aps a iterao um pouco acima da de nmero 1800 no ocorrem mais colises at o trmino do experimento.

O grfico da Fig. 6.3 tpico para grfico de barras verticais, tendo sido utilizado traado contnuo para melhor visualizao. Por isso os valores devem ser lidos nos pontos de descontinuidade. O grfico da Fig. 6.4 ilustra o aprendizado do rob de forma dinmica. Quanto menor o valor do nmero de colises divido pelo nmero de iteraes, maior o aprendizado atingido. Quanto aos valores obtidos nos grficos, deve-se tomar o cuidado de no entend-los de forma absoluta, eles so sempre relativos ao experimento em questo. E, mesmo assim, deve-se considerar o fato de que o rob, aps cada coliso, re-posicionado no local em que estava em um certo nmero de iteraes anteriores, o que pode lhe propiciar um certo nmero de iteraes sem colidir.

63

Figura 6.4: Curva de Aprendizagem Eixo Vertical: n de colises / n de iteraes Eixo Horizontal: n de iteraes

A simples observao dos grficos das figuras 6.3 e 6.4 pode levar a interpretaes errneas, dependendo do resultado que se procura. Por exemplo, se alm do objetivo de no colidir quer-se ajustar os parmetros para forar o rob a explorar um trecho maior do ambiente, tais grficos podem indicar bons resultados de desempenho apesar do rob no ter atingido o objetivo esperado. Isto mostra que o acompanhamento visual pode ser de grande relevncia na anlise. Note que podese fazer uso do Workspace ("ver a seguir Usando o Workspace") do simulador para conseguir-se obter dados auxiliares no sentido de melhorar a anlise e, conseqentemente, a qualidade das concluses.

6.1.3 Usando o Workspace


O workspace a rea onde o Matlab armazena as variveis utilizadas pelos programas Aps a interrupo da simulao, pode-se utilizar o workspace do controlador. Ele contm, alm dos parmetros, inmeras variveis capazes de fornecer informaes que permitem analisar o comportamento do rob. Entre elas, as de maior relevncia so: MC Matriz dos classificadores, MUGan Matriz dos ltimos ganhadores e MObVeculo Matriz de observao do veculo. O exame de MC til para se verificar o estado dos classificadores e sua fora. A MUGan permite verificar quais os classificadores que tm participado da soluo e com que freqncia A MObVeculo registra as coordenadas, velocidade e orientao do veculo, permitido reproduzir a sua trajetria em qualquer perodo do experimento. Foi desenvolvido um programa para ser executado sobre o workspace, por exemplo, ao finalizar um teste do simulador, ou, ainda, carregando-se para a memria um workspace de um experimento efetuado anteriormente e salvo em disco. Trata-se do VeResultados, que, basicamente, origina uma
64

cpia de MC, denominada MCSort, ordenada pelos genes dos classificadores, e uma cpia de MUGan, denominada MUGanSort, ordenada pelo nmero do classificador. MCSort facilita a observao da incidncia de clones e MUGanSort evidencia quais classificadores participaram das ltimas iteraes. O nmero de linhas de MUGan define a quantidade de ltimos ganhadores que esto sendo guardados nela e definido por nugan. Alm disso o programa VeResultados reconstitui as figuras 1, 2 e 3, sendo que a figura 1 passa a mostrar o traado do percurso efetuado pelo rob.

6.2 Sistema Classificador com Redes Neurais


A seguir so apresentados os parmetros gerais e os experimentos efetuados com os mdulos do sistema classificador com redes neurais utilizando o simulador.

6.2.1 Parmetros Gerais


Parmetros para o Clculo do Aposta

Os parmetros para o clculo da aposta no esto diretamente acessveis para o usurio. O clculo da aposta atravs da expresso 2.2 utiliza os seguintes valores para k0, k1, k2 e k3, especificados no mtodo Classificador: k0 = 0.1 k1 = 0 k2 = 1 k3 = 1 A taxa de aposta TaxaBid tambm especificada no mtodo Classificador recebendo o valor: TaxaBid = 0.75 A taxa de vida obtida pela expresso 2.3 atravs do programa Controlador, sendo que o parmetro n, relativo vida mdia medida em iteraes, determinado por: n onde: ntv = nmero mdio de iteraes sem colidir NBAT = nmero de colises para aplicar o AG O parmetro NBAT especificado diretamente pelo usurio e o seu valor utilizado apresentado no item a seguir. Foi adotado para ntv o valor:
ntv = 10 Parmetros para o Sistema Classificador e para o Algoritmo Gentico

= ntv.NBAT

(6.1)

Os parmetros para o sistema classificador so definidos no programa Controlador e valem:


NC NCAG ITAG NBAT Credito Recompensa 40 8 2000 40 50 1 N de classificadores N de classificadores a serem utilizados pelo AG Intervalo de iteraes para se aplicar o AG N de colises para se aplicar o AG Fora alocada aos classificadores da gerao inicial Recompensa pela ao bem sucedida 65

Punicao PcCrossOver PcMutacao nugan NClMatch NrItAVoltar NrGanAPunir

5 Punio pela ao mal sucedida 0.2 Probabilidade de crossover 0.02 Probabilidade de mutao Nmero de ltimos ganhadores (define a matriz dos 200 ltimos ganhadores) Nmero mximo de classificadores a serem 5 considerados com matching Nmero mximo de iteraes a voltar quando ocorre 12 uma coliso Nmero mximo de ltimos ganhadores a serem 7 penalizados quando ocorre uma coliso.

Parmetros para as Redes Neurais

Estes parmetros so definidos no programa Controlador, assumindo os valores:


Ganho na sada da rede do atuador para amplificar a velocidade Multiplicador para os pesos gerados inicialmente N de neurnios da camada intermediria (o mesmo para rede de Avaliao e rede de Ao) Coeficiente da tangente hiperblica N de neurnios da camada de sada da rede de Avaliao (1 ou 2) Idem Atuadores. Cuidado: a alterao deste parmetro implica em alteraes no software

GV MultPesosInic NneurCInter ct NneurCSaidaCl NneurCSaidaAt

120 2 1 1 1 1

Lembrando que so utilizadas redes neurais tipo perceptron para as redes de avaliao e de ao, com as definies acima temos as seguintes configuraes: Rede de Avaliao: 1 neurnio na camada intermediria e 1 neurnio na camada de sada. Rede de Ao: 1 neurnio na camada intermediria e 1 neurnio na camada de sada.

O nmero de neurnios na camada de entrada determinado pelo nmero de regies a serem detectadas pelos sensores, apresentado no item a seguir.
Parmetros para o objeto RobotMovel

Os parmetros para o rob so definidos no programa Controlador, sendo adotados os seguintes valores:

66

V dT Eixo Xin Yin TetaIn alcance Multdifv DadosSensor

Velocidade inicial Intervalo de tempo de uma iterao Eixo das DWS do RobotMovel Coordenada x inicial do RobotMovel Coordenada y inicial do RobotMovel Orientao inicial do RobotMovel Alcance do sensor Multiplicador para ajuste de difv (tambm pode ser .025 ajustado por GV) [35 30 alcance -35 Vetor com os dados do sensor 30 alcance]

50 .25 50 50 25 90 100

Pela configurao acima, so utilizados dois sensores para o rob. Cada sensor identifica 3 regies de deteco. Assim, teremos 6 regies de deteco, compondo o vetor de entrada das redes neurais. Considerando uma entrada para polarizao, as redes neurais de avaliao e de ao, que so do tipo perceptron, tero 7 neurnios na camada de entrada. Este resultado calculado e adotado automaticamente pelo simulador.

6.2.2 Experimentos e Resultados


Estes experimentos utilizam vrias sementes para o mtodo gerador dos valores aleatrios.
Experimento com Ambiente0

Cada experimento vai at 2000 iteraes, com ITAG = 250, o que garante, no mnimo, 3 evolues do Algoritmo Gentico, se NBAT = 40 no for atingido nenhuma vez. O nmero de ltimos ganhadores nugan para definir o nmero de linhas de MUGan de 200.
Semente N total de Colises 27 39 24 26 114 1 21 N de Ganhadores Nugan = 200 1 1 1 1 2 1 1 Sadas diferentes da Rede de Avaliao 3 7 7 3 6 2 4 Existncia de Clones Caracterstica dominante do movimento do rob

0 1 2 3 4 5 6

Sim Sim Sim Sim Sim Sim Sim

rbita local anti-horria. rbita local anti-horria rbita local anti-horria rbita local anti-horria rbita local anti-horria Movimento horrio em torno do objeto central rbita local anti-horria

Tabela 6.3: Resultados do experimento usando SCRN no Ambiente0

67

Figura 6.5: Grficos dos resultados do SCRN para Ambiente0 com semente 3 e 2000 iteraes. No sentido horrio, a partir do canto superior esquerdo: "Curva de Aprendizado" (eixo vertical: n de colises/n de iteraes, eixo horizontal: n de iteraes), "Ambiente de Simulao" com o traado do percurso do rob e "N de Iteraes Entre Colises" (eixo vertical: n de iteraes entre colises, eixo horizontal: n de iteraes).

Na Tab. 6.3, o n de Ganhadores corresponde ao nmero de classificadores diferentes que ganharam nas ltimas nugan iteraes. As sadas diferentes so aquelas produzidas pelas redes de avaliao desses classificadores. Como resultado geral nota-se que fica mantida a diversidade para os classificadores, h uma predominncia de rbitas locais, tendo ocorrido apenas um caso, para semente 5, em que o rob contorna o objeto central. O objetivo de aprender a no colidir foi atendido para todas as sementes mostrando independncia das condies iniciais para este ambiente simples. resultado relevante destes experimentos o fato de um nico classificador, exceto para semente 4, levar o rob ao comportamento desejado. V-se tambm, para esses casos, a ocorrncia de um mnimo de 2 sadas diferentes das redes de avaliao e um mximo de 7, o que indica a possibilidade desse nico classificador estar produzindo comportamentos diferentes.
Experimento com Ambiente1

Cada experimento vai at 10000 iteraes, utiliza ITAG = 2000, garantindo no mnimo 4 evolues do Algoritmo Gentico, se NBAT = 40 no for atingido. O nmero de ltimos ganhadores nugan para definir o nmero de linhas de MUGan de 200. Na Tab. 6.4, o n de ganhadores corresponde ao nmero de classificadores diferentes que ganharam nas ltimas nugan iteraes. As sadas diferentes so aquelas produzidas pelas redes de avaliao desses classificadores.
Semente N total de Colises 653 N de ganhadores Nugan = 200 2 Sadas diferentes da Rede de Avaliao 7 Existncia de Clones Classificadores com fora maior que 1 10 Caracterstica dominante do movimento do rob

Muitos

Muitas colises at conseguir movimento anti-horrio em

68

1 2 3 4 5 6

318 46 545 923 26 852

1 1 ? ? 3 1

5 6 ? ? 4 5

Sim Sim Muitos Sim Sim Sim

1 (o ganhador) 7 0 12 11 1 (o ganhador)

torno do objeto central Movimento horrio em torno do objeto central Movimento horrio em torno do objeto central No atinge o objetivo No atinge o objetivo Movimento horrio em torno do objeto central Muitas colises at entrar em movimento horrio em torno do objeto central.

Tabela 6.4: Resultados do experimento usando SCRN no Ambiente1

Figura 6.6: Grficos dos resultados do SCRN para Ambiente1 com semente 5 e 10.000 iteraes. No sentido horrio, a partir do canto superior esquerdo: "Curva de Aprendizado" (eixo vertical: n de colises/n de iteraes, eixo horizontal: n de iteraes), "Ambiente de Simulao" com o traado do percurso do rob e "N de Iteraes Entre Colises" (eixo vertical: n de iteraes entre colises, eixo horizontal: n de iteraes).

A simulao neste ambiente apresenta maior dificuldade que no caso anterior e, em geral, mantida a diversidade para os classificadores. O tamanho do objeto central dificulta a ocorrncia de rbitas locais. O objetivo de aprender a no colidir no foi atendido em dois casos, para sementes 3 e 5. evidente uma maior dependncia das condies iniciais. Por exemplo, com semente 5 foi obtido um resultado surpreendente, apenas 26 colises nas 10000 iteraes, enquanto que para as sementes 4 e 6 ocorreram 923 e 852 colises, respectivamente, sendo que para semente 4 no foi atingido o objetivo. relevante tambm notar que em 3 casos tivemos apenas 1 classificador levando o rob ao comportamento desejado, a despeito de ser necessria, nesses casos, a ocorrncia de um mnimo de 5 sadas diferentes das Redes de Avaliao e um mximo de 6.
69

Experimentos com Outros Ambientes

O sistema classificador com redes neurais uma abordagem inovadora de sistemas classificadores e apresenta caractersticas de comportamento que o distingue do convencional. Para que possa ser bem sucedido em situaes mais complexas necessrio fazer-se modificaes, algumas das quais sugerimos neste trabalho.

6.3 Sistema Classificador Convencional


A seguir so apresentados os parmetros gerais e os experimentos efetuados com os mdulos do sistema classificador convencional utilizando o simulador.

6.3.1 Parmetros gerais


Parmetros para o Clculo da Aposta

Estes parmetros tm os seguintes valores: k0 = 1 k1 = 0 k2 = 1 k3 = 1 TaxaBid = 0.75


ntv = 10

O significado desses parmetros pode ser encontrado no item correspondente para o Sistema Classificador com Redes Neurais, onde poder ser notado que foram utilizados os mesmos valores.
Parmetros para o Sistema Classificador e para o Algoritmo Gentico

Foram utilizados os seguintes valores para esses parmetros:


NC NCAG ITAG NBAT Credito Recompensa Punicao PcCrossOver PcMutacao nugan NrItAVoltar NrGanAPunir 40 round(.2*NC) 2000 100 100 1 10 0.5 0.02 N de classificadores N de classificadores a serem utilizados pelo AG Intervalo de iteraes para aplicar o AG N de colises para aplicar o AG Fora alocada aos classificadores da gerao inicial Recompensa pela ao bem sucedida Punio pela ao mal sucedida Probabilidade de crossover Probabilidade de mutao Nmero de ltimos ganhadores (define a matriz dos 200 ltimos ganhadores) Nmero mximo de iteraes a voltar quando ocorre 15 uma coliso Nmero mximo de ltimos ganhadores a serem 7 penalizados quando ocorre uma coliso.

Parmetros para o objeto RobotMovel

So utilizados os seguintes valores:


70

V dT Eixo Xin Yin TetaIn alcance Multdifv DadosSensor

Velocidade inicial Intervalo de tempo de uma iterao Eixo das DWS do RobotMovel Coordenada x inicial do RobotMovel Coordenada y inicial do RobotMovel Orientao inicial do RobotMovel Alcance do sensor Multiplicador para ajuste de difv (tambm pode ser 1.5 ajustado por GV) [35 30 alcance -35 Vetor com os dados do sensor 30 alcance]

50 .25 50 50 25 90 100

6.3.2 Experimentos e Resultados


Experimento com Ambiente0

Os experimentos vo at 1200 iteraes e so interrompidos automaticamente. usado ITAG = 250 para conseguir a atuao do AG algumas vezes, mesmo se tiver sucesso rpido e no der para ser acionado por no ocorrer NBAT = 100. Se no ocorrer NBAT o ltimo disparo do AG ser em 1000, 200 iteraes antes do trmino. O nmero de ltimos ganhadores nugan para definir o nmero de linhas de MUGan de 200.
Semente N total de Colises N de ganhadores Nugan = 200 6 Aes diferentes Existem genricos nos ganhadores No Existncia de Clones Classificadores com fora menor que 1 Caracterstica dominante movimento rob do do

25

Sim

Todos

Sim

12

Sim

3 4

67 10

? 15

? 5

No 14

Sim Sim

0 Alguns

34

1
Sim

Sim

11

Sim

Circunda o ambiente em sentido antihorrio. rbita horria local Circunda o ambiente em sentido antihorrio No atinge o objetivo. Circunda o ambiente em sentido horrio Circunda o ambiente em sentido horrio Circunda o ambiente em sentido horrio

Tabela 6.5: Resultados do experimento usando SC no Ambiente0

71

Na tabela 6.5, o n de ganhadores corresponde ao nmero de classificadores diferentes que ganharam nas ltimas nugan iteraes. As aes diferentes so aquelas determinadas pelo conseqente desses classificadores. A existncia de genricos se refere tambm aos ltimos nugan ganhadores. mantida a diversidade para os classificadores e h uma tendncia de circundar o ambiente, tendo ocorrido apenas um caso, para semente 3, em que o rob no atingiu o aprendizado de no colidir. No existe grande dependncia das condies iniciais. Normalmente so necessrios vrios classificadores, mesmo quando existem classificadores genricos e, exceto em 1 caso, o nmero de classificadores maior que o nmero de aes diferentes produzidas pelo sistema.

Figura 6.7: Grfico dos resultados do SC para Ambiente0 com semente 0 e 1200 iteraes. No sentido horrio, a partir do canto superior esquerdo: "Curva de Aprendizado" (eixo vertical: n de colises/n de iteraes, eixo horizontal: n de iteraes), "Ambiente de Simulao" com o traado do percurso do rob e "N de Iteraes Entre Colises" (eixo vertical: n de iteraes entre colises, eixo horizontal: n de iteraes).

Experimento com Ambiente1

Os experimentos vo at 5000 iteraes e so interrompidos automaticamente. usado ITAG = 800 para que se tenha a atuao do AG algumas vezes (pelo menos 6), mesmo se convergir cedo e no der para ser utilizado NBAT = 100. Se no ocorrer NBAT o ltimo disparo do AG ser em 4800, 200 iteraes antes do trmino. Foi preciso ajustar Multdifv, que estava em 1.5, passando-o para 1.3, pois havia maior tendncia para rbita local. Estes experimentos so efetuados utilizando-se vrias sementes para o mtodo gerador dos valores aleatrios. O nmero de ltimos ganhadores nugan para definir o nmero de linhas de MUGan de 200.
72

Na tabela 6.6 abaixo, o n de ganhadores corresponde ao nmero de classificadores diferentes que ganharam nas ltimas nugan iteraes. As aes diferentes so aquelas determinadas pelo conseqente desses classificadores. A existncia de genricos se refere tambm aos ltimos nugan ganhadores.
Semente N total de Colises N de ganhadores Nugan = 200 5 Aes diferentes Existem genricos nos ganhadores No Existncia de Clones Classificadores com fora menor que 1 Caracterstica dominante do movimento do rob Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio.

40

Sim

23

21

No

Sim

19

82

No

Sim

29

22

Sim

27

23

Sim

29

Tabela 6.6: Resultados do experimento usando SC no Ambiente1

mantida diversidade para os classificadores e h uma tendncia de circundar o ambiente. No existe dependncia das condies iniciais. Normalmente so necessrios vrios classificadores atuando para atingir o objetivo de no colidir, mesmo quando existem genricos e, exceto em 1 caso, o nmero de classificadores maior que o nmero de aes diferentes produzidas pelo sistema. Este comportamento bem parecido com o apresentado no experimento anterior, com Ambiente 0.

73

Figura 6.8: Grfico dos resultados do SC para Ambiente1 com semente 0 e 5000 iteraes. No sentido horrio, a partir do canto superior esquerdo: "Curva de Aprendizado" (eixo vertical: n de colises/n de iteraes, eixo horizontal: n de iteraes), "Ambiente de Simulao" com o traado do percurso do rob e "N de Iteraes Entre Colises" (eixo vertical: n de iteraes entre colises, eixo horizontal: n de iteraes).

Experimento com AmbContornoCorredor1

Os experimentos vo at 15000 iteraes e so interrompidos automaticamente. utilizado ITAG = 2000, assim, se no ocorrer NBAT = 100, o AG ser acionado pelo menos 7 vezes. Como o ambiente mais complexo, exigindo manobras mais rpidas, o valor de Multdifv foi definido como 1.5 Quanto a nugan, ele foi aumentado pois, no caso em que o rob consegue fazer um percurso completo de ida e volta, ocorrero em torno de 500 iteraes, assim o valor de 600 torna-se razovel. Estes experimentos foram executados utilizando-se vrias sementes para o mtodo gerador dos valores aleatrios. Na tabela abaixo, o n de ganhadores corresponde ao nmero de classificadores diferentes que ganharam nas ltimas nugan iteraes. As aes diferentes so aquelas determinadas pelo conseqente desses classificadores. A existncia de genricos refere-se tambm aos ltimos nugan ganhadores.

74

Semente

N total de Colises 64 14

N de ganhadores Nugan = 600 6 5

Aes diferentes

Existem genrico nos ganhadores 2 2

Existncia de Clones

Classificadores com fora menor que 1 33 36

Caracterstica dominante do movimento do rob Percorre todo o ambiente. rbita local. rbita local. colises perto do final do experimento prejudicam obteno de dados. rbita local. Percorre extenses do ambiente. Percorre todo o ambiente. Percorre extenses do ambiente.

0 1

4 1

Sim Sim

200

Sim

27

3 4 5 6

164 75 113 32

2 7 7 7

1 4 5 4

0 2 1 2

Sim Sim Sim Sim

27 30 31 32

Tabela 6.7: Resultados do experimento usando SC no AmbContornoCorredor1

mantida diversidade para os classificadores e h uma tendncia maior de percorrer o ambiente. No existe muita dependncia das condies iniciais. Normalmente so necessrios vrios classificadores atuando para atingir o objetivo de no colidir, mesmo quando existem classificadores genricos. O nmero de classificadores maior que o nmero de aes diferentes produzidas pelo sistema. Este comportamento bem parecido com o apresentado nos experimentos anteriores, com Ambiente 0 e Ambiente 1. .

75

Figura 6.9: Grficos dos resultados do SC para AmbContornoCorredor1 com semente 0 e 15000 iteraes. No sentido horrio, a partir do canto superior esquerdo: "Curva de Aprendizado" (eixo vertical: n de colises/n de iteraes, eixo horizontal: n de iteraes), "Ambiente de Simulao" com o traado do percurso do rob e "N de Iteraes Entre Colises" (eixo vertical: n de iteraes entre colises, eixo horizontal: n de iteraes).

Experimentos com Conhecimento Inicial

Os experimentos apresentados anteriormente mostram o comportamento do rob exposto a uma situao de aprendizado, a partir da gerao dos classificadores iniciais de forma aleatria. Foi visto o impacto dessas condies iniciais no seu desempenho e, de forma geral, pode-se considerar este resultado como muito bom, pois somente em poucas situaes o modelo empregado no conseguiu atingir os resultados esperados. Um aspecto bastante relevante em sistemas inteligentes, e que est presente no mecanismo dos sistemas classificadores, relativo possibilidade do rob aprender e, de preferncia, a partir de nenhum conhecimento inicial agregado de forma explcita, pois isso reduz drasticamente o custo de projeto. Este aspecto ficou evidente no comportamento visto at aqui. Ainda, associado com o aprendizado, o aspecto mais relevante relativo possibilidade de lidar com ambientes no estacionrios. A abordagem apresentada a seguir trata disso, mas de uma forma peculiar. Ao invs de expor diretamente o rob a um ambiente no estacionrio logo no incio, isto ser feito em duas etapas, considerando que, se o rob adquirir conhecimento bsico de como se comportar no ambiente esttico, ele ter melhores condies de aprendizado no ambiente dinmico. Assim, ser utilizado o aprendizado obtido em um ambiente como conhecimento inicial para outro ambiente. claro que o ideal seria introduzir modificaes dinmicas no ambiente de aprendizado aps uma fase em que o conhecimento adquirido se tornasse satisfatrio. Isto implicaria em fazer simulaes usando modelos dinmicos, e so motivaes para a seqncia desta pesquisa. Como exemplo, utilizou-se o conhecimento inicial adquirido em um ambiente, o AmbContornoCorredor1, e verificou-se o que ocorre ao usar-se tal conhecimento como conhecimento inicial nos Ambiente0 e Ambiente1.

76

O programa CSControladorMC utiliza uma matriz de classificadores existente no workspace ao invs de ger-la aleatoriamente, como feito no CSControlador. Ser utilizada a matriz MC do experimento com AmbContornoCorredor1 realizada com semente 5. Apesar de utilizar conhecimento prvio, os experimentos foram executados utilizando vrias sementes. Isto se justifica pelo fato do algoritmo de aprendizado continuar em operao e necessitar em vrias partes de seus procedimentos, como foi mostrado no captulo 4, de gerao de valores aleatrios.
Experimentos com Conhecimento Inicial para o Ambiente 0

Este experimento utiliza os mesmos parmetros do experimento sem conhecimento inicial, inclusive executado tambm durante 1200 iteraes. A Tab. 6.8 apresenta um resumo comparativo dos dois experimentos, utilizando vrias sementes. Em 5 dos 7 experimentos ntida a melhora no comportamento valendo-se do conhecimento inicial adquirido em outro ambiente com semelhanas, as quais permitiram o seu aproveitamento. Em 4 deles o aproveitamento foi total. Em 1 deles, que inclusive no havia conseguido aprendizado, o resultado pode ser considerado muito bom, com apenas 7 colises.
Semente N total de Colises 25 3 12 67 10 34 N total de Colises: com conhecimento inicial 0 0 0 7 8 0 12 Caracterstica dominante do movimento do rob Circunda o ambiente em sentido anti-horrio. rbita horria local Circunda o ambiente em sentido anti-horrio No atinge o objetivo. Circunda o ambiente em sentido horrio Circunda o ambiente em sentido horrio Circunda o ambiente em sentido horrio Caracterstica dominante do movimento do rob: com conhecimento inicial Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio.

0 1 2 3 4 5 6

11

Tabela 6.8: Resultados do experimento usando SC no Ambinte0 com conhecimento inicial.

Em dois deles, com semente 4 e semente 6, no h melhora nem piora significativas. Estes resultados mostram a grande vantagem de se lanar mo de conhecimento inicial.

Experimentos com Conhecimento Inicial para o Ambiente 1

Este experimento utiliza os mesmos parmetros do experimento sem conhecimento inicial, inclusive executado tambm durante 5000 iteraes. No entanto o valor de Multdifv foi definido como 1.5, o valor utilizado pelo experimento doador do conhecimento, e no 1.3 como usado neste experimento anteriormente. O quadro abaixo apresenta um resumo comparativo dos dois experimentos, utilizando vrias sementes.
77

Semente

N total de Colises 40 21 82 22 23

N total de Colises: com conhecimento inicial 0 10 0 50 0

Caracterstica dominante movimento do rob

do

Caracterstica dominante movimento do rob: com conhecimento inicial

do

0
1 2 3 4

Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio. Circunda o ambiente em sentido horrio.

Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio. Circunda o ambiente em sentido anti-horrio.

Tabela 6.9: Resultados do experimento usando SC no Ambinte1 com conhecimento inicial.

Em 4 dos 5 experimentos ntida a melhora no comportamento valendo-se do conhecimento inicial adquirido em outro ambiente com semelhanas que permitiram o seu aproveitamento. Em 1 deles, com semente 3, o aproveitamento foi pior. Estes resultados mostram, novamente, a grande vantagem de se lanar mo de conhecimento inicial.

78

Captulo 7: Concluses e Perspectivas


Os sistemas classificadores com redes neurais apresentados neste trabalho no tm similar encontrado na literatura, sendo que a sua investigao permite a apresentao de algumas implicaes e sugestes sobre seu uso que podem nortear pesquisas futuras. A aplicao de sistemas classificadores convencionais, baseada em um algoritmo clssico, evidencia a potencialidade dos sistemas classificadores para o aprendizado em tarefas de robtica autnoma mvel. Isto significa que nos trabalhos futuros esse modelo poder ser aprimorado sem muitas dificuldades e receber as implementaes mais detalhadas das caractersticas reais do Khepera e dos mdulos para comand-lo atravs do prprio simulador. O simulador elaborado mostrou-se inteiramente apropriado para o desenvolvimento de tcnicas de sistemas inteligentes para robtica autnoma mvel com aprendizado. Os resultados obtidos nos experimentos confirmam aspectos do desenvolvimento terico dos modelos de sistemas inteligentes utilizados e evidenciam pontos que requerem melhor detalhamento ou uso de abordagens mais apropriadas importante evidenciar que na etapa de desenvolvimento existe uma infinidade de definies, estudos, testes, decises que devem ser tomadas. Por mais que se queira manter um registro detalhado desse processo isto se torna impraticvel. Fica tambm impraticvel pela exigidade de tempo e de espao para a sua exposio, dentro do escopo deste trabalho. Assim, vale a pena lembrar que na apresentao do simulador e das duas aplicaes de sistemas inteligentes nos Captulos 4 e 5 esto embutidas tambm idias a partir de muitos resultados referentes a testes efetuados alm dos explicitamente apresentados neste trabalho. Por exemplo, a opo de se utilizar o procedimento de fazer o rob recuar NrItAVoltar e penalizar NrGanAPunir aps uma coliso, e a maneira como isso feito, foi derivada a partir da observao detalhada do comportamento proporcionado pelo simulador e, depois de implantada, foi verificada a sua pertinncia, tambm utilizando o simulador, o que permitiu comparar resultados. Os comentrios apresentados a seguir evidenciam diferenas essenciais no comportamento dos dois modelos de sistemas inteligentes, mostrando porque o modelo com redes neurais no pode ser simplesmente entendido como uma variante, ou um substitutivo comum para um sistema classificador, mas sim como um sistema que tem uma natureza distinta e ampliada frente ao sistema classificador convencional, agregando novas possibilidades que exigem adoo de critrios diferentes para a modelagem, aprofundamento do conhecimento, e criatividade no seu emprego. Mostram tambm que, quanto ao sistema classificador convencional, as expectativas se confirmam, principalmente com as modificaes que foram feitas e apresentadas nos captulos pertinentes.

7.1 Concluses
7.1.1 O Uso de Redes Neurais Como Classificadores
A introduo das redes neurais como classificadores modifica o comportamento em direes que precisam ser entendidas para poder explorar o seu potencial e/ ou mesmo para poder incrementar o seu desempenho. Estas diferenas sero ressaltadas nos prximos itens, com comparaes relativas aos resultados obtidos pelo modelo convencional.

79

7.1.2 Matching
Nos sistemas classificadores convencionais o matching, diante de uma mensagem dos sensores, ocorre ou no. Com o emprego das redes neurais, diferente. O matching representado por um valor real na sada da rede de avaliao do classificador. Assim, para verificar se houve ou no matching, necessrio especificar e avaliar faixas de valores. Inicialmente foi considerado que todos os classificadores iriam dar matching para qualquer das mensagens, e que a sada da rede de avaliao definiria a especificidade. Esta medida permite que classificadores fracos, ou com baixas apostas, venam se as suas especificidades forem negativas e suas foras tiverem se tornado negativas, portanto gerando apostas positivas. Assim, em princpio ficou estabelecido que somente valores positivos podem determinar o matching, e que este mesmo nmero utilizado para a especificidade. De qualquer, forma este assunto necessita de mais investigao, por isso o simulador apresenta a possibilidade de utilizao de dois neurnios para a sada da rede de avaliao e, neste caso, um deles utilizado para o matching e o outro para a especificidade.

7.1.3 Reinforcement Learning


No entanto, a simples utilizao dos dois neurnios para a rede de avaliao no necessariamente apresenta melhoras no desempenho, como ficou evidenciado em alguns testes realizados. Uma direo que se apresenta como apropriada para os prximos passos nas pesquisas deste modelo referente utilizao de tcnicas de Reinforcement Learning. Estas tcnicas utilizam a realimentao do ambiente para basear as alteraes nos genes dos cromossomos do classificador, sendo um dos exemplos j consagrados o referente ao trabalho "Interactions Between Learning and Evolution", de Ackley e Littman [1]. Existe uma grande variedade de procedimentos para Reinforcement Learning, como pode ser visto em Sathiya Keerthi, B. Ravindran A Tutorial Survey of Reinforcement Learning de Sathiya Keerthi, B. Ravindran [38] e An Introduction to Neural Networks de Krose e Smagt [22]. Deve ser acrescentado que utilizar estas tcnicas com as redes neurais como classificadores tem uma dificuldade adicional, ou seja, cada um dos classificadores ter que ser otimizado, no se tratando portanto de otimizar uma nica rede, mas sim um conjunto delas.

7.1.4 Especificidade
A noo de especificidade entendida como uma caracterstica intrnseca do classificador. Com redes neurais este conceito necessita ser modificado, pois neste caso a especificidade do classificador dependente tambm da entrada de sua rede de avaliao. Isto permite que um mesmo classificador possa ter especificidades diferentes, ou seja, a especificidade deixa de ser uma caracterstica do classificador, representando um conceito generalizado, provavelmente significando que um classificador ser mais especfico para um padro de mensagens e menos especfico para outro, expressando um comportamento mais complexo.

7.1.5 Conseqente
Um classificador pode atender diferentes mensagens, dependendo de sua especificidade. O mesmo ocorre com redes neurais, mas de uma maneira muito mais sofisticada. Agora, olhando para a ao que um classificador ir produzir, para um classificador convencional ela ser sempre a mesma para todas as mensagens que ele classifique, porque a sua ao ditada pelo seu conseqente. No entanto, com redes neurais, ela ditada pela sada da rede de ao, que tem entradas diferentes para mensagens diferentes, podendo, assim, produzir sadas diferentes.

80

7.1.6 Nmero de Classificadores para Resolver um Ambiente Estacionrio


Considerando classificadores convencionais e supondo a existncia apenas de classificadores especficos para resolver um ambiente estacionrio, haver a necessidade de um classificador para cada comando que se faa necessrio para os atuadores. Mas, poder existir um classificador genrico produzindo a mesma ao de um classificador especfico, e, assim, o genrico e o especfico iro competir, podendo ora um ora outro vencer sem que nenhum deles seja descartado. Portanto, fica claro que, em um sistema convencional, o nmero de classificadores para resolver um ambiente estacionrio corresponde, no mnimo, ao nmero de situaes diferentes para o comando dos atuadores. Um caso que pode ser resolvido atravs de um nico classificador convencional pode ocorrer em um movimento circular em uma regio sem simetria. Neste movimento os sensores iro produzir diferentes leituras que devero dar matching com um classificador genrico com fora suficiente para compensar a sua baixa especificidade. Este classificador ir produzir sempre a mesma sada (por exemplo: girar 10 graus direita) de acordo com o seu conseqente. Com o sistema classificador com redes neurais teoricamente possvel, e foi verificado nos experimentos, que apenas um classificador pode resolver movimentos mais complexos do que o circular, requerendo sadas diferentes da rede de ao. De certa forma, esta possibilidade aponta na direo de uma caracterstica promissora, em acordo com as caractersticas de aproximadoras universais das redes neurais, de oferecer uma soluo melhor. Mas deve-se considerar que, neste caso, existir apenas um vencedor, diminuindo o significado do processo de atribuio de crditos assim que as redes atinjam o treinamento considerado suficiente. Provavelmente a soluo melhor com mais classificadores participando, mesmo que o seu nmero permanea menor do que o requerido pelo sistema convencional, principalmente em ambientes no estacionrios, onde manter uma diversidade de classificadores com fora significativa pode ser determinante na gerao de novos comportamentos, tanto pelo processo de atribuio de crditos como pelo algoritmo gentico.

7.1.7 Nmero de Classificadores Versus Nmero de Aes para Resolver Um Ambiente


Um outro aspecto interessante no comportamento dos dois modelos de sistemas inteligentes utilizados com relao ao nmero de classificadores necessrios para resolver um ambiente versus o nmero de aes diferentes requeridas. O comportamento dos dois sistemas bastante distinto. Para os sistemas convencionais normalmente o nmero de classificadores maior que o nmero de aes necessrias, uma vez que situaes diferentes para os sensores podem ser mapeadas para uma mesma ao produzindo classificadores diferentes com mesmas sadas. Por exemplo, se houver apenas um obstculo e esquerda, independentemente de sua distncia, uma soluo possvel seria girar um valor fixo de graus direita, e que poderia ser obtida por vrios classificadores com antecedentes diferentes e conseqentes iguais. Para os sistemas com redes neurais, pode ocorrer com freqncia a situao inversa, isto , o nmero de aes necessrias maior que o nmero de classificadores, conforme ficou evidenciado no item anterior.

7.1.8 Conhecimento Inicial


No h dvida de que robs autnomos utilizando tcnicas de aprendizado demandam menos esforo de projeto quando comparados com sistemas especialistas, onde todas as regras devem ser
81

definidas a priori, normalmente por um especialista. Mas no deixa de ser uma boa idia, e que pode trazer bons resultados, a introduo de conhecimento disponvel j na inicializao, e tambm durante o treinamento, principalmente quando isso no for de grande dificuldade. Nos sistemas convencionais, relativamente fcil fazer tal insero de conhecimento porque o mapeamento dos dados dos sensores para o antecedente + conseqente direto.

7.1.9 Insero de Conhecimento Durante o Treinamento


Os mesmos comentrios acima podem ser feitos quanto introduo de um novo classificador quando no ocorre matching, que foi utilizada de uma forma bem facilitada e com bons resultados no sistema classificador convencional. A introduo deste procedimento no sistema com redes neurais foi feita de forma ainda incompleta em vista das dificuldades mencionadas. Assim o antecedente e o conseqente do novo classificador so gerados de forma aleatria, procurando apenas garantir a ocorrncia de matching para a mensagem.

7.1.10 Dependncia de Condies Iniciais


Os dois sistemas se mostraram dependentes de condies iniciais, mas o convencional menos.

7.1.11 Suavizao da Trajetria Utilizando Redes Neurais


Um fato notvel que em grande parte dos experimentos com SCRN observou-se suavizao da trajetria do rob, o que, nestes casos, evidencia a eficcia da ao das redes neurais para aproximaes suaves de funes. As Fig. 7.1 a 7.4 mostram este fato, comparando as trajetrias do SCRN com as do SC para vrios experimentos nos Ambiente0 e Ambiente1.

Semente 0

Semente 2 Semente 3 Figura 7.1: Traados tpicos de trajetria para SCRN no Ambiente0

Semente 5

Semente 0

Semente 2 Semente 3 Figura 7.2: Traados tpicos de trajetria para SC no Ambiente0

Semente 5

82

Semente 0

Semente 1 Semente 2 Figura 7.3: Traados tpicos de trajetria para SCRN no Ambiente1

Semente 5

Semente 0

Semente 2 Semente 3 Figura 7.4: Traados tpicos de trajetria para SC no Ambiente1

Semente 4

7.2 Conjecturas
A partir dos resultados deste trabalho fica claro que valer a pena fazer os experimentos com o rob real, o Khepera. Isto exigir trs atividades: 1) Introduzir o modelo dinmico do Khepera no simulador; 2) Introduzir os modelos dos seus sensores; 3) Desenvolver os mdulos de comando que iro utilizar o prprio simulador. Existem duas possibilidades distintas para os experimentos com o Khepera. Desenvolver os experimentos diretamente com ele, ou desenvolv-los em simulao e, depois do aprendizado, passar o comando do simulador ao Khepera. O novo simulador com estas caractersticas poder ser utilizado para se determinar diferenas em treinamento virtual e treinamento real, inclusive com medidas objetivas. No SC existe um mapeamento das entradas em um pequeno conjunto de sadas. Isto no ocorre no SCRN, cuja sada um nmero real. Isto origina a possibilidade de grandes alteraes na orientao do rob. Seria interessante colocar um limite nestes valores? Quais as suas implicaes? Nota-se uma tendncia espontnea no SCRN implementado neste trabalho a convergir para poucos ou praticamente um nico classificador. Este resultado est em desacordo com a abordagem utilizada, em que a soluo a populao de classificadores (entendida na literatura como abordagem Michigan [25]). interessante investigar o que ocorre, mantendo a arquitetura do classificador neural utilizado e elaborando um algoritmo de atribuio de crditos que tenha como finalidade obter um nico classificador (abordagem Pittsburgh [25]). Desta forma, o SCRN estaria se comportando como um sistema para treinar uma rede neural que seria a soluo. Esta tcnica teria a vantagem, comparada com outras tcnicas de evoluir redes neurais para controle de robs autnomos, de ser executada em tempo real.
83

Existe tambm a possibilidade de se caminhar na direo de melhor adequar o modelo do SCRN para a abordagem Michigan. Lembrando, como j mencionado no Captulo 3, que as redes neurais introduzem mais sofisticao soluo, e talvez o modelo do algoritmo de atribuio de crditos no possa comport-la. Uma das medidas ento seria, mantendo o algoritmo de atribuio de crditos, simplificar a arquitetura da rede neural utilizada no classificador, quem sabe usando apenas um neurnio, o que poderia trazer o grau de sofisticao a um nvel aceitvel. A outra medida seria trabalhar no algoritmo de atribuio de crditos, procurando adequ-lo, ou, talvez melhor, elaborar um novo voltado s caractersticas novas introduzidas pelas redes neurais. Voltando s idias quanto a implantar a abordagem Pittsburgh apresentada acima, se ela der certo, lembrando da semelhana funcional do SCRN com as tcnicas de reinforcement learning, pode-se verificar a viabilidade de utilizar uma abordagem semelhante para evoluir a rede de avaliao utilizada nestes algoritmos. No caso de reinforcement learning para redes neurais elas podem corresponder ao critic. Talvez se torne necessrio, ou vantajoso, modificar a arquitetura do classificador neural para correspond-lo melhor ao critic. A vantagem a utilizao de um mtodo evolutivo, em tempo real. Uma outra possibilidade se refere a utilizar rede neural apenas para o conseqente, mantendo o antecedente da mesma forma utilizada no modelo convencional. Assim a especificidade e o matching funcionariam da mesma forma que no sistema convencional e poderia ser verificado o que ocorre com a introduo de rede neural no conseqente. Com relao ao algoritmo gentico, seria vantajoso utilizar um modelo mais elaborado? Ainda, seria vantajosa a utilizao de operadores genticos especficos? Este trabalho no considera um mecanismo para interromper ou modificar a atuao dos algoritmos de atribuio de crditos e gentico aps aprendizagem, o que resulta na ocorrncia de colises mesmo aps a essa fase, como conseqncia da competio e da gerao de novas regras. O modelo seguido foi o apresentado por Richards [33], o qual no considera esse efeito. No entanto, fundamental adotar-se algum critrio para a atuao dos algoritmos aps a fase de aprendizagem com o objetivo de minimizar este efeito.

7.3 Limitaes Deste Trabalho


Este trabalho teve o intuito de estudar diferentes abordagens de sistemas classificadores como soluo ao problema da navegao autnoma investigando as implicaes da introduo do classificador neural. Assim, no foram consideradas outras abordagens ao mesmo problema, como as redes neurais convencionais, sistemas baseados em regras fuzzy, outros sistemas baseados em computao evolutiva, alm de diversas metodologias que podem ser aplicadas resoluo deste problema, que poderiam ser utilizadas como abordagens de referncia ao estudo aqui efetuado. No que no se quisesse faz-lo, entretanto, deve ser lembrado que este um trabalho sob o escopo de uma dissertao de mestrado e existem limitaes de tempo e recursos dedicados a este tipo de estudo que impem restries sua maior abrangncia. Pela mesma razo, nesta pesquisa foram efetuadas somente simulaes. Apesar do autor ter cincia de que o uso de simulaes de grande valia nesta linha de pesquisa, como argumentado no captulo 4, gostaria tambm de aplicar os resultados simulados em robs reais. Assim, na seqncia deste trabalho, com certeza devero surgir estudos experimentais com robs reais utilizando o simulador e as aplicaes aqui desenvolvidas.
84

Mesmo considerando que poderiam ser encontradas outras limitaes que no foram aqui apontadas, elas no invalidariam os resultados aqui obtidos. Esta dissertao teve o mrito de evidenciar o potencial dos sistemas classificadores aplicados ao problema da robtica mvel. Alm disso, com a proposio dos sistemas classificadores com redes neurais, provavelmente foi aberta uma nova frente de pesquisa, com muitas oportunidades de trabalho para o futuro.

7.4 Perspectivas de Trabalhos Futuros


Como j foi mencionado neste trabalho, ele se constitui da parte inicial e fundamental de um longo trabalho a ser desenvolvido no futuro. Particularmente, o autor tem a perspectiva de dar continuidade a este estudo em um futuro Doutorado, onde vislumbra uma srie de atividades que visam complementar e adicionar ao trabalho ora efetuado. Dentre outras atividades, espera-se: efetuar uma comparao das abordagens aqui tratadas com outras abordagens encontradas na literatura (tais como redes neurais, sistemas de lgica fuzzy, computao evolutiva, etc.) promover uma modelagem mais realista do mini rob Khepera, que permita em um segundo passo a utilizao do controlador aqui desenvolvido diretamente no rob real. aprimorar as tcnicas de inteligncia artificial para robtica mvel com aprendizado aqui apresentadas desenvolver os mdulos para o comando do rob diretamente no simulador, de tal forma que possam ser utilizados indistintamente no simulador ou no rob real.

Alm disso, espera-se que a proposio do classificador neural possa servir como inspirao para que o mesmo possa ser aplicado em outras reas de atuao, onde suas qualidades possam ser tambm interessantes. Assim, outras reas referentes a controle inteligente podero se beneficiar deste novo paradigma aqui criado. Por fim, enquanto os robs inteligentes de Isaac Asimov e Arthur Clarke ainda no chegam, o autor fica com a sensao de ter andado um pequeno passo que seja na direo de ter contribudo para que um dia, no futuro, eles possam se tornar uma realidade.

85

Apndice A: Khepera
O Khepera produzido pela empresa K-Team, fundado em 1995 por pesquisadores e engenheiros do Swiss Federal Institute of Technology of Lausanne. um mini rob largamente utilizado no meio cientfico devido sua preciso e ao seu tamanho, podendo inclusive ser utilizado em cima de uma mesa de escritrio.

Khepera Khepera com sua garra Figura A.1: Fotos do Khepera na sua configurao bsica e com um de seus acessrios - a sua garra.

As suas especificaes gerais atualizadas so apresentadas na Tabela A.1.

KHEPERA II SPECIFICATIONS Elements Processor RAM Flash Motion Technical Information


Motorola 68331, 25MHz 512 Kbytes 512 Kbytes Programmable via serial port 2 DC brushed servo motors with incremental encoders (roughly 12 pulses per mm of robot motion)

86

Speed Sensors

Max: 60 cm/s, Min: 2 cm/s 8 Infra-red proximity and ambient light sensors with up to 100mm range AND Power Consumption 3 Analog Inputs (0-4.3V, 8bit) Power Adapter OR Rechargeable NiMH Batteries 1 hour, moving continuously. Additional turrets will reduce battery life. Standard Serial Port, up to 115kbps Expansion modules can be added to the robot using the K-Extension bus. Diameter: 70 mm Height: 30 mm Approx 80 g Approx 250 g

I/O Power

Autonomy Communication Extension Bus Size Weight Payload Simulators

WEBOTS, Realistic 3D Simulator (Windows & Linux). Freeware. KTProject, graphical interface for GNU C Cross-Compiler (Windows). GNU C Cross-Compiler, for native on-board applications (Windows, Linux & Sun). Freeware. SysQuake (on PC or MAC) using RS232. LabVIEW (on PC, MAC or SUN) using RS232. MATLAB (on PC, MAC, Linux or SUN) using RS232. SysQuake (on PC, MAC, Linux or SUN) using RS232. Freeware. Any other software capable of RS232 communication

Development Environment Autonomous Application

for

Remote control Software via tether or radio

Tabela A.1: Especificaes gerais do Khepera

87

Apndice B: Algoritmo Gentico


Neste apndice so apresentados detalhes da implementao do Algoritmo Gentico.

B.1 Roulette Wheel


B.1.1 Intervalos para Roulette Wheel
Para utilizar o algoritmo Roulette Wheel, montada uma matriz denominada Avaliacao, com nmero de linhas igual ao tamanho da populao de classificadores que participar da seleo para a formao dos pares, e com 4 colunas. O fitness ir corresponder fora do classificador. As colunas tm os seguintes significados: ndice: o ndice da coluna o mesmo utilizado na matriz que contem os classificadores em suas linhas. Coluna 1: Fora do classificador Coluna 2: Participao percentual da fora de cada classificador na soma das foras de todos os classificadores. Coluna 3: A primeira linha vale zero. As linhas seguintes so obtidas somando-se a linha anterior da Coluna 2 com a Coluna 3. Coluna 4: As linhas dessa coluna so preenchidas com o valor da linha seguinte da Coluna 3. A ltima linha vale 1. Desta forma as Colunas 3 e 4 representam os limites inferiores e superiores da participao de cada classificador na Roulette Wheel. Veja a tabela abaixo com valores de exemplo para 4 indivduos:
1a 1a 2 3 4
a a a

2a .1 .4 .2 .3

3a
0 .1 .5 .7

4a
.1 .5 .7 1

1 4 2 3

Caso seja permitido valor negativo para a fora, o mdulo da fora mnima ser somado ao valor de todas as outras. Isto ocasiona um deslocamento de tal forma que a fora mnima se transforme em zero. Para evitar que o pior indivduo (aquele com fora zero) seja eliminado pode-se adicionar um valor conveniente ao deslocamento.

B.1.2 Formao dos pares


A seleo de indivduos usando Roulette Wheel feita da seguinte forma: gera-se um valor aleatrio, com distribuio uniforme entre 0 e 1, verifica-se o intervalo a que ele pertence, considerando as Coluna 3 e 4 de Avaliacao, identificando-se ento a linha contendo o indivduo a ser selecionado. Foi utilizada a seguinte expresso no programa, escrita em Matlab: Pares(NrIndividuo,:) = Populacao(max(find(Avaliacao(:,3)<rand(1))),:) A matriz Populacao contm os classificadores que iro participar da seleo para a formao dos pares para reproduo. A matriz Pares contm os pares de classificadores selecionados para aplicar
88

o operador de crossover. A expresso acima escolhe, conforme explicado a seguir, uma linha de Populacao para preencher a linha de ndice NrIndividuo de Pares. O mtodo find monta um vetor com os nmeros das linhas da terceira coluna de Avaliacao com contedo menor ou igual ao valor aleatrio gerado por rand. A seguir o mtodo max escolhe o valor mximo deste vetor, localizando-o dentro do intervalo especificado pelo Roulette Wheel, que corresponde ento ao nmero da linha de Populacao que ser copiada na linha NrIndividuo de Pares. Nota-se que no ser usada a 4. coluna de Avaliacao, a qual foi utilizada em uma abordagem anterior a esta. Ela foi mantida por facilitar a visualizao dos limites e por no onerar o processamento. Deve ser notado que o algoritmo utilizado neste mtodo o clssico, mas no processo dos sistemas classificadores empregado utilizada uma sub populao: um dado nmero de melhores indivduos selecionado para a evoluo e a nova gerao ir substituir um mesmo nmero de piores indivduos. Assim ficam preservados os melhores indivduos. Por isso no mtodo feita a tentativa de se evitar a formao de pares do mesmo indivduo j que, com o crossover usado, resultariam cpias iguais aos pais e s j preservadas na populao original. claro que ainda existiria a possibilidade de mutao, que, no entanto, normalmente utilizar taxas muito pequenas.

B.2 Crossover
Utiliza-se o crossover simples. Monta-se a matriz CrossOver, inicialmente igual matriz Pares, que passa a conter o resultado do crossover. Para cada par calcula-se aleatoriamente o ponto ou pontos de crossover. No SC utilizado crossover de 1 ponto e para o SCRN crossover de 2 pontos.

B.3 Mutao
Monta-se a matriz Mutao, inicialmente igual a Crossover. Para SCRN, a taxa de mutao testada para cada indivduo. Se o indivduo for selecionado para mutao, so escolhidos aleatoriamente dois pontos e feita a permutao de seus genes. Para o SC a taxa de mutao testada para cada gene do indivduo e, se ele for selecionado, tem-se duas possibilidades. A primeira refere-se ao gene da condio, ele recebe aleatoriamente valor 1, 0 ou -1 (tanto faz). A segunda refere-se ao conseqente, onde invertido o valor do gene.

89

Apndice C: Clculos para DWS


Este apndice apresenta os clculos para se obter o controle de movimento por velocidades diferenciais nas duas rodas do rob.

C.1 Determinao das novas coordenadas


As expresses a serem apresentadas a seguir utilizam a conveno mostrada na Fig. C.1. Na figura, E0-D0 representa o eixo do rob na posio inicial e E1-D1 na posio final, aps um intervalo de tempo dt em que as velocidades das duas rodas, embora sendo diferentes, permanecem inalteradas.

Figura C.1: Controle de orientao por DWS

C.1.1 Clculo do raio de curvatura R


As velocidades diferenciais fazem com que as trajetrias descritas pelas rodas percorram arcos de circunferncia com comprimentos diferentes. No intervalo de tempo dt elas descrevero um arco de circunferncia correspondente ao deslocamento angular . Pode ser visto que igual ao deslocamento angular da direo do veculo , pois tm lados ortogonais.
= (C.1)

Sejam vd e ve os valores absolutos das velocidades das rodas direita e esquerda respectivamente, e SD e SE os arcos de circunferncia descritos por elas.
SD = (R+d/2). = vd.dt SE = (R- d/2). = ve.dt (C.2) (C.3) (C.4) 90

Destas duas expresses deduz-se o valor de R


R = [(d/2).(vd+ve)]/(vd-ve)

C.1.2 Clculo do deslocamento angular


Da expresso (2) temos
= (vd.dt)/(R+d/2) (C.5)

Substituindo na expresso acima o valor determinado para R em (4) e simplificando, obtemos o valor para
= [(vd-ve).dt]/d (C.6)

C.1.3 Clculo de gama


Este ngulo permitir o clculo de no tringulo retngulo P0-Q-P1, permitindo calcular-se os deslocamentos na direo x e y. O ngulo determinado por
= 1+2 (C.7) (C.8) (C.9) (C.10) (C.11)

Por sua vez 1 obtido por


1 = (/2)- = (-)/2 = (- )/2 1 = /2

E calculado atravs do tringulo issceles C-P0-P1 Usando (C.9) em (C.2) e simplificando obtemos O ngulo 2 obtido por
2 = (/2)-1

onde 1 a nova orientao do rob, que corresponde orientao anterior mais o deslocamento angular , ou seja
1 = 0+ (C.12) (C.13) (C.14)

que colocada em (11) resulta em


2 = (/2)-0- = /2+(/2)-0-= /2-0-/2

As expresses (C.10) e (C.13) permitem calcular o valor de em (C.7)

C.1.4 Clculo de alfa


Finalmente, pode-se calcular
= /2- = /2-(/2-0-/2)

ou seja
= 0+/2 (C.15)

Agora possvel verificar uma propriedade interessante derivada do movimento, o valor de . Pela figura tem-se
= -1 = -/2

ou seja
= /2 (C.16)

resultando em e 1 serem iguais, o que mostra que o segmento de reta P0-P1, que une os pontos centrais do rob nas duas posies, antes e aps dt, divide o deslocamento angular ao meio.

91

C.1.5 Clculo dos deslocamentos dx e dy


Estes valores so obtidos atravs do tringulo retngulo P0-Q-P1
dx = p.cos() dy = p.sin() (C.17) (C.18)

faltando apenas apenas conhecer a hipotenusa p, que achada considerando-se o tringulo retngulo C-M-P0:
p = 2.R.sin(/2) dx = 2.R.sin(/2).cos dy = 2.R.sin(/2).sin (C.19) (C.20) (C.21)

Assim, a expresso para os deslocamentos fica:

92

Bibliografia
[1] Ackley, D., Littman, M. "Interactions Between Learning and Evolution", in Artificial Life II, SFI Studies in the Sciences of Complexity, vol. X, edited by C. G. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen, Addison-Wesley, 1991. [2] ARC Autonomous Robot Controller, Xavi Mrquez Navs, Barcelona, 2000. xmarquez@indai.com [3] Arthur C. Clarke, "2001/Odissia Espacial", edio de bolso, Editora Edibolso, 1975. [4] Berlanga, A.; Isasi, P.; Sanchis, A.; Molina, J. M. Neural networks robot controller trained with evolution strategies. Proceedings, page 419, vol. 1, Evolutionary computation, 1999. [5] Berlanga, A.; Sanchis, A.; Isasi, P.; Molina, J. M. A general learning co-evolution method to generalize autonomous navigation behavior. Proceedings, pages 769-776 vol. 1, Evolutionary Computation, 2000. [6] Bianco, G.; Cassinis, R. Multi-strategic approach for robot path planning. Proceedings, pages 108-115, Advanced Mobile Robot, 1996. [7] Booker, L. B., Goldberg, D. E., Holland, J. H. "Classifier Systems and Genetic Algorithms" Artificial Intelligence 40 pp. 235-282, 1989. [8] Brooks, R. Intelligence Without Reason, Proc. IJCAI, pg. 569-595, agosto, 1991. [9] Cazangi, R. R., Figueiredo, M. "Sistema Autnomo Inteligente Baseado em Computao Evolutiva aplicado Navegao de Robs Mveis", Departamento de Informtica, Universidade Estadual de Maring UEM, proceedings do V SBAI, Canela, dez/2001. [10] Chohra, A.; Scholl, P.; Kobialka, H. U.; Hermes, J.; Bredenfeld, A. Behavior learning to predict using neural networks (NN): towards cooperative and adversarial robot team (RoboCup). Proceedings, pages 79-84, Robot Motion and Control, 2001 [11] Darwin2K Simulation and Automated Synthesis for Robotics, CMU's Robotic Institute. [12] "DEV-C++ Tutorial for CSC 161 Students", Bloodshed. www.geocities.com/uniqueness_templat [13] Figueiredo, M. F Redes Neurais Nebulosas Aplicadas em Problemas de Modelagem e Controle Autnomo, Tese de Doutorado, FEEC UNICAMP, agosto, 1997. [14] Goldberg, D. E. "Introduction to Genetics-Based Machine Learning" - Chapter 6 do livro "Genetic Algorithms in Search, Optimization and Machine Learning" - David. E. Goldberg Addison-Wesley 1989 [15] Grefenstette, J.; Schultz, A An Evolutionary Approach to Learning in Robots (SAMUEL). Navy Center for Artificial Intelligence, Naval Research Laboratory, Washington, DC 20375.{gref, schultz}@aic.nrl.navy.mil [16] Haykin, S "Neural Networks A Comprehensive Foundation", 2nd. edition, Prentice-Hall, 1999. [17] Holland, J. H. "Adaptation in Natural and Artificial Systems", University of Michigan Press, An Arbor, MI, 1975.
93

[18] Isaac Asimov, "Eu, Rob", Editora Expresso e Cultura, 8a. edio, julho, 1974. [19] "Khepera Simulator 2.0" distribudo como freeware por Oliver Michel. http://diwww.epfl.ch/lami/team/michel/khep-sim/ [20] Kovacs, T., Lanzi, P. L. A Learning Classifier Systems Bibliography, Technical Report: CSRP-99-19, University of Birmingham, United Kingdom, 1999. [21] Khepera, produzido por K-TEAM, http://www.k-team.com/careers.html [22] Krose, B., Smagt, P. van der chapter 7 Reinforcment Learning of An Introduction to Neural Networks, eigth edition, November 1996, The Universtity of Amsterdam. [23] Kubrick, S., produtor do filme "2001: A Space Odyssey". [24] Lund, H. H.; Miglino, O. From simulated to real robots". Proceedings, pages 362-365, Evolutionary Computation, 1996. [25] Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs, 3rd edition, Springer, 1996. [26] MOBS Mobile Robot Simulator, Horst Stolz sob a direo de Thomas Braunl, Univ. Stuttgart, Germany. [27] Moussi, L. N., Gudwin, R. R., Von Zuben, F. J., Madrid, M. K. "Sistemas Classificadores com Redes Neurais (NNCS) : Aplicao ao Controle de um Veculo Autnomo Simulado Computacionalmente", proceedings do V SBAI, Canela, RS, dezembro, 2001. [28] Moussi, L. N., Gudwin, R. R., Von Zuben, F. J., Madrid, M. K. "Neural networks in classifier systems (NNCS): An application to autonomous navigation" in V. V. Kluev & N. E. Mastorakis (eds.) Advances in Signal Processing, Robotics and Communications, Electrical and Computer Engineering Series, WSES Press, pp. 256-262, 2001. [29] Moussi, L.N., Von Zuben, F. J., Gudwin, R. R., Madrid, M. K. A Simulator using Classifier Systems with Neural Networks for Autonomous Robot Navigation. Proceedings of the IEEE International Joint Conference on Neural Networks (IJCNN'2002), vol. 1, pp. 501-506, in the 2002 IEEE World Congress on Computational Intelligence (WCCI'2002), Honolulu, Hawaii, 12-17 maio, 2002. [30] Nechyba, M. C.; Yangsheng Xu Human control strategy: abstraction, verification, and replication IEEE Control Systems Magazine, Volume: 17 Issue: 5, Pages: 46-61, 1997. [31] Nolfi, S. Floreano, D. Evolutionary Robotics: The Biology, Intelligence, and Technology of Self-Organizing Machines. Cambridge, MA: MIT Press/Bradford Books). Intelligent Robots and Autonomous Agents series edited by Ronald C. Arkin, novembro, 2000. [32] Ramsey, C.L., Schultz, A.C., and Grefenstette, J.J. Simulation-assisted learning by competition: Effects of noise differences between training model and target environment, Proceedings of the Seventh International Conference on Machine Learnig, Austin, TX, Morgan Kaufmann , pp. 211-215, 1990. [33] Richards, R. A. "Classifier Systems & Genetic Algorithms" Robert A. Richards - Chapter 3 of Richards, Robert A.; Zeroth-order Shape Optimization Utilizing a Learning Classifier System, Ph.D. Dissertation, Mechanical Engineering Department, Stanford University, 1995. [34] Robotica. "Robotica Manual", Robotica TM Software, Coordinated Science Laboratory, University of Illinois at Urbana-Champaign. ftp://ftp.csl.uiuc.edu/
94

[35] Schiller, I.; Draper, J. S. Mission adaptable autonomous vehicles. Pages 143-150. Neural Networks for Ocean Engineering, 1991. [36] Schultz, A.C., and Grefenstette, J.J. Using a Genetic Algorithm to Learn Behaviors for Autonomous Vehicles, Navy Center for Applied Research in Artificial Intelligence, Navy Research Laboratory, Washington, DC, Proceedings of the AIAA Guidance, Navigation and Control Conference, Hilton Head, SC, August 10-12, 1992. [37] Simderella. Patrick van der Smagt, "Simderella: a robot simulator for neuro-controller design", published in Neurocomputing, V. 6 N. 2, Elsevier Science Publishers, 1994. http://www.robotic.dlr.de [38] S. Sathiya Keerthi, B. Ravindran A Tutorial Survey of Reinforcement Learning, Department of Computer Science and Automation, Indian Institute of Science, Bangalore. [39] Yung, N. H. C.; Ye, C. EXPECTATIONS an autonomous mobile vehicle simulator. Pages 2290-2295 vol. 3. Systems, Man, and Cybernetics, 1997. [40] Wang, L. F.; Tan, K. C.; Prahlad, V. Developing Khepera robot applications in a Webots environment. Proceedings, pages 71-76, Micromechatronics and Human Science, 2000. [41] Webots Release 3.0.1 (for evaluation purpose only), from Cyberbotics Ltd., www.cyberbotics.com. [42] Wyeth, G. Neural mechanisms for training autonomous robots. Proceedings, pages 194-199, Mechatronics and Machine Vision Practice, 1997

95

Vous aimerez peut-être aussi