Aula 18 Árvores B e parâmetros de compilação

Documentos relacionados
Aula 16 Árvores Patricia e Árvores B

Aula 07: Algoritmos de busca e Listas encadeadas

Aula 13 Árvores Rubro-Negras

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Aula 13: Listas encadeadas (estruturas lineares)

Árvores B Partes I e II

Limite assintótico para a ordenação, Ordenação em tempo linear

Acesso Sequencial Indexado

Algoritmos e Estruturas de Dados I

B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

MC3305 Algoritmos e Estruturas de Dados II. Aula 02 Hashing. Prof. Jesús P. Mena-Chalco.

MC3305 Algoritmos e Estruturas de Dados II. Aula 06 Árvores. Prof. Jesús P. Mena-Chalco.

Pesquisa em Memória Secundária. Prof. Jonas Potros

Árvores-B (Parte I) SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Árvores Binárias de Busca. Árvores Binárias de Busca. Introdução

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Métodos de Busca Parte 1

Aula 19 Árvores Rubro-Negras

EDUARDO DA SILVA SARDÃO 0981/00-4 IGOR RODRIGO MACHADO DE MENEZES 1422/98-1 TRABALHO FINAL ÁRVORES B+

Árvores Genéricas de Busca

Algoritmos e Estruturas de Dados I Aula 15 Árvores de busca balanceadas (e mais...)

MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade

Á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

Aula 02: Custos de um algoritmo e funções de complexidade

Aula 15 Árvores Digitais / Trie

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Algoritmos e Estruturas de Dados I

Árvores. Exemplo de árvore 2-3-4

Árvore-B* Profa. Dra. Cristina Dutra de Aguiar Ciferri

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Ordenação e Busca em Arquivos

Algoritmo: Split. Árvores B Parte IV. Algoritmo: Split. Algoritmo: Split. Algoritmo: Split. Procedimento inicial. Parâmetros

# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira

SCC-503 Algoritmos e Estruturas de Dados II. Modificado por Moacir Ponti Jr, do original de:

Árvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira

Introdução Métodos de Busca Parte 1

Definição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F.

Árvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de:

INF 1010 Estruturas de Dados Avançadas

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Aula 19 Conjuntos disjuntos (Union-find)

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

Pesquisa Linear. Adriano J. Holanda 15/3/2016

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Aula 05 Ordenação parcial

Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

Aula 05: - Recursão (parte 1)

Análise e Complexidade de Algoritmos

MCTA028 Programação Estruturada Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1)

Algoritmos de Busca em Vetores

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

Lista de Prioridades. Estrutura de Dados II Prof. Erinaldo

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I

Implementação de Diretórios (1)

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Algoritmos de Busca. Profº Carlos Alberto T. Batista

Organização de Arquivos

Organização de Arquivos

Análise de Algoritmos

BCC202 - Estrutura de Dados I

Sistemas de Arquivos

Árvores B Parte IV. Revisão de Inserção. Organização. Variantes. Leandro C. Cintra Maria Cristina F. de Oliveira

Árvores-B (Parte IV) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Ordem. Árvores-B (Parte IV) Número mínimo de chaves por página. Definição formal das Propriedades de árvores-b /30 1

Sumário. Índices Ordenados: Nível Único. Índices Primários. Bancos de Dados Avançados Índices. Índices: Ordenados em nível único Multiníveis

Aula 10 Árvores Adelson-Velskii e Landis

Programação de Computadores II. Cap. 17 Busca

Aula 19: Métodos eficientes de ordenação

MCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Transcrição:

MC3305 Algoritmos e Estruturas de Dados II Aula 18 Árvores B e parâmetros de compilação Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1

Árvores binárias paginadas Exemplo: árvore de 63 nós (página de 7 nós). Com um nível adicional (3 seeks) é possível acessar 511 nós. Com mais outro nível (4 seeks), é possível acessar 4.095 nós. Uma busca binária em 4.095 elementos necessita de 12 acessos. 2

