List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Grafos eulerianos 1.
Algoritmo de Caminho Mínimo
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos.
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Python: Recursão Claudio Esperança.
Geometria Computacional Fecho Convexo II
Fluxo em Redes Prof. Ricardo R. Santos.
Método Simplex Resolução Algébrica
Estruturas de Dados Marcio Gonçalves.
Análise de Voz e Vídeo Reconhecimento de voz baseado em modelos de palavras conectadas André Vitor de Almeida Palhares.
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Exercício Exercício. Considere um algoritmo sequencial que busca um elemento em uma lista não ordenada a) Qual é a complexidade de tempo deste algoritmo.
Exercícios PAA- Grafos
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Exercícios PAA- Grafos
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Métodos para representação de estruturas hierárquicas
Meta - heurísticas Prof. Aurora
GRASP Greedy Randomized Adaptative Search Procedure
Capítulo 4: Estado Global
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
Árvore Geradora de Peso Mínimo
A FAST APRIORI implementation
Classificação e Pesquisa de Dados
Carolina Fonseca Neumar Ribeiro
Métodos de Classificação por Seleção: HeapSort
List Ranking: Um Estudo Experimental
Campus de Caraguatatuba
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Informática Teórica Engenharia da Computação
Meta - heurísticas Prof. Aurora
Baseado em: The Algorithm Design Manual Steven S. Skiena
Diagrama de Atividades
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Teoria dos Grafos Definições e Terminologia
Paradigma de Divisão e Conquista
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Exercícios PAA- Grafos
Linguagem de Programação II Parte IX
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Histórico, exemplos e problemas
Operações com grafos União Exemplo
Tópicos em redes e sistemas distribuídos
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Busca com informação e exploração
Algoritmos Gulosos em Grafos
Conceitos básicos em grafos
SISTEMAS OPERACIONAIS I
Técnicas de Replicação
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Busca Combinatorial e Métodos de Heurística
Estruturas de Dados Aula 15: Árvores
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Disciplina Análise de Algoritmos Bacharelado em CC
Programação Dinâmica.
Algoritmos FPT para o Problema da k-Cobertura por Vértices
Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Grafos Anjolina Grisi de Oliveira 2005
Aula Prática 12 Listas Encadeadas Monitoria
Estrutura de Dados Aula 3 - Listas
Transcrição da apresentação:

List Ranking

List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da lista L, s[u]=u. A distância entre i e j, d L (i,j), é o número de nós entre i e j mais 1. O problema do list ranking consiste em computar para cada i L, a distância entre i e j, denotado rank L (i)=d L (i,j).

List Ranking (2) O número de nós da lista cujos sucessores não estão armazenados no mesmo processador pode variar de 0 a n/p. Mesmo se todos os sucessores estiverem em um dado processador, após uma aplicação de duplicação recursiva (pointer jumping), não há garantia que isto ainda ocorra nos passos seguintes.

List Ranking (3) 0123

List Ranking (4) O número de rodadas de comunicação pode chegar a O(log n), uma vez que pode ser necessária uma comunicação para obter o sucessor de um de seus elementos. A simples aplicação de duplicação recursiva não leva a um algoritmo CGM eficiente.

List Ranking (5) Selecionar um conjunto de elementos i* L, bem distribuídos em L, de tal forma que a distância de qualquer i L a i* possa ser computada em O(log k p) aplicações de pointer jumping. r-ruling set

Um r-ruling set de L é um subconjunto de elementos selecionados da lista L com as seguintes propriedades: 1. Dois vizinhos nunca são selecionados. 2. A distância entre qualquer elemento não selecionado ao próximo elemento não selecionado é no máximo r.

Estratégia (1) Computar um O(p²)-ruling set R com |R|=O(n/p) e difundir R para todos os processadores. O subconjunto R é representado por uma lista ligada onde cada elemento i é atribuído um ponteiro para o próximo elemento j de R com respeito à ordem induzida por L.

Estratégia (2) Todo processador efetua seqüencialmente o lista ranking de R, computando para cada i R sua distância ao último elemento da lista.

Estratégia (3) A distância dos demais elementos da lista é obtida através da duplicação recursiva até que um elemento de R seja alcançado. Todos os outro elementos da lista têm no máximo a distância O(p²) do próximo elemento de R na lista.

Compressão determinística de listas (1) Uma compressão determinística de listas é composta de uma seqüência alternada de fases de compressão e de concatenação. Na fase de compressão, seleciona-se um subconjunto de elementos da lista L,utilizando um esquema de rotulação (deterministic coin tossing).

