• Nenhum resultado encontrado

2 Referencial Teórico

4.2 Exploração do Espaço Projeto

A exploração do espaço e projeto nesse trabalho é feita através de um algoritmo genético. Dada uma aplicação específica e um conjunto de topologias irregulares iniciais, o GA busca então alterar a permutação dos roteadores dentro da rede e gerar o melhor conjunto de topologias otimizadas. Para realizar essa otimização o GA leva em conta os valores de latência média, porcentagem de pacotes que conseguiram atingir o deadline e a quantidade de roteadores presentes na topologia. A figura 11 através de fluxograma nos mostra como funciona um algoritmo genético.

O algoritmo genético inicia com uma geração zero, apenas com uma população inicial. Essa população é então avaliada através de uma função fitness. A avaliação é feita através das métricas propostas, que são latência média, porcentagem do deadline dos pacotes RT e o número de roteadores. É atribuída então uma aptidão a cada indivíduo da população e são escolhidos os melhores para se reproduzirem. Essa escolha é realizada tomando como métrica principal a quantidade de pacotes RT que cumpriram o deadline, depois são

Figura 11: Modelo de Fluxograma de um Algoritmo Genético

observados a latência média e quantidade de roteadores presentes na topologia. Estando escolhidos, é então feito o cruzamento trocando informações genéticas dos cromossomos. Depois da nova população ter sido gerada uma mutação é aplicada nessa população. O número de geração é então incrementado e tudo é repetido até uma condição de parada ser atingida.

Um cromossomo que é utilizado no algoritmo genético representa uma solução para o problema. A representação desse cromossomo depende do problema abordado e também do que se deseja manipular geneticamente (PACHECO et al., 1999). No caso desse trabalho, um cromossomo seria a representação de uma ligação entre os roteadores para uma rede irregular, ou seja, basicamente a forma como os roteadores estão interligados fisicamente. O cromossomo é uma representação de ligação entre os roteadores da rede, então o cromossomo representa como os roteadores estão ligados entre si. Na figura 12 pode ser

Figura 12: Exemplo de um Cromossomo no Nosso GA

visto então um cromossomo com duas fileiras, cada fileira contém os roteadores presentes na rede e a ligação entre esses roteadores é realizada entre um roteador e o que está diretamente abaixo dele na outra fileira. Dessa forma os roteadores que não possuírem ligação entre si, para se comunicar com os outros roteadores é preciso então encaminhar as mensagens para os roteadores no qual eles se conectam e esses por sua vez enviam até que as mensagens cheguem no destino final. A população inicial é criada de forma aleatória e começa com um roteador para cada core no grafo da aplicação e então a função fitness avalia a rede de acordo com a latência média e deadline. O algoritmo genético fiscaliza se as topologias criadas são válidas, ou seja, se cada roteador pode se comunicar com qualquer outro na topologia e também um mesmo roteador só pode aparecer no máximo 4 vezes no cromossomo, já que um roteador pode se conectar no máximo com outros quatro. O GA vai então retirando roteadores da topologia para então otimizá-la em espaço. As novas gerações de topologias vão sendo testadas a fim de encontrar uma topologia que atenda aos requisitos de latência, área e deadline. Abaixo pode-se ver a relação quanto ao número de roteadores dentro da topologia.

bN

o de Cores

2 c ≤ N

o de Roteadores ≤ No de Cores

O número de roteadores na topologia utilizada aqui, tem então no máximo o mesmo número de cores da aplicação e no mínimo o piso do número total de cores da aplicação sobre dois. Inicialmente cada roteador começa com um core associado a ele, então o algoritmo genético vai retirando roteadores a fim de diminuir a área. No final a topologia pode ficar com até metade dos roteadores, visto que um número menor de roteadores poderia comprometer a performance de latência média e deadline dos pacotes RT. Então a cada execução completa de avaliação do GA um roteador é decrementado da topologia e a avaliação começa novamente. Esse processo se repete até chegar na quantidade mínima de roteadores. Dessa forma cada roteador terá no máximo dois cores associados a eles, o que acarretará em uma redução na área, sem comprometer tanto o desempenho de latência e deadline. Cada core é ligado na porta local de um roteador, quando é então realizada a

se conseguir resultados mais otimizados de simulações.

Depois de todos os indivíduos da população inicial serem testados e terem uma aptidão atribuída a eles, é então escolhido os indivíduos com os melhores níveis de aptidão a fim de ser realizado o cruzamento. O cruzamento é realizado através da geração de uma string de bits aleatórios que variam entre 0 e 1, essa string tem o mesmo tamanho que os pais. São então gerados dois filhos, o primeiro filho é feito utilizando as posições com valor 1 na primeira linha da string de bits e substituindo pelo número correspondente da mesma posição do primeiro pai. O restante da fileira que contém valores 0 são substituídos pelos valores da mesma posição da primeira linha do segundo pai. Para preencher a segunda linha do primeiro filho é feito o inversão. Os valores que contém 1 são substituídos pelos valores da mesma posição da segunda linha do segundo pai e os valores restantes são trocados pelo equivalente da segunda linha do primeiro pai. O segundo filho é gerado de forma inversa, assim não se corre o risco de repetir conexões já testadas. Na figura 13 abaixo pode ser visto como funcionar uma operação de crossover em nossos cromossomos. Alguns indivíduos da nova população criada podem então sofrer o que é chamado de mutação. A mutação nada mais é do que alteração nas características dos cromossomos, a fim de aumentar a sua diversidade. Esses indivíduos que sofrem mutação são geralmente uma porcentagem bem pequena e são escolhidos aleatoriamente. Existem diversas formas de se realizar essa mutação, nesse trabalho será usada a abordagem de troca de genes (PACHECO et al., 1999). Na etapa de mutação é então trocada o primeiro roteador da fileira de cima pelo o último da mesma fileira. A figura 14 exemplifica como essa troca é realizada no processo de mutação.

Como se é visto na figura 14, é feita uma permuta entre o primeiro roteador da primeira fileira pelo último, alterando assim a conexão entre dois pares de roteadores.

Para finalizar são escolhidos os indivíduos que continuarão a fazer parte da popula- ção e os que serão eliminados. Nesse trabalho é utilizado o método do elitismo, onde os

Figura 13: Exemplo de Recombinação Entre Cromossomos

indivíduos mais aptos são mantidos e os menos aptos são descartados. Esses seres serão simulados novamente e gerarão uma nova população. Esse procedimento se repete até uma condição de parada ser atendida.

Documentos relacionados