Árvores binárias paginadas O uso do disco pelas árvores paginadas ainda é ineficiente. Não há razão para se usar uma árvore dentro de uma página! Grande parte do espaço é desperdiçada em ponteiros. Uma chave, 2 ponteiros Possível busca binária em vetor, em memória: sem acessos ao disco. Lembre-se: o caro é acesso ao disco 3

Exemplo de árvore B P D A B C D M P G I W T M N P R S W T U W Uma árvore B com tamanho de página = 64 ao indexar um arquivo com 1 milhão de registros possibilita achar a chave de qualquer registro em até 3 acessos ao disco (log641000000). Busca binária = 20 acessos (log21000000)

Exemplo Uso da seguinte sequência: C S D T A M P I B W N G U R K E H O L J Y Q Z F X V. Árvore B de ordem 4 (m=4). As 26 chaves são inseridas em uma árvore de altura 3. O número de nós afetados por qualquer inserção nunca é maior do que dois nós por nível (um mudado e outro criado por uma divisão). Com uma ordem maior a árvore é mais baixa

Ordem: Número máximo de chaves armazenadas em um nó. Cada nó deve ter um número mínimo de chaves (exceção a raiz): ~metade da ordem. Divide o nó cheio em 2 com metade das chaves. 6

Busca e inserção Busca Busca iterativa, carregando a página na memória, pesquisando na página pela chave e carregando páginas em níveis mais baixos até que se alcance o nível das folhas. Na folha se faz uma busca pela chave procurada. Número máximo de buscas igual à altura da árvore Inserção Duas importantes observações: Começa com uma busca que vai até o nível das folhas. Depois de descobrir o local da inserção no nível das folhas, o trabalho de inserção, detecção de overflow e divisão se propaga para cima. Pode ser necessário criar um novo nó raiz caso a raiz atual seja dividida. Normalmente ordem é >> 4: divisões relativamente raras Mesmo assim, divisões são O(altura da árvore)

Altura de uma árvore B de ordem m Cada página tem no máximo m descendentes. Cada página, exceto a raiz e as folhas, tem, no mínimo, m/2 descendentes. A raiz tem, no mínimo, dois descendentes (a não ser que também seja uma folha). Todas as folhas aparecem no nível das folhas (altura da árvore).

Altura de uma árvore B de ordem m Pior caso: quando toda página da árvore tem somente o número mínimo de descendentes: Raiz (nível 1) => 2 descendentes. Nível 2 => 2 m/2 descendentes. Nível 3 => 2 m/2 2 descendentes. Nível h => 2 m/2 h-1 descendentes. Para uma árvore de N chaves em suas folhas: N 2 m/2 h-1. O que resulta em h 1 + log m/2 (N/2). Exemplo: Árvore de ordem 512 que contém 1 milhão de chaves. h log256 500.000 = 3,37.

Remoção de chaves

11

12

13

14

15

16

Estado-da-arte 17

Desafio 03 opcional 0,5 na média final da disciplina Envio até 13/08 (23h50-Tidia) Atualmente existem muitas estruturas de dados baseadas em árvores que foram propostas para fins computacionais específicos. Qual é o estado-da-arte desse tipo de estruturas? O que está sendo utilizado para grandes projetos (e.g., cloud, e-science, bigdata)? Neste desafio o aluno é convidado para estudar uma estrutura de dados em árvores que atualmente esteja sendo utilizada para aplicações. Qual a complexidade computacional para construção da árvore? Qual a complexidade para a busca, inserção e remoção de elementos? A estrutura funciona em memória principal? Quais as vantagens e desvantagens da utilização dessa estrutura? Deverá ser entregue um relatório técnico que contenha, no mínimo, 2000 palavras. Apresentação livre (quanto mais completo melhor). Apresente um resumo e contextualização histórica. Referencie todos os trabalhos. Apresentação individual. Os melhores trabalhos serão publicados na página da disciplina. 18

