Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

Documentos relacionados
GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

3. Resolução de problemas por meio de busca

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

3 Algoritmos Genéticos

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

4 Implementação Computacional

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

ESTUDO DO EFEITO DOS PARÂMETROS GENÉTICOS DE UM ALGORITMO GENÉTICO NA SOLUÇÃO OTIMIZADA E NO TEMPO DE CONVERGÊNCIA EM UMA FUNÇÃO DE DUAS VARIÁVEIS

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Pesquisa Operacional Aplicada à Mineração

PROPOSAL OF AN EVOLUTIONARY COMPUTATION BASED SYSTEM FOR HANDLING THE SPACE ALLOCATION PROBLEM: THE CASE OF UNIVERSIDADE FEDERAL DE UBERLÂNDIA

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Técnicas de Inteligência Artificial

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

1. Computação Evolutiva

3 Algoritmos Genéticos

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Algoritmos Genéticos

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

INF 1771 Inteligência Artificial

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

INF 1771 Inteligência Artificial

3 Métodos de Otimização

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Um algoritmo pseudo-periférico genérico para a heurística de Snay

Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ

Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela.

Marcone Jamilson Freitas Souza

Max Pereira. Inteligência Artificial

4 Métodos Existentes. 4.1 Algoritmo Genético

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

Análise de Desempenho de Estratégias de Particionamento de Grafos

Aplicação de algoritmos genéticos. Problema da Mochila (knapsack problem)

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Teoria dos Grafos Aula 14

1 Introdução 1.1 Motivação

3 Otimização Evolucionária de Problemas com Restrição

Modelos Evolucionários e Tratamento de Incertezas

Algoritmos Genéticos

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

Introdução aos Algoritmos Genéticos

INTRODUÇÃO À. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

1. Computação Evolutiva

6 Estudos de Casos Porta Lógica OU de 4 Entradas

Análise empírica de algoritmos de ordenação

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Problemas de otimização

6 ESCALONAMENTO DE CPU

Inteligência Artificial

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Problema de Satisfação de Restrições

VERIFICAÇÃO DO DECAIMENTO DE INFORMAÇÃO EM REDES NEURAIS RECORRENTES APLICADAS AO PROBLEMA DO MUNDO DE WUMPUS 1

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

5 Projeto de Novos Polímeros Condutores

COMPOSIÇÃO DE UMA CARTEIRA DE AÇÕES COM RISCO MÍNIMO E RETORNO ESPECIFICADO: UM ESTUDO UTILIZANDO ALGORITMO GENÉTICO E A FUNÇÃO SOLVER

SSC546 -Avaliação de Desempenho de Sistemas

Inteligência Artificial

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

Fundamentos de Inteligência Artificial [5COP099]

Otimização com Algoritmos Evolutivos

Aplicação de uma Metaheurística GRASP para o Problema da Árvore de Steiner em Grafos Direcionados

Algoritmos Evolutivos para Otimização

Uma Abordagem para o Escalonamento Estático de Tarefas em Multiprocessadores Baseada em Autômatos Celulares

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

6 Experimentos realizados

O USO DE ALGORITMOS GENÉTICOS NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR RESUMO INTRODUÇÃO

Sistemas Inteligentes if684. Germano Vasconcelos Página da Disciplina:

Universidade Federal do Paraná UFPR Curso de Ciência da Computação CI801 Tópicos em Inteligência Artificial. Algoritmo Memético

3 Montagem de Fragmentos

Desempenho de computação paralela

Reconhecimento de Faces Utilizando Redes Neurais MLP

4 Metáforas de Optimização

Implementação De Um Algoritmo Genético Codificado Para A Solução do Problema do Caixeiro Viajante

Estrutura comum dos AEs Seleção

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

3 Metaeurísticas e Resolvedores MIP

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Tópicos Especiais em Informática Fatec Indaiatuba

ALGORITMOS GENÉTICOS EM EQUAÇÕES NÃO LINEARES PARA ESTIMATIVA DA TAXA MÁXIMA DE CRESCIMENTO DO FRUTO DA LICHIA

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Otávio Moura do Nascimento Leandro de Moraes

