Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo

Tamanho: px
Começar a partir da página:

Download "Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo"

Transcrição

1 Notas de aula da disciplina IME - ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Troco mínimo Dados os tipos de moedas de um país, determinar o número mínimo de moedas para dar um troco de valor n. M = {,,,,, } n = O número mínimo de moedas é : T() = + T( - ) = + + T( - ) = + + T( - ) = + T() = junho/ Basta, a cada passo, usar a moeda maior valor possível. de Troco mínimo Mas... nem sempre essa estratégia funciona! M = {,,,,, } n = Usando a estratégia anterior: T() = + T( - ) = + + T( - ) = + + T( - ) = + + T( - ) = + T() = Troco mínimo Quando o método guloso funciona, o algoritmo é, em geral, eficiente. Figurativamente, a solução gulosa consiste em, a cada passo, escolher o melhor pedaço possível e não se arrepender. Para saber se o guloso funciona, é necessário PROVAR que o algoritmo resolve o problema. O resultado é ERRADO, pois é possível dar um troco usando moedas de. Porque o método funciona com as moedas brasileiras? M = {,,,,, }. A tabela abaixo mostra o máximo de moedas de cada tipo usado em um troco mínimo, pois, para cada aumento nesses valores, existe outra opção com menos moedas. Adicionalmente, não se pode usar simultâneamente moedas de e de. () () () () () (). O valor máximo conseguido com as moedas tipos a é. Logo, qualquer troco x > usa tantas moedas de quanto necessário, transformando o problema para um troco y = x - * x/ <.. O valor máximo conseguido com as moedas tipos a é. Logo, qualquer troco x, > x >, usa moeda de, transformando o problema para um troco y = x - <. Porque o método funciona com as moedas brasileiras? M = {,,,,, }. O valor máximo conseguido com as moedas tipos a é. Logo, qualquer troco x, > x >, usa moeda de, transformando o problema para um troco y = x - <.. O valor máximo conseguido com as moedas tipos e é. Logo, qualquer troco x, > x >, usa ou moedas de, transformando o problema para um troco y = x - * x/ <.. O valor máximo conseguido com as moedas do tipo é. Logo, todo valor x, > x > usa moeda de. Conclusão: o troco mínimo obtido pelas considerações anteriores é exatamente aquele obtifo vom o algoritmo guloso. Logo, o método guloso funciona corretamente para esse conjunto de moedas.

2 Troco mínimo - Conjunto Guloso de Moedas Teorema : (Cowen, Cowen & Steinberg) "Suponha que C = {a, a,...a k } seja um conjunto de moedas guloso e seja C ={a, a,...a k, a k+ } e m = a k+ /a k. Então C é guloso sse G(C,m.a k ) m". Obs: ) G(C,m) é o número mínimo de moedas para um troco n, usando C. ) O conjunto C = {} é guloso, pois só gera uma solução. ) Os demais conjuntos são gulosos, pois: C = {,} m = e G(C,) =. C = {,,} m = e G(C,) =. C = {,,,} m = e G(C,) =. C = {,,,,}, m = e G(C,) =. C = {,,,,,}, m = e G(C,) =. Troco mínimo No segundo exemplo, a solução é por PD: M = {,,,,, } n = T() = min(t(-), T(-), T(-))+ () O objetivo da compactação de dados é diminuir o tamanho de uma mensagem codificada. Normalmente os métodos de compactação de dados usam códigos de tamanho variável, para atribuir códigos pequenos para símbolos frequentes e códigos maiores para símbolos raros. A vantagem de um código prefixos é que não existe ambiguidade na decodificação de dados. O código de Huffman é um código ótimo de prefixos de tamanho variável, que utiliza uma árvore na criação do código e na decodificação. Ex: a = ; b = ; c = ; abcbbac é codificado como Árvore de Huffman a b c Cria um código de prefixos de tamanho variável, usando um algoritmo gulosocom complexidade O(n. log n). Árvores de Huffman: árvores estritamente binárias enraizadas, com as codificações nas folhas, usadas na compactação e na descompactação. Algoritmo de Huffman: inicia com uma floresta de folhas, correspondentes aos símbolos e aglutina, sucessivamente, subárvores com soma total de frequências mínima. {(a, ), (b, ), (c, ), (d, ), (e, ) } Símbolo/Freq. Codificação (a, ) (b, ) (c, ) (d, ) (e, ) Árvore de Huffman e d c a b Passo Passo a / b / c / d / e / a / b / c / d / e /

