Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.

Slides:



Advertisements
Apresentações semelhantes
Grafos eulerianos 1.
Advertisements

Cortes (cut-sets)‏ 1.
Planaridade 1.
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
CC/EC/Mestrado Teoria dos Grafos Grafos Hamiltonianos.
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k Analogamente,
2010/1 Teoria dos Grafos (INF 5037/INF2781) Grafos Hamiltonianos.
Teoria dos Grafos – Aula 2
Teoria dos Grafos Loana Tito Nogueira.
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Grafos Introdução
Exercícios PAA- Grafos
Exercícios PAA- Grafos
Cortes (cut-sets)‏ 2010/2 Teoria dos Grafos (INF 5037/INF2781)‏ 1.
CC/EC/PPGI/UFES 2010/1 Teoria dos Grafos (INF 5037/INF2781) Conceitos Básicos.
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.
2010/1 Teoria dos Grafos (INF 5037/INF2781) Grafos eulerianos.
Conectividade e Separabilidade
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k.
Conceitos Básicos CC/EC/Mestrado Teoria dos Grafos.
Algumas classes especiais de grafo
Problema do Carteiro Chinês
Problemas de fluxo numa rede
CONCEITOS BÁSICOS DE GRAFOS
ESTRUTURA E REPRESENTAÇÃO
Teoria dos Grafos – Aula 6
Teoria dos Grafos – Aula 3 Árvores
2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Árvore Geradora de Peso Mínimo
Grafos - Definições Preliminares - Formas de Representação
Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
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.
Baseado em: The Algorithm Design Manual Steven S. Skiena
Algoritmos em Grafos.
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Teoria dos Grafos Definições e Terminologia
Teoria dos Grafos Planaridade
Exercícios PAA- Grafos
Algorítmos e estrutura de dados III
Histórico, exemplos e problemas
Operações com grafos União Exemplo
Análise e Síntese de Algoritmos
Conceitos básicos em grafos
ÁRVORES Def.: Um grafo é acíclico se não possui ciclos.
Algoritmo BSP/CGM para Euler tour em Grafos

Conexidade 1.
Msc. Daniele Carvalho Oliveira
Aula de Monitoria – Miniprova



Problema MST Método Genérico Guloso usando Estratégia do Corte
Mestrado em Informática
Exercícios de Fluxo em Redes
Celso C. Ribeiro Caroline T. Rocha
Grafos Anjolina Grisi de Oliveira 2005

Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)
Teoria de Grafos. Tudo começou no século XVIII, na cidade medieval de Königsberg, situada no leste europeu. Königsberg é banhada pelo rio Pregel, que.
Grafos eulerianos 1.
Transcrição da apresentaçã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 do Sul Departamento de Computação e Estatística “Tópicos em Algoritmos Paralelos e Distribuídos” Circuitos de Euler em Paralelo Claudia Nasu

Apresentação n Preliminares n Algoritmo n Um exemplo

Preliminares n Um circuito de Euler é um ciclo que passa por cada aresta do grafo exatamente uma vez. n Um grafo euleriano G pode ser decomposto em um conjunto de circuitos disjuntos em aresta C, chamado partição de Euler de G.

Algoritmo n Cáceres, Deo, Sastry e Szwarcfiter n Modelo: PRAM CREW n Complexidade: –Tempo: O(log 2 n) –Processadores: O(m/log m) n Pré-requisitos: –Ordenação inteira –List ranking ótimo

Algoritmo n Entrada: –Grafo dirigido G = (V,E), onde V={1,2,..., n}, euleriano. –Lista das arestas do grafo, armazenada no vetor EDGE de dimensão m = |E| n Saída: –um circuito euleriano de G, representado pelos vetores EDGE e SUC

n O algoritmo utiliza uma estrutura denominada suporte (strut). n O suporte é utilizado para identificar diretamente os vértices em que uma operação denominada costura (stitch) deve ser aplicada. n Esta operação une dois ou mais circuitos disjuntos em arestas, que passam por um determinado vértice, em um único circuito.

Algoritmo Passo 1: n Encontrar uma partição de Euler C para G: –Ordenar os vetores EDGE e SUC lexicograficamente. EDGE: (2,1) (8,1) (3,2) (4,2) (1,3) (5,3) (7,3) (3,4) (7,5) (3,6) (1,7) (2,7) (6,7) (7,8) SUC: (1,3) (1,7) (2,1) (2,7) (3,2) (3,4) (3,6) (4,2) (5,3) (6,7) (7,3) (7,5) (7,8) (8,1)

