Classificação Externa: Intercalação de Partições Classificadas

Documentos relacionados
Classificação Externa: Intercalação de Partições Classificadas

Classificação Externa: Geração de Partições Classificadas

Arquivos Seqüenciais: Intercalação

Classificação Externa: Geração de Partições Classificadas

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

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;

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

void subdivide (LISTA_ENC *pl, LISTA_ENC *pl1, LISTA_ENC *pl2) { int cont, k=1; for (cont=tam(*pl)/2;cont;cont--) {

Complexidade de Algoritmos. Edson Prestes

Memória secundária. Memória secundária

ALGORITMOS DE ORDENAÇÃO

Estruturas de Dados Apresentação

Algoritmo MergeSort. Estrutura de Dados II Prof Jairo Francisco de Souza

Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais

Ordenação Externa. Profa. Graça Nunes

Intercalação de vários arquivos. Estrutura de Dados II Prof Jairo Francisco de Souza

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

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

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

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

Métodos de ordenação. Bubble sort:

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Métodos de Ordenação Parte 4

Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

TCC Prof.: Leandro A. F. Fernandes Conteúdo: Listas Lineares

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

Algoritmos de ordenação: Inserção e Shellsort

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

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

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010

BCC202 - Estrutura de Dados I

Classificação por Intercalação

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

Estruturas de Dados. / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Memória Secundária e Ordenação externa Algoritmos e Estruturas de Dados III

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão

Análise empírica de algoritmos de ordenação

Sistemas de arquivos

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Algoritmos e Estruturas de Dados II. Trabalho Prático 3

Métodos de Ordenação Parte 2

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

Hashing convencional...

Terceiro Trabalho Prático. Este trabalho tem como objetivo ordenar um arquivo de dados e implementar as operações cosequenciais de merging e matching.

CHAPTER ONE. Uma árvore B de ordem "m" (máximo de filhos para cada nó) é uma árvore que atende as seguintes propriedades:

Vetores. Vanessa Braganholo

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

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

ESTRUTURA DE DADOS ORDENANDO LISTAS

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Arquivos Seqüenciais Atualização em Lote

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Ordenação Externa (Merge Sort)

Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica (continuação) Prof. Humberto Brandão

Arquivos Sequenciais Ordenados Fisicamente

Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Hashing: conceitos. Hashing

Programação dinâmica

Complexidade de Algoritmos. Edson Prestes

PESQUISA EM INFORMÁTICA - COMO ESCREVER UM TEXTO. Prof. Angelo Augusto Frozza, M.Sc.

Trabalho de Programação 2 Processador CESAR

Compressão de Imagens Usando Wavelets: Uma Solução WEB para a Codificação EZW Utilizando JAVA. Utilizando JAVA. TCC - Monografia

ESTRUTURA DE DADOS ORDENANDO LISTAS

ESPECIFICAÇÃO DO TRABALHO DA DISCIPLINA DE ANÁLISE DE SISTEMAS ORIENTADOS A OBJETOS DO CURSO DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE

Sistemas de Arquivos. Carlos Gustavo A. da Rocha. Sistemas Operacionais

Exercícios sobre algoritmos

Construção de árvores-b. Árvores-B (Parte II) Características Gerais. Características Gerais. Leandro C. Cintra M.C.F. de Oliveira

Processamento da Consulta. Processamento da Consulta

Ordenação em Memória Primária Estrutura de Dados II

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Leandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

Métodos de Ordenação Parte 3

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

INTRODUÇÃO LINGUAGEM C

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

Linguagens Livres de Contexto

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

Aplicativo RockSim Tutorial 3

ORDENAÇÃO DE ARQUIVOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

PESQUISA EM INFORMÁTICA -COMO ESCREVER O TEXTO. Prof. Angelo Augusto Frozza, M.Sc.

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

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)

É neste ponto que entra o conceito de lógica de programação.

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

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

Trabalho Prático. Primeira Parte do Trabalho (Parte I): peso 40%

Inteligência Computacional

Primeira Parte do Trabalho Prático (Parte I) Valor: 30% Descrição do arquivo de dados

Transcrição:

Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF)

Relembrando: Modelo da Classificação Externa 2

Aula Passada: Etapa de Classificação 3

Aula de Hoje: Etapa de Intercalação 4

Objetivo da Etapa de Intercalação } Transformar um conjunto de partições classificadas por determinado critério, em um único arquivo contendo todos os registros de todas as partições originais do conjunto } O arquivo gerado deve estar classificado pelo mesmo critério de classificação das partições iniciais 5

Problema } Considere a existência de R partições geradas pelo processo de geração de partições } Como gerar o arquivo a partir das R partições? 6