3 {(a, ), (b, ), (c, ), (d, ), (e, ) } {(a, ), (b, ), (c, ), (d, ), (e, ) } Passo a / b / c / d / e / Passo Final a / Passo a / b / c / d / e / b / c / d / e / Tamanho médio do codificação: = Σ d i f i / Σf i = (x+x+x+x+x)/ =. Criar a árvore de Huffman para a seguinte situação: (a, ) (b, ) (c, ) (d, ) (e, ) (f, ) Calcular o tamanho médio da codificação. Idéia do algoritmo: criar a árvore com o auxílio de um Heap Algoritmo: CriaFolhas; CriaHeap (H); Para i de a n-: p H[].arv; Troca(, n-i+); DesceHeap(, n-i); q H[].arv; Aloca(r); r.le p; r.ld q; r.f p.f + q.f; H[].arv r; DesceHeap(, n-i); T H[].arv; Complexidade: O(n.log n) Correção do Algoritmo Lema: Para qualquer árvore de Huffman ótima existe outra árvore equivalente onde os símbolos de menor frequência são irmãos. Teorema: O algoritmo de Huffman é correto. Correção do Algoritmo Teorema: O algoritmo de Huffman é correto. Prova: Indução em n (número de símbolos). Seja T H uma árvore de Huffman e T O uma árvore ótima. Em T H, os símbolos de menor frequência, f e f são irmãos. Caso em T O esses símbolos não sejam irmãos, podemos remanejar para que sejam. Consideremos, respectivamente, as árvores T H ' e T O para n- símbolos onde os dois símbolos de menor frequência foram fundidos. Por hipótese, T O e T O são ótimas. Seria absurdo termos c(t O ) > c(t O ) + f + f, pois poderíamos construir, a partir de T O, uma árvore para n símbolos com custo menor que o de T O. De forma análoga, seria absurdo c(t O ) < c(t O ) + f +f, pois agora T O é que não seria ótima. Portanto, c(t O ) = c(t O )+f +f. Mas c(t H ) = c(t H )+f +f, por construção. Segue-se que c(t H ) = c(t O ) e, portanto, T H também é ótima. Logo, o algoritmo é correto.

4 Situação do heap na execução de Huffman {(a, ), (b, ), (c, ), (d, ), (e, ) } Situação do heap na execução de Huffman b) Passos para fusão das subárvores: b.) Primeira fusão: retira o menor: a) Criação do Heap, usando DesceHeap: b.) Primeira fusão: substitui o segundo menor pela soma + : Situação do heap na execução de Huffman b.) Segunda fusão: retira o menor: b.) Segunda fusão: substitui o segundo menor pela soma +: Situação do heap na execução de Huffman b.) Terceira fusão: retira o menor: b.) Terceira fusão: substitui o segundo menor pela soma + : b.) Última fusão: retira o menor: b.) Última fusão: substitui o segundo menor pela soma +: Outro algoritmo, quando os dados já estão ordenados Usa duas filas Q e Q: Algoritmo: Esvazia filas; Cria raízes para símbolos e enfila em Q; Enquanto (filas não vazias); Se Q vazia e Q só tem um elemento, termina. Senão Obtem subárvores a e a de Q e Q com menores frequências. Desenfila a e a. Junta a = a + a; Enfila a em Q; Fe; A raiz da árvore está no começo de Q. Merge ótimo Dados n arquivos com tamanhos t, t... t n, determinar a sequência ótima (menor número de operações) de merge dos mesmos, para transformar em único arquivo. {,,,, } Fazendo merges da esquerda para a direita: T(n) =(+)+(+)+(+)+(+)= Fazendo merges da direita para a esquerda: T(n) =(+)+(+)+(+)+(+)= A solução ótima requer operações apenas!

5 Merge ótimo Merge ótimo: algoritmo e prova análogos a Huffman {,,,, } Merge ótimo {,,,, } Passo Passo Passo Passo Merge ótimo {,,,, } Merge ótimo Passo Custo do merge ótimo: = (+)+(+)+(+)+(+) = Calcular a melhor e a pior maneira de fazer o merge dos arquivos de tamanho: Calcular o número de operações em cada caso. Seleção de s Dadas n tarefas com datas de início e fim (c, f ), (c, f ),... (c n, f n ), determinar o máximo de tarefas que podem ser executadas por processador. { (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, )} Seleção de s Algoritmo: ordenar as tarefas por data de fim e selecionar, gulosamente, tal que cada tarefa em avaliação não conflite com o conjunto já escolhido { (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, )} A solução ótima é selecionar tarefas! Uma solução ótima é: (, ), (, ), (, ) e (, )

