• Nenhum resultado encontrado

3.4 Solução do problema usando algoritmos genéticos

3.4.2 Buscas locais implementadas

Definir uma busca local para este problema é uma tarefa bastante complexa. Qualquer mudança de peso ou multiplicidade de um ou mais arcos acarreta uma mudança no fluxo de carga da rede, podendo esta solução melhorar ou piorar sem muita previsão. Ou seja, o problema é descobrir uma modificação na solução que tenha alta probabilidade de contribuir para sua melhoria.

Dois procedimentos de busca local foram implementados, um modificando multiplicidades, e o outro modificando pesos. Nenhum dos dois foi usado na versão final do GA, visto que seu uso não colabora para melhora da solução. Os procedimentos são:

• LSw: incremento unitário do peso dos arcos com maior utilização.

• LSm: decremento unitário da multiplicidade de um conjunto de arcos. Estes arcos são aqueles

que têm o seu aumento, causado pelo arredondamento para o maior inteiro, mais próximo do valor 1. O objetivo é que a soma do aumento de multiplicidades causado por esta modificação não seja maior que a soma dos valores de multiplicidades subtraídas.

Quando a multiplicidade de um arco é definida, seu valor deve ser um valor inteiro maior ou igual ao obtido pela razão entre a carga e a capacidade livre (depende da máxima utilização estipulada), como foi visto na Figura 3.7. A multiplicidade de um arco pode ser calculada como sendo 3,05, por exemplo, mas como deve ser considerado o maior inteiro, seu valor passa a ser 4. A busca local LSm reduz em um o valor da multiplicidade dos arcos que tiveram a maior diferença entre os valores float e int de sua multiplicidade. Vários tamanhos do conjunto de arcos com multiplicidades modificadas foram testados, sem muita diferença entre eles. Apenas verificou-se que para tamanhos muito pequenos (próximos de 1) e muito grandes (maiores que 10) raríssimas vezes resultaram em melhora. Nos testes computacionais apresentados no final deste capítulo, 5 arcos têm simultaneamente sua multiplicidade decrescida. A solução gerada pela modificação de uma multiplicidade fica um pouco imprevisível, pois resulta numa mudança das cargas dos arcos, que em geral faz aumentar a multiplicidade de outros arcos.

A segunda restrição, LSw, é muito similar à busca local usada no problema do Capítulo 2. Uma adaptação foi feita para agregar as restrições e as modificações do problema aqui propostas. Além disso, a mudança de um peso neste problema acarreta modificações maiores. A mudança de um

peso geralmente acarreta a mudança de uma ou mais multiplicidades, o que pode modificar em muito o roteamento, ou seja, gerando uma solução totalmente imprevisível.

A próxima seção apresenta resultados computacionais realizados com o problema, incluindo opcionalmente todas as restrições, modificações e especializações do problema propostas anterior- mente.

3.5

Resultados computacionais

Nesta seção, são descritos os experimentos computacionais realizados com o algoritmo genético aplicado ao problema de designação de multiplicidades aos arcos. O ambiente computacional é pri- meiramente descrito, detalhes sobre parâmetros usados e instâncias testadas são a seguir fornecidos, finalizando com a apresentação dos resultados e sua análise. Todos os resultados computacionais apresentados consistem em uma média de três execuções usando sementes diferentes.

Não foram apresentados resultados utilizando os procedimentos de busca local implementados, pois estes não colaboraram para a melhoria do algoritmo. O pouco melhoramento da solução final não é compensado pelo tempo computacional adicional que o uso destes procedimentos acarreta.

Como mencionado anteriormente, não encontrou-se na literatura uma outra proposta de método aplicado a este problema. Por este motivo, os resultados apresentados não puderam ser comparados com resultados de outros métodos.

3.5.1

O ambiente computacional

Os experimentos foram realizados em um Pentium IV 1.7 GHz com 256 Mb de memória RAM. Os algoritmos foram implementados em C e compilados com o cc, versão 3.2, usando o flag-O3. O sistema operacional é o linux Red Hat, versão 8.0 3.2-7. Os tempos foram medidos com a função

getrusage. Os números aleatórios gerados pelo algoritmo genético usaram o gerador Mersenne Twister [MN98] de Matsumoto e Nishimura.

Os parâmetros a seguir foram usados para o algoritmo genético:

• Particionamento da população: 25% das soluções no conjunto

A

, 5% das soluções no con- junto

C

, e 70% no conjunto

B

;

• Probabilidade de ocorrer mutação: pm= 1%;

• Probabilidade que um peso seja herdado do pai elite pela solução gerada no crossover: pA =

70%;

• utilização máxima de cada arco no caso da rede operando sem falha (MU) é igual a 0, 80;

• O número de gerações, o tamanho da população e o intervalo dos pesos dos arcos varia de

acordo com o tipo do experimento.

Os experimentos foram realizados considerando 7 instâncias de quatro classes propostas por Fortz e Thorup [FT00] usadas no Capítulo 2. Detalhes sobre as instâncias encontram-se sintetizados na Tabela 2.1.

Para cada uma dessas instâncias, 12 matrizes de demanda distintas D1, D2, . . . , D12 são geradas. A matriz de demanda inicial é a D1, as outras são geradas por se multiplicar D1repetidamente por um fator de escala: Dkk−1D1, ∀ k = 1, . . . , 12.

Uma nova instância é usada para os testes deste capítulo. Trata-se da instância attAS com dados atualizados (julho/2003) do backbone do sistema autônomo da AT&T nos Estados Unidos. A matriz de demanda para esta instância, assim como para a instância att, é obtida segundo a metodologia proposta por Feldmann et al. [FGL+01]. Esta instância é composta por:

• uma rede de 54 nós e 278 arcos;

• 306 pares de demanda;

• 40 spans com um conjunto variando entre 8 e 38 arcos cada um.

Os arcos dessa instância possuem capacidades iguais, enquanto que as outras instâncias pos- suem capacidades diferenciadas para os arcos. A Figura 3.12 apresenta um mapa simplificado do Backbone principal do AS IP Backbone da AT&T nos EUA. Um mapa mais completo encontra-se disponível em http://www.geog.ucl.ac.uk/casa/martin/atlas/more_isp_maps.html. Grande parte da estrutura do mapa da Figura 3.12 é compartilhada com outras corporações, pois este representa uma ligação entre os grandes centros dos EUA.

Figura 3.12: Backbone ligando os principais roteadores nos EUA.

Os resultados atuais usados pela AT&T para os dados da instânciaattASnão foram comparados com os obtidos aplicando-se o GA a ela, pois a solução atual da AT&T leva em consideração outros dados que não foram aqui considerados, como o atraso (tempo de percurso da mensagem no arco) de cada nó.

As próximas subseções apresentam os resultados computacionais dos testes realizados.

3.5.2

Resultados comparativos do GA com e sem os procedimentos de busca