Algumas considerações para melhora do desempenho otimização 19

tempo.c 20

tempo.c $ gcc tempo.c o tempo.exe $./tempo.exe 0.009594 0.009857 0.010107 0.009947 0.009868 0.009669 0.010100 0.010710 0.010156 0.010282 0.012067 Tempo medio: 0.012217 21

tempo.c $ gcc tempo.c o tempo.exe $./tempo.exe 0.009594 0.009857 0.010107 0.009947 0.009868 0.009669 0.010100 0.010710 0.010156 0.010282 0.012067 $ gcc tempo.c o tempo.exe Ofast $./tempo.exe 0.013685 0.013098 0.012659 0.012056 0.010953 0.012111 0.013188 0.010750 0.012067 0.012273 0.012887 Tempo medio: 0.012217 Tempo medio: 0.010800 22

tempo.c $ time./tempo.exe 0.012891 0.012949 0.013130 0.012945 Tempo medio: 0.010784 real user sys 0m1.093s 0m1.068s 0m0.012s 23

Otimização O0 O1 O2 O3 Ofast Os Optimize for size 24

tempo.c $ gcc tempo.c o tempo1.exe $ gcc tempo.c o tempo2.exe Ofast $ gcc tempo.c o tempo3.exe Os $ ls l rwxr xr x 1 ubuntu ubuntu 8715 Jul 28 09:36 tempo1.exe* rwxr xr x 1 ubuntu ubuntu 10205 Jul 28 09:36 tempo2.exe* rwxr xr x 1 ubuntu ubuntu 8721 Jul 28 09:36 tempo3.exe* 25

fibo.c gcc fibo.c ofibo.exe gcc fibo.c ofibo.exe Ofast $./fibo.exe 267914296 Tempo: 2.735228 $./fibo.exe 267914296 Tempo: 1.825731 26

$ gcc Wall pg fibo.c ofibo.exe Wall Warnings all pg Para uso com o gprof $./fibo.exe Gera um arquivo gmoun.out $ gprof fibo.exe > fibo.txt Gera um arquivo fibo.txt 27

Custo de acesso a disco 28

Custo do acesso a disco O custo do acesso a disco pode ser dividido em três operações distintas Tempo de busca (seek). Atraso rotacional no disco. Tempo de transferência dos dados.

Comparação memória RAM vs discos Discos Um acesso na memória RAM (Random Access Memory) tipicamente pode ser feito em 30 a 60 nanosegundos (30 x10-9 s). Obter a mesma informação no disco tipicamente leva de 7 a 10 milisegundos (7 x10-3 s). Memória RAM é cerca de 1 milhão de vezes mais rápida que o disco. Mas provêm uma capacidade maior a um preço menor. Também são capazes de reter dados quando o computador é desligado. são lentos

Desafio 03 opcional 0,5 na média final da disciplina Envio até 13/08 (23h50-Tidia) Atualmente existem muitas estruturas de dados baseadas em árvores que foram propostas para fins computacionais específicos. Qual é o estado-da-arte desse tipo de estruturas? O que está sendo utilizado para grandes projetos (e.g., cloud, e-science, bigdata)? Neste desafio o aluno é convidado para estudar uma estrutura de dados em árvores que atualmente esteja sendo utilizada para aplicações. Qual a complexidade computacional para construção da árvore? Qual a complexidade para a busca, inserção e remoção de elementos? A estrutura funciona em memória principal? Quais as vantagens e desvantagens da utilização dessa estrutura? Deverá ser entregue um relatório técnico que contenha, no mínimo, 2000 palavras. Apresentação livre (quanto mais completo melhor). Apresente um resumo e contextualização histórica. Referencie todos os trabalhos. Apresentação individual. Os melhores trabalhos serão publicados na página da disciplina. 33