6 Seleção de s Algoritmo: Ordenar tarefas por data fim; S T[]; r T[].f; Para i de a n: Se (T[i].c > r) Então S S + T[i]; r T[i].f; Complexidade: O(n.log n) Correção do Algoritmo Teorema: O algoritmo de Seleção de s é correto. Prova: Seja S o conjunto encontrado pelo algoritmo e So um conjunto ótimo, ambos ordenados por data de fim. Seja j o primeiro índice tal que as tarefas dos conjuntos sejam diferentes. Então podemos substituir a tarefa to j de So pela t j de S. Podemos fazer isso sucessivamente. Ao final não poderá sobrar nenhuma tarefa em So, pois o algoritmo teria selecionado essa tarefa. Logo, os dois conjuntos têm o mesmo número de elementos e, portanto, S também é ótimo. Dados dois pontos a e b e n segmentos com extremos (c, f ), (c, f ),... (c n, f n ), determinar o número mínimo de segmentos que cobre o intervalo (a, b). a =, b = { (, ), (,), (, ), (, ), (, ), (, ), (,), (, )} Escrever um algoritmo para determinar se o conjunto de n segmentos S = {(c, f ),...(c n,f n )} cobre ou não o intervalo (a, b). A cobertura mínima é de segmentos! Solução: VerificaCobertura; Ordenar S por c i ; p a; cobre V; Para i de a n: Se (p < b) Então Se (c i > p) Então cobre F Senão Se (f i > p) Então p f i ; Se (p < b) Então cobre F Retornar cobre; a=, b= (S = {(,), (,), (,), (,), (,),(,), (,), (,),(,),(,),(,)} Ordenando: (S'= {(,),(,), (,), (,), (,), (,), (,), (,), (,), (,),(,)} i c i f i p cobre

7 Determinação da cobertura, supondo-se que o conjunto de segmentos cobre o intervalo dado. Idéia do Algoritmo: Supõe-se que o conjunto de segmentos S cobre o intervalo (a, b) dado (ver exercício). Ordena-se S pelos começos dos segmentos e, para pontos de referência, definidos em ordem crescente, seleciona-se os segmentos que cobrem esses pontos e têm o maior extremo direito. Inicialmente o ponto de referência é a. Cada vez que se escolhe um segmento e acrescenta-se ao conjunto solução R, muda-se o ponto de referência para o final do segmento escolhido. O algoritmo pára quando o ponto de referência é b. Determinação da cobertura, supondo-se que o conjunto de segmentos cobre o intervalo dado. CoberturaMinima; Ordenar S por c i ; R Ø; c -; f -; c n+ ; f n+ ; p a; q ; Para i de a n+: Se (c i > p) Então R R + (c q,f q ); p f q ; q i; Se (p b) Então Sair do loop; Senão Se (f i > f q ) Então q i; Imprimir R; Preencher a tabela de atribuição de valores às variáveis do algoritmo de Cobertura Mínima para os segmentos: (S = {(,), (,), (,), (,), (,),(,), (,), (,),(,),(,),(,)} a=, b= i. c i - f i p - q R Demonstrar a corretude do algoritmo de cobertura mínima de segmentos.. Sequenciamento de s com receita máxima Dadas n tarefas unitárias com datas limite de fim e receitas dadas, (l, r ), (l, r ),... (l n, r n ), determinar a receita máxima que se pode ter, sabendo-se que a receita de uma tarefa só é considerada se ela for realizada dentro do tempo limite. A receita ótima é! T T T T T T l i r i Sequenciamento de s com receita máxima Algoritmo: ordenar as tarefas, de forma decrescente por receita e selecionar, gulosamente, tal que cada tarefa em avaliação não conflite com o conjunto já escolhido. Seleciona T T T T T T T l i r i T l i r i

8 Sequenciamento de s com receita máxima Seleciona T Descarta T Seleciona T Seleciona T Descarta T T T T T T T l i r i T T l i r i T T T l i r i T T T T l i r i Receita máxima = +++= Sequenciamento de s com receita máxima Algoritmo: Complexidade: O(n ) Ordenar tarefas por receita; S ; Para i de a n: Se (ViavelIncluir (S, T[i]) Então Incluir (S, T[i]); Incluir (S, T): inclui ordenadamente por l. ViavelIncluir (S, T): verdadeiro se, à direita do ponto de inclusão nenhuma tarefa T i está em posição j = l i. Correção do Algoritmo Sequenciamento de s com receita máxima Teorema: O algoritmo de Sequenciamento... é correto. Prova: Seja S o conjunto encontrado pelo algoritmo e So um conjunto ótimo, ambos ordenados por data limite. Podemos remanejar as tarefas comuns tal que fiquem em mesma posição nos dois conjuntos. Seja t i a tarefa de receita máxima de S que não está em So. Podemos substituir to i por t i, em So. Ao final do processo, S So. Mas não podemos ter S So nem So S. Portanto S = So, ou seja, S é ótimo. Logo, o algoritmo é correto. Sequenciamento de s com receita máxima Indicar o sequenciamento e a receita ótima para as tarefas: T T T T T l i r i T T T T T Sequenciamento de s com receita máxima Indicar o sequenciamento e a receita ótima para as tarefas: Solução: T T T T T l i r i T Receita máxima = +++++= Sequenciamento de s c/ penalidade mínima Dadas n tarefas unitárias com datas limite de fim e penalidades dadas, (l, p ), (l, p ),... (l n, p n ), determinar a penalidade mínima para realizar todas as tarefas, sabendo-se que a penalidade se aplica quando a tarefa é realizada após o tempo limite. T T T T T T l i p i

9 Sequenciamento de s c/ receita máxima () Dadas n tarefas unitárias com datas limite de fim, receitas e penalidades dadas, (l, r, p ), (l, r, p ),... (l n, r n, p n ), determinar a receita máxima para realizar todas as tarefas, sabendo-se que a penalidade se aplica quando a tarefa é realizada após o tempo limite. l i r i p i T T T T T T Sequenciamento de s c/ penalidade mínima () Dadas n tarefas unitárias com datas limite de fim e penalidades dadas, (l, p ), (l, p ),... (l n, p n ), determinar a penalidade mínima para realizar todas as tarefas, sabendo-se que a penalidade se aplica quando a tarefa é realizada após o tempo limite, diariamente. T T T T T T l i p i Escrever algoritmos para os seguintes problemas Problema : Travessia Tem-se n pessoas para atravessar uma ponte, numa noite escura, e uma única lanterna. No máximo duas pessoas podem atravessar de cada vez. São dados os tempos de travessia de cada um. Qual o tempo mínimo total de travessia? Ex: n= tempos:,,, tempo mínimo =. FIM Problema : Cortes quadrados Tem-se uma chapa retangular de dimensões inteiras p x q e quer-se transformar esse retângulo no mínimo de quadrados, fazendo-se sempre cortes em toda a extensão da chapa. Qual o mínimo de quadrados? Ex: corte de uma chapa x :

Compactação de Dados. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Seção 12.5 em diante.

Compactação de Dados. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Seção 12.5 em diante. Compactação de Dados Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Seção 12.5 em diante. Compactação de Dados } Armazenar arquivos grandes (backup)

Leia mais

Introdução à Análise Algoritmos

Introdução à Análise Algoritmos Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor

Leia mais

4 C odigos de Huffman 4.1 Arvores de c odigo folhas os internos n ıvel altura Arvore bin aria arvore bin aria ordenada

4 C odigos de Huffman 4.1 Arvores de c odigo folhas os internos n ıvel altura Arvore bin aria arvore bin aria ordenada 4 Códigos de Huffman 4.1 Árvores de código Numa árvore qualquer, os nós que não têm filhos são chamados de folhas e os demais nós são chamados de nós internos. Se um nó de uma árvore é filho de outro,

Leia mais

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

Á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ó

Leia mais

Compactação de Dados Letícia Rodrigues Bueno

Compactação de Dados Letícia Rodrigues Bueno Compactação de Dados Letícia Rodrigues Bueno UFABC Compactação de Dados: Introdução Objetivo: Compactação de Dados: Introdução Compactação de Dados: Introdução Objetivo: 1. minimizar espaço de memória

Leia mais

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

Á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

Leia mais

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

Á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ó

Leia mais

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40 Algoritmos Greedy Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/2015 1 / 40 Algoritmos Greedy Vamos falar de algoritmos greedy. Em português são conhecidos como: Algoritmos

Leia mais

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

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

Leia mais

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados

Leia mais

Codificação de Huffman

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

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/34 Introdução Técnica de Projeto de Algoritmos utilizada para Problemas de Otimização; Idéia:

Leia mais

Ordenação e Busca em Arquivos

Ordenação e Busca em Arquivos Ordenação e Busca em Arquivos Cristina D. A. Ciferri Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Moacir Ponti Jr. Exemplos de Busca Registros de tamanho fixo M A R I A R U A b 1 S A O b C A

Leia mais

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

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e

Leia mais

Pré-Processamento de Documentos

Pré-Processamento de Documentos Pré-Processamento de Documentos Introdução Pré-Processamento : Análise léxica; Stopwords; Stemming; Vocabulário; Thesaurus Compressão: Fundamentos; Método Estatístico; Método Dicionário; Arquivos Invertidos

Leia mais

CIC 110 Análise e Projeto de Algoritmos I

CIC 110 Análise e Projeto de Algoritmos I CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Algoritmos Gulosos AULA 06 Algoritmos Gulosos Um algoritmo guloso constrói uma solução para

Leia mais

Análise e Complexidade de Algoritmos

Aná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 mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão

Leia mais

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

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

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

Leia mais

Indução Matemática. George Darmiton da Cunha Cavalcanti CIn - UFPE

Indução Matemática. George Darmiton da Cunha Cavalcanti CIn - UFPE Indução Matemática George Darmiton da Cunha Cavalcanti CIn - UFPE Introdução Qual é a fórmula para a soma dos primeiros n inteiros ímpares positivos? Observando os resultados para um n pequeno, encontra-se

Leia mais

2 Erro comum da indução. 3 Corretude de Algoritmos. > Indução Forte X Indução Fraca Erro comum da indução Corretude de Algoritmos 0/17

2 Erro comum da indução. 3 Corretude de Algoritmos. > Indução Forte X Indução Fraca Erro comum da indução Corretude de Algoritmos 0/17 Conteúdo 1 Indução Forte X Indução Fraca 2 Erro comum da indução 3 Corretude de Algoritmos > Indução Forte X Indução Fraca Erro comum da indução Corretude de Algoritmos 0/17 Indução Forte X Indução Fraca

Leia mais

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

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Processamento Cosequencial: Ordenação Interna e Externa Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri Ordenação em RAM Situação: arquivo cabe em RAM Etapas leitura de todos

Leia mais

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: 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

Leia mais

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária 19.1 ula 19: Percursos em árvores binárias Percurso em pré-ordem, ordem simétrica e pós-ordem lgoritmo para cálculo de altura uma árvore binária omplexidade dos métodos 19.2 ula 19: Percursos em árvores

Leia mais

SM - Sistemas Multimédia CODIFICAÇÃO DE FONTE (parte 2) 4.º / 6.º semestre LEIC (verão 2016/2017)

SM - Sistemas Multimédia CODIFICAÇÃO DE FONTE (parte 2) 4.º / 6.º semestre LEIC (verão 2016/2017) SM - Sistemas Multimédia CODIFICAÇÃO DE FONTE (parte 2) 4.º / 6.º semestre LEIC (verão 2016/2017) Tópicos Propriedades dos códigos de fonte Código ótimo e código ideal Singularidade, descodificação única,

Leia mais

Tipos de códigos de fonte

Tipos de códigos de fonte Tipos de códigos de fonte Luis Henrique Assumpção Lolis 13 de setembro de 2013 Luis Henrique Assumpção Lolis Tipos de códigos de fonte 1 Conteúdo 1 Código de prefixo 2 Código de Fano 3 Código de Huffman

Leia mais

Algoritmos gulosos (greedy) CLRS

Algoritmos gulosos (greedy) CLRS Algoritmos gulosos (greedy) CLRS 16.3-16.5 Problema de escalonamento Considere n tarefas indicadas pelos números 1,..., n Problema de escalonamento Considere n tarefas indicadas pelos números 1,..., n

Leia mais

Tópico 5 Algoritmos de Ordenação. Parte II - métodos de ordenação: counting sort, radix sort e bucket sort.

Tópico 5 Algoritmos de Ordenação. Parte II - métodos de ordenação: counting sort, radix sort e bucket sort. Tópico 5 Algoritmos de Ordenação Parte II - métodos de ordenação: counting sort, radix sort e bucket sort. 1 Árvore de Decisão Todos os algoritmos descritos anteriormente utilizam comparações para determinar

Leia mais

Abordagens para Resolução de Problemas

Abordagens para Resolução de Problemas Abordagens para Resolução de Problemas UDESC - Universidade do Estado de Santa Catarina Departamento de Ciência da Computação CAL - Complexidade de Algoritmos Teodoro Alberto Borges Junior Abordagens para

Leia mais

Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4)

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

Leia mais

Aplicação de Árvores: Código de Huffman

Aplicação de Árvores: Código de Huffman Aplicação de Árvores: Código de Huffman SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas

Leia mais

Teoria da Informação

Teoria da Informação Charles Casimiro Cavalcante charles@gtel.ufc.br Grupo de Pesquisa em Telecomunicações Sem Fio GTEL Programa de Pós-Graduação em Engenharia de Teleinformática Universidade Federal do Ceará UFC http://www.gtel.ufc.br/

Leia mais

Estruturas Discretas

Estruturas Discretas Estruturas Discretas 2017.2 Marco Molinaro > Indução Forte Corretude de Algoritmos 1/20 Indução Forte > Indução Forte Corretude de Algoritmos 2/20 Indução Forte X Indução Fraca Para provar Propriedade

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO EM TEMPO LINEAR

ESTRUTURAS 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 mais

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; UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores

Leia mais

Problema de escalonamento

Problema de escalonamento Problema de escalonamento Considere n tarefas indicadas pelos números 1,...,n Algoritmos p. 1 Problema de escalonamento Considere n tarefas indicadas pelos números 1,...,n t i : duração da tarefa i d i

Leia mais

Códigos Corretores de Erros e Cliques de Grafos

Códigos Corretores de Erros e Cliques de Grafos Códigos Corretores de Erros e Cliques de Grafos Natália Pedroza Jayme Szwarcfiter Paulo Eustáquio UFRJ/UERJ 2016 Natália Pedroza (UFRJ/UERJ) Códigos Corretores 2016 1 / 32 Apresentação Códigos corretores

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

universidade federal de pernambuco departamento de estatística

universidade federal de pernambuco departamento de estatística soluções do o exercício escolar Teoria da Informação set./207 a) Qual a variável aleatória de maior incerteza? Surpreendentemente, há uma maior incerteza sobre a variável aleatória X, é definida apenas

Leia mais

Ordenação em Tempo Linear. Leitura: Cormen Capítulo 8

Ordenação em Tempo Linear. Leitura: Cormen Capítulo 8 Ordenação em Tempo Linear Leitura: Cormen Capítulo 8 Revisão Insertion sort: Vantagens Fácil de implementar Rápido em entradas com menos de 50 elementos. Rápido em entradas aproximadamente ordenadas. Desvantagens

Leia mais

Organização de Arquivos. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri

Organização de Arquivos. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri Organização de Arquivos Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri Organização de arquivos para desempenho Organização de arquivos visando desempenho Complexidade de

Leia mais

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

Ordenação: HeapSort. Prof. Túlio Toffolo   BCC202 Aula 17 Algoritmos e Estruturas de Dados I 2014-01 Aula 16 Fila de Prioridade / HeapSort Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: Aula 17: HeapSort Ordenação: HeapSort Prof. Túlio Toffolo http://www.toffolo.com.br

Leia mais

Ordenação de Dados (III) HeapSort

Ordenação de Dados (III) HeapSort UFSC-CTC-INE INE53 - Estruturas de Dados Ordenação de Dados (III) Prof. Ronaldo S. Mello 00/ HeapSort HeapSort também é um método de seleção ordena através de sucessivas seleções do elemento correto a

Leia mais

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 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

Leia mais

Backtracking. Backtracking

Backtracking. Backtracking Notas de aula da disciplina IME 0-0 ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) É uma técnica de solução de problemas (construção de algoritmos) que eamina

