• Nenhum resultado encontrado

Algoritmos Geneticos (AG) são algoritmos de autoaprendizagem que utilizam mé- todos relacionados à seleção natural e recombinação genética. Desta forma, estuda os resultados anteriores para melhorar o desempenho do algoritmo, com base em critérios definidos. Assim, o algoritmo funciona escolhendo soluções entre indivíduos existentes na população inicial de cromossomos e então, aplicando operações gené- ticas, criam uma nova população a cada geração.

Neste sentido, um indivíduo é definido por um cromossomo binário representado por um conjunto de 30 genes que controlam o comportamento do Algoritmo Ant-based. Cada conjunto de genes foi dividido de forma que corresponda a um parâmetro espe-

cífico relacionado à execução. Sendo assim, o cromossomo ficou definido conforme: 00000 | {z } θ 00000 | {z } s0 00000 | {z } δ 0000 | {z } α 0000000 | {z } ξ 0000 | {z } ρ

Inicialmente, é definida a quantidade de gerações que devem ser percorridas para a execução. Estas gerações são caracterizadas por ser o critério de parada do algo- ritmo, visto que ao fim de todas as gerações, o algoritmo se encerra. Na população inicial, os indivíduos são gerados aleatoriamente em uma quantidade predefinida. A partir daí, estes indivíduos são avaliados um a um, sendo cada um deles utilizado na ferramenta de simulação e definidos seus valores de aptidão, ao final de cada execu- ção. A cada iteração das gerações, a nova população gerada se baseia na seleção de novos indivíduos para, assim, realizar as alterações genéticas. O algoritmo 2 exempli- fica o procedimento descrito, o qual foi utilizado neste trabalho.

Algoritmo 2: ALGORITMO GENÉTICO EMPREGADO NOAnt-based

1 início

2 para n ∈ [0...N ] faça

3 para todo i ∈ P (n) faça 4 fi ← avaliaIndividuo(i)

5 fim

6 P (n + 1) ← ∅

7 enquanto P (n + 1) < t faça 8 (a, b) ← selecionaP ais(P (n))

9 (c, d) = cruzamento_e_mutacao(a, b) 10 P (n + 1) ← P (n + 1) ∪ (c, d) 11 fim 12 fim 13 retorna melhorIndividuo(P ) 14 fim

Onde, N é o número de gerações, P (n) a população na geração atual, fi a aptidão

do indivíduo i, a e b os pais selecionados através do método de torneio e, por fim, c e dos dois novos indivíduos gerados para a próxima população.

Na nossa abordagem, a avaliação de um indivíduo é feita de acordo com o desem- penho deste na execução do algoritmo Ant-based no simulador. Durante a execução do AG, o procedimento avaliaIndividuo(), na linha 4, retorna o valor de aptidão de cada indivíduo. Assim, o simulador cria um arquivo de configuração e define os parâ- metros contidos no cromossomo do indivíduo a ser avaliado, a fim de realizar a exe- cução do algoritmo em uma RSSF. No final da execução do algoritmo, cada indivíduo tem um valor de aptidão, atribuído de acordo com o desempenho. Logo, a avaliação da aptidão de cada indivíduo depende de toda a execução do algoritmo. A arquitetura implementada pode ser vista na figura 10.

Figura 10: Arquitetura proposta para implementação.

A função de aptidão foi definida como o número total de eventos detectados na rede para cada indivíduo. Como o elitismo é utilizado, o maior valor de aptidão é passado para a próxima geração. Na nova população, os outros indivíduos são gerados através dos operadores genéticos de cruzamento e mutação. Sendo assim, quanto maior número de eventos detectados, melhor é o indivíduo e, consequentemente, melhor a configuração de parâmetros para o Ant-based.

No procedimento selecionaP ais(), na linha 8, através do método de seleção por torneio, três indivíduos são escolhidos aleatoriamente da população. Destes três, os dois indivíduos com melhores valores de aptidão são selecionados. O procedimento cruzamento_e_mutacao(), na linha 9, recebe estes dois indivíduos e, de acordo com a probabilidade de cruzamento, realiza a modificação genética entre eles e, conforme a probabilidade de mutação, altera um gene de cada indivíduo e coloca os dois novos indivíduos na nova população.

Para executar o AG deve-se determinar os valores dos parâmetros a serem uti- lizados. Para a definição destes é fundamental a realização de um grande número de experimentos e testes, visto que cada parâmetro influencia no desempenho do al- goritmo para o problema em questão. Sendo assim, os experimentos apresentam a finalidade de auxiliar na identificação dos valores para os parâmetros em um algoritmo genético. Ainda, não existem melhores valores desses parâmetros para todas as apli- cações. Muitas delas usam valores definidos por outros trabalhos e outras definem os próprios valores baseado em experimentos (LOPES et al., 2004).

De acordo com DE PINHO; MONTEVECHI; MARINS (2009) a determinação do número de gerações varia de acordo com a complexidade do problema e deve ser definida de maneira experimental. Além disso, segundo REEVES (1993), a definição de uma população pequena pode provocar um risco de não obter cobertura do espaço de busca. Em contrapartida, uma população grande pode exigir um maior esforço computacional para a resolução do problema a ser solucionado.

faixa de 0,6 a 0,65. TANOMARU (1995) afirma que bons resultados geralmente são alcançados com alto valor da taxa de cruzamento (maior que 0,7). Para a probabili- dade de mutação os valores são na faixa de 0,01 a 0,5. O tamanho da população e o número de gerações dependem da complexidade do problema de otimização e devem ser determinados por experimentação. Porém, é importante ressaltar que o tamanho da população e o número de gerações definem diretamente o tamanho do espaço de busca. Os parâmetros definidos no AG para tamanho da população, número máximo de gerações, probabilidades de cruzamento e mutação são apresentados na tabela 5.

Tabela 5: Valores dos Parâmetros para o Algoritmo Genético

Parâmetro Valor

Quantidade de Gerações 30 Tamanho da População 30 Taxa de Cruzamento 0.7

Taxa de Mutação 0.1

De acordo com a tabela acima, os valores de quantidade de gerações e o tamanho da população foram definidos por experimentação. Assim, foi percebido que núme- ros maiores não geravam indivíduos diferentes ao longo das gerações e a população alcançava o ideal, sem quaisquer modificações. Sendo assim, através desses proce- dimentos, o AG busca explorar de forma evolutiva, utilizando heurísticas adaptativas e os parâmetros assim definidos, torna possível encontrar os melhores resultados.

Documentos relacionados