SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Modelo de Algoritmo Genético para o Escalonamento de Tarefas 
em uma Arquitetura Multiprocessadora 
Autor: Adilmar Coelho Dantas1, 
Orientador: Márcia Aparecida Fernandes1 
1Programa 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ên-ticas. 
O problema consiste em determinar a ordem de processamento das tarefas nas 
máquinas, minimizando o tempo máximo de finalização do processamento (makes-pan). 
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 Com-putacional. 
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 (ma-kespan). 
É 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, pro-cessos 
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 quali-dade 
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 vis-tos 
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 pro-cessos 
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 eventu-almente 
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 melho-res, 
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 popu-laçã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 caracte-rí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 obe-decem 
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 es-trutura 
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ên-cia. 
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 veri-ficar 
o seu percentual positivo de cada indivíduo da população. Para o problema de escalona-mento, 
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 anteri-ormente 
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 po-pulaçã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 dois processadores em paralelo. 
As combinações foram executadas 20 vezes cada uma delas, totalizando assim 540 exe-cuções 
para se encontrar uma melhor combinação, para este trabalho foi levado emconsideração 
o tempo de execução também para cada combinação. 
Uma das dificuldades de reproduzir os trabalhos relacionados foi primeiramente no sor-teio 
de indivíduos, onde testes que descartaram os considerados não aptos. Foi perceptível o 
aumento no tempo de execução do algoritmo uma vez que ele deveria sortear um novo indíviduo 
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 outra grande dificuldade encontrada, pois se não for realizada 
corretamente pode provocar uma convergência prematura e em algumas execuções iniciais pro-vocou 
elitismo no algoritmo isso é, quando os melhores pontos encontrados são preservados na 
população por todas as gerações ou na maioria delas. 
Sanada essas dificuldades foi alcançado resultados próximos dos obtidos nos artigos e 
também a mesma configuração proposta. Estes resultados podem ser observados na tabela 1, 
a configuração 10 com Tpop = 100, Nger= 200 e Tour = 2 está selecionada como melhor 
configuração pois estamos levando em consideração o tempo de execução. 
Essas configurações foram testadas para outros grafos gerados aleatoriamente de 15 
atividades com a finalidade de testar e verificar quais as possíveis melhores configurações, em 
especifico para o grafo de Gauss 18 foi realizado testes com maior número de execuções e 
variações na população e mutação baseada na melhor configuração encontrada e analisar qual o 
seu comportamento. 
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.
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 
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 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 à es-colhermos 
como a melhor combinação para este algoritmo proposto. As combinações foram 
executadas em um computador com processador Quad Core 3.33 GHZ e 4 GB de memória 
RAM. Abaixo na figura 4 temos os resultados de convergência agrupados para o Gauss 18. 
Para avaliar o AG, esse mesmo teste foi refeito, porém com taxa de crossover de 20% 
e 10% de mutação. Os testes demostraram que com baixas populações ocorrem poucas con-vergências 
ou nenhuma, e novamente a combinação 10 a mesma proposta para o Gauss 18 foi 
escolhida como a melhor. 
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 confi-guraçõ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 
O mesmo algoritmo foi executado para um grafo de 11 tarefas que chamamos de G11 
cujas os (V) vertices e arestas (E) dos grafos estão representados na tabela 2, 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 2. Grafo de 11 tarefas utilizado 
6. Trabalhos Relacionados 
Existem diversos trabalhos com a mesma temática proposta neste trabalho, pelo fato do pro-blema 
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, al-goritmos 
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 ob-ter 
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.
7. Referências 
Campello, R. E. and Maculan, N. (1994). Algorítmo e Heurísticas, EDUFF - Editora 
Universitária. 
Linden, R. (2012). Algoritmos Genéticos (2a edição), BRASPORT. 
Luke, S. (2011). Essentials of Metaheuristics. Department of Computer Science, Ge-orge 
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 computa-tion. 
Dublin, Ireland, ACM: 583-590. 
Jaqueline A. J. Papine, Helder R. G. Linhares, Gina M. B. De Oliveira. Escalonamento 
de Tarefas em Multiprocessadores Baseado em Algoritmos Genéticos . 
Jaqueline A. J. Papine, Helder R. G. Linhares, Paulo M. Vidica, Gina M. B. De Oliveira. 
Algoritmos genéticos e Branch and Bound aplicados ao escalonamento de tarefas em 
multiprocessadores.

Mais conteúdo relacionado

