são declaradas com template<class T> Permitem a utilização de uma classe Graph genérica para qualquer tipo de estrutura de dados Estruturas -Ordered Linked List -Double Linked List -Degenerate Double Linked List with Vector -Degenerate MinHeap -Degenerate MaxHeap -ConnectedComponent -GraphPath
ser instanciado como de qualquer tipo de estrutura de dados escolhida para representar o grafo Classe Graph Seguindo a ideia da primeira parte do trabalho...
do trabalho. Consiste de uma lista de adjacência. Implementamos por meio de um vetor de vetores estático. O vetor i contem Tuplas com os vizinhos do vértice i e os respectivos pesos das arestas que os ligam.
seu pai e um para cada um de seus dois filhos. “Degenerate MinHeap” (estrutura escolhida) ❏ Fila de prioridade para elementos de menor chave ❏ Todas as operações O(log2 n) ❏ Vetor auxiliar é mantido com os ponteiros de cada elemento, acessando-os em O(1) Pode adicionar, remover e editar elementos.
4 Grafo 5 dblp Memória Usada 212 KiB 10.5 MiB 3.2 mIb 11.7 MiB 11.9 MiB 89.5 MiB Tempo de Alocação 0.004s 0.224s 0.064s 0.256s 0.232s 2.240s Memória ocupada e tempo de alocaçao Execução de Dijkstra 10 vezes em todos os vértices Tempo de execução 0.000s 0.028s 0.040s 0.340s 0.808s 13.632s
Grafo 4 Grafo 5 dblp Memória 10 KiB 0.1 MiB 0.8 MiB 4.2 MiB 8.6 MiB 61.3 MiB Tempo 0.000s 0.008s 0.012s 0.084s 0.164s 1.592s Resultado 336 999 31947 216236 608677 1274200* *Notamos que, pelo fato da rede de colaboradores ser desconexa, esse resultado nos informa o peso da MST da componente conexa em que rodamos o grafo, e esse resultado se torna impreciso.
e Prim (http://www.growingwiththeweb.com/2014/06/fibonacci-heap.html) Inserção e Redução de chave em O(1) Remoção em O(logn) Dijkstra: O((m + n) logn) ---> O(m + nlogn) Computação Paralela - Open MP