INF 1771 Inteligência Artificial

Problema do vendedor: uma abordagem via algoritmos genéticos

Transcrição:

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora Autor: Adilmar Coelho Dantas 1, Orientador: Márcia Aparecida Fernandes 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade Federal do Uberlândia (UFU) Uberlândia MG Brasil adilmar@mestrado.ufu.br Nível: Mestrado Resumo. Este artigo apresenta um algoritmo genético baseado na teoria da evolução para resolver o problema de escalonamento de tarefas em máquinas paralelas idênticas. O problema consiste em determinar a ordem de processamento das tarefas nas máquinas, minimizando o tempo máximo de finalização do processamento (makespan). O objetivo do algoritmo genético é determinar uma aproximação do conjunto de soluções eficientes. As técnicas de crossover, mutação e torneio foram utilizados com diferentes índices com o objetivo de avaliar o algoritmo. Palavras-Chave. Escalonamento de Tarefas, Algoritmo Genético, Inteligência Computacional. 1. Introdução e Motivação O problema de escalonamento de tarefas consiste em determinar a ordem de processamento das tarefas nas máquinas, minimizando o tempo máximo de finalização do processamento (makespan). É um problema de otimização combinatória bem conhecido pertencente à classe de problemas intratáveis (NP completo). Este Artigo tem como o objetivo o desenvolvimento de um algoritmo e a realização de testes a fim de verificar seu desempenho e assertividade em situações diversas com o objetivo de chegar a uma melhor configuração para o algoritmo genético proposto e compará-lo a resultados de outros trabalhos com essa mesma proposta. 2. Fundamentação Teórica Algoritmos genéticos usam modelos computacionais dos processos naturais de evolução como uma ferramenta para resolver problemas. Apesar de haver uma grande variedade de modelos computacionais propostos (CAMPELLO e MACULAN 1994), todos eles têm em comum o conceito de simulação da evolução das espécies através de seleção, mutação e reprodução, processos estes que dependem do desempenho dos indivíduos desta espécie dentro do ambiente. Os algoritmos evolucionários funcionam mantendo uma população de estruturas que evoluem de forma semelhante à evolução das espécies. A estas estruturas são aplicados os chamados operadores genéticos, como recombinação e mutação, entre outros (LINDEN 2012). Cada indivíduo recebe uma aptidão ou avaliação que é uma quantificação da sua qualidade como solução do problema em questão. Baseado nesta avaliação é que serão aplicados os operadores genéticos de forma a simular a sobrevivência do mais apto assim como na natureza (LUKE 2011).

Os operadores genéticos consistem em aproximações computacionais de fenômenos vistos na natureza, como a reprodução sexuada, a mutação genética, entre outros (WOODWARD e SWAN 2011). Algoritmos genéticos podem ser definidos como uma técnica de busca baseada nos processos biológicos e de evolução natural encontrados na natureza. Nos algoritmos genéticos populações de indivíduos são criadas e submetidas aos operadores genéticos conhecidos por seleção, crossover e mutação. Estes operadores avaliam a qualidade de cada indivíduo como critério para encontrar a solução do problema. É gerado um processo de evolução natural destes indivíduos, que eventualmente gerará um indivíduo que caracterizará uma boa solução (talvez até a melhor possível) para o problema (LUKE 2011). Assim como na seleção natural que não para de procurar outros indivíduos ainda melhores, mesmo que estes se destaquem no grupo, os algoritmos genéticos não ficarão estagnados simplesmente por terem encontrado um melhor indivíduo. A reprodução e a mutação são aplicadas em indivíduos selecionados dentro da população (LINDEN 2012). A seleção deve ser feita de modo que os indivíduos mais aptos sejam selecionados mais frequentemente do que aqueles menos aptos, de forma que as boas características daqueles passem a predominar dentro da população da solução. Um agendamento, ou escalonamento (Scheduling), pode ser entendido como uma forma de escalonar um conjunto de operações (processos) as quais envolvem planejamento, pois obedecem a múltiplas restrições. Para resolvê-lo é necessário obter as informações sobre as tarefas a serem executadas no sistema como a quantidade de processos, processadores dentre outros uma forma de representar essas informações de escalonamento entre dois processadores de estrutura paralela é o chamado Gauss 18 que pode ser observado na figura 1, que é um grafo direcionado composto de 18 tarefas. Figura 1. Grafo Gauss 18 Onde os círculos (nós) representam as tarefas, ao lado esquerdo de cada círculo pode se observar o tempo total de execução da tarefa. Os links entre esses nós representam a precedência. Não somente o grafo de Gauss foi utilizado neste artigo mas outros semelhantes para medir seu desempenho.