Leia mais

Métodos de Ordenação Parte 3

Métodos de Ordenação Parte 3 Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária

Leia mais

Estruturas de Dados 2

Estruturas 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 mais

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete

Leia mais

MA21: Resolução de Problemas - gabarito da primeira prova

MA21: Resolução de Problemas - gabarito da primeira prova MA21: Resolução de Problemas - gabarito da primeira prova Problema 1 (2 pontos) Prove que a maior área dentre todos os retângulos de perímetro 1 é atingida por um quadrado. Dificuldade: MUITO FÁCIL Sejam

Leia mais

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

Aula 19: Métodos eficientes de ordenação Algoritmos e Estruturas de Dados I Aula 19: Métodos eficientes de ordenação (Merge sort e Quick sort) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2019 1 Intercalando 2 vetores ordenados 2 Intercalando

Leia mais

QUESTÕES DE PROVAS ANTIGAS

QUESTÕES DE PROVAS ANTIGAS CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus

Leia mais

Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar

Leia mais

TÉCNICAS DE CODIFICAÇÃO DE SINAIS

TÉCNICAS DE CODIFICAÇÃO DE SINAIS TÉCNICAS DE CODIFICAÇÃO DE SINAIS COMPRESSÃO SEM PERDAS Evelio M. G. Fernández - 2010 Exemplo Símbolo Prob I II III IV A 1/2 00 0 0 0 B 1/4 01 11 10 01 C 1/8 10 00 110 011 D 1/8 11 01 1110 0111 Entropia

