Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP

Detalhes bibliográficos
Autor(a) principal: Gressler, Henrique de Oliveira
Data de Publicação: 2013
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UNIPAMPA
Texto Completo: http://dspace.unipampa.edu.br/jspui/handle/riu/1568
Resumo: Este trabalho propõe a implementação e paralelização de um Algoritmo Genético (AG) para resolver o Problema do Roteamento de Veículos (PRV). O PRV é um problema combinatório pertencente à classe dos NP-Completos. Em sua forma canônica, consiste em rotear veículos que possuem uma capacidade de transporte para determinado produto. Os veículos devem atender as cidades distribuídas em um mapa, que possuem certa demanda para o produto transportado. A solução do problema passa pela determinação de rotas que minimizem a distância total percorrida e, que atenda todas as demandas das cidades do mapa, sendo que cada cidade deve ser visitada apenas uma vez. Resolver problemas combinatórios deste tipo traz avanços em várias áreas do conhecimento, como a concepção de circuitos integrados e a realização de testes combinatórios aplicados aos protocolos de redes de computadores. O objetivo geral deste trabalho é implementar um AG capaz de encontrar bons resultados para o PRV em um tempo de computação razoável e, através da paralelização com OpenMP, obter resultados compatíveis com os encontrados pela versão sequencial e, melhores se executado pelo tempo da versão sequencial. Nesse sentido, foram testados os diversos parâmetros de um AG, com objetivo de determinar qual combinação dos mesmos conduz a melhores resultados. Nesta busca ficou evidenciado que a variação do tamanho da população e do número de evoluções influencia significativamente no tempo necessário para encontrar uma solução e também na qualidade desta solução. Baseado na implementação sequencial, foi desenvolvida uma versão paralela usando a Application Program Interface (API) OpenMP. A paralelização consistiu em encontrar regiões que pudessem ser executadas em paralelo e eleger as diretivas de paralelização baseado nas características de cada região. Também foram testadas várias combinações de políticas de escalonamento e granularidade, para determinar quais as mais eficientes. Os melhores speedups foram obtidos pela versão com 4 threads, mantendo a qualidade das soluções compatível com o encontrado pela versão sequencial. Executar a versão paralela com 4 threads pelo tempo da versão sequencial, permitiu avaliar um número de indivíduos aproximadamente 100% maior, possibilitando encontrar melhores soluções.
id UNIP_0790ed5ee1e2e503ba94b6fccc9b2495
oai_identifier_str oai:repositorio.unipampa.edu.br:riu/1568
network_acronym_str UNIP
network_name_str Repositório Institucional da UNIPAMPA
repository_id_str
spelling Cera, Márcia CristinaGressler, Henrique de Oliveira2017-06-05T16:33:08Z2017-06-05T16:33:08Z2013-03-04http://dspace.unipampa.edu.br/jspui/handle/riu/1568Este trabalho propõe a implementação e paralelização de um Algoritmo Genético (AG) para resolver o Problema do Roteamento de Veículos (PRV). O PRV é um problema combinatório pertencente à classe dos NP-Completos. Em sua forma canônica, consiste em rotear veículos que possuem uma capacidade de transporte para determinado produto. Os veículos devem atender as cidades distribuídas em um mapa, que possuem certa demanda para o produto transportado. A solução do problema passa pela determinação de rotas que minimizem a distância total percorrida e, que atenda todas as demandas das cidades do mapa, sendo que cada cidade deve ser visitada apenas uma vez. Resolver problemas combinatórios deste tipo traz avanços em várias áreas do conhecimento, como a concepção de circuitos integrados e a realização de testes combinatórios aplicados aos protocolos de redes de computadores. O objetivo geral deste trabalho é implementar um AG capaz de encontrar bons resultados para o PRV em um tempo de computação razoável e, através da paralelização com OpenMP, obter resultados compatíveis com os encontrados pela versão sequencial e, melhores se executado pelo tempo da versão sequencial. Nesse sentido, foram testados os diversos parâmetros de um AG, com objetivo de determinar qual combinação dos mesmos conduz a melhores resultados. Nesta busca ficou evidenciado que a variação do tamanho da população e do número de evoluções influencia significativamente no tempo necessário para encontrar uma solução e também na qualidade desta solução. Baseado na implementação sequencial, foi desenvolvida uma versão paralela usando a Application Program Interface (API) OpenMP. A paralelização consistiu em encontrar regiões que pudessem ser executadas em paralelo e eleger as diretivas de paralelização baseado nas características de cada região. Também foram testadas várias combinações de políticas de escalonamento e granularidade, para determinar quais as mais eficientes. Os melhores speedups foram obtidos pela versão com 4 threads, mantendo a qualidade das soluções compatível com o encontrado pela versão sequencial. Executar a versão paralela com 4 threads pelo tempo da versão sequencial, permitiu avaliar um número de indivíduos aproximadamente 100% maior, possibilitando encontrar melhores soluções.This work proposes the implementation and parallelization of a Genetic Algorithm (GA) to solve the VRP. The VRP is a combinatorial problem wich belongs to the class of NP-Complete. The VRP in its canonical form, consists to route vehicles that have a carrying capacity for a particular product. Vehicles must get to the cities distributed on a map, which have certain demand for the carried product. The solution to the problem is to identify routes that minimize the total distance traveled, and that meets all the demands of the cities on the map, and each city must be visited only once. Solving this kind of combinatorial problems brings advances in various areas of knowledge such as the design of integrated circuits and combinatorial testing protocols applied to computer networks. This work showed that the variation in population size and number of evolutions significantly influences the time needed to find a solution and also in the quality of this solution. Based on the sequential implementation, we developed a parallel version using the OpenMP API. The parallelization was consisted on finding areas that could be executed in parallel and electing parallelization policies based on the characteristics of each region. We also tested several combinations of scheduling policies and granularity to determine the most efficient for the application. The best speedups were obtained by the version with 4 threads, which when executed by sequential version time, allowed to evaluate a number of individuals approximately 100% greater, enabling the finding of better solutions.porUniversidade Federal do PampaCampus AlegreteAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessCNPQ::CIENCIAS EXATAS E DA TERRAComputer scienceGenetic algorithmsParallelizationOpenMPMeta-heuristicCiência da computaçãoAlgoritmos genéticosParalelizaçãoOpenMPMeta-heurísticaAumentando a eficiência de um algoritmo genético através da paralelização com OpenMPinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisapplication/pdfreponame:Repositório Institucional da UNIPAMPAinstname:Universidade Federal do Pampa (UNIPAMPA)instacron:UNIPAMPAORIGINALAumentando a eficiência de um algoritmo genético através da paralelização com OpenMP.pdfAumentando a eficiência de um algoritmo genético através da paralelização com OpenMP.pdfapplication/pdf2461656https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/1/Aumentando%20a%20efici%c3%aancia%20de%20um%20algoritmo%20gen%c3%a9tico%20atrav%c3%a9s%20da%20paraleliza%c3%a7%c3%a3o%20com%20OpenMP.pdfdbb23dee2129a5c150cce433e3691aaaMD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-81232https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/2/license_rdf66e71c371cc565284e70f40736c94386MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/3/license.txt8a4605be74aa9ea9d79846c1fba20a33MD53TEXTAumentando a eficiência de um algoritmo genético através da paralelização com OpenMP.pdf.txtAumentando a eficiência de um algoritmo genético através da paralelização com OpenMP.pdf.txtExtracted texttext/plain172448https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/4/Aumentando%20a%20efici%c3%aancia%20de%20um%20algoritmo%20gen%c3%a9tico%20atrav%c3%a9s%20da%20paraleliza%c3%a7%c3%a3o%20com%20OpenMP.pdf.txt830553b1d08102e6d08bed827bfd1219MD54riu/15682021-04-12 15:42:08.043oai:repositorio.unipampa.edu.br:riu/1568Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttp://dspace.unipampa.edu.br:8080/oai/requestsisbi@unipampa.edu.bropendoar:2021-04-12T18:42:08Repositório Institucional da UNIPAMPA - Universidade Federal do Pampa (UNIPAMPA)false
dc.title.pt_BR.fl_str_mv Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
title Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
spellingShingle Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
Gressler, Henrique de Oliveira
CNPQ::CIENCIAS EXATAS E DA TERRA
Computer science
Genetic algorithms
Parallelization
OpenMP
Meta-heuristic
Ciência da computação
Algoritmos genéticos
Paralelização
OpenMP
Meta-heurística
title_short Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
title_full Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
title_fullStr Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
title_full_unstemmed Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
title_sort Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
author Gressler, Henrique de Oliveira
author_facet Gressler, Henrique de Oliveira
author_role author
dc.contributor.advisor1.fl_str_mv Cera, Márcia Cristina
dc.contributor.author.fl_str_mv Gressler, Henrique de Oliveira
contributor_str_mv Cera, Márcia Cristina
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA
topic CNPQ::CIENCIAS EXATAS E DA TERRA
Computer science
Genetic algorithms
Parallelization
OpenMP
Meta-heuristic
Ciência da computação
Algoritmos genéticos
Paralelização
OpenMP
Meta-heurística
dc.subject.eng.fl_str_mv Computer science
Genetic algorithms
Parallelization
OpenMP
Meta-heuristic
dc.subject.por.fl_str_mv Ciência da computação
Algoritmos genéticos
Paralelização
OpenMP
Meta-heurística
description Este trabalho propõe a implementação e paralelização de um Algoritmo Genético (AG) para resolver o Problema do Roteamento de Veículos (PRV). O PRV é um problema combinatório pertencente à classe dos NP-Completos. Em sua forma canônica, consiste em rotear veículos que possuem uma capacidade de transporte para determinado produto. Os veículos devem atender as cidades distribuídas em um mapa, que possuem certa demanda para o produto transportado. A solução do problema passa pela determinação de rotas que minimizem a distância total percorrida e, que atenda todas as demandas das cidades do mapa, sendo que cada cidade deve ser visitada apenas uma vez. Resolver problemas combinatórios deste tipo traz avanços em várias áreas do conhecimento, como a concepção de circuitos integrados e a realização de testes combinatórios aplicados aos protocolos de redes de computadores. O objetivo geral deste trabalho é implementar um AG capaz de encontrar bons resultados para o PRV em um tempo de computação razoável e, através da paralelização com OpenMP, obter resultados compatíveis com os encontrados pela versão sequencial e, melhores se executado pelo tempo da versão sequencial. Nesse sentido, foram testados os diversos parâmetros de um AG, com objetivo de determinar qual combinação dos mesmos conduz a melhores resultados. Nesta busca ficou evidenciado que a variação do tamanho da população e do número de evoluções influencia significativamente no tempo necessário para encontrar uma solução e também na qualidade desta solução. Baseado na implementação sequencial, foi desenvolvida uma versão paralela usando a Application Program Interface (API) OpenMP. A paralelização consistiu em encontrar regiões que pudessem ser executadas em paralelo e eleger as diretivas de paralelização baseado nas características de cada região. Também foram testadas várias combinações de políticas de escalonamento e granularidade, para determinar quais as mais eficientes. Os melhores speedups foram obtidos pela versão com 4 threads, mantendo a qualidade das soluções compatível com o encontrado pela versão sequencial. Executar a versão paralela com 4 threads pelo tempo da versão sequencial, permitiu avaliar um número de indivíduos aproximadamente 100% maior, possibilitando encontrar melhores soluções.
publishDate 2013
dc.date.issued.fl_str_mv 2013-03-04
dc.date.accessioned.fl_str_mv 2017-06-05T16:33:08Z
dc.date.available.fl_str_mv 2017-06-05T16:33:08Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://dspace.unipampa.edu.br/jspui/handle/riu/1568
url http://dspace.unipampa.edu.br/jspui/handle/riu/1568
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal do Pampa
dc.publisher.department.fl_str_mv Campus Alegrete
publisher.none.fl_str_mv Universidade Federal do Pampa
dc.source.none.fl_str_mv reponame:Repositório Institucional da UNIPAMPA
instname:Universidade Federal do Pampa (UNIPAMPA)
instacron:UNIPAMPA
instname_str Universidade Federal do Pampa (UNIPAMPA)
instacron_str UNIPAMPA
institution UNIPAMPA
reponame_str Repositório Institucional da UNIPAMPA
collection Repositório Institucional da UNIPAMPA
bitstream.url.fl_str_mv https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/1/Aumentando%20a%20efici%c3%aancia%20de%20um%20algoritmo%20gen%c3%a9tico%20atrav%c3%a9s%20da%20paraleliza%c3%a7%c3%a3o%20com%20OpenMP.pdf
https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/2/license_rdf
https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/3/license.txt
https://repositorio.unipampa.edu.br/jspui/bitstream/riu/1568/4/Aumentando%20a%20efici%c3%aancia%20de%20um%20algoritmo%20gen%c3%a9tico%20atrav%c3%a9s%20da%20paraleliza%c3%a7%c3%a3o%20com%20OpenMP.pdf.txt
bitstream.checksum.fl_str_mv dbb23dee2129a5c150cce433e3691aaa
66e71c371cc565284e70f40736c94386
8a4605be74aa9ea9d79846c1fba20a33
830553b1d08102e6d08bed827bfd1219
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UNIPAMPA - Universidade Federal do Pampa (UNIPAMPA)
repository.mail.fl_str_mv sisbi@unipampa.edu.br
_version_ 1801849077809283072