3. Contribuição do Trabalho O presente trabalho tem como objetivo validar é comparar os resultados obtidos com trabalhos semelhantes e além disso propor possíveis soluções utilizando algoritmos genéticos, para o problema de escalonamento de processos, um problema aplicado a diversas situações da vida real, como o escalonamento de processos da CPU, e na indústria em geral com a finalidade de reduzir custos, minimizar gastos dentre outros. 4. Estado atual do Trabalho Para a construção desse algoritmo a população inicial e gerada de forma aleatória para garantir que todos estes indivíduos sejam válidos, onde um indivíduo não válido se caracteriza pelo fato de estar alocado antes de outra da qual é uma dependente no mesmo processador. Muitas das vezes os indivíduos gerados podem não ser válidos, necessitando assim de uma função de correção para melhores resultados, a qual foi implementada com a finalidade de manter a aleatoriedade e diversidade da população. O método de avaliação de indivíduos em algoritmos genéticos tem como objetivo verificar o seu percentual positivo de cada indivíduo da população. Para o problema de escalonamento, o algoritmo contabiliza as unidades de tempo necessárias para que todas as tarefas sejam realizadas, seguindo a alocação de precedência de cada uma delas. Então, o melhor indivíduo será aquele que levar menos tempo de execução dentre os demais na população. Após essa avaliação da população corrente, passa-se para a etapa de seleção, para este algoritmo foi implementado o método de seleção denominado torneio simples para determinar quais indivíduos passaram seus materiais genéticos para as próximas gerações. Nesta etapa sorteia-se dois indivíduos de forma aleatória é feita então a verificação de quais dos dois possui melhor aptidão, neste caso o menor tempo, formando assim pares de indivíduos pais que darão origem a novas gerações para a população. Uma dupla vencedora de cada torneio dará origem a dois filhos através do crossover, onde se escolhe um ponto no qual é feito a troca de material genético entre esses indivíduos. Após o crossover alguns destes filhos são submetidos a mutação assim como pode ocorrer na natureza, para isso se utilizou da permutação simples que evita que tarefas repetidas façam parte do cromossomo. É sorteado dois pontos e feita a troca dessas tarefas sem interferir nos processadores, a figura 2 ilustra esse processo. Figura 2. Processo de Mutação Na etapa final, os melhores indivíduos de cada iteração são selecionados para formarem uma nova população para nova interação, e novamente para o processo de seleção, crossover e mutação. Cada uma dessas iterações é chamada de geração tendo como critério de parada quando se alcança o número máximo (Nger) especificado na implementação. A figura 3 demostra todo o processamento decorrente do algoritmo genético, desde sua execução até a sua convergência final ilustrando todas as etapas citadas acima. Os AG possuem