Problema } Seria ideal poder intercalar todas as partições de uma só vez e obter o arquivo classificado, utilizando, por exemplo, a árvore de vencedores, mas: (i) O número de arquivos a intercalar pode gerar uma árvore de vencedores maior do que a capacidade da memória (ii) Sistemas Operacionais estabelecem número máximo de arquivos abertos simultaneamente } Esse número pode ser bem menor do que o número de partições existentes } Curiosidade: ver o número máximo de arquivos que podem ser abertos no linux: } ulimit Hn 7

Solução } A intercalação vai exigir uma série de fases durante as quais registros são lidos de um conjunto de arquivos e gravados em outro (partições) 8

Etapa de Intercalação 9

Estágio de Intercalação Estratégias de distribuição e intercalação: } } Intercalação balanceada de N caminhos Intercalação ótima 10

Medida de Eficiência } Uma medida de eficiência do estágio de intercalação é dada pelo número de passos sobre os dados: Número de passos = No. total de registros lidos No. total de registros no arquivo classificado } Número de passos representa o número médio de vezes que um registro é lido (ou gravado) durante o estágio de intercalação 11

Intercalação balanceada de N caminhos

Intercalação Balanceada de N caminhos } Primeiro passo: determinar o número de arquivos (F) que o algoritmo irá manipular } Metade dos arquivos (F/2) será usada para leitura (entrada) } A outra metade (F/2), para escrita (saída) 13

Exemplo } Número de arquivos F = 4 14

Intercalação Balanceada de N caminhos } Passo 2: Distribuir todas as partições, tão equilibradamente quanto possível, nos F/2 arquivos de entrada } Atenção: aqui fazemos apenas uma fila para ver que variável de arquivo vai processar cada partição 15

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 P1 P2 P3 P10 P11 P12 P13 P20 16

Intercalação Balanceada de N caminhos } Início da fase de intercalação: intercalar as primeiras F/2 partições, gravando o resultado em um dos F/2 arquivos de saída 17

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) P1 P11 P2 P12 P3 P13 P10 P20 18

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 200 reg P21 P2 P12 P3 P13 P10 P20 19

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 200 reg P21 200 reg P22 P3 P13 P10 P20 20

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 200 reg P21 200 reg P22 200 reg P23 P10 P20 21

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 200 reg P21 200 reg P22 200 reg P23 200 reg P24 P10 P20 22

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 200 reg P21 200 reg P22 200 reg P23 200 reg P29 200 reg P30 23

Exemplo: Fase 1 } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 200 reg P21 200 reg P22 200 reg P23 Resultado da Primeira Fase: 10 partições de 200 registros cada 200 reg P29 200 reg P30 24

Intercalação Balanceada de N caminhos } No final de cada fase, o conjunto de partições de saída torna-se o conjunto de entrada 25

Exemplo: Fase 2 } Número de arquivos F = 4 } Partições a serem intercaladas = 10 (200 registros cada) 200 reg P21 200 reg P22 200 reg P23 200 reg P29 200 reg P30 26

Intercalação Balanceada de N caminhos } A intercalação termina quando, em uma fase, grava-se apenas uma partição 27

Número de Fases: 5 } Fase 1: 20 partições com istros cada } Fase 2: 10 partições com 200 registros cada } Fase 3: 5 partições com 400 registros cada } Fase 4: 2 partições com 800 registros cada + 1 partição com 400 registros cada } Fase 5: 1 partição com 1600 registros + 1 partição com 400 registros } Resultado da Fase 5: 1 partição com 2000 registros 28

Número de Fases: 5 } Fase 1: 20 partições com istros cada } Fase 2: 10 partições com 200 registros cada } Fase 3: 5 partições com 400 registros cada } Fase 4: 2 partições com 800 registros cada + 1 partição com 400 registros cada } Fase 5: 1 partição com 1600 registros + 1 partição com 400 registros Pode ocorrer que partições sejam copiadas de um arquivo para outro sem qualquer processamento 29

Número de Passos Número de passos = No. total de registros lidos } Número de registros lidos } Fase 1: 20 partições com istros cada = 2000 } Fase 2: 10 partições com 200 registros cada = 2000 } Fase 3: 5 partições com 400 registros cada = 2000 } Fase 4: 2 partições com 800 registros cada + 1 partição com 400 registros cada = 2000 } Fase 5: 1 partição com 1600 registros + 1 partição com 400 registros = 2000 2000 * 5 = 10000 registros lidos No. total de registros no arquivo classificado 30

Número de Passos Número de passos = 10000 No. total de registros no arquivo classificado } Número total de registros no arquivo classificado: 2000 31

Número de Passos Número de passos = 10000 = 5 2000 } Portanto: número de passos = número de fases 32

Intercalação Balanceada de N caminhos } O balanceamento do processo baseia-se em colocar nos arquivos de entrada aproximadamente o mesmo número de registros 33

Intercalação Ótima

Intercalação Ótima } F arquivos } F 1 para entrada } 1 para saída 35

Exemplo } Número de arquivos F = 4 36