Leia mais

Teoria dos Grafos Aula 14

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

Leia mais

Coloração de intervalos

Coloração de intervalos Coloração de intervalos Problema: Dados intervalos de tempo [s 1,f 1 ),...,[s n,f n ), encontrar uma coloração dos intervalos com o menor número possível de cores em que dois intervalos de mesma cor sempre

Leia mais

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

Classificação Externa: Intercalação de Partições Classificadas 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

Leia mais

ALGORITMOS DE ORDENAÇÃO

ALGORITMOS 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 mais

EET-49 Comunicações II

EET-49 Comunicações II EET-49 Comunicações II Parte 4 - Codificação sem perda de informação March 20, 2012 1 Introdução Realizar a codificação da fonte é representá-la da menor forma possível Se a utilização não permite a perda

Leia mais

UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO ANÁLISE DE ALGORITMOS. LISTA DE EXERCÍCIOS (Parte B)

UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO ANÁLISE DE ALGORITMOS. LISTA DE EXERCÍCIOS (Parte B) UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO ANÁLISE DE ALGORITMOS LISTA DE EXERCÍCIOS (Parte B). Supondo uma lista encadeada (externa) cujos nós possuem um campo que aponta para outra lista encadeada (interna),

Leia mais

Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência

Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1

Leia mais