natureza probabilística, sendo necessário diversas execuções do mesmo para garantir maior confiabilidade dos resultados. Figura 3. Ciclo de um AG 5. Análise de Resultados Foi implementado em Scala um ambiente baseado no algoritmo genético como descrito anteriormente para encontrar uma melhor configuração para o grafo Gauss 18, estes testes realizados levaram em consideração as seguintes combinações das configurações Tpop = Tamanho da população, Nger = Número de gerações e Tour = Tamanho do método de seleção do torneio, para todas as combinações foi utilizado taxa de mutação de 30% e 60% de crossover, e dois processadores em paralelo. As combinações foram executadas 20 vezes cada uma delas, totalizando assim 540 execuções para se encontrar uma melhor combinação, para este trabalho foi levado em consideração o tempo de execução também para cada combinação. Uma das dificuldades de reproduzir os trabalhos relacionados foi primeiramente no sorteio de indivíduos, onde nos primeiros realizados que descartaram os indivíduos considerados não aptos, foi perceptível o aumento no tempo de execução do algoritmo uma vez que ele deveria sortear um novo individuo toda vez que encontrasse um não válido. Para resolver este impasse, fizemos o sorteio cíclico, que varre a estrutura e a reoganiza de modo que ela se torne compatível. A função de avaliação durante os primeiros testes foi realizada de forma incorreta o que acabou provocando uma convergência prematura ou seja quando um conjunto de bons indivíduos e mantido ao longo das gerações seguintes. Sanada essas dificuldades com as devidas correções no algoritmo, reproduziu-se os testes realizados no artigo obtendo assim para o grafo Gauss 18 a seguinte melhor configuração de número 10 com Tpop = 100, Nger= 200 e Tour = 2 pois estamos levando em consideração o tempo de execução, estes resultados podem ser observados na tabela 1. Após a geração da tabela de resultados fizemos uma comparação com os artigos e foi verificado o mesmo resultado na combinação nos demais campos houve variações mas são aceitavéis pelo fato das particularidades do AG e por sua natureza estatística. Ambas combinações foram executadas 20 vezes, somando um total de 540 execuções de 27 combinações para o grafo Gauss 18. Pela tabela 1 pode-se observar que a combinação 22 poderia ser uma boa opção, mas ela requer o dobro de população e muito mais tempo de execução, o que não nos levou à escolhermos como a melhor combinação para este algoritmo proposto.

Combinação Tpop Nger Tour Convergência Média 1 50 200 2 2 52,35 2 50 200 3 2 58,82 3 50 200 4 2 62,94 4 50 300 2 6 52,35 5 50 300 3 3 58,82 6 50 300 4 2 62,64 7 50 500 2 7 52,35 8 50 500 3 2 60,00 9 50 500 4 3 63,82 10 100 200 2 11 44,11 11 100 200 3 5 57,05 12 100 200 4 4 62,05 13 100 300 2 7 49,11 14 100 300 3 2 58,52 15 100 300 4 3 59,99 16 100 500 2 10 51,47 17 100 500 3 3 57,94 18 100 500 4 4 60,29 29 200 200 2 9 57,94 20 200 200 3 5 54,99 21 200 200 4 3 59,41 22 200 300 2 13 51,94 23 200 300 3 2 55,00 24 200 300 4 2 59,11 25 200 500 2 12 57,64 26 200 500 3 2 54,11 27 200 500 4 16 59,99 Tabela 1. Resultados AG: Gauss 18 As combinações foram executadas em um computador com processador Quad Core 3.33 GHZ e 4 GB de memória RAM. Na figura 4 temos os resultados de convergência agrupados por tamanho da população, número de gerações e torneio para o Gauss 18, somando-se as convergências obtidas para cada grupo. Para avaliar o AG, esse mesmo teste foi refeito, porém com variações nas taxas de crossover e de mutação. Os testes demostraram que com baixas populações ocorrem poucas convergências ou nenhuma, e novamente a combinação 10 a mesma proposta para o Gauss 18 foi escolhida como a melhor. Os melhores resultados obtidos para essas variações realizadas nas taxas de mutações e crossover estão apresentados na tabela 2 separados pelas combinações. Combinação Taxa-mutação Taxa-crossover Convergência-melhor Média 1 10% 20% 6 48,70 2 20% 40% 7 50,29 3 30% 80% 9 55,29 Tabela 2. Resultados AG: Gauss 18

