Análise de algoritmos
|
|
|
- Vasco Madureira Campelo
- 9 Há anos
- Visualizações:
Transcrição
1 Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência. Definição Uma recorrência é uma equação ou desigualdade que descreve o seu valor em termos de seu valor em entradas menores. Exemplo T (n) = { Θ(1) se n = 1, 2T (n/2) + Θ(n) se n > 1. Definição Resolver uma equação de recorrência significa obter limites assintóticos para ela. 3 / 33 Simplificações 1. Ignorar que n é inteiro 2. Omissão da condição limite 3. Omissão de pisos e tetos 4. Exemplo da equação de recorrência do merge-sort { Θ(1) se n = 1, T (n) = T ( n/2 ) + T ( n/2 ) + Θ(n) se n > 1. versos T (n) = 2T (n/2) + Θ(n) 4 / 33
2 O método consiste em duas etapas: 1. Pressupor a forma da solução. 2. Usar indução matemática para encontrar as constantes e mostrar que a solução funciona. 5 / 33 Exemplo Vamos determinar um limite superior sobre a recorrência Solução no quadro. T (n) = 2T ( n/2 ) + n 6 / 33 Como fazer um bom palpite? Não há nenhum modo geral Experiência e criatividade Utilização de árvores de recorrências Semelhança com recorrências já conhecidas. Qual é um bom palpite para T (n) = 2T ( n/2 + 17) + n? Provar limites superiores e inferiores e então reduzir o intervalo 7 / 33 Sutilezas O limite está correto, mas a matemática não funciona Exemplo T (n) = T ( n/2 ) + T ( n/2 ) + 1 Vamos supor que a solução seja O(n) e tentar mostrar que T (n) cn, para alguma constante c. Substituindo a suposição na recorrência, obtemos T (n) c n/2 + c n/2 + 1 = cn + 1 o que não implica que T (n) cn. Neste caso, devemos utilizar uma hipótese indutiva mais forte. Nossa nova suposição é T (n) cn b, onde b 0 é constante. Obtemos deste que b 1. T (n) (c n/2 b) + (c n/2 b) + 1 = cn 2b + 1 cn b, 8 / 33
3 Como evitar armadilhas É fácil errar na utilização da notação assintótica Vamos provar falsamente que T (n) = 2T ( n/2 ) + n é O(n) Supondo que T (n) = O(n), obtemos T (n) 2(c n/2 ) + n cn + n = O(n) errado! O erro foi não provarmos a forma exata da hipótese indutiva, ou seja, que T (n) cn 9 / 33 Como trocar variáveis Qual é um bom palpite para T (n) = 2T ( n ) + lg n? Vamos renomear m = lg n, obtemos T (2 m ) = 2T (2 m/2 ) + m Vamos renomear S(m) = T (2 m ), obtemos S(m) = 2S(m/2) + m Semelhante a recorrência 4.4. A solução é S = O(m lg m) Trocando de volta S(m) por T (n), obtemos T (n) = T (2 m ) = S(m) = O(m lg m) = O(lg n lg lg n) 10 / Mostre que a solução de T (n) = T ( n/2 ) + 1 é O(lg n) Vimos que a solução de T (n) = 2T ( n/2 ) + n é O(n lg n). Mostre que a solução desta recorrência também é Ω(n lg n). Conclua que a solução é Θ(n lg n) Mostre que, supondo uma hipótese indutiva diferente, podemos superar a dificultade com a condição limite T (1) = 1 para a recorrência (4.4), sem ajustar as condições limite para a prova indutiva Mostre que Θ(n lg n) é a solução para a recorrência exata (4.2) para a ordenação por intercalação Mostre que a solução para T (n) = 2T ( n/2 + 17) + n é O(n lg n) Resolva a recorrência T (n) = 2T ( n), fazendo uma troca de variáveis. Sua solução deve ser assintoticamente restrita. Não se preocupe em saber se os valores são integrais. 11 / 33 Definição Em uma árvore de recursão, cada nó representa o custo de um único subproblema em algum lugar no conjunto de invocações de funções recursivas. No método da árvore de recursão, somamos os custos dentro de cada nível da árvore para obter um conjunto de custos por nível, e então somamos todos os custos por nível para determinar o custo total de todos os níveis da recursão. 12 / 33
4 Uma árvore de recursão é usada para gerar uma boa suposição, que é então verificada pelo método de substituição Como estamos gerando uma suposição, podemos tolerar algumas sujeiras Vamos utilizar uma árvore de recursão para encontrar uma suposição para a recorrência T (n) = 3T ( n/4 ) + Θ(n 2 ) Para simplificar o processo, vamos supor que n é uma potência de 4 (sujeira) Também vamos desconsiderar a função piso (sujeira) 13 / / 33 A que distância da raiz o tamanho do problema alcança a condição limite? O tamanho do subproblema para um nó na profundidade i é n/4 i Deste modo o tamanho do subproblema chega a 1 quando n/4 i = 1, ou seja, i = log 4 n Quantos níveis tem a árvore? A árvore tem log 4 n + 1 níveis (0, 1, 2,..., log 4 n) Qual é o custo em cada nível da árvore? Cada nível tem três vezes mais nós do que o nível acima dele Assim, o número de nós na profundidade i é 3 i O tamanho dos subproblemas se reduzem por um fator de 4 a cada nível, portanto, cada nó na profundidade i tem o custo c(n/4 i ) 2 O custo de todos os nós na profundidade i, para i = 0, 1, 2,..., log 4 n 1, é de 3 i c(n/4 i ) 2 = (3/) i cn 2 O último nível, na profundidade log4 n, tem 3 log4n = n log 4 3 nós, cada um contribuindo com T (1) para o custo total, portanto, o custo do último nível é n log 4 3 T (1) = Θ(n log 4 3 ) 15 / 33 Agora somamos os custos sobre todos os níveis para determinar o custo correspondente à árvore inteira T (n) = cn cn cn log 4 n 1 cn 2 = + Θ(n log 4 3 ) 3 i cn 2 + Θ(n log 4 3 ) log 4 n 1 i=0 = (3/)log 4 n 1 cn 2 + Θ(n log 4 3 ) (3/) 1 Esta fórmula é um pouco confusa. O que podemos fazer? / 33
5 Vamos considerar outra sujeira, e trocar o limite log 4 n 1 da série para. T (n) = < = log 4 n 1 i=0 i=0 3 i cn 2 + Θ(n log 4 3 ) 3 i cn 2 + Θ(n log 4 3 ) 1 1 (3/) cn2 + Θ(n log 4 3 ) = 13 cn2 + Θ(n log 4 3 ) = O(n 2 ) Com este processo, derivamos a suposição de que T (n) = O(n 2 ) 17 / 33 Que nó contribui mais para para o custo total da árvore? O nó raiz, que custa cn 2 O limite superior O(n 2 ) deve ser um limite restrito. Por quê? 18 / 33 Agora vamos usar o método de substituição para verificar a suposição, isto é, T (n) = O(n 2 ) é um limite superior para T (n) = 3T ( n/4 ) + Θ(n 2 ) Queremos mostrar que T (n) dn 2 para alguma constante d > 0. Usando a mesma constante c > 0 de antes temos T (n) 3T ( n/4 ) + cn 2 3d n/4 2 + cn 2 3d(n/4) 2 + cn 2 = 3 dn2 + cn 2 dn 2 desde que d (/13)c Portanto, confirmamos que a suposição T (n) = O(n 2 ), encontrada pelo método da árvore de recursão, é verdadeira 19 / 33 Vamos usar uma árvore de recursão para encontrar um limite superior para T (n) = T (n/3) + T (2n/3) + O(n) Vamos desenha a árvore de recursão 20 / 33
6 Qual é o custo de cada nível? cn Qual é a altura da árvore? O caminho mais longo da raiz até uma folha é n (2/3)n (2/3) 2 n 1. Tendo em vista que (2/3) i n = 1 quando i = log 3/2 n, a altura da árvore é log 3/2 n. É possível extrair um limite com estas informações? Intuitivamente, esperamos que a solução para recorrência seja no máximo o número de níveis vezes o custo de cada nível, ou O(cn log 3/2 n) = O(n lg n) Existe algum problema com este limite? Faltou considerar os nós folhas! Discussão em sala. Veja a página / 33 Vamos mostrar (usando o método de substituição) que T (n) = T (n/3) + T (2n/3) + cn dn lg n, para alguma constante d T (n) = T (n/3) + T (2n/3) + cn d(n/3) lg(n/3) + d(2n/3) lg(2n/3) + cn = d(n/3) lg n d(n/3) lg 3 + d(2n/3) lg n d(2n/3) lg(3/2) + cn = dn lg n d((n/3) lg 3 + (2n/3) lg(3/2)) + cn = dn lg n d((n/3) lg 3 + (2n/3) lg 3 (2n/3) lg 2) + cn = dn lg n dn(lg 3 2/3) + cn dn lg n deste que d c/(lg 3 (2/3)) Conclusão: não foi necessário fazer um contabilidade precisa do custo para obtermos um limite válido. 22 / Use uma árvore de recursão para determinar um bom limite superior assintótico na recorrência T (n) = 3T ( n/2 ) + n. Use o método de substituição para verificar sua resposta Demonstre que a solução para a recorrência T (n) = T (n/3) + T (2n/3) + cn, onde c é uma constante, é Ω(n lg n), apelando para uma árvore de recursão Trace a árvore de recursão para T (n) = 4T ( n/2 ) + cn, onde c é uma constante, e forneça um limite assintótico restrito sobre sua solução. Verifique o limite pelo método de substituição Use uma árvore de recursão com o objetivo de fornecer uma solução assintoticamente restrita para a recorrência T (n) = T (n a) + T (a) + cn, onde a 1 e c > 0 são constantes Use uma árvore de recursão para fornecer uma solução assintoticamente restrita para a recorrência T (n) = T (αn) + T ((1 α)n) + cn, onde α é uma constante no intervalo 0 < α < 1 e c > 0 também é uma constante. 23 / 33 O método mestre O método mestre fornece um processo de livro de receitas para resolver recorrências da forma Sendo que T (n) = at (n/b) + f (n) onde a 1 e b > 1 n é o tamanho do problema a é o número de subproblemas na recursão n/b é o tamanho de cada subproblema f (n) é uma função assintoticamente positiva que representa o custo de dividir o problema e combinar os resultados 24 / 33
7 Teorema mestre Sejam a 1 e b > 1 constantes, seja f (n) uma função e seja T (n) definida sobre os inteiros não negativos pela recorrência T (n) = at (n/b) + f (n) onde interpretamos n/b com significado de n/b ou n/b. Então, T (n) pode ser limitado assintoticamente como a seguir: 1. Se f (n) = O(n log b a ɛ ) para alguma constante ɛ > 0, então T (n) = Θ(n log b a ). 2. Se f (n) = Θ(n log b a ), então T (n) = Θ(n log b a lg n). 3. Se f (n) = Ω(n log b a+ɛ ) para alguma constante ɛ > 0, e se af (n/b) cf (n) (condição de regularidade) para alguma constante c < 1 e para todo n suficientemente grande, então T (n) = Θ(f (n)). 25 / 33 Entendendo o método mestre Nos três casos a função f (n) é comparada com n log b a Intuitivamente, a solução é determinada pela maior das duas funções No caso 1, n log b a é polinomialmente maior que f (n) No caso 2, as funções tem a mesma taxa de crescimento e o termo lg n aparece multiplicado a solução No caso 3, a função f (n) é polinomialmente maior que n log b a e a condição de regularidade af (n/b) cf (n) é válida Existe uma lacuna entre os casos 1 e 2, e os casos 2 e 3 (a maior função não é polinomialmente maior ou, no caso 3, a condição de regularidade não é verdadeira) 26 / 33 O método mestre - exemplos T (n) = 9T (n/3) + n a = 9 b = 3 f (n) = n n log a b = n log 3 9 = n 2 Como f (n) = O(n log 9 ɛ 3 ), onde ɛ = 1, aplicamos o caso 1 do teorema mestre e concluímos que a solução é T (n) = Θ(n 2 ) 27 / 33 O método mestre - exemplos T (n) = T (2n/3) + 1 a = 1 b = 3/2 f (n) = 1 n log a b = n log 3/2 1 = n 0 = 1 Como f (n) = Θ(n log 1 3/2 ), aplicamos o caso 2 do teorema mestre e concluímos que a solução é T (n) = Θ(lg n) 28 / 33
8 O método mestre - exemplos T (n) = 3T (n/4) + n lg n a = 3 b = 4 f (n) = n lg n n log a b = n log 4 3 = O(n 0,793 ) Como f (n) = Ω(n log 3+ɛ 4 ), onde ɛ 0, 2, podemos aplicar o caso 3, se a condição de regularidade for verdadeira Para n suficientemente grande, af (n/b) = 3(n/4) lg(n/4) (3/4)n lg n = cf (n) para c = 3/4. Portanto, de acordo com o caso 3, a solução é T (n) = Θ(n lg n) 29 / 33 O método mestre - exemplos T (n) = 2T (n/2) + n lg n a = 2 b = 2 f (n) = n lg n n log a b = n log 2 2 = n Parece que o caso 3 pode ser aplicado pois f (n) é assintoticamente maior que n log b a = n log 2 2 = n No entanto, não é polinomialmente maior A razão f (n)/n log a b = (n lg n)/n = lg n é assintoticamente menor que n ɛ para qualquer constante positiva ɛ Ou seja, esta situação está na lacuna entre os casos 2 e 3 30 / Use o método mestre para fornecer limites assintóticos restritos para as recorrências a seguir. a T (n) = 4T (n/2) + n b T (n) = 4T (n/2) + n 2 c T (n) = 4T (n/2) + n O tempo de execução de um algoritmo A é descrito pela recorrência T (n) = 7T (n/2) + n 2. Um algoritmo concorrente A tem um tempo de execução T (n) = at (n/4) + n 2. Qual o maior valor inteiro para a tal que A seja assintoticamente mais rápido de A? Use o método mestre para mostrar que a solução para a recorrência de pesquisa binária T (n) = T (n/2) + Θ(1) é T (n) = Θ(lg n). (Veja no exercício uma descrição da pesquisa binária.) O método mestre pode ser aplicado à recorrência T (n) = 4T (n/2) + n 2 lg n? Por que ou por que não? Forneça um limite assintótico para essa recorrência. 31 / 33 do capítulo 4: 4.1, / 33
9 Referências Thomas H. Cormen et al. Introdução a Algoritmos. 2 a edição em português. Capítulo / 33
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
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
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/ [email protected]
Análise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
Algoritmos de ordenação Quicksort
Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior
Estruturas de Dados 2
Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise
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
Lista de Exercícios 6: Soluções Funções
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6: Soluções Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não
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 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
Análise de algoritmos
Análise de algoritmos Ordenação em tempo linear Prof. Flávio Rogério Uber (UEM/DIN) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) Conteúdo Limites inferiores para ordenação por comparações Ordenação
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
Ordenação em tempo linear
Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n
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
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP Mariani UFSC Manber, Introduction to Algorithms (1989) Livro 16 de março de
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á
Análise de Algoritmos
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Introdução CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram
Aula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento
PCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 7 de outubro de 2016 Marco Antonio
Análise de Complexidade para algoritmos iterativos e recursivos
Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Análise de Complexidade para algoritmos iterativos e recursivos Algoritmos iterativos - complexidade expressa através de somatórios. Algoritmos
Resolvendo o sistema de equações e substituindo na solução geral, temos:
ENQ 2019-1 (versão atualizada em 11/03/2019) Q1. Resolva as seguintes recorrências: (a) (b) Uma solução resumida: (a) Equação característica: Solução geral: Solução da recorrência dada: Resolvendo o sistema
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP 18 de agosto de 2017 Conteúdo programático Introdução (4 horas/aula) Notação
Técnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 08/2008
Algoritmos 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
ANÁLISE DE ALGORITMOS
ANÁLISE DE ALGORITMOS Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo agosto 2009 Introdução P. Feofiloff (IME-USP) Análise de Algoritmos agosto 2009 2 / 102 Introdução
1 a Lista de Exercícios
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi
Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (
Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite
ANÁLISE DE ALGORITMOS: PARTE 4
ANÁLISE DE ALGORITMOS: PARTE 4 Prof. André Backes 2 Função recursiva Função que chama a si mesma durante a sua execução Exemplo: fatorial de um número N. Para N = 4 temos 4! = 4 * 3! 3! = 3 * 2! 2! = 2
Algoritmos de Ordenação: MergeSort
Algoritmos de Ordenação: MergeSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material
Aula 2. Divisão e conquista. Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT)
Aula 2 Divisão e conquista Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT) Exemplo 2: Par de pontos mais próximos (sec 33.4 do CLRS) Essas transparências
Relações de Recorrência
Relações de Recorrência Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 1 / 102 Este material é preparado usando como referências
MC102 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
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
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
Algoritmos de Ordenação: Cota Inferior
Algoritmos de Ordenação: Cota Inferior ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Algoritmos de Ordenação: QuickSort
Algoritmos de Ordenação: QuickSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material
Análise de Algoritmos e Estruturas de Dados
Análise de Algoritmos e Estruturas de Dados Guilherme Oliveira Mota CMCC - Universidade Federal do ABC [email protected] 21 de julho de 2018 Esta versão é um rascunho ainda em elaboração e não foi revisado
Aula 02 Notação Assintótica p. 4. Usodanotação O. Notação O. Notação O, Ω, ΘeExemplos. Intuitivamente... O(f(n)) funções que não crescem mais
Notação O Aula 02 Notação Assintótica Notação O, Ω, Θe Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intuitivamente... O() funções que não crescem mais rápido que funções menores
ANÁLISE DE ALGORITMOS: PARTE 3
ANÁLISE DE ALGORITMOS: PARTE 3 Prof. André Backes 2 A notação grande-o é a forma mais conhecida e utilizada de análise Complexidade do nosso algoritmo no pior caso Seja de tempo ou de espaço É o caso mais
Lista de Exercícios 6 Funções
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6 Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não para todas
O verbo induzir significa gerar. Nesta aula, começaremos a ver o assunto Indução Matemática
Polos Olímpicos de Treinamento Curso de Álgebra - Nível 2 Prof. Marcelo Mendes Aula 6 Indução - Parte I O verbo induzir significa gerar. Nesta aula, começaremos a ver o assunto Indução Matemática (ou Indução
RESOLUÇÃO DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA Considere a soma. S n = n 2 n 1
DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA 1 1. Considere a soma S n = 1 2 0 + 2 2 1 + 3 2 2 + + n 2 n 1. Mostre, por indução finita, que S n = (n 1)2 n + 1. Indique claramente a base da indução, a
Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores
Uma recorrêcia é uma equação que descreve uma fução em termos do seu valor em etradas meores T( ) O( 1) T( 1) 1 se 1 se 1 Útil para aálise de complexidade de algoritmos recursivos ou do tipo dividir para
UFF/GMA - Matemática Básica I - Parte III Notas de aula - Marlene
UFF/GMA - Matemática Básica I - Parte III Notas de aula - Marlene - 011-1 37 Sumário III Números reais - módulo e raízes 38 3.1 Módulo valor absoluto........................................ 38 3.1.1 Definição
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito. c1 + c 2 = 1 c 1 + 4c 2 = 3. a n = n. c 1 = 1 2c 1 + 2c
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL ENQ 2019.1 Gabarito Questão 01 [ 1,25 ::: (a)=0,50; (b)=0,75 ] Resolva as seguintes recorrências: (a) a n+2 5a n+1 + 4a n = 0, a 0 = 1, a 1 = 3. (b)
Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos
Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 4 a Lista de Exercícios Gabarito de algumas questões.
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 4 a Lista de Exercícios Gabarito de algumas questões. Este gabarito foi feito direto no computador
Algoritimos e Estruturas de Dados III CIC210
Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista
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
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL ENQ 016. Gabarito Questão 01 [ 1,00 ] A secretaria de educação de um município recebeu uma certa quantidade de livros para distribuir entre as escolas
Análise na Reta - Verão UFPA 1a lista - Números naturais; Corpos ordenados
Análise na Reta - Verão UFPA 1a lista - Números naturais; Corpos ordenados A lista abaixo é formada por um subconjunto dos exercícios dos seguintes livros: Djairo G. de Figueiredo, Análise na reta Júlio
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP Manber, Introduction to Algorithms (989) Livro de abril de 08 Conteúdo programático
André Vignatti DINF- UFPR
Notação Assintótica: O André Vignatti DINF- UFPR Notação Assintótica Vamos expressar complexidade através de funções em variáveis que descrevam o tamanho de instâncias do problema. Exemplos: Problemas
I. Correção de Algoritmos Não-Recursivos
I. Correção de Algoritmos Não-Recursivos Nos exercícios a seguir, você deverá demonstrar a correção dos algoritmos por meio dos conceitos vistos nos slides da Aula 03. 1) Prove que o seguinte algoritmo
Programação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
ENQ Gabarito MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. Questão 01 [ 1,25 ]
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL ENQ 017 Gabarito Questão 01 [ 1,5 ] Encontre as medidas dos lados e ângulos de dois triângulos ABC diferentes tais que AC = 1, BC = e A BC = 0 Considere
03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II
03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/26 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
RESPOSTAS DA LISTA 5 (alguns estão com a resolução ou o resumo da resolução):
Lista de Matemática Básica I - RESPOSTAS) RESPOSTAS DA LISTA alguns estão com a resolução ou o resumo da resolução): Resposta: < < < < < 8 Justificativa: observe que Também observe que: e são simétricos;
Complexidade de Algoritmos
Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como
LISTA DE EXERCÍCIOS 1
UFMG/ICEx/DCC Algoritmos e Estruturas de Dados II LISTA DE EXERCÍCIOS 1 Graduação (Ciências Exatas & Engenharias) 1 o Semestre de 2007 Exercícios a serem entregues: 2, 4, 9, 12, 13, 17, 18, 19, 21, 22.
05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II
05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Análise de algoritmos. Sílvia Mara da Costa Campos Victer
Análise de algoritmos Sílvia Mara da Costa Campos Victer Análise de Algoritmos Critérios de análise, correção e eficiência. Análise de algoritmos: tempo de processamento e número de operações elementares,
Polinômios de Legendre
Seção 5: continuação do método de resolução por séries de potências Na Seção foi exposto informalmente, através de exemplos, o método de resolução de equações diferenciais ordinárias por séries de potências.
Universidade Federal de Santa Maria Departamento de Matemática Curso de Verão Lista 2. Sequências de Números Reais
Universidade Federal de Santa Maria Departamento de Matemática Curso de Verão 0 Lista Sequências de Números Reais. Dê o termo geral de cada uma das seguintes sequências: a,, 3, 4,... b, 4, 9, 6,... c,,
Material Teórico - Módulo de Função Logarítmica. Praticando as Propriedades. Primeiro Ano - Médio
Material Teórico - Módulo de Função Logarítmica Praticando as Propriedades Primeiro Ano - Médio Autor: Prof. Angelo Papa Neto Revisor: Prof. Antonio Caminha M. Neto 06 de maio de 209 Nesta aula, iremos
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser executado 1 Fazendo estimativas e simplificações... O número
Complexidade assintótica de programas
Complexidade assintótica de programas Técnicas de análise de algoritmos são consideradas partes integrantes do processo moderno de resolver problemas, permitindo escolher, de forma racional, um dentre
Divisão e conquista. Eficiência de divisão e conquista
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Paradigmas de Projeto de Algoritmos
Projeto de Algoritmos Cap.2 Paradigmas de Projeto de Algoritmos 1 Paradigmas de Projeto de Algoritmos indução, recursividade, Paradigmas de Projeto de Algoritmos algoritmos tentativa e erro, divisão e
TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS
TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS O conjunto dos números reais,, que possui as seguintes propriedades:, possui uma relação menor ou igual, denotada por O1: Propriedade Reflexiva:
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 06: Análise de Algoritmos (Parte 3) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números
Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo
Classes, Herança e Interfaces
Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011
A seguir, uma demonstração do livro. Para adquirir a versão completa em papel, acesse:
A seguir, uma demonstração do livro. Para adquirir a versão completa em papel, acesse: www.pagina10.com.br Fundamentos de Matemática Superior - BINÔMIO DE NEWTON Estes resultados foram escritos com expoentes
