Aumentando a eficiência de um algoritmo genético através da paralelização com OpenMP
Autor(a) principal: | |
---|---|
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_ |
1813274853119098880 |