Introdução à Programação. João Manuel R. S. Tavares

Introdução à Programação. João Manuel R. S. Tavares Introdução à Programação João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de

Leia mais

Estruturas de Dados II

Estruturas de Dados II Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Listas Lineares. Alocação Encadeada. Notas de aula da disciplina IME ESTRUTURAS DE DADOS I

Listas Lineares. Alocação Encadeada. Notas de aula da disciplina IME ESTRUTURAS DE DADOS I Notas de aula da disciplina I 04-0820 STUTUAS D DADOS I Paulo ustáuio Duarte Pinto (pauloedp arroba ime.uerj.br) Listas encadeadas: - Conceitos - Buscas/Inserções/deleções de elementos - Pilhas e Filas

Leia mais

Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro

Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro Universidade Federal de Alagoas - UFAL Departamento de Tecnologia da Informação - TCI Ciência da Computação Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros

Leia mais

Álgebra Linear e Geometria Analítica Bacharelados e Engenharias Parte II Matrizes (continuação)

Álgebra Linear e Geometria Analítica Bacharelados e Engenharias Parte II Matrizes (continuação) Álgebra Linear e Geometria Analítica Bacharelados e Engenharias Parte II Matrizes (continuação) Prof.a Tânia Preto Departamento Acadêmico de Matemática UTFPR - 2014 Importante Material desenvolvido a partir