Semelhante a Modelo de Algoritmo Genético para Escalonamento de Tarefas

Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticosiaudesc
 
Inteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosInteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosRodrigo de Oliveira
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting ProfessionalMichel Alves
 
A cadeia de Markov na análise de convergência do algoritmo genético quando...
A cadeia de Markov na análise de convergência do algoritmo genético quando...A cadeia de Markov na análise de convergência do algoritmo genético quando...
A cadeia de Markov na análise de convergência do algoritmo genético quando...vcsouza
 
Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Joao Galdino Mello de Souza
 
A Complexidade Nos Sistemas
A Complexidade Nos SistemasA Complexidade Nos Sistemas
A Complexidade Nos Sistemasruippcunha
 
Aprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosAprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosDiego Negretto
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoOrlando Junior
 
Análise de um Processo de Extrusão Através do Controle Estatístico de Processo
Análise de um Processo de Extrusão Através do Controle Estatístico de ProcessoAnálise de um Processo de Extrusão Através do Controle Estatístico de Processo
Análise de um Processo de Extrusão Através do Controle Estatístico de ProcessoPaulo Saldanha
 
Algoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e EDAlgoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e EDLuiz Eduardo de Oliveira
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Tchelinux
 
Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...
Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...
Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...Ronaldo Murguero
 

Semelhante a Modelo de Algoritmo Genético para Escalonamento de Tarefas (20)

Pro model
Pro modelPro model
Pro model
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
 
Modelos de previsão de Ocorrências
Modelos de previsão de OcorrênciasModelos de previsão de Ocorrências
Modelos de previsão de Ocorrências
 
Inteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativosInteligência artificial para sistemas colaborativos
Inteligência artificial para sistemas colaborativos
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting Professional
 
Método AHP.PDF
Método AHP.PDFMétodo AHP.PDF
Método AHP.PDF
 
ENIA2005
ENIA2005ENIA2005
ENIA2005
 
A cadeia de Markov na análise de convergência do algoritmo genético quando...
A cadeia de Markov na análise de convergência do algoritmo genético quando...A cadeia de Markov na análise de convergência do algoritmo genético quando...
A cadeia de Markov na análise de convergência do algoritmo genético quando...
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
 
Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)Modelagem Analítica – Queueing Theory (Part I)
Modelagem Analítica – Queueing Theory (Part I)
 
A Complexidade Nos Sistemas
A Complexidade Nos SistemasA Complexidade Nos Sistemas
A Complexidade Nos Sistemas
 
Aprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosAprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de Dados
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação
 
Análise de um Processo de Extrusão Através do Controle Estatístico de Processo
Análise de um Processo de Extrusão Através do Controle Estatístico de ProcessoAnálise de um Processo de Extrusão Através do Controle Estatístico de Processo
Análise de um Processo de Extrusão Através do Controle Estatístico de Processo
 
Computacao
ComputacaoComputacao
Computacao
 
Algoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e EDAlgoritmos Evolucionários: Estudo comparativo AG e ED
Algoritmos Evolucionários: Estudo comparativo AG e ED
 
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
Data Mining e Machine Learning com Python - Mateus Grellert - Tchelinux Pelot...
 
Sld 1
Sld 1Sld 1
Sld 1
 
Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...
Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...
Um sistema de manutenção semiautomática de ontologias a partir do reconhecime...
 

Mais de Adilmar Dantas

APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...Adilmar Dantas
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1Adilmar Dantas
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and ConquerAdilmar Dantas
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Adilmar Dantas
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAdilmar Dantas
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesAdilmar Dantas
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoçõesAdilmar Dantas
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPAdilmar Dantas
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesAdilmar Dantas
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSAdilmar Dantas
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAdilmar Dantas
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufuAdilmar Dantas
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Adilmar Dantas
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de AlgoritmosAdilmar Dantas
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaAdilmar Dantas
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software WebAdilmar Dantas
 

Mais de Adilmar Dantas (20)

Querying nosql stores
Querying nosql storesQuerying nosql stores
Querying nosql stores
 
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and Conquer
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de Emoções
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de Emoções
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoções
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLP
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de Faces
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNA
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufu
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
Servidores Web
Servidores WebServidores Web
Servidores Web
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação Remota
 
Weblab TCC
Weblab TCCWeblab TCC
Weblab TCC
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software Web
 

