AULA 22. Algoritmos p.793/823
|
|
- Edite Eger Gusmão
- 6 Há anos
- Visualizações:
Transcrição
1 AULA 22 Algoritmos p.793/823
2 Conjuntos disjuntos dinâmicos CLR 22 CLRS 21 Algoritmos p.794/823
3 Conjuntos disjuntos Seja S = {S 1, S 2,..., S n } uma coleção de conjuntos disjuntos, ou seja, S i S j = para todo i j. Algoritmos p.795/823
4 Conjuntos disjuntos Seja S = {S 1, S 2,..., S n } uma coleção de conjuntos cements disjuntos, ou seja, S i S j = para todo i j. Exemplo de coleção disjunta de conjuntos: componentes conexos de um grafo a b e f h j G c d g i componentes = conjuntos disjuntos de vértices {a, b, c, d} {e, f, g} {h, i} {j} Algoritmos p.795/823
5 Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Algoritmos p.796/823
6 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta componentes {a} {b} {c} {d} {e} {f} {g} {h} {i} {j} Algoritmos p.796/823
7 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (b, d) componentes {a} {b, d} {c} {e} {f} {g} {h} {i} {j} Algoritmos p.796/823
8 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (e, g) componentes {a} {b, d} {c} {e, g} {f} {h} {i} {j} Algoritmos p.796/823
9 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (a, c) componentes {a, c} {b, d} {e, g} {f} {h} {i} {j} Algoritmos p.796/823
10 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (h, i) componentes {a, c} {b, d} {e, g} {f} {h, i} {j} Algoritmos p.796/823
11 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (a, b) componentes {a, b, c, d} {e, g} {f} {h, i} {j} Algoritmos p.796/823
12 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (e, f) componentes {a, b, c, d} {e, f, g} {h, i} {j} Algoritmos p.796/823
13 nts Coleção disjunta dinâmica Conjuntos são modificados ao longo do tempo Exemplo: grafo dinâmico a b e f h j G c d g i aresta (b, c) componentes {a, b, c, d} {e, g} {f} {h, i} {j} Algoritmos p.796/823
14 Operações básicas S coleção de conjuntos disjuntos. Cada conjunto tem um representante. MAKESET (x): UNION (x, y): FINDSET (x): x é elemento novo S S {x} x e y em conjuntos diferentes S S {S x, S y } {S x S y } x está em S x e y está em Sy devolve representante do conjunto que con Algoritmos p.797/823
15 Connected-Componets Recebe um grafo G e contrói uma representação dos componentes conexos. CONNECTED-COMPONENTS (G) 1 para cada vértice v de G faça 2 MAKESET (v) 3 para cada aresta (u, v) de G faça 4 se FINDSET (u) FINDSET (v) 5 então UNION (u, v) Algoritmos p.798/823
16 Consumo de tempo n := número de vértices do grafo m := número de arestas do grafo linha consumo de todas as execuções da linha 1 = Θ(n) 2 = n consumo de tempo MAKESET 3 = Θ(m) 4 = 2m consumo de tempo FINDSET 5 n consumo de tempo UNION total Θ(n + m) + n consumo de tempo MAKESET +2m consumo de tempo FINDSET +n consumo de tempo UNION Algoritmos p.799/823
17 Same-Component Decide se u e v estão no mesmo componente: SAME-COMPONENT (u, v) 1 se FINDSET (u) = FINDSET (v) 2 então devolva SIM 3 senão devolva NÃO Algoritmos p.800/823
18 Algoritmo de Kruskal Encontra uma árvore geradora mínima (CLRS 23). MST-KRUSKAL (G, w) G conexo 1 A 2 para cada vértice v faça 3 MAKESET (v) 4 coloque arestas em ordem crescente de w 5 para cada aresta uv em ordem crescente de w faça 6 se FINDSET (u) FINDSET (v) 7 então A A {uv} 8 UNION (u, v) 9 devolva A Avô de todos os algoritmos gulosos. Algoritmos p.801/823
19 Conjuntos disjuntos dinâmicos Seqüência de operações MAKESET, UNION, FINDSET M M M U F U U F U F F F U F } {{ } } n {{ } m Que estrutura de dados usar? Compromissos (trade-off s) Algoritmos p.802/823
20 lacements G Estrutura lista ligada b d a c h i j e g f cada conjunto tem um representante (início da lista) cada nó x tem um campo repr repr[x] é o representante do conjunto que contém x Algoritmos p.803/823
21 G Estrutura lista ligada h i j b d a c e g f UNION (a, e) : atualiza apontador para o representante. Algoritmos p.804/823
22 Consumo de tempo Operação número de objetos atualizados MAKESET(x 1 ) 1 MAKESET(x 2 ) 1. 1 MAKESET(x n ) 1 UNION(x 1, x 2 ) 1 UNION(x 2, x 3 ) 2.. UNION(x n 1, x n ) n 1 total = Θ(n 2 ) = Θ(m 2 ) Algoritmos p.805/823
23 Consumo de tempo MAKESET UNION FINDSET Θ(1) O(n) Θ(1) Uma seqüência de m operações pode consume tempo Θ(m 2 ) no pior caso. Consumo de tempo amortizado de cada operação é O(m). Algoritmos p.806/823
24 Melhoramento: weighted-union h i j b d a c e g f cada representante armazena o comprimento da lista a lista menor é concatenada com a maior Cada objeto x é atualizado lg n: cada vez que x é atualizado o tamanho da lista dobra. Algoritmos p.807/823
25 Conclusão Se conjuntos disjuntos são representados através de listas ligadas e weighted-union é utilizada, então uma seqüência de m operações MAKESET, UNION e FINDSET, sendo que n são MAKESET, consome tempo O(m + n lg n). Algoritmos p.808/823
26 Estrutura disjoint-set forest a b e f h j G c d g i cada conjunto tem uma raiz, que é o seu representate cada nó x tem um pai pai[x] = x se e só se x é uma raiz Algoritmos p.809/823
27 Estrutura disjoint-set forest b e h j a d g f i c cada conjunto tem uma raiz cada nó x tem um pai pai[x] = x se e só se x é uma raiz Algoritmos p.809/823
28 MakeSet 0 e FindSet 0 b e h j a d g f i c MAKESET 0 (x) 1 pai[x] x FINDSET 0 (x) 1 enquanto pai[x] x faça 2 x pai[x] 3 devolva x Algoritmos p.810/823
29 FindSet 1 b e h j a d g f i c FINDSET 1 (x) 1 se pai[x] = x 2 então devolva x 3 senão devolva FINDSET 1 (pai[x]) Algoritmos p.811/823
30 Union 0 b e h j a d g f i c UNION 0 (x, y) 1 x FINDSET 0 (x) 2 y FINDSET 0 (y) 3 pai[y ] x Algoritmos p.812/823
31 Union 0 b x UNION 0 (a, f) h j a d e y i c g f UNION 0 (x, y) 1 x FINDSET 0 (x) 2 y FINDSET 0 (y) 3 pai[y ] x Algoritmos p.812/823
32 Union 0 b x UNION 0 (a, f) h j a d e y i c g f UNION 0 (x, y) 1 x FINDSET 0 (x) 2 y FINDSET 0 (y) 3 pai[y ] x Algoritmos p.812/823
33 MakeSet 0, Union 0 e FindSet 1 MAKESET 0 (x) 1 pai[x] x UNION 0 (x, y) 1 x FINDSET 0 (x) 2 y FINDSET 0 (y) 3 pai[y ] x FINDSET 1 (x) 1 se pai[x] = x 2 então devolva x 3 senão devolva FINDSET 1 (pai[x]) Algoritmos p.813/823
34 Consumo de tempo MAKESET 0 UNION 0 FINDSET 0 Θ(1) O(n) O(n) M M M U F U U F U F F F U F } {{ } } n {{ } m Custo total da seqüência: n Θ(1) + n O(n) + m O(n) = O(mn) Algoritmos p.814/823
35 ments Melhoramento 1: union by rank 2 x 1 y rank[x] = posto do nó x MAKESET (x) 1 pai[x] x 2 rank[x] 0 Algoritmos p.815/823
36 Melhoramento 1: union by rank 2 x UNION (x, y) y rank[x] = posto do nó x MAKESET (x) 1 pai[x] x 2 rank[x] 0 Algoritmos p.816/823
37 Melhoramento 1: union by rank 2 x UNION (x, y) y rank[x] = posto do nó x MAKESET (x) 1 pai[x] x 2 rank[x] 0 Algoritmos p.817/823
38 Melhoramento 1: union by rank rank[x] > rank[y] rank[x] rank[y] nts rank[x] = rank[y] rank[x] + 1 rank[y] Algoritmos p.818/823
39 Melhoramento 1: union by rank UNION (x, y) com union by rank 1 x FINDSET (x) 2 y FINDSET (y) supõe que x y 3 se rank[x ] > rank[y ] 4 então pai[y ] x 5 senão pai[x ] y 6 se rank[x ] = rank[y ] 7 então rank[y] rank[y] + 1 Algoritmos p.819/823
40 Melhoramento 1: estrutura rank[x] rank[pai[x]] para cada nó x rank[x] = rank[pai[x]] se e só se x é raiz rank[pai[x]] é uma função não-descrente do tempo número de nós de uma árvore de raiz x é 2 rank[x]. número de nós de posto k é n/2 k. altura(x) = rank[x] lg n para cada nó x altura(x) := comprimento do mais longo caminho que vai de x até uma folha Algoritmos p.820/823
41 Melhoramento 1: custo Seqüência de operações MAKESET, UNION, FINDSET M M M }{{} U F U U F U F F F U F n }{{} m altura(x) lg n para cada nó x Consumos de tempo: MAKESET Θ(1) UNION O(lg n) FINDSET O(lg n) Consumo de tempo total da seqüência: O(m lg n) Algoritmos p.821/823
42 Melhoramento 2: path compression e d c acements x b FINDSET(x) Algoritmos p.822/823
43 Melhoramento 2: path compression e acements a b c d FINDSET(x) Algoritmos p.822/823
44 Melhoramento 2: path compression FINDSET (x) com path compression 1 se x pai[x] 2 então pai[x] FINDSET (pai[x]) 3 devolva pai[x] rank[x] rank[pai[x]] para cada nó x rank[x] = rank[pai[x]] se e só se x é raiz rank[pai[x]] é uma função não-descrente do tempo número de nós de uma árvore de raiz x é 2 rank[x]. número de nós de posto k é n/2 k. altura(x) rank[x] lg n para cada nó x Algoritmos p.823/823
Conjuntos disjuntos dinâmicos
Conjuntos disjuntos dinâmicos CLRS 21 Algoritmos p. 1 Conjuntos disjuntos Seja S = {S 1,S 2,...,S n } uma coleção de conjuntos disjuntos, ou seja, S i S j = para todo i j. Algoritmos p. 2 Conjuntos disjuntos
Leia maisMelhores momentos AULA 22. Algoritmos p.824/855
Melhores momentos AULA 22 Algoritmos p.824/855 Conjuntos disjuntos dinâmicos CLR 22 CLRS 21 Algoritmos p.825/855 Conjuntos disjuntos Seja S = {S 1, S 2,..., S n } uma coleção de conjuntos disjuntos, ou
Leia maisAlgoritmo de Kruskal. Algoritmo de Kruskal. Floresta geradora 26. Subfloresta S 20.3
Algoritmo de Kruskal Algoritmo de Kruskal S. Algoritmos em Grafos º sem / Subfloresta Uma subfloresta de G é qualquer floresta F que seja subgrafo de G. Exemplo: As arestas vermelhas que ligam os vértices
Leia maisAula 19 Conjuntos disjuntos (Union-find)
MC3305 Algoritmos e Estruturas de Dados II Aula 19 Conjuntos disjuntos (Union-find) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Números de Ackermann 2 3 Ackermann A função de Ackermann
Leia maisAnálise de Algoritmos
Algoritmos p. 1/22 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/22 Árvore geradora mínima CLRS Cap 23 Algoritmos
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 09 Árvore Geradora Mínima Edirlei Soares de Lima Árvore Geradora Mínima Dado um grafo não direcionado conectado G, uma árvore T é chamada de
Leia maisEstruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos
Estruturas de Dados para Conjuntos Disjuntos Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 32 Estruturas de dados para conjuntos disjuntos Também conhecido por UNION-FIND. Objectivo: Manter uma
Leia maisEstruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno
Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno UFABC Estruturas de Dados para Conjuntos Disjuntos: Introdução Estruturas de Dados para Conjuntos Disjuntos: Introdução
Leia maisEstruturas de dados para conjuntos disjuntos. Estruturas de Dados para Conjuntos Disjuntos. Estruturas de dados para conjuntos disjuntos
Estruturas de dados para conjuntos disjuntos Estruturas de Dados para Conjuntos Disjuntos Fernando Lobo Algoritmos e Estrutura de Dados II Também conhecido por UNION-FIND. Objectivo: Manter uma colecção
Leia maisAnálise de Algoritmos
Análise de Algoritmos 2008 Aula 1: Introdução Paulo Feofiloff IME, Universidade de São Paulo 1 2 CLRS: Cormen, Leiserson, Rivest, Stein O que é AA? Um exemplo Having a solid base of algorithmic knowledge
Leia maisÁrvores de Suporte de Custo Mínimo
Árvores de Suporte de Custo Mínimo Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Árvores de Suporte de Custo Mínimo 2014/2015 1 / 28 Árvore de Suporte Uma árvore de suporte ou árvore de extensão
Leia maisMelhores momentos AULA 24. Algoritmos p.906/953
Melhores momentos AULA 24 Algoritmos p.906/953 Problemas polinomiais Analise de um algoritmo em um determinado modelo de computação estima o seu consumo de tempo e quantidade de espaço como uma função
Leia maisGrafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma
Grafos Árvores espalhadas mínimas Conteúdo Introdução Como construir uma árvore geradora miníma Algoritmos Referências Introdução Dado um grafo conectado não orientado G = (V, E) e uma função peso w :
Leia maisAULA 21. Algoritmos p.760/792
AULA 21 Algoritmos p.760/792 Busca de palavras (string matching) CLRS 32 Algoritmos p.761/792 Busca de palavras em um texto Dizemos que um vetor P [1.. m] ocorre em um vetor T [1.. n] se P [1.. m] = T
Leia maisSub-grafo. Árvore Geradora Mínima
Comentários da aula anterior Componentes Fortemente Conectados (algoritmo) 1. Chama BuscaEmProfundidade (G) para obter os tempos de término (t[u], ou f[u]) para todos os vértices de G, isto é, enquanto
Leia maisAULA 24. Algoritmos p.856/905
AULA 24 Algoritmos p.856/905 Máximo divisor comum CLRS 31.1 e 31.2 Algoritmos p.857/905 Divisibilidade Suponha que a, b e d são números inteiros. Dizemos que d divide a se a = k d para algum número inteiro
Leia maisAnálise de Algoritmos
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Matroides e o método guloso U: conjunto finito arbitrário. C: família
Leia maisGrafos: componentes fortemente conexos, árvores geradoras mínimas
Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente
Leia maisGrafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1
Grafos Msc. Daniele Carvalho Oliveira Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1 Árvore Geradora Mínima 2 Porque é um problema interessante Suponha que queremos
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Partições dinâmicas 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.1 1 Motivação: Como criar um Labirinto? Algoritmo Numere todas as células da grade de 0 a
Leia maisConjuntos disjuntos. Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida
Conjuntos disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida Desempenho análise complicada Uso problemas de grafos equivalência
Leia maisGrafos: árvores geradoras mínimas. Graça Nunes
Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as
Leia maisCAL ( ) MIEIC/FEUP Estruturas de Dados ( )
Conjuntos Disjuntos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CPAL, 2010/2011 1 Conjuntos Disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura
Leia maisConjuntos disjuntos. Relações de equivalência
Conjuntos disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida análise complicada Uso problemas de grafos equivalência de tipos
Leia maisAlgoritmos gulosos (greedy)
Algoritmos gulosos (greedy) CLRS 16.1 e mais... Algoritmos p. 1 Algoritmos gulosos Algoritmo guloso procura ótimo local e acaba obtendo ótimo global costuma ser muito simples e intuitivo muito eficiente
Leia maisTeoria dos Grafos Aula 5
Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema
Leia maisAnálise de Algoritmos
Algoritmos p. 1/18 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/18 Análise amortizada CLRS 17 Algoritmos p.
Leia maisÁrvores de Suporte de Custo Mínimo
Árvores de Suporte de Custo Mínimo Pedro Ribeiro DCC/FCUP 2016/2017 Pedro Ribeiro (DCC/FCUP) Árvores de Suporte de Custo Mínimo 2016/2017 1 / 28 Árvore de Suporte Uma árvore de suporte ou árvore de extensão
Leia maisÁrvores Árvores Geradoras de Custo Mínimo 0/16
Conteúdo 1 Árvores 2 Árvores Geradoras de Custo Mínimo Árvores Árvores Geradoras de Custo Mínimo 0/16 Árvores Definição (Grafo Acíclico) Um grafo acíclico é um grafo que não contém ciclos. Árvores Árvores
Leia maisEstruturas de Dados. Grafos VIII: Árvores Geradoras Mínimas. Prof. Ricardo J. G. B. Campello
Estruturas de Dados Grafos VIII: Árvores Geradoras Mínimas Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww.datastructures.net
Leia maisÁrvores: Conceitos Básicos e Árvore Geradora
Árvores: Conceitos Básicos e Árvore Geradora Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Introdução No dia a dia aparecem muitos problemas envolvendo árvores:
Leia maisMelhores momentos AULA PASSADA. Complexidade Computacional p. 205
Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing
Leia maisAlgoritmos gulosos (greedy) CLRS
Algoritmos gulosos (greedy) CLRS 16.3-16.5 Problema de escalonamento Considere n tarefas indicadas pelos números 1,..., n Problema de escalonamento Considere n tarefas indicadas pelos números 1,..., n
Leia maisDemonstração. Relação invariante chave. Implementações do algoritmo de Prim. Implementação grosseira
Algoritmo de Prim Simulação S. Algoritmos em Grafos º sem / Franja A franja (= fringe) de uma subárvore T é o conjunto de todas as arestas que têm uma ponta em T e outra ponta fora Exemplo: As arestas
Leia maisAbordagens para Resolução de Problemas
Abordagens para Resolução de Problemas UDESC - Universidade do Estado de Santa Catarina Departamento de Ciência da Computação CAL - Complexidade de Algoritmos Teodoro Alberto Borges Junior Abordagens para
Leia maisMelhores momentos AULA 3. Algoritmos p.148/188
Melhores momentos AULA 3 Algoritmos p.148/188 Análise da intercalação Problema: Dados e crescentes, rearranjar de modo que ele fique em ordem crescente. Entra: Sai: Algoritmos p.149/188 Algoritmos p.150/188
Leia maisTeoria dos Grafos Aula 8
Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e algoritmo de Dijkstra Dijkstra o próprio Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente
Leia maisProjeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4)
1 Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material de Andréa Iabrudi Tavares BCC241/2012-2 3 Comparação
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8
Leia maisMATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO
MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting Árvore
Leia maisCI065 CI755 Algoritmos e Teoria dos Grafos
CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices
Leia maisAULA 20. Algoritmos p.725/759
AULA 20 Algoritmos p.725/759 Mais análise amortizada CLR 18 ou CLRS 17 Algoritmos p.726/759 Análise amortizada Análise amortizada = análise do consumo de tempo de uma seqüência de operações Usada nos casos
Leia maisIntrodução à Teoria dos Grafos
Capítulo 1 Introdução à Teoria dos Grafos 1.1 História O primeiro problema cuja solução envolveu conceitos do que viria a ser teoria dos grafos, denominado "problema das pontes de Königsberg", foi resolvido
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de
Leia maisTeoria dos Grafos Aula 18
Teoria dos Grafos Aula 18 Aula passada Coloração Algoritmo guloso Número cromático Teorema das 4 cores Aula de hoje Clusterização (ou agrupamento) Algoritmo Variação Clusterização Coleção de objetos Agrupar
Leia maisProblema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados
Leia maisProf. Marco Antonio M. Carvalho
Prof. Marco Antonio M. Carvalho Lembretes Lista de discussão Endereço: programaacao@googlegroups.com Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/
Leia maisAlgoritmos de aproximação - Problema do caixeiro viajante
Algoritmos de aproximação - Problema do caixeiro viajante Marina Andretta ICMC-USP 30 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli,
Leia mais1.2 Grau de um vértice
1.2 Grau de um vértice Seja G um grafo. Para um vértice v de V G, sua vizinhança N G (v) (ou N(v)) é definida por N(v) = {u V G vu E G }.. p.1/19 1.2 Grau de um vértice Seja G um grafo. Para um vértice
Leia maisAlgoritmos de aproximação - Problema de cobertura por conjuntos
Algoritmos de aproximação - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de 205 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M.
Leia maisÁrvore Geradora Mínima
GRAFOS ÁRVORE GERADORA MÍNIMA Prof. André Backes Árvore Geradora Mínima Definição Uma árvore geradora (do inglês, spanning tree) é um subgrafo que contenha todos os vértices do grafo original e um conjunto
Leia maisUNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 5 a Lista de Exercícios 1. O grafo de intersecção de uma coleção de conjuntos A 1,..., A n é o grafo
Leia maisAnálise amortizada CLRS 17. Algoritmos p. 1
Análise amortizada CLRS 17 Algoritmos p. 1 Análise amortizada Serve para analisar uma sequência de operações ou iterações onde o pior caso individual não reflete o pior caso da sequência. Em outras palavras,
Leia maisTeoria dos Grafos Aula 6
Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes
Leia maisProjeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)
1 Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5) DECOM/UFOP 2012/2 5º. Período Anderson Almeida Ferreira Adaptado do material de Andréa Iabrudi Tavares BCC241/2012-2 3 Algoritmos Gulosos
Leia maisTeoria dos Grafos Aula 26
Teoria dos Grafos Aula 26 Aula passada Redes de fluxo Problema do fluxo máximo Problema do corte mínimo Aula de hoje Algoritmo de Ford Fulkerson Análise do algoritmo Melhorando algoritmo inicial Dualidade
Leia mais2006/2007 Análise e Síntese de Algoritmos 2
Análise e Síntese de Algoritmos Árvores Abrangentes de Menor Custo CLRS, Cap. 23 Resumo Árvores Abrangentes de Menor Custo Minimum-Spanning Trees (MSTs) Algoritmo (greedy) genérico Prova de optimalidade
Leia maisOtimização em Grafos
Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias
Leia maisConceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade
Conteúdo 1 Teoria de Grafos Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade > Teoria de Grafos 0/22 Conceitos Básicos Inicialmente, estudaremos os grafos não direcionados.
Leia maisProblema de escalonamento
Problema de escalonamento Considere n tarefas indicadas pelos números 1,...,n Algoritmos p. 1 Problema de escalonamento Considere n tarefas indicadas pelos números 1,...,n t i : duração da tarefa i d i
Leia maisRedução polinomial. Permite comparar o grau de complexidade de problemas diferentes.
Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução de um problema Π a um problema Π é um algoritmo ALG que resolve Π usando uma subrotina hipotética ALG que
Leia maisEstruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1
Estruturas de Dados Cristina Gomes Fernandes Estruturas de Dados p. 1 Representação de polinômios p(x) = 4 + 2x 6x 2 + 3x 4 0 1 2 3 4 4 2 6 0 3 Estruturas de Dados p. 2 Representação de polinômios p(x)
Leia maisGRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira
Ciência da Computação GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Árvore Geradora (spanning tree) É um subconjunto de um grafo G que possui todos os vértices
Leia maisNotas 1 / 14. Notas. todos os pares de pontos devem ser ligados por ao menos um percurso; usaremos um mínimo possível de ligações. 2 / 14.
Teoria dos Grafos - BCC 204 roblemas de Haroldo Gambini Santos Universidade Federal de Ouro reto - UFO 31 de maio de 2011 Teoria dos Grafos - BCC 204, roblemas de 1 / 14 Imagine que desejemos interligar
Leia maisMelhores momentos AULAS 1-8
Melhores momentos AULAS 1-8 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = 1 a resposta é SIM 2 1 4 3 5 Procurando
Leia maisIntrodução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3
Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 3 Árvores Problema: Suponha que numa cidade haja n postos telefônicos. Para que seja sempre possível haver comunicação
Leia maisGrafos Árvores Geradoras Mínimas
ALGORITMOS E ESTRUTURAS DE DADOS II Grafos Árvores Geradoras Mínimas Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo
Leia maisComplexidade computacional
Complexidade computacional Classifica os problemas em relação à dificuldade de resolvê-los algoritmicamente. CLR 36 ou CLRS 34 Algoritmos p. 1 Palavras Para resolver um problema usando um computador é
Leia maisAlguns comentários. Segunda prova. Programação dinâmica em grafos. Guloso em grafos. Algoritmos p. 1
Alguns comentários Segunda prova Programação dinâmica em grafos Guloso em grafos Algoritmos p. 1 Problema dos intervalos disjuntos Problema: Dados intervalos [s[1],f[1]),...,[s[n],f[n]), encontrar coleção
Leia maisExercícios: Alg Gulosos. Eduardo Laber
Exercícios: Alg Gulosos Eduardo Laber Cap 4-Exercício 2 a) Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas. Portanto, o algoritmo de Kruskal constrói a mesma
Leia maisMergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort
Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Existem famílias de problemas cuja solução é alcançada de forma semelhante. O relacionamento entre problemas: caso especial; versão abstração; similar. Exemplos: A inserção de um elemento
Leia maisANÁLISE DE ALGORITMOS
ANÁLISE DE ALGORITMOS www.ime.usp.br/ pf/analise de algoritmos/ Paulo Feofiloff Transparências baseadas no Introduction to Algorithms de Cormen, Leiserson, Rivest, Stein A análise de algoritmos é uma disciplina
Leia maisCortes (cut sets) 2010/2 Teoria dos Grafos (INF 5037/INF2781) CC/EC/UFES
Cortes (cut sets) (INF 5037/INF2781) Corte por arestas Em um grafo conexo G, um corte de arestas é um conjunto de arestas cuja remoção de G torna G desconexo, desde que nenhum subconjunto próprio desse
Leia maisAlgoritmos em Grafos
Algoritmos em Grafos Baseado em: The Algorithm Design Manual Steven S. Skiena IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/42 Introdução (1) Um grafo G=(V,E)
Leia mais5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo
Leia maisO grau de saída d + (v) de um vértice v é o número de arcos que tem
Grafos Direcionados Definição (Grau de Entrada) O grau de entrada d (v) de um vértice v é o número de arcos que tem v como cabeça. Definição (Grau de Saída) O grau de saída d + (v) de um vértice v é o
Leia maisAULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado
AULA 13 PROJETO E ANÁLISE DE ALGORITMOS Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado Roteiro Motivação Relaxamento Algoritmo de Dijkstra Motivação Suponha que você
Leia maisProjeto e Análise de Algoritmos. Método Guloso
Projeto e Análise de Algoritmos Método Guloso Altigran Soares da Silva Universidade Federal do Amazonas Departamento de Ciência da Computação Árvore Geradora Um árvore geradora de um grafo G é um subgrafo
Leia maisAlgoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.
Algoritmos e Estruturas de Dados II conceitos gerais Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno Valorados Um grafo valorado (ponderado/com pesos) G(V,A) consiste
Leia maisAlgoritmos de Aproximação para o Problema do Caixeiro Viajante
TSP p.1/19 Algoritmos de Aproximação para o Problema do Caixeiro Viajante 24 de agosto de 2004 TSP p.2/19 Problema do Caixeiro Viajante Dados grafo comprimento da aresta ( ) TSP p.2/19 Problema do Caixeiro
Leia maisTeoria dos Grafos Aula 22
Teoria dos Grafos Aula 22 Aula passada Caminho mais curto entre todos os pares Algoritmo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto Algoritmo de Bellman Ford Melhorias Caminho
Leia maisAlgoritmos e Estruturas de Dados II
Algoritmos e Estruturas de Dados II Grafos VI: Grafos Ponderados & Caminhos Mínimos (Bellman-Ford) Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis
Leia maisIntrodução a Grafos Letícia Rodrigues Bueno
Introdução a Grafos Letícia Rodrigues Bueno UFABC Teoria dos Grafos - Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar os problemas; Grafos: ferramenta fundamental de
Leia maisGrafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes
Grafos: Busca Algoritmos e Estruturas de Dados Graça Nunes Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é uma tarefa fundamental Pense no caso de se procurar uma certa informação associada
Leia maisTeoria dos Grafos Aula 8
Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e implementação de alg. de Dijkstra Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente
Leia maisAnálise de Algoritmos
Análise de Algoritmos CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram adaptadas das transparências do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Intuitivamente...
Leia maisAlgoritmos em Grafos COM11087-Tópicos Especiais em Programação I
Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I edmar.kampke@ufes.br Introdução Teoria dos Grafos é o estudo das propriedades e estruturas dos grafos. O objetivo é, após modelar um problema
Leia maisGrafos aula 3. Relembrando... Rede de eventos e atividades. Rede de eventos e atividades
Grafos aula Relembrando... m grafo é valorado (ou ponderado) se possuir valores associados às linhas e/ou aos vértices. Rota mais curta entre aeroportos aminho mais curto entre máquinas, para transmissão
Leia maisCI065 CI755 Algoritmos e Teoria dos Grafos
CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 10 de junho de 2018 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 04 Técnicas de Projeto de Algoritmos (Método Guloso) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force) Dividir
Leia maisTeoria dos Grafos Aula 8
Teoria dos Grafos Aula 8 Aula passada Classe de funções e notação Propriedades da notação Funções usuais Aula de hoje Grafos direcionados Busca em grafos direcionados Ordenação topológica Tempo de execução
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Idéias básicas Um algoritmo guloso seleciona, a cada passo, o melhor elemento pertencente a entrada. Verifica se ele é viável - vindo a fazer parte da solução ou não. Após uma seqüência de
Leia maisAlgoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica
Algoritmo Floyd-Warshall S. Problema dos caminhos mínimos entre todos os pares Problema: Dado um digrafo com custo nos arcos, determinar, para cada par de vértices s, t o custo de um caminho mínimo de
Leia maisTeoria dos Grafos Aula 27
Teoria dos Grafos Aula 27 Aula passada Aula de hoje Algoritmo de Ford Aplicações do fluxo Fulkerson máximo Análise do algoritmo Emparelhamento perfeito Melhorando algoritmo inicial Caminhos distintos Corte
Leia maisGrafos Parte 1. Aleardo Manacero Jr.
Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Introdução Um passeio entre os nós i e j é uma seqüência alternada de nós e arestas que começa no nó i e termina no nó j. G 1 G 2 Um exemplo de passeio entre os nós 1 e 4 do grafo G 1 é (1,(1,3),3,(2,3),2,(1,2),1,(1,4),4).
Leia maisProcessamento de Imagens usando Grafos (MAC6903)
Processamento de Imagens usando Grafos (MAC6903) Prof. Dr. Paulo A. V. de Miranda pmiranda@vision.ime.usp.br Instituto de Matemática e Estatística (IME), Universidade de São Paulo (USP) P.A.V. Miranda,
Leia mais