Os resultados demostram que muitas das vezes é necessário executar o algoritmo genético com diversas combinações para se alcançar uma melhor configuração ou a que atende melhor suas necessidades. Outra observação é que o tempo de execução do AG cresce de forma linear geralmente, conforme as alterações em populações e convergências. Dentre os testes realizados, uma boa opção observada seria aumentar em 50 o tamanho da população mantendo as mesmas configurações para convergência e torneio, obtendo assim, uma taxa de convergência de 15 em 47 unidades de tempo. Figura 4. Resultados agrapados para o Gauss 18 6. Testes para o grafo P11A O mesmo algoritmo foi executado para um grafo de 11 tarefas que chamamos de P11A cujas os (V) vertices e arestas (E) dos grafos estão representados na tabela 3, os resultados do mesmo foi comparado com o artigo, onde obtivemos 19 de convergência para o mesmo e média de 39,50 ambos bem próximo com os obtidos nos artigos o qual obteve 20 para convergência e 40,00 de média. Grafo V E G11 (0,8),(1,4),(2,4), (0,1,8),(0,2,12),(1,3,12),(1,4,12) (3,4),(4,4),(5,4), (2,5,8),(2,6,12),(3,7,8),(4,7,8), (6,6),(7,3),(8,3), (4,8,8),(5,8,8),(5,9,8),(6,9,8), (9,3),(10,3) (7,10,12),(8,10,8),(9,10,12) Tabela 3. Grafo de 11 tarefas utilizado A tabela 4 demonstra estes resultados claramente, o algoritmo foi executado 20 vezes para cada combinação, com taxas de mutação de 30% e 60% de crossover assim como aplicado para o grafo Gauss 18 apresentado anteriormente.

Combinação Tpop Nger Tour Convergência Média 1 50 200 2 3 33,35 2 50 200 3 3 38,82 3 50 200 4 4 32,94 4 50 300 2 5 31,35 5 50 300 3 4 31,82 6 50 300 4 3 37,64 7 50 500 2 5 32,35 8 50 500 3 6 33,00 9 50 500 4 8 37,82 10 100 200 2 19 39,50 11 100 200 3 11 47,05 12 100 200 4 13 42,05 13 100 300 2 14 49,11 14 100 300 3 12 48,52 15 100 300 4 13 49,99 16 100 500 2 17 53,47 17 100 500 3 13 57,94 18 100 500 4 14 58,29 29 200 200 2 16 57,94 20 200 200 3 14 57,99 21 200 200 4 11 59,41 22 200 300 2 18 58,94 23 200 300 3 13 59,00 24 200 300 4 13 59,11 25 200 500 2 12 57,64 26 200 500 3 12 57,11 27 200 500 4 16 61,99 Tabela 4. Resultados AG: Grafo P11A 7. Trabalhos Relacionados Existem diversos trabalhos com a mesma temática proposta neste trabalho, pelo fato do problema ser NP completo a busca por algoritmos mais eficientes é grande além das técnicas aqui proposta de algoritmos genéticos esses trabalhos apresentam também, autômatos celulares, algoritmos aproximados, algoritmos gulosos dentre outras técnicas. O desenvolvimento deste trabalho utilizou como base dois trabalhos sobre o mesmo assunto, são eles (HELDER & JAQUELINA & PAULO & GINA) e (JAQUELINE & HELDER & GINA ). O primeiro faz uma comparação entre algoritmos genéticos e outros algoritmos enquanto o segundo usado para comparação de resultados principalmente, tem como objetivo encontrar e propor uma melhor configuração para o AG proposto. Os resultados foram diretamente comparados com o trabalho citado com objetivo de obter os resultados mais próximos possíveis, apesar dos trabalhos serem mais abrangentes fazendo comparações com outras técnicas para a solução de escalonamento de tarefas, o artigo proposto tem as mesmas finalidades e bons resultados.

8. Referências Campello, R. E. and Maculan, N. (1994). Universitária. Algorítmo e Heurísticas, EDUFF - Editora Linden, R. (2012). Algoritmos Genéticos (2a edição), BRASPORT. Luke, S. (2011). Essentials of Metaheuristics. Department of Computer Science, George Mason University, Lulu. Woodward, J. R. and Swan, J. (2011). Automatically designing selection heuristics. Proceedings of the 13th annual conference companion on Genetic and evolutionary computation. Dublin, Ireland, ACM: 583-590. PAPINI, J. A. J.; LINHARES, H. R. G. Escalonamento de Tarefas em Multiprocessadores Baseados em Algoritmos Genéticos. [S.l.].