• Nenhum resultado encontrado

5.5 Resultados com o modelo de vizinhança linear

5.5.1 Experimentos iniciais

Nesta seção, apresentamos alguns experimentos onde buscamos reproduzir os resultados publica- dos, utilizando-se o modelo de vizinhança linear. Os principais grafos de programa utilizados fo- ram o Gauss18, g18, g40, tree15 e o intree15. Nos experimentos aqui descritos, foram feitos testes utilizando-se os três modos de operação de AC (paralelo, seqüencial e aleatório) e valores para o raio

rigual a 1, 2 e 3. Em todos os experimentos, o tipo de crossover utilizado foi o de ponto-simples e o tipo de mutação foi o de complemento do alelo.

Os primeiros experimentos que simulamos foram realizados para o Gauss18 que tem Totimo´ = 44,0. Para o AC, utilizamos os três valores de raio, os três modos de operação acima citados, e também os parâmetros CIs = 50 e M = 50. Para o raio 1, os parâmetros que utilizamos para o AG foram P = 50, E = 25, pm = 0,375 e G = 50. Para o raio 2 utilizamos P = 100, E = 50, pm = 0,093 e G = 100. E, para o raio 3 utilizamos P = 200, E = 100, pm = 0,023 e G = 1.000. Para os três valores de raio utilizamos o parâmetro pc = 0,50.

A Figura 5.8 apresenta a evolução do melhor indivíduo/regra da população na fase de aprendiza- gem de regras do algoritmo de escalonamento baseado em AC, utilizando-se o raio r igual a 1. Como pode ser observado, o modo de operação seqüencial foi o que apresentou um melhor resultado, onde a média de T para o melhor indivíduo na última geração foi igual a 54,06. No modo aleatório, a média de T para o melhor indivíduo na última geração foi igual a 56,22 e no modo paralelo foi igual a 57,28. A Figura 5.9 apresenta a evolução do melhor indivíduo da população na fase de aprendizagem, utilizando-se regras de raio 2. Como pode ser observado, o modo de operação seqüencial foi o que apresentou um melhor resultado, onde a média de T para o melhor indivíduo na última geração foi igual a 47,26. No modo paralelo, a média de T foi igual a 51,24 e no modo aleatório foi igual a 52,24. Comparando-se os gráficos das figuras 5.8 e 5.9, podemos observar que os experimentos com os três modos de operação retornaram resultados superiores com o aumento do raio de 1 para 2.

O último experimento foi realizado utilizando-se regras de raio 3, o qual apresentou o melhor resultado para o Gauss18. A Figura 5.10 apresenta a evolução do melhor indivíduo para o modo de operação seqüencial. Até aqui apresentamos os resultados com os três valores de raio e os três modos

Fig. 5.8: Fase de aprendizagem do algoritmo de escalonamento para o Gauss18: raio 1.

Fig. 5.9: Fase de aprendizagem do algoritmo de escalonamento para o Gauss18: raio r = 2.

de operação de AC. Como identificamos que os melhores resultados foram obtidos com o modo de operação seqüencial, optamos por não apresentar no próximo gráfico as evoluções para os modos paralelo e aleatório, para facilitar a visualização e o entendimento do leitor. Na primeira geração, o valor de aptidão do melhor indivíduo (regra) é 58,52. Nas próximas gerações, o AG modifica as regras e, na geração 460 é descoberta uma regra que converge todas as CIs para uma alocação das tarefas que representa o escalonamento ótimo (T = 44,0) para o Gauss18. No entanto, esta regra não passa em alguns testes em gerações subseqüentes. Apenas na geração 481 o AG descobre uma regra que

provê um escalonamento ótimo para o Gauss18 quando aplicada em todos os testes de problema (CIs) subseqüentes. Para o modo de operação de paralelo, o AG descobre regras provendo soluções sub- ótimas para o problema, onde 44, 0 < T ≤ 45, 0. No entanto, em 1.000 gerações, nenhuma solução que leve ao escalonamento ótimo a partir de qualquer configuração inicial do AC é descoberta. E, para o modo de operação aleatório, o valor médio de T para o melhor indivíduo da última geração foi igual a 51,0.

Fig. 5.10: Fase de aprendizagem do algoritmo de escalonamento para o Gauss18: raio 3 e modo de operação seqüencial.

Para avaliar a qualidade das regras descobertas para o raio r = 3 e modo de operação seqüencial, foram gerados 1.000 novos testes de problema (alocações iniciais das tarefas), sendo estes aplicados, na fase de operação, em cada uma das regras descobertas. Os resultados podem ser vistos na Figura 5.11; cerca de 106 regras foram aptas a evoluir cada alocação inicial das tarefas para um escalona- mento ótimo do Gauss18.

A Figura 5.12 apresenta a evolução temporal do AC quando este é inicializado com uma das 106 regras descobertas para o Gauss18 com Tmed = 44,0, e uma alocação inicial (configuração inicial) aleatória das tarefas. No passo de tempo 0, as células (reticulado) do AC estão em estados que correspondem a uma alocação das tarefas em que T = 71,0. O AC começa a evoluir de acordo com sua regra de transição de estados e, a partir do passo 11, é alcançada uma configuração do reticulado correspondente a uma distribuição (alocação) das tarefas entre os processadores P0 e P1 que provê o