Algoritmo Exemplo:

Algoritmo Passo 2: n Construa um grafo bipartido H = (V 1, C’, E 1 ), tal que: –V 1  V um subconjunto formado por vértices que possuam mais que um circuito de C passando por ele. –C’ é o conjunto de vértices que possui um correspondência um-para-um com os circuitos de C. –E 1 as arestas conectam um vértice v i  V 1 com os vértices em C’ que correspondem a circuitos que passam por v i.

Algoritmo Passo 2: (1,3) (1,7) (2,7) H

Algoritmo Passo 3: n Rotular os vértices de H : –Seja v um vértice no subgrafo H’ de H. –d H’ (v) indica o grau de v em H’. –Ordene os vértices deV 1 em ordem não-crescente de seus graus e rotule como v 1, v 2,..., v |H’|.

Algoritmo Passo 3: (1,3) (1,7) (2,7) v1v1 v2v2 v3v3 v4v4 d(3) = 3 d(1) = 2 d(2) = 2 d(7) = 2 H’

Algoritmo Passo 4: n Defina um strut (suporte) em V 1 : –uma strut S é uma floresta geradora de H tal que a cada c’ i  C’ incide, em S, exatamente uma aresta de E 1, e (v i, c’ i ) é uma aresta de S somente se (v k, c’ i ) não for uma aresta de H, para qualquer v k  V 1, k < j.

Algoritmo Passo 4: (1,3) (1,7) (2,7) v1v1 v2v2 v3v3 v4v4 S d(3) = 3 d(1) = 0 d(2) = 0 d(7) = 0

Algoritmo Passo 4: –Um vértice v  V 1 é chamado de vértice zero-diferença em S se d H (v) - d S (v) = 0. –Defina S’ = S. Para cada vértice de V 1 não- zero-diferença em H, acrescente uma aresta de H em S’. –Defina d S’ (v) o grau de um vértice v em S’.

(1,3) (1,7) (2,7) v1v1 v2v2 v3v3 v4v4 d(3) = 3 d(1) = 1 d(2) = 1 d(7) = 1 S’ Algoritmo Passo 4:

–Construa o vetor STITCH que contém todas as arestas que devem ser “costuradas”. –Considere todas as arestas (v j, c’ k ) de S’ tal que d S’ (v j ) > 1: STITCH  arestas que entram em v j e pertencem ao circuito C k. STITCH = {(1,3), (7,3), (5,3)} Algoritmo Passo 4:

Algoritmo Passo 5: n Aplicar a operação stitch: for cada aresta em STITCH do in parallel SUC[STITCH[i]]  SUC[STITCH[(i + 1) mod k]] onde k é d S [STITCH[i].vertice2] n No exemplo temos: SUC[(1,3)]  SUC[(7,3)] SUC[(7,3)]  SUC[(5,3)] SUC[(5,3)]  SUC[(1,3)]

EDGE: (2,1) (8,1) (3,2) (4,2) (1,3) (5,3) (7,3) (3,4) (7,5) (3,6) (1,7) (2,7) (6,7) (7,8) SUC: (1,3) (1,7) (2,1) (2,7) (3,2) (3,4) (3,6) (4,2) (5,3) (6,7) (7,3) (7,5) (7,8) (8,1) Algoritmo Passo 5: (3,6)(3,2) (3,4)

Algoritmo Passo 5:

Algoritmo Passo 6: n Usando os vetores EDGE e SUC obtidos ao final do passo 5, aplicar os passos 2 a 5 até que um circuito de Euler para G seja encontrado.

Resultados n Seja H=(V 1, C’, E1) um grafo bipartido e S um suporte em V 1 para H. Seja H’ o grafo obtido, a partir de H, adicionando a S precisamente uma aresta de E 1 -S incidente em cada vértice não zero- diferença de V 1. H’ é acíclico. Além disso, se V 1 contém exatamente um vértice zero-diferença, então H’ é uma árvore geradora de H.

n O número de circuitos disjuntos em arestas restantes depois do passo 5 é, no máximo, o número de circuitos disjuntos em arestas na iteração anterior dividido por dois.

Complexidade n O algoritmo utiliza o modelo PRAM CREW e possui complexidade de tempo O(log 2 n) utilizando O(m/log m) processadores.