An external memory algorithm for listing triangles

Detalhes bibliográficos
Autor(a) principal: Menegola, Bruno
Data de Publicação: 2010
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/26335
Resumo: Este trabalho propõe um novo algoritmo de memória externa para contagem e listagem de triângulos em grafos massivos. Outra grande contribuição é uma melhor análise do algoritmo de listagem de triângulos de memória externa proposto por Roman Dementiev [8]. Além disso, há uma revisão bibliográfica das soluções (tanto para memória interna, quanto para memória externa) para os problemas de busca, contagem e listagem de triângulos. Muitas aplicações atuais precisam processar uma quantidade imensa de dados. Lidar com esse problema é um desafio para a área de projeto de algoritmos. Algoritmos de memória externa, ou algoritmos I/O-eficientes, objetivam reduzir o número de leituras e escritas (I/Os) na mídia externa, tipicamente um disco rígido, pois o custo de um I/O para um dispositivo esterno é muito maior que um I/O realizado em memória interna. A mídia externa é utilizada para armazenar as informações que a memória principal, normalmente uma RAM (Random Access Memory), não consegue lidar por falta de espaço. Em grafos, Triângulos são conjuntos de 3 vértices tal que cada possível aresta entre eles está presente. Usualmente, o número ou a lista de triângulos em um grafo não é uma informação útil por si só. Entretanto ela pode ser utilizada para outros propósitos como o cálculo de propriedades do grafo, por exemplo, o coeficiente de clustering ou o coeficiente de transitividade; análise de redes complexas; busca de outros subgrafos especiais, por exemplo, em redes de interação entre proteínas; e também detecção de intrusão, de comunidades e de atividades de spam. Em um grafo com m arestas, a complexidade de I/O do algoritmo que propomos _e O(Scan(m3/2 )). Com o algoritmo proposto, é possível calcular o número de triângulos em um grafo com 800 milhões de arestas em pouco mais de 9 horas usando apenas 1.5GiB de memória principal.
id UFRGS-2_43623b0b351a71068a13588858cccd15
oai_identifier_str oai:www.lume.ufrgs.br:10183/26335
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Menegola, BrunoBuriol, Luciana SaleteRitt, Marcus Rolf Peter2010-10-14T04:19:18Z2010http://hdl.handle.net/10183/26335000757756Este trabalho propõe um novo algoritmo de memória externa para contagem e listagem de triângulos em grafos massivos. Outra grande contribuição é uma melhor análise do algoritmo de listagem de triângulos de memória externa proposto por Roman Dementiev [8]. Além disso, há uma revisão bibliográfica das soluções (tanto para memória interna, quanto para memória externa) para os problemas de busca, contagem e listagem de triângulos. Muitas aplicações atuais precisam processar uma quantidade imensa de dados. Lidar com esse problema é um desafio para a área de projeto de algoritmos. Algoritmos de memória externa, ou algoritmos I/O-eficientes, objetivam reduzir o número de leituras e escritas (I/Os) na mídia externa, tipicamente um disco rígido, pois o custo de um I/O para um dispositivo esterno é muito maior que um I/O realizado em memória interna. A mídia externa é utilizada para armazenar as informações que a memória principal, normalmente uma RAM (Random Access Memory), não consegue lidar por falta de espaço. Em grafos, Triângulos são conjuntos de 3 vértices tal que cada possível aresta entre eles está presente. Usualmente, o número ou a lista de triângulos em um grafo não é uma informação útil por si só. Entretanto ela pode ser utilizada para outros propósitos como o cálculo de propriedades do grafo, por exemplo, o coeficiente de clustering ou o coeficiente de transitividade; análise de redes complexas; busca de outros subgrafos especiais, por exemplo, em redes de interação entre proteínas; e também detecção de intrusão, de comunidades e de atividades de spam. Em um grafo com m arestas, a complexidade de I/O do algoritmo que propomos _e O(Scan(m3/2 )). Com o algoritmo proposto, é possível calcular o número de triângulos em um grafo com 800 milhões de arestas em pouco mais de 9 horas usando apenas 1.5GiB de memória principal.In this work, we propose a new external memory algorithm for counting and listing triangles in huge graphs. Another major contribution is a better analysis of the external memory algorithm for listing triangles proposed by Roman Dementiev [8]. Besides that, there is a review of solutions (in internal and external memory) for the problems of nding, counting and listing triangles. Many real world applications need to process a large amount of data. Dealing with massive data is a challenge for algorithm design. The goal for external memory algorithms, or I/O-e cient algorithms, is to reduce the number of reads and writes (I/Os) to external devices, typically a hard disk, wich has a huge cost per I/O when compared to another made for internal memory. The external device is used to store informations that the main memory, usually a RAM (Random Access Memory), can not deal because it lacks of space. In a graph, a triangle is a set of three vertices such that each possible edge between them is present. Usually, the number of triangles, for example, is not an useful information by itself. However, they can be used for other purposes like the calculation of graph properties, for example, the clustering coe cient and transitivity coe cient; analysis of complex networks; nding special subgraphs, for example, in protein interaction networks; and also intrusion detection, spamming or community detection. In a graph with m edges, the I/O complexity of our proposed algorithm is O(Scan(m 3/2)). With this algorithm is possible to count the number of triangles in a graph with 800 million edges in about 9 hours using only 1.5 GiB of main memory.application/pdfengGramatica : GrafosAlgoritmosAlgorithmsExternal memoryTrianglesTriangle problemsCounting trianglesListing trianglesAn external memory algorithm for listing trianglesUm algoritmo de memória externa para listagem de triângulos info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2010Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000757756.pdf000757756.pdfTexto completo (inglês)application/pdf564394http://www.lume.ufrgs.br/bitstream/10183/26335/1/000757756.pdf081be984b6a5242ad4024dcc2205fea5MD51TEXT000757756.pdf.txt000757756.pdf.txtExtracted Texttext/plain62821http://www.lume.ufrgs.br/bitstream/10183/26335/2/000757756.pdf.txt5e670a6c022366a382ae6cc75a4d730fMD52THUMBNAIL000757756.pdf.jpg000757756.pdf.jpgGenerated Thumbnailimage/jpeg984http://www.lume.ufrgs.br/bitstream/10183/26335/3/000757756.pdf.jpg65836c056f327214120b02b6f4919769MD5310183/263352021-05-07 05:09:03.572598oai:www.lume.ufrgs.br:10183/26335Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2021-05-07T08:09:03Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv An external memory algorithm for listing triangles
dc.title.alternative.en.fl_str_mv Um algoritmo de memória externa para listagem de triângulos
title An external memory algorithm for listing triangles
spellingShingle An external memory algorithm for listing triangles
Menegola, Bruno
Gramatica : Grafos
Algoritmos
Algorithms
External memory
Triangles
Triangle problems
Counting triangles
Listing triangles
title_short An external memory algorithm for listing triangles
title_full An external memory algorithm for listing triangles
title_fullStr An external memory algorithm for listing triangles
title_full_unstemmed An external memory algorithm for listing triangles
title_sort An external memory algorithm for listing triangles
author Menegola, Bruno
author_facet Menegola, Bruno
author_role author
dc.contributor.author.fl_str_mv Menegola, Bruno
dc.contributor.advisor1.fl_str_mv Buriol, Luciana Salete
dc.contributor.advisor-co1.fl_str_mv Ritt, Marcus Rolf Peter
contributor_str_mv Buriol, Luciana Salete
Ritt, Marcus Rolf Peter
dc.subject.por.fl_str_mv Gramatica : Grafos
Algoritmos
topic Gramatica : Grafos
Algoritmos
Algorithms
External memory
Triangles
Triangle problems
Counting triangles
Listing triangles
dc.subject.eng.fl_str_mv Algorithms
External memory
Triangles
Triangle problems
Counting triangles
Listing triangles
description Este trabalho propõe um novo algoritmo de memória externa para contagem e listagem de triângulos em grafos massivos. Outra grande contribuição é uma melhor análise do algoritmo de listagem de triângulos de memória externa proposto por Roman Dementiev [8]. Além disso, há uma revisão bibliográfica das soluções (tanto para memória interna, quanto para memória externa) para os problemas de busca, contagem e listagem de triângulos. Muitas aplicações atuais precisam processar uma quantidade imensa de dados. Lidar com esse problema é um desafio para a área de projeto de algoritmos. Algoritmos de memória externa, ou algoritmos I/O-eficientes, objetivam reduzir o número de leituras e escritas (I/Os) na mídia externa, tipicamente um disco rígido, pois o custo de um I/O para um dispositivo esterno é muito maior que um I/O realizado em memória interna. A mídia externa é utilizada para armazenar as informações que a memória principal, normalmente uma RAM (Random Access Memory), não consegue lidar por falta de espaço. Em grafos, Triângulos são conjuntos de 3 vértices tal que cada possível aresta entre eles está presente. Usualmente, o número ou a lista de triângulos em um grafo não é uma informação útil por si só. Entretanto ela pode ser utilizada para outros propósitos como o cálculo de propriedades do grafo, por exemplo, o coeficiente de clustering ou o coeficiente de transitividade; análise de redes complexas; busca de outros subgrafos especiais, por exemplo, em redes de interação entre proteínas; e também detecção de intrusão, de comunidades e de atividades de spam. Em um grafo com m arestas, a complexidade de I/O do algoritmo que propomos _e O(Scan(m3/2 )). Com o algoritmo proposto, é possível calcular o número de triângulos em um grafo com 800 milhões de arestas em pouco mais de 9 horas usando apenas 1.5GiB de memória principal.
publishDate 2010
dc.date.accessioned.fl_str_mv 2010-10-14T04:19:18Z
dc.date.issued.fl_str_mv 2010
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://hdl.handle.net/10183/26335
dc.identifier.nrb.pt_BR.fl_str_mv 000757756
url http://hdl.handle.net/10183/26335
identifier_str_mv 000757756
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/26335/1/000757756.pdf
http://www.lume.ufrgs.br/bitstream/10183/26335/2/000757756.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/26335/3/000757756.pdf.jpg
bitstream.checksum.fl_str_mv 081be984b6a5242ad4024dcc2205fea5
5e670a6c022366a382ae6cc75a4d730f
65836c056f327214120b02b6f4919769
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1815447049113436160