Compressão determinística de listas (2) A fase de concatenação consiste da construção de uma lista ligada, através da duplicação recursiva, com os elementos selecionados na fase de compressão.

Compressão determinística de listas (3) O rótulo l(i), i L, na fase de compressão é o número do processador p que armazena o nó i. Neste esquema, cada elemento de L tem no máximo p rótulos distintos. Seja M={i, i+1,...,i+k} L, tal que l(i) l(s([i]), i L, onde s[i] é um máximo local se l(i) l(s[s[i]]).

Compressão determinística de listas (4) Selecionando apenas máximos locais não há garantia de distância menor que O(p). Pode haver L={j,j+1,..., j+k} L, onde l(s[j])=l(j), j L e k>p. Selecionamos todos os segundos elementos.

Algoritmo p-ruling set Entrada: L representada pelo vetor s. Saída: R L de nós selecionados. 1. para i=pj*(n/p)+1 até (pj+1)*(n/p) faça 1. sel[i] não selecionado 2. para i=pj*(n/p)+1 até (pj+1)*(n/p) faça 1. se l(i) l(s[s[i]]) então sel(s[i]) selecionado 2. se l(i)=l(s[i]) então 1. se l(s[i])=l(s[s[i]]) então sel(s[i]) selecionado 2. caso contrário se l(s[i]) > l(s[s[i]]) então sel(i) selecionado

Algoritmo p-ruling set - comentários O algoritmo computa um O(p)-ruling set R Se os n/p elementos da lista L em cada processador tiverem rótulo j, serão selecionados n/2 elementos. |R| = O(n) O algoritmo deve ser executado log p vezes.

Exemplo

p²-ruling set É necessário desmarcar elementos que foram selecionados. Constrói-se uma nova lista ligada com os elementos selecionados e aplica-se novamente o procedimento de marcação.

Algoritmo p²-ruling set Entrada: L representada pelo vetor s e LC uma cópia de L. Saída: R L de nós selecionados e |R|=O(n/p). 1. para k=1 até log p faça 1. R p-ruling set(LC) 2. LC R

Algoritmo p²-ruling set - desempenho Teorema O Algoritmo computa um p²-ruling set R, onde |R|=O(n/p) usando O(log² p) rodadas de comunicação e O(n/p) computação local por rodada.

p²-ruling set Diminuir o número de elementos selecionados na obtenção do p-ruling set. Se dois elementos selecionados estão a uma distância (p), então não é necessário aplicar novamente a compressão para reduzir o número de elementos selecionados.

p²-ruling set Somente aplicaremos duplicação recursiva entre dois passos consecutivos de compressão. Esta duplicação recursiva não será aplicada aos elementos da lista que estão apontando para elementos selecionados.

Algoritmo p²-ruling set Entrada: L representada pelo vetor s e LC uma cópia de L. Saída: R L de nós selecionados e |R|=O(n/p). 1. R p-Ruling set (LC)

2. para k=1 até log p faça 1. para todo i L em paralelo faça 1. se s[i] = não selecionado então s[i] s[s[i]] 2. para todo i L em paralelo faça 1. Se (i, s[i] e s[s[i]]) são selecionados E NÃO ( (l(i) l(s[s[i]])) E (l(i) l(s[i])) E (l(s[i]) l(s[s[i]]))) então s[i] não selecionado

3. Sequencialmente, cada processador processa as sublistas de elementos subseqüentes que estão armazenados no mesmo processador. Para cada sublista, marque todo segundo elemento como não selecionado. Se uma das sublistas possui apenas dois elementos, marque ambos elementos como não selecionados. 3. Selecione o último elemento.

Tempo Lema 1 Após a k-ésima iteração no Passo 2, não existem mais que dois elementos selecionados entre quaisquer 2 k elementos subseqüentes.

Lema 2 Após cada execução do Passo 2.3, a distância de dois elementos subseqüentes selecionados, com respeito aos ponteiros atuais (representado pelo vetor s), é no máximo O(p).

Lema 3 Após a k-ésima iteração do Passo 2.3, dois elementos subseqüentes com respeito aos ponteiros originais (representado pelo vetor s) têm distância O(2 k ) com respeito à lista original L.

Lema 4 Quaisquer dois elementos subseqüentes selecionados não distam um do outro mais que O(p²) com respeito à lista original L.

Teorema O problema de list ranking para uma lista L com n vértices pode ser resolvido no modelo CGM com p processadores e O(n/p) memória local por processador usando O(log p) rodadas de comunicação e O(n/p) computação local por rodada.

List Ranking - PRAM

List Ranking - CGM