Intercalação Ótima } Durante cada fase do algoritmo, F-1 partições são intercaladas e gravadas no arquivo de saída 37

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 P1 P2 P3 P4 P5 P6 P7 P19 P8 P20 P9 38

Intercalação Ótima } Do conjunto inicial de partições removem-se as partições intercaladas e a ele agrega-se a partição gerada na intercalação } Algoritmo termina quando este conjunto tiver apenas uma partição 39

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) P1 P2 P3 P4 P5 P6 P7 P8 P9 P19 P20 40

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 300 reg P21 P4 P5 P6 P7 P8 P9 P19 P20 41

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 300 reg P21 P4 P5 P6 P7 P8 P9 P19 P20 42

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) P4 P5 P6 P7 P8 P9 P19 P20 300 reg P21 43

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) P4 P5 P6 P7 P8 P9 P19 P20 300 reg P21 44

Exemplo } Número de arquivos F = 4 } Partições a serem intercaladas = 20 (istros cada) 300 reg P22 P7 P8 P9 P19 P20 300 reg P21 45

Resumo do Exemplo Fase Arquivo1 Arquivo2 Arquivo3 Arquivo4 N. de leituras 1 1:100 2:100 3:100 21:300 300 2 4:100 5:100 6:100 22:300 300 3 7:100 8:100 9:100 23:300 300 4 10:100 11:100 12:100 24:300 300 5 13:100 14:100 15:100 25:300 300 6 16:100 17:100 18:100 26:300 300 7 19:100 20:100 21:300 27:500 500 8 22:300 23:300 24:300 28:900 900 9 25:300 26:300 27:500 29:1100 1100 10 28:900 29:1100 ---------- 30:2000 2000 TOTAL 6300 Número de passos = 6300 = 2000 3,15 46

Resumo do Exemplo Fase Arquivo1 Arquivo2 Arquivo3 Arquivo4 N. de leituras 1 1:100 2:100 3:100 21:300 300 2 4:100 5:100 6:100 22:300 300 3 7:100 8:100 9:100 23:300 300 4 10:100 11:100 12:100 24:300 300 5 13:100 14:100 15:100 25:300 300 6 16:100 17:100 18:100 26:300 300 7 19:100 20:100 21:300 27:500 500 8 22:300 23:300 24:300 28:900 900 9 25:300 26:300 27:500 29:1100 1100 10 28:900 29:1100 ---------- 30:2000 2000 TOTAL 6300 Notar que o conceito de Fase desse algoritmo é diferente do usado no algoritmo anterior. Usando esse conceito o algoritmo anterior teria 21 fases. Número de passos = 6300 = 2000 3,15 47

Possível forma de Implementação } Usar uma lista que contém os nomes dos arquivos a ordenar } A cada passo do algoritmo, retirar os 3 primeiros itens da lista, intercalá-los, colocar o arquivo resultante no final da lista } O algoritmo pára quando a lista tiver apenas 1 arquivo (que será o resultante) 48

Exemplo (F = 4 e 10 partições): P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 49

Exemplo (F = 4 e 10 partições): P4 P5 P6 P7 P8 P9 P10 P1 P2 P3 50

Exemplo (F = 4 e 10 partições): P4 P5 P6 P7 P8 P9 P10 300 reg P11 51

Exemplo (F = 4 e 10 partições): P4 P5 P6 P7 P8 P9 P10 P11 52

Exemplo (F = 4 e 10 partições): P7 P8 P9 P10 P11 P4 P5 P6 53

Exemplo (F = 4 e 10 partições): P7 P8 P9 P10 P11 300 reg P12 54

Exemplo (F = 4 e 10 partições): P7 P8 P9 P10 P11 P12 55

Exemplo (F = 4 e 10 partições): P10 P11 P12 P7 P8 P9 56

Exemplo (F = 4 e 10 partições): P10 P11 P12 300 reg P13 57

Exemplo (F = 4 e 10 partições): P10 P11 P12 P13 58

Exemplo (F = 4 e 10 partições): P13 P10 300 reg P11 300 reg P12 59

Exemplo (F = 4 e 10 partições): P13 700 reg P14 60

Exemplo (F = 4 e 10 partições): P13 P14 61

Exemplo (F = 4 e 10 partições): 300 reg P13 700 reg P14 62

Exemplo (F = 4 e 10 partições): 700 reg P15 63

Exemplo (F = 4 e 10 partições): P15 } DICA: agora basta renomear a partição P15 para o nome do arquivo de saída desejado } Em Java, pode-se usar o método renameto da classe File 64

Implementação } Problema: fazer intercalação de N partições ordenadas para gerar um único arquivo ordenado } Restrição: Sistema Operacional pode lidar com apenas 4 arquivos ao mesmo tempo } : } Lista com nomes dos arquivos a intercalar } : } Arquivo resultante ordenado, chamado saida.dat 65