Leia mais

Alguns comentários. Segunda prova. Programação dinâmica em grafos. Guloso em grafos. Algoritmos p. 1

Alguns comentários. Segunda prova. Programação dinâmica em grafos. Guloso em grafos. Algoritmos p. 1 Alguns comentários Segunda prova Programação dinâmica em grafos Guloso em grafos Algoritmos p. 1 Problema dos intervalos disjuntos Problema: Dados intervalos [s[1],f[1]),...,[s[n],f[n]), encontrar coleção

Leia mais

HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR HeapSort Filas de Prioridade Heap David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de

Leia mais

Aula 28: Listas de Prioridades

Aula 28: Listas de Prioridades 28.1 Aula 28: Listas de Prioridades Conceitos básicos Definição de heap Alteração de prioridades 28.2 Listas de Prioridades Motivação: Os dados possuem prioridades. A prioridade de um dado pode variar

Leia mais

Aula 10: Tratabilidade

Aula 10: Tratabilidade Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas

Leia mais

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

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

Leia mais

Solução de Recorrências

Soluçã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 mais

Tópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort.

Tópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. Tópico 5 Algoritmos de Ordenação Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. 1 Problema Computacional: Ordenação Problema computacional que surge em diversas situações. Definição:

Leia mais

Árvores Vermelho-Preto

Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São

Leia mais

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

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso: Compressão de Textos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM O volume

Leia mais

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

Ordenação: QuickSort. Prof. Túlio Toffolo  BCC202 Aula 15 Algoritmos e Estruturas de Dados I Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação

Leia mais

Projeto de Algoritmos por Divisão e Conquista

Projeto de Algoritmos por Divisão e Conquista Projeto de Algoritmos por Divisão e Conquista Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Divisão e Conquista junho - 2018 1 / 70 Este material é preparado