Modelo de Algoritmo Genético para Escalonamento de Tarefas

  • 1. Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora Autor: Adilmar Coelho Dantas1, Orientador: Márcia Aparecida Fernandes1 1Programa 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ên-ticas. O problema consiste em determinar a ordem de processamento das tarefas nas máquinas, minimizando o tempo máximo de finalização do processamento (makes-pan). 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 Com-putacional. 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 (ma-kespan). É 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, pro-cessos 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 quali-dade 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).
  • 2. Os operadores genéticos consistem em aproximações computacionais de fenômenos vis-tos 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 pro-cessos 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 eventu-almente 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 melho-res, 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 popu-laçã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 caracte-rí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 obe-decem 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 es-trutura 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ên-cia. Não somente o grafo de Gauss foi utilizado neste artigo mas outros semelhantes para medir seu desempenho.
  • 3. 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 veri-ficar o seu percentual positivo de cada indivíduo da população. Para o problema de escalona-mento, 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
  • 4. 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 anteri-ormente 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 po-pulaçã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 dois processadores em paralelo. As combinações foram executadas 20 vezes cada uma delas, totalizando assim 540 exe-cuções para se encontrar uma melhor combinação, para este trabalho foi levado emconsideração o tempo de execução também para cada combinação. Uma das dificuldades de reproduzir os trabalhos relacionados foi primeiramente no sor-teio de indivíduos, onde testes que descartaram os considerados não aptos. Foi perceptível o aumento no tempo de execução do algoritmo uma vez que ele deveria sortear um novo indíviduo 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 outra grande dificuldade encontrada, pois se não for realizada corretamente pode provocar uma convergência prematura e em algumas execuções iniciais pro-vocou elitismo no algoritmo isso é, quando os melhores pontos encontrados são preservados na população por todas as gerações ou na maioria delas. Sanada essas dificuldades foi alcançado resultados próximos dos obtidos nos artigos e também a mesma configuração proposta. Estes resultados podem ser observados na tabela 1, a configuração 10 com Tpop = 100, Nger= 200 e Tour = 2 está selecionada como melhor configuração pois estamos levando em consideração o tempo de execução. Essas configurações foram testadas para outros grafos gerados aleatoriamente de 15 atividades com a finalidade de testar e verificar quais as possíveis melhores configurações, em especifico para o grafo de Gauss 18 foi realizado testes com maior número de execuções e variações na população e mutação baseada na melhor configuração encontrada e analisar qual o seu comportamento. 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.
  • 5. 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 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 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 à es-colhermos como a melhor combinação para este algoritmo proposto. As combinações foram executadas em um computador com processador Quad Core 3.33 GHZ e 4 GB de memória RAM. Abaixo na figura 4 temos os resultados de convergência agrupados para o Gauss 18. Para avaliar o AG, esse mesmo teste foi refeito, porém com taxa de crossover de 20% e 10% de mutação. Os testes demostraram que com baixas populações ocorrem poucas con-vergências ou nenhuma, e novamente a combinação 10 a mesma proposta para o Gauss 18 foi escolhida como a melhor. 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 confi-gurações para convergência e torneio, obtendo assim, uma taxa de convergência de 15 em 47 unidades de tempo.
  • 6. Figura 4. Resultados agrapados para o Gauss 18 O mesmo algoritmo foi executado para um grafo de 11 tarefas que chamamos de G11 cujas os (V) vertices e arestas (E) dos grafos estão representados na tabela 2, 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 2. Grafo de 11 tarefas utilizado 6. Trabalhos Relacionados Existem diversos trabalhos com a mesma temática proposta neste trabalho, pelo fato do pro-blema 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, al-goritmos 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 ob-ter 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.
  • 7. 7. Referências Campello, R. E. and Maculan, N. (1994). Algorítmo e Heurísticas, EDUFF - Editora Universitária. Linden, R. (2012). Algoritmos Genéticos (2a edição), BRASPORT. Luke, S. (2011). Essentials of Metaheuristics. Department of Computer Science, Ge-orge 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 computa-tion. Dublin, Ireland, ACM: 583-590. Jaqueline A. J. Papine, Helder R. G. Linhares, Gina M. B. De Oliveira. Escalonamento de Tarefas em Multiprocessadores Baseado em Algoritmos Genéticos . Jaqueline A. J. Papine, Helder R. G. Linhares, Paulo M. Vidica, Gina M. B. De Oliveira. Algoritmos genéticos e Branch and Bound aplicados ao escalonamento de tarefas em multiprocessadores.