Fig. 5.11: Fase de operação do algoritmo de escalonamento para o Gauss18: modo de operação seqüencial e raio r = 3: média de T obtida em 1.000 CIs diferentes.

tempo total de execução T = 44,0.

Fig. 5.12: Tempo de execução associado à evolução temporal do AC para o Gauss18.

Os resultados obtidos para o Gauss18, nos três modos de operação de AC e para os três valores de raio 1, 2 e 3, foram compatíveis com os resultados apresentados em [102].

tree15, sendo estes experimentos semelhantes aos realizados em [103]. Nestes experimentos, o único modo de operação de AC utilizado foi o paralelo (síncrono).

Primeiramente, realizamos experimentos com o g18. Nestes experimentos testamos dois valores de raio r: 1 e 2. Os parâmetros utilizados para o AC foram CIs = 50 e M = 50. Para o AG, utilizamos

P= 100, E = 50, G = 100, pc = 0,50, pm= 0,375 para raio 1 e pm= 0,09 para raio 2.

Apenas nas regras de raio 2 foi possível convergir o reticulado do AC para uma alocação que representa o escalonamento ótimo para o g18 (T = 46,0). Para r = 1, o tempo de execução T médio para o melhor indivíduo na última geração foi igual a 46,74. Para r = 2, este valor foi igual a 46,0. A Figura 5.13 apresenta a fase de aprendizagem do algoritmo de escalonamento para o g18, utilizando- se os valores de raio 1 e 2. Como pode ser observado para r = 2, o AG precisou de pouco mais de 10 gerações para descobrir uma regra de transição apta a convergir todas as CIs para uma alocação que representa o escalonamento ótimo para o g18.

Fig. 5.13: Fase de aprendizagem do algoritmo de escalonamento para o g18.

Na fase de operação, para avaliar as regras descobertas para r = 2, foram geradas 1.000 novas alocações iniciais aleatórias (testes de problema) do g18. A Figura 5.14 apresenta o tempo médio de T para cada regra descoberta quando aplicada em todos os testes de problema. Como pode ser observado, cerca de 50 regras foram aptas a convergir o AC, a partir de 1.000 alocações iniciais diferentes, para uma configuração que representa o escalonamento ótimo do g18.

Fig. 5.14: Fase de operação do algoritmo de escalonamento para o g18.

o g18 para resolver o problema do escalonamento para o grafo intree15. Sendo assim, novamente geramos 1.000 novos testes de problema (alocações iniciais do intree15) e os usamos para avaliar no

intree15cada regra encontrada para o g18. A Figura 5.15 apresenta os resultados obtidos. O intree15 tem Totimo´ = 9,0. Como pode ser observado, cerca de 8 regras descobertas para o g18, também foram aptas a encontrar o escalonamento ótimo para o intree15.

Fig. 5.15: Aplicação das regras descobertas para o g18 na fase de operação do algoritmo de escalo- namento para o intree15.

Os próximos experimentos foram conduzidos com os grafos de programa tree15 e g40 na fase de aprendizagem. Estes experimentos são similares aos apresentados em [104]. Em ambos, os parâme- tros do AC foram CIs = 50 e M = 50. Para o AG foram utilizados P = 100, E = 50, G = 100, pc = 0,50 e pm = 0,03. Para o tree15, os experimentos mostraram que o valor de raio r = 1 é suficiente para descobrir regras de escalonamento. Para os três modos de operação, logo na primeira geração, o AG encontrou regras de AC aptas a encontrar o escalonamento ótimo para o tree15 (T = 9,0 em um sistema com dois processadores).

O experimento seguinte foi conduzido com o grafo de programa g40. O valor mínimo de r que permitiu, na fase de aprendizagem, descobrir regras capazes de encontrar um escalonamento ótimo para o g40 foi 2. A Figura 5.16 apresenta o processo evolutivo (fase de aprendizagem) para os três modos de operação de AC. Como pode ser observado, para dois modos de operação, paralelo e seqüencial, o AG descobriu regras que convergem o AC para uma configuração que corresponde ao valor ótimo para o g40 (T = 80,0), e para o modo aleatório o AG descobre regras que convergem o AC para soluções apenas sub-ótimas. Na fase de operação, para avaliar a qualidade das regras descobertas para os modos paralelo e seqüencial, foram geradas 1.000 novas configurações (alocações iniciais) para o g40, as quais foram utilizadas para testar cada regra descoberta. Nesta fase, constatamos que o modo de operação seqüencial mostrou-se um pouco superior ao modo paralelo, onde no primeiro cerca de 63 regras foram aptas a encontrar o escalonamento ótimo para o g40, e no segundo cerca de 55 regras.

5.5.2 Teste da capacidade de generalização das regras descobertas através do