Leia mais

Otimização em Grafos

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).

Leia mais

Algoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 04 Recorrência Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 04 Recorrência Prof. Tiago A. E. Ferreira Esta Aula... Nesta aula veremos três métodos para resolver recorrência: Método da substituição É suposto um limite hipotético

Leia mais

XXV OLIMPÍADA BRASILEIRA DE MATEMÁTICA Segunda Fase Nível 2 (7 a. ou 8 a. séries)

XXV OLIMPÍADA BRASILEIRA DE MATEMÁTICA Segunda Fase Nível 2 (7 a. ou 8 a. séries) PROBLEMA No desenho ao lado, o quadrado ABCD tem área de 30 cm e o quadrado FHIJ tem área de 0 cm. Os vértices A, D, E, H e I dos três quadrados pertencem a uma mesma reta. Calcule a área do quadrado BEFG.

Leia mais

Busca em Regiões Ortogonais

Busca em Regiões Ortogonais Busca em Regiões Ortogonais Claudio Esperança Paulo Roma 1 O problema O problema O problema consiste em recuperar objetos tipicamente pontos que intersectam ou estão contidos numa região simples do espaço

Leia mais

36ª Olimpíada Brasileira de Matemática GABARITO Segunda Fase

36ª Olimpíada Brasileira de Matemática GABARITO Segunda Fase 36ª Olimpíada Brasileira de Matemática GABARITO Segunda Fase Soluções Nível 2 Segunda Fase Parte A CRITÉRIO DE CORREÇÃO: PARTE A Na parte A serão atribuídos 5 pontos para cada resposta correta e a pontuação

Leia mais

2 Teoria da Informação

2 Teoria da Informação 2 Teoria da Informação Neste capítulo apresentamos alguns conceitos básicos sobre Teoria da Informação que utilizaremos durante este trabalho. 2.1 Alfabeto, texto, letras e caracteres Um alfabeto Σ = (σ

Leia mais

Algoritmos e Estruturas de Dados 2006/2007

Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento

Leia mais

Probabilidade e Estatística (Aula Prática - 23/05/16 e 24/05/16)

Probabilidade e Estatística (Aula Prática - 23/05/16 e 24/05/16) Probabilidade e Estatística (Aula Prática - 23/05/16 e 24/05/16) Resumo: Veremos nesta aula tabelas, cálculos de porcentagem e gráficos; amostras e tipo de amostragem; Medidas de tendência central e medidas

Leia mais

Ordenação Interna. Prof. Jonas Potros

Ordenação Interna. Prof. Jonas Potros Ordenação Interna Prof. Jonas Potros Heap A estrutura de dados heap é um objeto arranjo que pode ser visto como uma árvore binária completa. A árvore está completamente preenchida em todos os níveis, exceto

Leia mais

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015 Árvores Binárias Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 17/03/2015 1 Introdução Árvore binárias são estruturas importantes toda vez que uma decisão binária deve

Leia mais

Limite assintótico para a ordenação, Ordenação em tempo 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 jesus.mena@ufabc.edu.br 1Q-2017 1 Ordenação Ordenar corresponde ao processo

Leia mais

Tecnicas Essencias Greedy e Dynamic

Tecnicas Essencias Greedy e Dynamic Tecnicas Essencias Greedy e Dynamic Paul Crocker RELEASE - Reliable and Secure Computation Group Universidade da Beira Interior, Portugal October 2010 1 / 27 Outline 1 Introdução 2 Exemplo Greedy I : Interval

Leia mais

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 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á

Leia mais

Á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

Á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

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 27 Square root algorithms Combining algorithms Integer partitions Mo s algorithm Square

Leia mais

Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort

Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas

Leia mais

Grafos: árvores geradoras mínimas. Graça Nunes

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

Leia mais

Programação Dinâmica Partição de Inteiros

Programação Dinâmica Partição de Inteiros Notas de aula da disciplina IME -8 ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/9 Partição de Inteiros Dado n inteiro, determinar o número de maneiras

Leia mais

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Listas de Prioridade Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Capítulo 6 Prioridade } Algumas aplicações precisam recuperar rapidamente um dado

Leia mais

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010 Monóides e o Algoritmo de Exponenciação Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 12 de maio de 2010 Conteúdo 1 Monóides Definição Propriedades

Leia mais

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma Grafos Árvores espalhadas mínimas Conteúdo Introdução Como construir uma árvore geradora miníma Algoritmos Referências Introdução Dado um grafo conectado não orientado G = (V, E) e uma função peso w :

Leia mais