MapReduce Mapeando e reduzindo
|
|
- Maria das Neves Gentil Godoi
- 6 Há anos
- Visualizações:
Transcrição
1 MapReduce Mapeando e reduzindo Prof. Fabrício Olivetti de França Universidade Federal do ABC
2 Motivação Vimos até então que nosso maior problema é a quantidade de dados. O processamento não pode ser distribuído se não pudermos distribuir os dados.
3 Motivação Como extrair informações dos dados tendo apenas uma visão local (parte dos dados) mas tendo a possibilidade de mesclar essa informação em uma visão global?
4 Ordenando dados Um fato comum a muitos algoritmos de ordenação de dados é que eles estão limitados a uma complexidade computacional O(nlogn). Isso porque eles se baseiam em comparação par a par.
5 Ordenando dados Mas existem algumas técnicas que conseguem superar essa limitação! Uma delas é a Bucket Sort que utiliza o princípio da casa dos pombos.
6 Princípio da Casa dos Pombos Imaginem que temos 1 pombo e uma casa.
7 Princípio da Casa dos Pombos É fácil alocar esse pombo nessa casa.
8 Princípio da Casa dos Pombos Da mesma forma se temos dois pombos e duas casas.
9 Princípio da Casa dos Pombos Ou n pombos e n casas.
10 Princípio da Casa dos Pombos Mas se tivermos n pombos e m casas, com n>m?????
11 Princípio da Casa dos Pombos Nesse caso podemos dizer que pelo menos 1 pombo terá que dividir casa com outro!
12 Princípio da Casa dos Pombos Mas o que isso tem a ver com ordenação...e com nosso problema de distribuição de dados?
13 Princípio da Casa dos Pombos Imagine que temos um monte de pombos.
14 Princípio da Casa dos Pombos E queremos dividi-los em machos e fêmeas.
15 Princípio da Casa dos Pombos Mas para saber se são machos ou fêmeas, devemos comparar com pombos da mesma espécie.
16 Princípio da Casa dos Pombos Digamos que temos 3 espécies diferentes...
17 Princípio da Casa dos Pombos...devemos comparar cada pombo com todos os outros?
18 Princípio da Casa dos Pombos Mas, nós sabemos que cada espécie come uma fruta diferente.
19 Princípio da Casa dos Pombos Se colocarmos cada fruta em uma casa diferente, atrairemos pombos da mesma espécie para as mesmas casas.
20 Princípio da Casa dos Pombos Se colocarmos cada fruta em uma casa diferente, atrairemos pombos da mesma espécie para as mesmas casas.
21 Princípio da Casa dos Pombos Matematicamente aplicamos uma função f(x), onde x é um pombo, que retorna a casa que o pombo pertence. f(x) f(x) f(x)
22 Princípio da Casa dos Pombos Ou seja, temos uma função que mapeia nossos objetos para o lugar deles. f(x) f(x) f(x)
23 Princípio da Casa dos Pombos Em cada casa, fazemos a comparação entre os pombos para determinar quem é macho e quem é fêmea. f(x) f(x) f(x)
24 Princípio da Casa dos Pombos Retiramos os pombos da casa já separados.
25 Princípio da Casa dos Pombos Fazemos as operações dentro das casas mas reduzimos os dados para fora delas.
26 Princípio da Casa dos Pombos Bom, acabamos de ordenar os pombos.
27 Princípio da Casa dos Pombos Com 9 pombos, fizemos 9 operações de mapeamento. Em cada casa fizemos 3 operações.
28 Princípio da Casa dos Pombos Ao todo fizemos 18 operações, menos do que as 36 na ordenação ingênua.
29 Bucket Sort Digamos que temos 20 bolinhas numeradas de 1 a 20 e queremos ordená-las
30 Bucket Sort Vamos fazer isso utilizando 5 baldes (ao invés de casas)
31 Bucket Sort Primeiro vamos definir quais números devem ir em cada balde!
32 Bucket Sort Primeiro vamos definir quais números devem ir em cada balde! a 4 5 a 8 9 a a a 20
33 Bucket Sort Nossa função pode ser f(x) = floor((x-1) / 4) a 4 5 a 8 9 a a a 20
34 Bucket Sort No primeiro passo, aplicamos f(x) em cada elemento e jogamos no balde correto
35 Bucket Sort Em cada balde ordenamos utilizando qualquer método de ordenação
36 Bucket Sort Retiramos os números dos baldes na ordem correta e concatenamos o resultado de cada balde
37 Bucket Sort Fizemos um total de 20 operações para mapear os números e 5*6=30 operações para ordenar no balde
38 Bucket Sort 50 operações contra cerca de 60 com n.logn ou 2500 em n
39 Bucket Sort Mas reparem que nossa função de mapeamento dividiu nossos dados. Essa divisão permitiu que trabalhássemos com apenas parte dos dados de forma independente sem afetar o resultado final.
40 MapReduce O mapeamento dos dados, chamado de map e a redução dos conjuntos, chamado reduce, nos permite trabalhar com grandes quantias de dados de forma paralela sem alterar a saída do algoritmo.
41 MapReduce Essas funções já são velhas conhecidas de quem programa em linguagem funcional. O x da questão está em criar essas funções map e reduce para executar nossa tarefa.
42 Sistemas de Arquivos Distribuídos Antes de aprendermos os conceitos de MapReduce vamos entender como funciona a rede de servidores para lidar com grande quantidade de dados.
43 Sistemas de Arquivos Distribuídos Um sistema de arquivos distribuídos geralmente é composto por vários racks de servidores em gavetas.
44 Sistemas de Arquivos Distribuídos Os computadores de cada rack são interligados por uma rede Gigabit.
45 Sistemas de Arquivos Distribuídos E os racks são interligados por um switch ou roteador.
46 Sistemas de Arquivos Distribuídos Em casos que temos uma grande massa de dados sendo adquiridos a cada instante, faz-se necessário tal estrutura. Porém, muitas máquinas significa uma maior chance de falhas.
47 Sistemas de Arquivos Distribuídos Note que esse tipo de sistema só faz sentido quando temos algo além dos Terabytes de dados e os dados não são atualizáveis.
48 Sistemas de Arquivos Distribuídos Nesse tipo de sistema temos duas falhas principais: Falha em uma gaveta (perda de dados). Falha na comunicação intra-racks (perda de comunicação).
49 Sistemas de Arquivos Distribuídos A computação efetuada nesse sistema deve ser tolerante a falhas! Imaginem um processamento que leva horas tendo que ser reiniciado por completo por conta de uma falha na rede. Ou parte dos seus dados perdidos pois um único HD deu problema.
50 Sistemas de Arquivos Distribuídos Para resolver isso nosso sistema deve: Armazenar os dados de forma redundante Dividir o processamento em tarefas
51 Dados Redundantes Nesse tipo de sistema de arquivos os dados são divididos em pedaços, geralmente de 64 MB. Cada pedaço é armazenado em pelo menos 3 servidores localizados em diferentes racks.
52 Dados Redundantes A localização de cada pedaço de um arquivo é armazenado no chamado Nó Mestre, que também é replicado para caso de falhas.
53 Dados Redundantes Exemplos desse tipo de sistema de arquivos: GFS: Google File System HDFS: Hadoop Distributed File System CloudStore
54 Processamento em Tarefas O processamento de dados nesse tipo de sistema segue a lógica do MapReduce. Esse procedimento inicia em cada nó do sistema que contém um pedaço de arquivo de interesse.
55 Processamento em Tarefas Em cada nó, os pedaços de arquivo passam por uma função Map, que transforma os dados do arquivo em uma tupla (chave, valor) Chave-Valor (k,v) DADOS MAP
56 Processamento em Tarefas Essas tuplas são direcionadas a um nó mestre, onde são ordenadas e agrupadas pela chave. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS MAP ORDENA AGRUPA
57 Processamento em Tarefas As tuplas agrupadas são repassadas para outros nós que fazem a redução dos dados. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS MAP ORDENA AGRUPA REDUCE
58 Processamento em Tarefas Finalmente, os dados são combinados e a saída é emitida. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS COMBINAR MAP ORDENA AGRUPA REDUCE
59 Processamento em Tarefas Note que esse sistema é naturalmente tolerante a falhas. Chave-Valor (k,v) (k,[v1,v2,..,vn]) DADOS COMBINAR MAP ORDENA AGRUPA REDUCE
60 Processamento em Tarefas Se um nó MAPPER falhar, basta o nó mestre aguardar que outro mapper termine a tarefa e repassa os pedaços para ele. DADOS COMBINAR MAP ORDENA AGRUPA REDUCE
61 Processamento em Tarefas Se um nó REDUCER falhar, o nó mestre repassa os dados para outro reducer. DADOS COMBINAR MAP ORDENA AGRUPA REDUCE
62 Processamento em Tarefas Se o nó mestre falhar, basta um novo nó mestre recuperar os dados dos mappers. DADOS COMBINAR MAP ORDENA AGRUPA REDUCE
63 Exemplo Canônico Vamos exemplificar o procedimento com uma tarefa bem simples: contar a frequência de cada termo em uma série de documentos. Imaginem que temos armazenados 10TB de documentos em nosso sistema, queremos contar a frequência de cada termo existente em TODOS os documentos.
64 Exemplo Canônico Cada mapper vai receber 64MB de texto (não necessariamente do mesmo documento).
65 Map A nossa função MAP vai receber um pedaço de texto: Para cada termo t do texto: emite ( t, 1 ) Ou seja, o mapper emite cada termo encontrado (chave) com o valor 1.
66 Reduce Cada reducer recebe a tupla (termo, [valores]) após o nó central ordenar a saída dos mappers. Para cada (k,[vi]) faça: total = soma([vi]) emite (k,total) Nesse momento os reducers fazem a soma dos termos e emitem a contagem.
67 Combine Quando temos um cálculo associativo e comutativo (ex.: soma das contagens), podemos usar um passo intermediário chamado Combine. Esse passo é feito em cada nó mapper e consiste em pré-calcular parte do reduce.
68 Combine No nosso caso, o combine faria o cálculo da frequência de cada termo em cada nó mapper e emitiria (t, v) com v sendo a soma de ocorrência do termo t.
69 MapReduce no Haskell
70 GHC Mapper e Combiner mapper :: (Hashable k0, Eq k0) => Op a0 -> Mapper k0 a0 -> [k0] -> M.HashMap k0 a0 mapper combfun f job = combiner combfun $ map f job
71 GHC Mapper e Combiner combiner :: (Hashable k0, Eq k0) => Op a0 -> [(k0,a0)] -> M.HashMap k0 a0 combiner f m = M.fromListWith f m
72 GHC Reducer reducer :: (Hashable k0, Eq k0) => Op a0 -> [M.HashMap k0 a0] -> M.HashMap k0 a0 reducer f m = foldl' (M.unionWith f) M.empty m
73 GHC Tipos type Op a = (a -> a -> a) -- Function of two inputs type Mapper k a = k -> (k,a) -- Function that maps a key to a key value tuple
74 GHC Contador de Palavras wordcount :: Int -> [String] -> M.HashMap String Integer wordcount n wl = reducer (+) mapped where mapped = map mapfun workers `using` parlist rdeepseq mapfun = mapper (+) counter counter w = (w,1) workers = chunksof n wl
75 Tarefa para a casa Implemente os algoritmos em BoW utilizando o conceito de MapReduce.
Haddop, MapReduce e Spark
Haddop, MapReduce e Spark Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Conceitos Básicos 2. MapReduce 3. Spark 4. Transformações Básicas 5. Ações Básicas 1 Conceitos Básicos Hadoop
Leia maisSumarizando Dados. Fabrício Olivetti de França. Universidade Federal do ABC
Sumarizando Dados Fabrício Olivetti de França Universidade Federal do ABC Sumarizando os dados Sumarização Antes de extrair informações da base de dados, é importante entender seu conteúdo. Sumarização:
Leia maisPré-processamento de Dados
Pré-processamento de Dados Fabrício Olivetti de França Universidade Federal do ABC Pré-Processamento dos Dados Tópicos 1. Pré-Processamento dos Dados 2. Conceitos Básicos 3. Representação Textual 4. Padrões
Leia maisIntrodução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná
Fabiola Santore Universidade Federal do Paraná Sumário 1. Introdução 2. Ferramentas Unix 2.1 Análise de log 2.2 Filosofia Unix 3. MapReduce 3.1 Procedimento 3.2 Reduce: Joins e Agrupamento 3.3 Análise
Leia maisInformática Parte 10 Prof. Márcio Hunecke
Escriturário Informática Parte 10 Prof. Márcio Hunecke Informática CONCEITOS DE MAPREDUCE E HDFS/HADOOP/YARN 2.7.4 Big Data O termo Big Data refere-se a um grande conjunto de dados armazenados e baseia-se
Leia maisHaskell Paralelo (e entrada e saída de dados)
Haskell Paralelo (e entrada e saída de dados) Prof. Fabrício Olivetti de França Universidade Federal do ABC Entrada e Saída de dados Imprimindo na tela Nós já conhecemos o comando print, que imprime qualquer
Leia maisBruno Antunes da Silva UFSCar - Sorocaba
Bruno Antunes da Silva UFSCar - Sorocaba Introdução HDFS Arquitetura Leitura e escrita Distribuição de nós Controle de réplicas Balancer MapReduce Conclusão Aplicações web com grandes quantidades de dados
Leia maisPrIntCloud. Disciplina: Procedência de Dados e Data Warehousing. Aluna: Shermila Guerra Santa Cruz. 16/04/13
PrIntCloud Disciplina: Procedência de Dados e Data Warehousing. Aluna: Shermila Guerra Santa Cruz. 16/04/13 Roteiro 1. Fundamentação Teórica A.- Cloud Computing B.- Hadoop C.- MapReduce D.- NoSql 2. Proposta
Leia maisClassificação. Prof. Fabrício Olivetti de França Universidade Federal do ABC
Classificação Prof. Fabrício Olivetti de França Universidade Federal do ABC Classificação Quando queremos encontrar: f(x) = y C e C = {c1, c2, c3,, cn} Classificação Se um e-mail é spam ou não De qual
Leia maisVença o relógio Redes de Ordenação
Atividade 8 Vença o relógio Redes de Ordenação Sumário Mesmo os computadores sendo rápidos, há um limite na sua velocidade de resolução de problemas. Uma forma de acelerar as coisas é usar vários computadores
Leia maisPython + Spark = PySpark. Prof. Fabrício Olivetti de França Universidade Federal do ABC
Python + Spark = PySpark Prof. Fabrício Olivetti de França Universidade Federal do ABC Spark Plataforma para processamento de dados em larga escala. Baseado em transformações preguiçosas dos dados. Estende
Leia maisRegressão. Prof. Fabrício Olivetti de França Universidade Federal do ABC
Regressão Prof. Fabrício Olivetti de França Universidade Federal do ABC Aprendendo com Exemplos Uma das formas de aprendizado de máquina é definido como: Dado um conjunto de exemplos X, com cada x sendo
Leia maisAlgoritmos de Junção Estrela em MapReduce
Algoritmos de Junção Estrela em MapReduce Jaqueline Joice Brito 09 de junho de 2015 1 Modelo Relacional Dados armazenados em um conjunto de tabelas Amplamente utilizado Junção Recuperação de dados de duas
Leia maisTécnicas de Programação
Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir
Leia mais15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -
Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções 1 Um algoritmo pode ser visto como uma sequência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema.
Leia maisAVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP
AVALIAÇÃO DE DESEMPENHO DE PROCESSAMENTO DISTRIBUÍDO EM LARGA ESCALA COM HADOOP Débora Stefani Lima de Souza dsls@cin.ufpe.br Orientador: Dr. Paulo Romero Martins Maciel INTRODUÇÃO Nem sempre os dados
Leia maisMineração de Dados com Big Data. Prof. Fabrício Olivetti de França Universidade Federal do ABC
Mineração de Dados com Big Data Prof. Fabrício Olivetti de França Universidade Federal do ABC Introdução Mineração de Dados Extração e descoberta de conhecimentos de bases de dados. Interdisciplinar: aprendizado
Leia maisProcessamento da Informação
Processamento da Informação Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Listas e Vetores 1 Listas e Vetores Listas e Vetores Uma lista em Python é um container de informações que, por
Leia maisAlgoritmos de Regressão
Algoritmos de Regressão com Big Data Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Regressão Linear 2. Ordinary Least Square 3. Gradiente Descendente 4. Overfitting 5. Variáveis Não-Lineares
Leia maisFUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em
Leia maisBIG DATA PODEMOS DIZER QUE SÃO DADOS GRANDES?
1 BIG DATA PODEMOS DIZER QUE SÃO DADOS GRANDES? Deyvirson Mendonça SUMÁRIO Definição Os Vs do Big Data Desafios Hadoop BD e Big Data PARA COMEÇAR O QUE SÃO DADOS? Informações diversas, que podem ser organizadas
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Leia maisALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
Leia mais2. Redes Neurais Artificiais
Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.1. Introdução às Redes Neurais Artificiais (RNAs) 2.1.1. Motivação
Leia maisOrdenação em Tempo Linear
Ordenação em Tempo Linear Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 19 Algoritmos e Estruturas de Dados I Ordenação em tempo linear Algoritmos de ordenação por comparação: InsertSort; Quicksort;
Leia maisComplexidade de Tempo e Espaço
Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando
Leia maisEstruturas de Dados Tabelas de Espalhamento
Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações
Leia maisUm Servidor Escalável para Bases Massivas de
Um Servidor Escalável para Bases Massivas de Dados Geográficos Leandro da Silva Santos Orientador: Tiago Garcia de Senna Carneiro Co-orientador: Ricardo Augusto Rabelo Oliveira Departamento de Computação
Leia maisPreliminares. Profa. Sheila Morais de Almeida. agosto
Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa
Leia maisEstruturas de Dados 2
Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico
Leia maisMapReduce. Capítulo 2. Renato Gomes Borges Júnior
MapReduce Capítulo 2 Renato Gomes Borges Júnior Sumário Introdução Exemplo: um conjunto de dados climáticos Analisando os dados Map and Reduce Java MapReduce Fluxo de dados Executando MapReduce distribuído
Leia maisQUESTIONÁRIO SOBRE HADOOP LEITURA DO MATERIAL FORNECIDO ALUNO/GRUPO ;
QUESTIONÁRIO SOBRE HADOOP LEITURA DO MATERIAL FORNECIDO ALUNO/GRUPO ; LEIA O MATERIAL ANTES DE FAZER O EXEMPLO DIDÁTICO. AS QUESTÕES ABAIXO PODEM SER RESPONDIDAS, USANDO, PREFERENCIALMENTE, SUA PRÓPRIAS
Leia maisTeoria da Computação Aula 9 Noções de Complexidade
Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Insertion Sort Introdução Existem modos diferentes para realizar uma ordenação e, nas próximas aulas, continuaremos estudando cada uma
Leia maisLista de Exercício de Linguagens de Programação Prog. Funcional
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE CIÊNCIA E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO Lista de Exercício de Linguagens de Programação Prog. Funcional 1) Construa uma função del_posicao_n ::
Leia maisMC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016
MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números
Leia mais24/09/2014. Prof. André Backes
Prof. André Backes 1 Por que usar listas? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor dentro de uma variável, o valor
Leia maisBusca em Memória Primária Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br
Leia maisBusca em Memória Primária Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II COM10078 Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br
Leia maisRedução de Dimensionalidade e Agrupamento de Dados
Redução de Dimensionalidade e Agrupamento de Dados Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Análise de Componentes Principais 2. Agrupamento de Dados 1 Redução de Dimensionalidade
Leia maisAula 10: Introdução a Vetores e Matrizes
Aula 10: Introdução a Vetores e Matrizes Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda
Leia maisAlgoritmos e Estrutura de Dados
Algoritmos e Estrutura de Dados Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Algoritmos de Ordenação Eficientes 1 Algoritmos de Ordenação Eficientes Heap Sort Na primeira aula de ordenação
Leia maisESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO EM TEMPO LINEAR
ESTRUTURAS DE DADOS E ALGORITMOS 1 ALGORITMOS DE ORDENAÇÃO EM TEMPO LINEAR Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande COMPARAÇÃO DOS ALGORITMOS DE ORDENAÇÃO
Leia maisORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o
Leia maisMétodos de Ordenação Parte 4
Métodos de Ordenação Parte 4 Introdução à Ciência de Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e Prof. Thiago A. S. Pardo 1 Ordenação por Intercalação Revisando...
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 10 Métodos de Ordenação de Complexidade Linear Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída:
Leia maisNem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos
Nem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos (tempo ou espaço) podem ser proibitivos. 1 Suponha que duas
Leia maisProjeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz
Projeto e Análise de Algoritmos Análise de Complexidade Prof. Luiz Chaimowicz AGENDA Modulo 1 Data Assunto Capítulos 05/03 Algoritmos / Invariantes / Intro Análise de Complexidade 07/03 Não Haverá Aula
Leia maisSimulando Funções de Alta Ordem via o Padrão de Projetos Template
Simulando Funções de Alta Ordem via o Padrão de Projetos Template Fernando Magno Quintão Pereira 27 de outubro de 2010 Questão 1 Imagine que você trabalhe com mecanismos de busca na web. Seu problema básico
Leia mais23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas
Processamento de Consultas em Bancos de Dados Distribuídos Visão geral do processamento de consultas IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias
Leia maisProgramação de Computadores
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Estrutura de dados: listas Manipulando listas Vetores como listas
Leia maisAcesso a registros. Acesso a Registros. Acesso a registros. Chaves. Forma Canônica da Chave. Forma Canônica da Chave
Algoritmos e Estruturas de Dados II Profa. Debora Medeiros Acesso a registros Acesso a Registros Arquivos organizados por registros Como buscar um registro específico? Adaptado dos Originais de: Ricardo
Leia maisALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão
UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da
Leia maisCOMPUTADOR 2. Professor Adão de Melo Neto
COMPUTADOR 2 Professor Adão de Melo Neto Modelo Barramento de Sistema É uma evolução do Modelo de Von Newman. Os dispositivos (processador, memória e dispositivos de E/S) são interligados por barramentos.
Leia maisParadigmas de Programação
Paradigmas de Programação Fabrício Olivetti de França 14 de Junho de 2018 1 λ-cálculo 2 Computabilidade Computabilidade é uma área de estudo central da Ciência da Computação. Ela estuda a possibilidade
Leia maisSistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares
Leia mais5. Algoritmos de Ordenação
Introdução à Computação II 5952011 5. Algoritmos de Ordenação Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção
Leia maisProgramação de Computadores
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo
Leia maisFramework para Deduplicação de Dados com Apache Spark
Framework para Deduplicação de Dados com Apache Spark César Magrin - magrin@inf.ufpr.br Disciplina: Metodologia Científica - CI860 Professor: Alexandre Direne Sumário 1. Qualidade de Dados 2. Deduplicação
Leia maisIntrodução à Ciência da Computação II
Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Introdução Apresentação Professor Professor Ariel Dias Apresentação Disciplina O que veremos? www.arieldias.com BlackBoard Apresentação
Leia maisRadix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo
Radix Sorting Os registros a serem ordenados podem ter chaves bastante complexas, como por exemplo sequências de caracteres (lista telefônica) o Ordenação via comparação de chaves Várias aplicações têm
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisO mais leve e o mais pesado Algoritmos de Ordenação
Atividade 7 O mais leve e o mais pesado Algoritmos de Ordenação Sumário Os computadores são muitas vezes utilizados para colocar listas em algum tipo de ordem, por exemplo, nomes em ordem alfabética, compromissos
Leia maisPCC104 Projeto e Análise de Algoritmos
PCC104 Projeto e Análise de Algoritmos Joubert de Castro Lima joubertlima@gmail.com Professor Adjunto DECOM UFOP 2010/1 Figuras retiradas do livro Introduction to parallel Computing Programar em paralelo
Leia maisAlgoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido
Leia maisHashing Endereçamento Direto Tabelas Hash
Hashing Endereçamento Direto Tabelas Hash Professora: Fátima L. S. Nunes 1 1 1 Vimos até agora: Introdução Conceitos e técnicas de Orientação a Objetos Conceitos e aplicações de Complexidade Assintótica
Leia maisAlgoritmos de Ordenação
Algoritmos de Ordenação Introdução à Ciência da Computação Prof. Edison Ishikawa Objetivo Apresentar diferentes algoritmos de ordenação de dados Mostrar como analisar os algoritmos em termos de tempo de
Leia maisParadigmas de Programação
Paradigmas de Programação Fabrício Olivetti de França 02 de Agosto de 2018 1 Programação Paralela e Concorrente em Haskell 2 Paralelismo vs Concorrência Um programa paralelo é aquele que usa diversos recursos
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação
Leia maisAnálise de Algoritmos. Prof. Sérgio Carlos Portari Júnior
Análise de Algoritmos Prof. Sérgio Carlos Portari Júnior 2016 Plano de Ensino EMENTA: Desenvolvimento de Algoritmos. Medidas de Complexidade. Estratégias Básicas. Divisão e Conquista. Método Guloso. Programação
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisLinguagens de Programação Aula 14
Linguagens de Programação Aula 14 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Linguagem Haskell Funções Tipos básicos Expressões 2 Na aula de hoje Linguagem Haskell Listas 3 Listas e Tuplas
Leia maisVETORES Motivação AULA 19
AULA 19 VETORES 19.1 Motivação Considere o problema de calcular a média aritmética das notas de 5 alunos de uma disciplina e determinar e escrever o número de alunos que obtiveram nota superior à média
Leia maisCOMPUTAÇÃO PARALELA E DISTRIBUÍDA
COMPUTAÇÃO PARALELA E DISTRIBUÍDA Aluno: Alessandro Faletti Orientadora: Noemi Rodriguez Introdução O objetivo inicial no projeto era aplicar a possibilidade de processamento em paralelo no sistema CSBase
Leia maisAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:
Leia maisTestes de Hipóteses Não Paramétricos
ACH4513 INFERÊNCIA ESTATÍSTICA 2º Sem/2017 Testes de Hipóteses Não Paramétricos Prof. Marcelo S. Lauretto marcelolauretto@usp.br www.each.usp.br/lauretto Referência: W.O.Bussab, P.A.Morettin. Estatística
Leia maisComparando, Distribuindo e Ordenando
Capítulo 5 Comparando, Distribuindo e Ordenando Algoritmos de ordenação podem ser agrupados tendo-se como base o comportamento da sua função de custo: Quadrática, NlogN e Linear. Os algoritmos de custo
Leia maisTABELAS DE DISPERSÃO/HASH
1/47 TABELAS DE DISPERSÃO/HASH Introdução 2/47 Introdução Motivação - Considerar o problema de pesquisar um determinado valor num vetor: - Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade
Leia maisIntrodução à Ciência da Computação
1 Universidade Federal Fluminense Campus de Rio das Ostras Curso de Ciência da Computação Introdução à Ciência da Computação Professor: Leandro Soares de Sousa e-mail: leandro.uff.puro@gmail.com site:
Leia maisSolução de Recorrências
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia maisAula 5: Conversões Entre Bases Numéricas
Aula 5: Conversões Entre Bases Numéricas Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 1 / 43 Conversão
Leia maisAula 3: Algoritmos: Formalização e Construção
Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de
Leia maisOrdenação Externa (Merge Sort)
Ordenação Externa (Merge Sort) Referências: A.V.Aho, J.E.Hopcroft, J.D.Ullman, Data Structures and Algorithms, Cap. 11. Problema: ordenar dados organizados como arquivos, ou de forma mais geral, ordenar
Leia maisOs métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:
ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros
Leia maisO Problema da Ordenação Métodos de Ordenação Parte 1
Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD
Leia maisAlgoritmos Computacionais
Material produzido por professores da UFABC Objetivos Aprender a sintaxe e a semântica de instruções de saída e de entrada de dados na linguagem PORTUGOL Aprender alguns operadores pra uso na parte de
Leia maisAula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Leia maisProgramação Funcional 9 a Aula Programas interativos
Programação Funcional 9 a Aula Programas interativos Pedro Vasconcelos DCC/FCUP 2014 Motivação Até agora apenas escrevemos programas que efetuam computação pura, i.e., transformações funcionais entre valores.
Leia maisParadigmas de Programação
Paradigmas de Programação Fabrício Olivetti de França 21 de Junho de 2018 1 Listas 2 Listas Uma das principais estruturas em linguagens funcionais. Representa uma coleção de valores de um determinado tipo.
Leia maisBig Data Open Source com Hadoop
Big Data Open Source com Hadoop Palestrante: Marcio Junior Vieira marcio@ambientelivre.com.br Realização: Marcio Junior Vieira 14 anos de experiência em informática, vivência em desenvolvimento e análise
Leia maisFundamentos de Arquiteturas de Computadores
Fundamentos de Arquiteturas de Computadores Cristina Boeres Instituto de Computação (UFF) Conversões Entre Bases Numéricas Material de Fernanda Passos (UFF) Conversões Entre Bases Numéricas FAC 1 / 42
Leia maisAlgoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa
Algoritmos e Estruturas de Dados II Ordenação Externa II Prof. Ricardo J. G. B. Campello As análises dos métodos de ordenação tradicionais se preocupam basicamente com o tempo de execução dos algoritmos
Leia maisDivisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder
Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver
Leia maisParadigmas de programação
Paradigmas de programação 1 Paradigma? Um paradigma é algo que serve de exemplo ou modelo. Sinônimos: Padrão Prototipo 2 Paradigma de programação? É uma proposta tecnológica. Fornece uma visão do programador
Leia maisLINGUAGEM ALGORÍTMICA
LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem
Leia maisAlgoritmos II Aula 2 Vetores
Algoritmos II Aula 2 Vetores Professor: Max Pereira max.pereira@unisul.br Ciência da Computação Variável Representação simbólica dos elementos de memória de um computador. Cada variável corresponde a uma
Leia maisCOMPUTADOR. Adão de Melo Neto
COMPUTADOR Adão de Melo Neto 1 PROGRAMA É um conjunto de instruções LINGUAGEM BINÁRIA INTRODUÇÃO Os caracteres inteligíveis são apenas zero(0) e um (1). É uma linguagem de comunicação dos computadores.
Leia maisA adição de números naturais é associativa, ou seja, resultado da soma de três números naturais independe da ordem da soma dos números.
. Números Naturais Para qualquer cidadão, contar faz parte da rotina da vida. Por exemplo: contamos dinheiro, contamos pessoas, contamos os itens para saber o que precisamos comprar, contamos objetos em
Leia maisProcessamento de INDUSTRIA 4.0. Big Data. Aula #10 - Processamento distribuído de dados FONTE: DELIRIUM CAFE EDUARDO CUNHA DE ALMEIDA
INDUSTIA 4.0 Processamento de Big Data FONTE: DELIIU CAFE Aula #10 - Processamento distribuído de dados EDUADO CUNHA DE ALEIDA Agenda - Divisão do problema - apeduce - Hadoop - SQL-on-Hadoop: Hive 2 Divisão
Leia mais