O primeiro passo no processo de construc¸˜ao de um sistema classificador ´e a escolha da forma de representac¸˜ao da regra. Como citado no Cap´ıtulo 4,sobre sistemas classificadores, ´e poss´ıvel utilizar qualquer representac¸˜ao de dados. Nesse trabalho a representac¸˜ao bin´aria se justifica pela pr´opria natureza da informac¸˜ao, ou seja, a maioria dos sensores de um robˆo j´a apresenta sa´ıdas neste formato evitando assim uma convers˜ao que poderia levar a perda de informac¸˜oes e ao aumento do tempo de execuc¸˜ao do sistema de controle.
Decidida a forma de representac¸˜ao, o passo seguinte ´e a determinac¸˜ao das informac¸˜oes a serem codificadas. Isso est´a diretamente relacionado com o modelo de robˆo implementado. O modelo escolhido para ser desenvolvido possui as seguintes caracter´ısticas:
Sensores de faixas: permite ao robˆo detectar os limites da arena. Na simulac¸˜ao o robˆo re- cebe a informac¸˜ao que est´a sobre a faixa limite da arena e tamb´em um ˆangulo α entre a direc¸˜ao do centro da arena e a direc¸˜ao do movimento do robˆo(ver Figura 7.1). Com estas informac¸˜oes ´e poss´ıvel ao robˆo inferir qual parte do seu corpo esta sobre a borda. Assim o robˆo simulado consegue reproduzir um comportamento parecido com um robˆo real com sensores de faixa em cada uma de suas arestas.
Figura 7.1: Angulo de localizac¸˜ao da faixa. α : ˆangulo entre o vetor V (direc¸˜ao deˆ deslocamento do robˆo) e a reta L (distˆancia do centro do robˆo ao centro da arena).
Sensores de presenc¸a: na simulac¸˜ao considerou-se que o robˆo tem uma vis˜ao de 360◦ a sua volta, e o simulador passa ao robˆo informac¸˜oes sobre a distˆancia do oponente e o ˆangulo formado entre sua direc¸˜ao de movimentac¸˜ao e a direc¸˜ao da posic¸˜ao do oponente(ver Fi- gura 7.2).
Figura 7.2: Informac¸˜oes sobre a localizac¸˜ao do oponente. β : ˆangulo formado entre a distˆancia d do oponente e direc¸˜ao V de deslocamento do robˆo
Movimentac¸˜ao: a movimentac¸˜ao do robˆo ´e alterada variando as componentes x e y da sua acelerac¸˜ao, chamadas de ax e ay. A acelerac¸˜ao ´e relativa ao plano de movimentac¸˜ao do robˆo. Assim variando os valores de ax e ay ´e poss´ıvel imprimir uma acelerac¸˜ao ao robˆo em qualquer direc¸˜ao.
Definidas as informac¸˜oes que o robˆo disp˜oe (ˆangulo e distˆancia do oponente, estar ou n˜ao sobre o limite da arena e o ˆangulo do centro da arena) e as ac¸˜oes que ele pode tomar (controle da intensidade e direc¸˜ao da acelerac¸˜ao), o pr´oximo passo foi definir a composic¸˜ao e a estrutura do classificador.
Figura 7.3: Configurac¸˜ao do antecessor do classificador implementado, 1- sensor de faixa, 2- ˆangulo formado entre a direc¸˜ao de deslocamento do robˆo e o centro arena, 3-presenc¸a do oponente, 4-distˆancia do oponente e 5- ˆangulo da localizac¸˜ao do oponente.
A estrutura do classificador foi definida da seguinte forma: o antecessor possui compri- mento de 11 bits, sendo 1 bit para indicar se o robˆo est´a sobre o limite da arena, 3 bits para indicar a posic¸˜ao do robˆo em relac¸˜ao ao centro da arena, os quais bits s˜ao setados com valor zero quando o robˆo n˜ao est´a sobre o limite da arena.
Ainda tem 1 bit para indicar a presenc¸a do oponente, 3 bits indicam a distˆancia do oponente e mais 3 bits indicam a direc¸˜ao do mesmo. A Figura 7.3 ilustra a estrutura do antecedente do classificador.
O processo de codificac¸˜ao dos valores recebidos dos sensores em valores bin´arios segue o seguinte esquema.
1. Se o robˆo est´a sobre a faixa o valor do primeiro bit ´e 1, caso contr´ario o valor ´e 0.
2. Se o robˆo est´a sobre a linha, os trˆes bits seguintes representam o ˆangulo α entre o robˆo e o centro da arena codificado conforme a figura, valores entres 0 e 45◦ s˜ao codificados com ”000”, entre 45◦ e 90◦ como 001 e assim sucessivamente utilizando a codificac¸˜ao Gray (Figura 7.4), para evitar que entre faixas adjacentes exista mudanc¸a em mais de um bit. Se o 1◦bit for zero, os trˆes bits dessa seq¨uˆencia tamb´em ser˜ao
Figura 7.4:Codificac¸˜ao do ˆangulo (c´odigo Gray).
3. O quinto bit representa presenc¸a do oponente e vale 1 se o oponente est´a vis´ıvel e zero caso contr´ario.
4. O sexto, o s´etimo e o oitavo bit representam o ˆangulo β entre a direc¸˜ao de movimento do robˆo e a posic¸˜ao do oponente figura, a codificac¸˜ao ´e feita da mesma forma que o ˆangulo do item 2.
5. O nono, o d´ecimo e o d´ecimo primeiro bit representam a distˆancia do oponente norma- lizada entre 0 e 100, onde 0 representa a menor distancia, quando os robˆos se tocam e 100 representa a distˆancia m´axima em que o oponente ainda aciona o bit 5. A tabela 7.1 mostra a codificac¸˜ao do valores.
O conseq¨uente do classificador ´e composto por seis bits, sendo que trˆes representa a inten- sidade da acelerac¸˜ao distribu´ıda na faixa de 0 a 21 pixels/iterac¸˜ao conforme a Tabela 7.2.
Distˆancia(normalizada) Valor bin´ario 0-20 000 20-40 001 40-60 010 60-80 011 80-100 100
Tabela 7.1: Codificac¸˜ao da distˆancia do oponente.
Acelerac¸˜ao (intensidade) Valor bin´ario
0 000 3 001 6 010 9 011 12 100 15 101 18 110 21 111
Tabela 7.2: Intensidade da acelerac¸˜ao.
Ax Ay Valor bin´ario 0 0 000 0 -1 001 1 0 011 1 1 010 0 1 110 -1 1 111 -1 0 100
Os trˆes bits restantes indicam a direc¸˜ao da acelerac¸˜ao, a tabela 7.3 ilustra a codificac¸˜ao: Na primeira vez que o sistema ´e executado os classificadores s˜ao inicializados aleatoria- mente com energia igual a oitenta unidades. A cada ciclo do sistema classificador, ´e descontada a taxa de vida de cada classificador, conforme a Equac¸˜ao 4.5. A meia vida foi definida em 5000 interac¸˜oes.
O mecanismo de recompensa/punic¸˜ao possui duas atuac¸˜oes: a primeira age no final de cada rodada, aumentando a energia do ´ultimo classificador em trinta unidades (valor emp´ırico) em caso de comportamento vitorioso (conseguir retirar o oponente da arena at´e o final da rodada) e retirando trinta unidades em caso de derrota (ser retirado da arena pelas suas pr´oprias ac¸˜oes ou pelas ac¸˜oes do oponente).
Durante a execuc¸˜ao da rodada, o bid do classificador vencedor no instante t ´e transferido para o vencedor do instante t-1 conforme o mecanismo de atribuic¸˜ao de cr´edito bucket brigade descrito na cap´ıtulo 4, sobre sistemas classificadores.
Um outro mecanismo de recompensa age durante a rodada, incrementando a energia do classificador em uma unidade se ele aproxima-se do oponente ou se afasta das bordas da arena, e decrementando uma unidade se ele afasta-se do oponente ou se aproxima da borda.
A cada n-rodadas o algoritmo gen´etico atua sobre a populac¸˜ao de classificadores. Esse algoritmo emprega o elitismo com taxa de 80% de forma a preservar a maior parte da populac¸˜ao. Os cromossomos s˜ao selecionados pelo m´etodo roulette wheel e cruzados com taxa de 70%.
A energia inicial dos novos classificadores gerados na reproduc¸˜ao ´e a m´edia das energias dos classificadores selecionados como pais. Os indiv´ıduos gerados poder˜ao, dependendo do seu valor inicial ( de energia, ocupar o lugar dos 20 % restante do elitismo.
Sobre a populac¸˜ao final ainda age um operador de mutac¸˜ao com taxa de 5%, os classificado- res resultantes deste processo s˜ao inseridos na populac¸˜ao no lugar dos classificadores originais. Sempre que a energia de uma classificador chega a um valor menor que zero, ele ´e subs- titu´ıdo por um novo classificador, gerado de forma aleat´oria e com energia igual a m´edia da populac¸˜ao.