Árvore Binária de Busca Ótima
|
|
|
- Diana Amaral Pinhal
- 9 Há anos
- Visualizações:
Transcrição
1 MAC Estruturas de Dados
2 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms + Data Structures = Programs. Prentice Hall, 1976.
3 Árvore binária de busca ótima Há situações em que sabemos com antecedência quais as chaves que serão buscadas e, mais ainda, com que freqüência ou probabilidade cada chave será buscada. Nesse caso, podemos construir uma árvore binária de busca ótima que será eficiente para a operação de busca. Inserções e remoções não são usualmente efetuadas na árvore assim construída pois elas podem modificar a sua estrutura. Caso inserções e remoções são permitidas, então se deve periodicamente reconstruir a árvore ótima. A melhor árvore binária de busca depende das probabilidades de acesso das chaves. Quando a distribuição dessas probabilidades não é uniforme, a melhor árvore binária de busca não é necessáriamente uma árvore binária perfeitamente balanceada. Intuitivamente, queremos colocar as chaves mais buscadas mais próximas ao topo da árvore binária. Vamos estudar como constuir uma árvore binária de busca ótima. Mas, antes, temos que definir o que se entende por árvore binária de busca ótima.
4 Comprimento de caminho ponderado de uma árvore Denotamos por comprimento de caminho h i de um nó k i o número de nós encontrados desde a raiz até o nó k i. Ele expressa o número de comparações realizadas para buscar uma chave no nó k i. Considere uma árvore binária de busca com n chaves k 1 < k 2 <... < k n. Suponha que se conhece a probabilidade de acesso de cada uma das chaves: sendo p i a probabilidade de acesso à chave k i, para 1 i n: n p i = 1 i=1
5 Comprimento de caminho ponderado de uma árvore O custo de busca P da árvore é expresso pelo comprimento de caminho ponderado da árvore, assim definida: P = n p i h i i=1 onde p i é a probabilidade de acesso à chave k i e h i é o comprimento de caminho de k i. Se toda chave tem igual probabilidade de ser buscada, então p i = 1/n, 1 i n e teremos o comprimento de caminho médio da árvore, já visto anteriormente: P = n p i h i = i=1 n i=1 h i n = 1 n n i=1 h i
6 Árvore binária de busca ótima Considere árvores binárias de busca com n chaves k 1 < k 2 <... < k n. Seja p i a probabilidade de acesso à chave k i, para 1 i n. Dentre todas tais árvores, é dita árvore binária de busca ótima aquela que minimiza o custo P: n P = p i h i i=1 onde h i é o comprimento de caminho de k i.
7 Exemplo de uma árvore binária de busca ótima Considere n = 3 e as 3 chaves k 1 = 100 k 2 = 200 k 3 = 300 com as respectivas probabilidades de acesso p 1 = 1 7 p 2 = 2 7 p 3 = 4 7. Vamos ilustrar as possíveis árvores binárias de busca e seu respectivo custo P.
8 Árvore 1 Custo P = =
9 Árvore 2 Custo P = =
10 Árvore 3 Custo P = =
11 Árvore 4 Custo P = =
12 Árvore 5 Custo P = =
13 Obs. 1: A árvore ótima não sempre é balanceada Árvore 1 é a árvore ótima e não é balanceada
14 Obs.2: A estratégia gulosa não funciona Pode parecer que basta adotar uma estratégia gulosa e começar colocando a chave de maior probabilidade de acesso na raiz. O exemplo mostra uma árvore ótima com as probabilidades de acesso em vermelho. A chave de maior probababilidade de acesso não está na raiz. 0,2300 0,4100 0,3400 0,1200
15 Busca de chaves ausentes na árvore Pode-se estranhar por que sempre a chave buscada tem que estar na árvore. Muitas vezes, o que procuramos não está na árvore. Quando buscamos uma chave ausente, caímos num ponteiro nil. Na figura, representamos pela cor vermelha os nós fictícios em que caem as buscas de chaves ausentes. Nessa formulação mais geral, nós internos representam chaves presentes e as folhas (nós fictícios vermelhos) representam intervalos de chaves ausentes. k 2 Uma árvore com 4 chaves k 1, k 2, k 3 e k 4 k 1 k 4 k 3
16 Uma formulação mais geral de árvore ótima Considere árvores binárias de busca com n chaves k 1 < k 2 <... < k n. Seja h i o comprimento de caminho da chave k i, 1 i n. Conhecemos as probabilidades, p i e q i, com n i=1 p i + n i=0 q i = 1, onde p i = a probabilidade de acesso à chave k i, para 1 i n. q 0 = a probabilidade de acesso a toda chave x, x < k 1. q n = a probabilidade de acesso a toda chave x, x > k n. q i = a probabilidade de acesso a toda chave x, k i < x < k i+1, 1 i < n. Uma árvore binária de busca ótima é aquela que minimiza o custo P, onde h i representa o comprimento de caminho do nó fictício em que caem buscas sem sucesso. P = n n p i h i + q i h i i=1 i=0
17 Para o exemplo da árvore com 4 chaves Uma árvore com 4 chaves k 1, k 2, k 3 e k 4 p 2 k 2 p 1 k 1 p 4 k 4 p 3 k 3 q 0 q 1 q 4 q 2 q 3 Uma árvore binária de busca ótima minimiza o custo P: P = 4 4 p i h i + q i h i i=1 i=0
18 Uso de freqüências no lugar de probabilidades Freqüências de acesso podem ser levantadas experimentalmente. Um modo equivalente é usar as freqüências no lugar das probabilidades. Sejam freqüências de acesso, a i e b i, com n i=1 a i + n i=0 b i = W, onde a i = a freqüência de acesso à chave k i, 1 i n. b 0 = a freqüência de acesso a toda chave x, x < k 1. b n = a freqüência de acesso a toda chave x, x > k n. b i = a freqüência de acesso a toda chave x, k i < x < k i+1, 1 i < n. Temos: p i = a i /W, 1 i n e q i = b i /W, 0 i n. A árvore binária de busca ótima então é aquela que minimiza P = n n a i h i + b i h i i=1 i=0
19 Como obter uma árvore binária de busca ótima No exemplo para n = 3 chaves, enumeramos todas as 5 árvores binárias possíveis e depois obtivemos a ótima. Pergunta: este método é viável? Qual a sua complexidade de tempo? Dado n, o número de árvores binárias possíveis com n nós é um número chamado ( ) número Catalan que vale: 2n C n = 1 n+1 = (2n)! n (n+1)!n! n C n n C n
20 Como obter uma árvore binária de busca ótima No exemplo para n = 3 chaves, enumeramos todas as 5 árvores binárias possíveis e depois obtivemos a ótima. Pergunta: este método é viável? Qual a sua complexidade de tempo? Dado n, o número de árvores binárias possíveis com n nós é um número chamado ( ) número Catalan que vale: 2n C n = 1 n+1 = (2n)! n (n+1)!n! n C n n C n
21 Como obter uma árvore binária de busca ótima No exemplo para n = 3 chaves, enumeramos todas as 5 árvores binárias possíveis e depois obtivemos a ótima. Pergunta: este método é viável? Qual a sua complexidade de tempo? Dado n, o número de árvores binárias possíveis com n nós é um número chamado ( ) número Catalan que vale: 2n C n = 1 n+1 = (2n)! n (n+1)!n! n C n n C n
22 Método de programação dinâmica Em alguns algoritmos, a ineficiência se deve ao não reuso de resultados já calculados anteriormente. A idéia básica do método de programação dinâmica é o armazenamento e uso de soluções ótimas de subproblemas para obter a solução ótima do problema geral. Propriedade de árvores binárias de busca ótimas: Se uma árvore binária de busca é ótima, então as suas subárvores são ótimas. Se esta árvore Raiz é ótima = então a subárvore esq. L e a subárvore dir. R é ótima = = é ótima L R
23 Expressão de P em termos de P L e P R Seja W = n i=1 a i + n i=0 b i denominado o peso da árvore, i.e. o número total de buscas efetuadas, incluindo as com ou sem sucesso. P = P L = Raiz L R = P R Qualquer busca que segue para L ou para R passa pela raiz. Temos portanto P = P L + W + P R.
24 Exemplo que ilustra a relação P = P L + W + P R a 2 k 2 Seja uma árvore com 4 chaves k 1, k 2, k 3 e k 4 a 1 k 1 a 4 k 4 a 3 k 3 b 0 b 1 b 4 b 2 b 3 P = 2a 1 + a 2 + 3a 3 + 2a 4 + 3b 0 + 3b 1 + 4b 2 + 4b 3 + 3b 4 P L = a 1 + 2b 0 + 2b 1 e P R = 2a 3 + a 4 + 3b 2 + 3b 3 + 2b 4 P = P L + (a 1 + a 2 + a 3 + a 4 ) + (b 0 + b 1 + b 2 + b 3 + b 4 ) +P R }{{}}{{} P n i=1 a P n i i=0 b i W = n i=1 a i + n i=0 b i e o exemplo ilustra P = P L + W + P R.
25 Construção de uma árvore binária de busca ótima O método de programação dinâmica constrói uma árvore ótima a partir de subárvores ótimas. Vamos ilustrar o método com um pequeno exemplo. Sem perda de generalidade, vamos usar a formulação mais simples, sem considerar frequências de buscas de chaves ausentes. Sejam n = 5 chaves valendo 1, 2, 3, 4 e 5 com as respectivas freqüências de acesso: chave freq Vamos construir uma árvore binária de busca ótima de 5 nós com as 5 chaves dadas.
26 Árvores com uma chave Chave k i Freq. a i Chave 1: A árvore ótima só tem a raiz onde fica a chave 1. P = 10. Chave 2: A árvore ótima só tem a raiz onde fica a chave 2. P = 4. Chave 3: A árvore ótima só tem a raiz onde fica a chave 3. P = 20. Chave 4: A árvore ótima só tem a raiz onde fica a chave 4. P = 16. Chave 5: A árvore ótima só tem a raiz onde fica a chave 5. P = 2.
27 Árvores com duas chaves Chaves 1 e 2: 1 na raiz. 1 W = 14 P = W + P L + P R = 18 menor P L = 0 = = P R = 4 chave 2 2 na raiz. 2 W = 14 P = W + P L + P R = 24 P L = 10 = chave = P R = 0 1
28 Árvores com duas chaves Chaves 2 e 3: 2 na raiz. 2 W = 24 P = W + P L + P R = 44 P L = 0 = = P R = 20 chave 3 3 na raiz. 3 W = 24 P = W + P L + P R = 28 menor P L = 4 = = P R = 0 chave 2
29 Árvores com duas chaves Chaves 3 e 4: 3 na raiz. 3 W = 36 P = W + P L + P R = 52 menor P L = 0 = = P R = 16 chave 4 4 na raiz. 4 W = 36 P = W + P L + P R = 56 P L = 20 = = P R = 0 chave 3
30 Árvores com duas chaves Chaves 4 e 5: 4 na raiz. 4 W = 18 P = W + P L + P R = 20 menor P L = 0 = = P R = 2 chave 5 5 na raiz. 5 W = 18 P = W + P L + P R = 34 P L = 16 = = P R = 0 chave 4
31 Árvores com três chaves Chaves 1, 2 e 3: 1 na raiz. 1 W = 34 P = W + P L + P R = 62 P L = 0 = = P R = 28 chaves 2 e 3 2 na raiz. 2 W = 34 P = W + P L + P R = 64 P L = 10 = = P R = 20 chave chave na raiz. 3 W = 34 P = W + P L + P R = 52 menor P L = 18 = = P R = 0 chaves 1 e 2
32 Árvores com três chaves Chaves 2, 3 e 4: 2 na raiz. 2 W = 40 P = W + P L + P R = 92 P L = 0 = = P R = 52 chaves 3 e 4 3 na raiz. 3 W = 40 P = W + P L + P R = 60 menor P L = 4 = = P R = 16 chave chave na raiz. 4 W = 40 P = W + P L + P R = 68 P L = 28 = = P R = 0 chaves 2 e 3
33 Árvores com três chaves Chaves 3, 4 e 5: 3 na raiz. 3 W = 38 P = W + P L + P R = 58 menor P L = 0 = = P R = 20 chaves 4 e 5 4 na raiz. 4 W = 38 P = W + P L + P R = 60 P L = 20 = = P R = 2 chave chave na raiz. 5 W = 38 P = W + P L + P R = 90 P L = 52 = = P R = 0 chaves 3 e 4
34 Árvores com quatro chaves Chaves 1, 2, 3 e 4: 1 na raiz. 1 W = 50 P = W + P L + P R = 110 P L = 0 = = P R = 60 chaves 2, 3 e 4 2 na raiz. 2 W = 50 P = W + P L + P R = 112 P L = 10 = = P R = 52 chave 1 chaves 3 e 4
35 Árvores com quatro chaves Chaves 1, 2, 3 e 4: 3 na raiz. 3 W = 50 P = W + P L + P R = 84 menor P L = 18 = = P R = 16 chaves 1 e 2 chave 4 4 na raiz. 4 W = 50 P = W + P L + P R = 102 P L = 52 = = P R = 0 chaves 1, 2 e 3
36 Árvores com quatro chaves Chaves 2, 3, 4 e 5: 2 na raiz. 2 W = 42 P = W + P L + P R = 100 P L = 0 = = P R = 58 chaves 3, 4 e 5 3 na raiz. 3 W = 42 P = W + P L + P R = 66 menor P L = 4 = = P R = 20 chave 2 chaves 4 e 5
37 Árvores com quatro chaves Chaves 2, 3, 4 e 5: 4 na raiz. 4 W = 42 P = W + P L + P R = 72 P L = 28 = = P R = 2 chaves 2 e 3 chave 5 5 na raiz. 5 W = 42 P = W + P L + P R = 102 P L = 60 = = P R = 0 chaves 2, 3 e 4
38 Árvores com cinco chaves Chaves 1, 2, 3, 4 e 5: 1 na raiz. 1 W = 52 P = W + P L + P R = 114 P L = 0 = = P R = 62 chaves 2, 3, 4 e 5 2 na raiz. 2 W = 52 P = W + P L + P R = 120 P L = 10 = = P R = 58 chave chaves 1 3, 4 e 5 3 na raiz. 3 W = 52 P = W + P L + P R = 90 menor P L = 18 = = P R = 20 chaves chaves 1 e 2 4 e 5
39 Árvores com cinco chaves Chaves 1, 2, 3, 4 e 5: 4 na raiz. 4 W = 52 P = W + P L + P R = 106 P L = 52 = = P R = 2 chaves chave 1, 2 e na raiz. 5 W = 52 P = W + P L + P R = 146 P L = 94 = = P R = 0 chaves 1, 2, 3 e 4
40 A árvore ótima obtida 3 W = 52 P = W + P L + P R = 90 P L = 18 = = P R = 20 chaves chaves 1 e 2 4 e 5 Basta recuperar a árvore ótima com chaves 1 e 2 e a árvore ótima com chaves 4 e 5. Temos: Pode-se ver que o papel de W na quantidade P a ser minimizada é nulo, já que W entra em todas as comparações. Então podemos dispensar o uso de W na minimização de P.
41 Algoritmo para construir uma árvore de busca ótima Sejam dadas n chaves k 1 < k 2 <... < k n, com suas freq. de busca a i de chaves presentes e freq. de busca de b i de chaves ausentes, conforme já definidas. Denote por T ij uma árvore binária de busca ótima com as chaves k i+1, k i+2,..., k j, com peso w ij e caminho p ij definidos assim: w ii = b i, 0 i n w ij = w i(j 1) + a j + b j, 0 i < j n p ii = w ii, 0 i n p ij = w ij + min i<m j (p i(m 1) + p mj ), 0 i < j n. A finalidade é obter T 0n, que contém as chaves k 1, k 2,..., k n. w ij k m A raiz k m é qualquer chave de T ij De todas as árvores com k m na raiz escolhemos aquela que produz p ij (menor) p i(m 1) = = p mj
42 Algoritmo para construir uma árvore de busca ótima Seja T ij uma árvore binária de busca ótima com as chaves k i+1, k i+2,..., k j. A finalidade é obter T 0n. Seja h = j i, i j. Obtemos T 0n a partir de árvores ótimas menores. Exemplo para n = 5: T T h = 5 T 15 h = 4 T 03 T 14 T 25 h = 3 T 02 T 13 T 24 T 35 h = 2 T 01 T 12 T 23 T 34 T 45 h = 1 T 00 T 11 T 22 T 33 T 44 T 55 h = 0
43 Algoritmo para construir uma árvore de busca ótima Dadas as freq. a i e b i, calculam-se os pesos w ij : w ii = b i, 0 i n w ij = w i(j 1) + a j + b j, 0 i < j n. Calculam-se p ij : p ii = w ii, 0 i n p ij = w ij + min i<m j (p i(m 1) + p mj ), 0 i < j n. Vamos ainda usar r ij para guardar a posição m que produz o mínimo p ij.
44 Algoritmo para construir uma árvore de busca ótima 1: for i 0 to n do 2: p ii b i 3: end for 4: for i 0 to n 1 do 5: j i + 1 6: p ij w ij + pij + p jj 7: r ij j 8: end for 9: for h 2 to n do 10: for i 0 to n h do 11: j i + h 12: Acharm e min = min 1<m j (p i(m 1) + p mj ) 13: p ij min + w ij 14: r ij m 15: end for 16: end for A complexidade de tempo do algoritmo de construção é O(n 3 ), mas pode ser reduzido para O(n 2 ) (Knuth - The Art of Computer Programming Vol. 3).
45 Uso da técnica de programação dinâmica O termo programação dinâmica foi usado por Richard Bellman. A utlizada dessa técnica pode ser mostrada em várias outras aplicações. Encontrar uma ordem de multiplicar matrizes M 1 M 2... M n que usa o menor número de operações escalares. Encontrar o menor caminho entre dois vértices de um grafo. Dadas duas seqüências de caracteres, transformar uma seqüência na outra usando operações de edição como substituição, inserção ou remoção. Essas aplicações são tratadas em cursos de Análise de Algoritmos.
ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Otimizaçã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
Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
INF1010 Lista de Exercícios 2
INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Projeto 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
Projeto 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
Aula 19 Árvores Rubro-Negras
Algoritmos e Estruturas de Dados I Aula 19 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco [email protected] Q1-2017 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção
0.1 Aula 0: Árvores Binárias de Busca Conceitos básicos Algoritmos de busca e inserção Caminhos externo e interno 0. Problema de busca s i = chave S = { s 1,..., s n }, s 1
Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.
Solução básica viável inicial Marina Andretta ICMC-USP 10 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211
Linguagem Haskell. Maria Adriana Vidigal de Lima
em Haskell Linguagem Haskell Faculdade de Computação - UFU Dezembro - 2009 em Haskell 1 em Haskell Noções sobre Fundamentos em Haskell Noções sobre Uma árvore é uma estrutura de dados baseada em listas
Tópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial
Armando Matos, 2008/2009 Tópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial 1. Optimizar o produto de matrizes Considere o problema da parentização óptima de uma multiplicação
Aula 13 Árvores Rubro-Negras
MC3305 Algoritmos e Estruturas de Dados II Aula 13 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de
B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nos artigos Bayer, R. and E. McCreight. Organization and maintenance of large ordered
Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares
Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para
Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza
Árvore Vermelho-Preta Estrutura de Dados II Jairo Francisco de Souza Introdução As árvores Vermelho-preto são árvores binárias de busca Também conhecidas como Rubro-negras ou Red-Black Trees Foram inventadas
ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Eduardo Camponogara. DAS-9003: Introdução a Algoritmos
Caminhos Mínimos entre Todos os Vértices 1/ 48 Caminhos Mínimos entre Todos os Vértices Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: Introdução
DAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
Árvores balanceadas. Aleardo Manacero Jr.
Árvores balanceadas Aleardo Manacero Jr. Árvores Balanceadas Para que uma árvore seja, de fato, um mecanismo eficiente, é preciso que os seus elementos estejam distribuídos de forma relativamente homogênea
Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números
Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo
Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore
Árvores Rubro-Negras Árvores Rubro-Negras (Vermelho-Preta) Árvore Binária de Pesquisa (ABP) com nodos coloridos de vermelho e preto Árvore balanceada Qualquer caminho da raiz até as folhas, nenhum caminho
Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade
Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem
ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca
ESTRUTURA DE DADOS DCC013 Árvore Binária de Busca Árvore Binária de Busca Propriedade fundamental da árvore binária de busca Valor da chave da raiz é Maior do que o valor da chave da subárvore da esquerda
Aula 10 Árvores Adelson-Velskii e Landis
MC3305 Algoritmos e Estruturas de Dados II Aula 10 Árvores Adelson-Velskii e Landis Prof. Jesús P. Mena-Chalco [email protected] 2Q-2014 1 Árvores balanceadas 2 Árvores balanceadas As ABB permitem
Árvores & Árvores Binárias
Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente
Árvores Vermelho-Preto
Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC)
Compressão Sem Perdas: Codificações Huffman e Aritmética. Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré
Compressão Sem Perdas: Codificações Huffman e Aritmética Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré Compressão Sem Perdas (Lossless Data Compression) Refere-se a métodos de compressão
Algoritmos de Caminho Mínimo Parte 1
Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree
Aula 31: Encadeamento exterior. Modelo de encadeamento exterior. Complexidade do encadeamento exterior
31.1 Aula 31: Encadeamento exterior Conceito de encadeamento Modelo de encadeamento exterior Complexidade do encadeamento exterior 31.2 Introdução Recordando: uma colisão ocorre quando duas chaves diferentes
AULA 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ê
Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.
Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação
Aula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS Cristina Boeres Árvore Binária - altura máxima Seja a árvore A formada com as seguintes inserções! 1, 2, 3, 4, 5, 6 e 7 1 2 3 4! Pior caso: O(n) 5 6
Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: [email protected] Lista de Exercícios Árvores, Árvores Binárias, Árvores
Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos
Grafos Caminhos mais curtos de única origem Conteúdo Subestrutura ótima Inicialização Propriedades de caminhos mais curtos Algoritmos Algoritmo de Bellman-Ford Caminhos mais curtos de única origem em gaos
Análise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Problema do Caixeiro Viajante
Problema do Caixeiro Viajante 1 Introdução Minimizar o custo de um ciclo hamiltoniano em um grafo completo (William R. Hamilton,1857,Around The World); Solução por enumeração: R( n ) = ( n - 1 )! Um computador
Estruturas de Dados II
Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto
AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO
AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO PROGRAMA DE PÓS- GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO 01. Toda arvore binária possui as seguintes propriedades: I. Todos os nós de uma sub- árvore direita são maiores
Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:
Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas
Universidade de São Paulo
Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6
Lista 6 Exercício. O objetivo deste exercício é modelar o problema de emparelhamento em um grafo bipartido como um problema de fluxo, e verificar que o Teorema de Konig é essencialmente o Teorema de Fluxo
Teoria dos Grafos Aula 24
Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo
Codificação de Huffman
Codificação de Huffman Bruna Gregory Palm 11 de setembro de 2017 A codificação de Huffman é um método de compressão que considera as probabilidades de ocorrência de cada símbolo no conjunto de dados a
Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira [email protected] Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 3Q-2017 1 0 A = n-1... 2 0 A = n-1... - O programa funciona (está correto)? - Como medir/mensurar
B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3
B-tree B-Trees Material da Prof. Denise Bandeira, aula de Christian Hofsetz B-Trees são árvores balanceadas. Diferente das árvores binárias, os nós de uma B-tree podem ter um número variável de nodos filho.
Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação
1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual
Otimização em Grafos
Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).
AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49
AED1 - Árvores Hebert Coelho Instituto de Informática Universidade Federal de Goiás HC AED1-Árvores 1/49 Roteiro Árvore; Árvores - Representações; Árvores - Conceitos; Árvores Binárias; Árvores Binárias
Aula 22: Formulações com número exponencial de variáveis
Aula 22: Formulações com número exponencial de variáveis Otimização Linear e Inteira Túlio Toffolo http://www.toffolo.com.br BCC464 / PCC174 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Correção
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria
SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores AVL (Balanceadas) Profª.Drª. Roseli Ap. Francelin Romero Fonte: Profa. Patrícia Marchetti Revisão: Gedson Faria Árvores AVL
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Grafos: á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
Linguagem C: Árvores AVL
Instituto de C Linguagem C: Árvores AVL Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Árvores Balanceadas As árvores binárias de pesquisa são,
Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016
Método Simplex Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização linear
Limite assintótico para a ordenação, Ordenação em tempo linear
Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Ordenação Ordenar corresponde ao processo
Programação Linear. Dualidade
Programação Linear Dualidade Dualidade Já vimos em sala que para cada PPL existe um outro PL chamado dual, que consiste em modelar um problema que utiliza os mesmos dados que o original, mas alterando
Árvores Genéricas de Busca
Árvores Genéricas de Busca Árvores não binárias também podem ser usadas para buscar elementos. Essas árvores são chamadas de árvores genéricas de busca, e elas podem ser de dois tipos: árvore de busca
Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos
Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil
SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Teoria dos Grafos Aula 14
Teoria dos Grafos Aula 14 Aula passada MST Aula de hoje Construção de algoritmos Paradigma guloso Escalonando tarefas no tempo (interval scheduling) Projetando Algoritmos Dado um problema P, como projetar
Problema do Caminho Mínimo
Departamento de Engenharia de Produção UFPR 63 Problema do Caminho Mínimo O problema do caminho mínimo ou caminho mais curto, shortest path problem, consiste em encontrar o melhor caminho entre dois nós.
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando
Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO
Algoritmos de Ordenação Cota inferior Professora: Fátima L. S. Nunes 1 1 1 Algoritmos de Ordenação Algoritmos de ordenação que já conhecemos: 2 2 2 Algoritmos de Ordenação Algoritmos de ordenação que já
