Estruturas de Dados 2
|
|
- Rubens Bonilha Maranhão
- 6 Há anos
- Visualizações:
Transcrição
1 Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31
2 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise Matemática: Algoritmos não-recursivo; Algoritmos recursivos (recorrências); IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 2/31
3 Recorrências Capítulo 4 CLRS(Cormem, 2 nd Edição, 2001) Introdução Exemplo de Análise de Recorrência: MergeSort Conclusão: T(n) = Θ ( n*lg(n) ) Mas como chegar a esta conclusão? Três métodos: Método da Substituição Método da Árvore de Recursão Método Master IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 3/31
4 Recorrências - Método da Substituição Basta chutar uma resposta (limite assintótico) e em seguida, provar por indução que funciona! Por exemplo, suponha a recursão da forma: T(n) = 2 T( n/2 ) + n Supondo que a solução seja T(n) = O ( n*lg(n) ) Agora, como provamos que isto é verdade? Basta provar que T(n) c * n * lg (n) para algum c > 0. Iniciamos assumindo que a fórmula é verdade para n/2 : T( n/2 ) c * n/2 * lg ( n/2 ) Então verificamos se a recorrência pode ser provada!!! IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 4/31
5 Recorrências - Método da Substituição Método da Substituição Agora substituímos esta fórmula na recorrência: T(n) 2(c n/2 lg( n/2 )) + n c n lg(n/2) + n = c n lg n c n lg 2 + n = c n lg n c n + n c n lg n, para qualquer c 1 Agora basta provar a Base da Indução:pela definição, T(1)=1. Calculando pelo nosso chute, T(1) c *1* lg mas lg 1 = 0, então nenhuma constante c satisfaz... IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 5/31
6 Recorrências - Método da Substituição Mas se não funciona para a base, não se pode aceitar a indução......e agora, como resolver? Devemos lembrar que a análise assintótica apenas exige que T(n) = c*n*lg(n) a partir de um n n 0, onde n 0 é uma constante escolhida adequadamente! Se, ao invés de 1, selecionarmos a base da nossa indução como sendo n=2 e n=3 (pois só n=2 ainda dependeria de n=1...), temos: T(2) = 2 T(1)+ 2 = 4, e T(3) = 2 T( 3/2 ) + 3 = 2*1+3 = 5 Será que o nosso chute consegue satisfazer estes casos base? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 6/31
7 Recorrências - Método da Substituição T(2) c * 2 * lg(2) T(3) c * 3 * lg(3) Como lg(2) = 1, e lg(3) = 1.57, fazendo a constante c 2, a base está verificada. Desta forma, conseguimos verificar (por indução) que nosso chute realmente satisfaz a recorrência, portanto provamos que T(n) = O(n*lg(n)) para esta recursão! Problema desta técnica: como acertar o chute? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 7/31
8 Recorrências - Método da Substituição T(2) c * 2 * lg(2) T(3) c * 3 * lg(3) Como lg(2) = 1, e lg(3) = 1.57, fazendo a constante c 2, a base está verificada. Desta forma, conseguimos verificar (por indução) que nosso chute realmente satisfaz a recorrência, portanto provamos que T(n) = O(n*lg(n)) para esta recursão! Problema desta técnica: como acertar o chute? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 8/31
9 Recorrências - Método da Substituição Problema desta técnica: como acertar o chute? Comparação com soluções anteriormente conhecidas: T(n) = 2 T( n/2 +17) + n Qual chute você daria? T(n) = O(n lg(n))???? Mas e a constante 17? Será que dá alguma diferença? Fica como Exercício!!!!! IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 9/31
10 Recorrências - Método da Substituição Mais alguns detalhes: Considere a seguinte recorrência: T(n) = T( n/2 ) + T( n/2 ) + 1 Qual chute você daria? T(n) = O(n), provar que T(n) cn Substituindo, temos: T(n) c*n/2+c*n/2+1 = cn +1 Porém isto não implica que T(n) cn para nenhum c Errei por 1?Como resolver, se achamos que isto é O(n)? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 10/31
11 Recorrências - Método da Substituição Utilizando outra hipótese, por exemplo T(n) cn b Substituindo, temos: T(n) (c*n/2-b)+(c*n/2-b)+1 = cn -2b +1 cn -b para todo b 1. Basta escolher c de forma a satisfazer as condições da base, e conseguimos provar que T(n)=O(n)!!! Mas cuidado... Lembra de T(n) = 2 T( n/2 ) + n? Supondo que a solução seja T(n) = O (n), ou T(n) cn T(n) 2*c*n/2 + n = cn +n, Portanto está provado que T(n)=O(n)? NÃO!!!!! Porquê? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 11/31
12 Recorrências - Método da Substituição Problema desta técnica: como acertar o chute? Técnicas alternativas: iniciar provando limites superiores(o) e inferiores(ω), e posteriormente ir apertando os limites (aproximações sucessivas). Utilizar o método da árvore de recursão Exercícios: Provar que T(n) = T( n/2 ) + 1 é O(lg n) Provar que T(n) = 2T( n/2 ) + n é Ω(n lg n). É possível concluir que T(n) é Ω (n lg n)? IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 12/31
13 Recorrências - Árvore de Recursão Método da Árvore de Recursão Boa alternativa para obter estimativas (chutes) para o método da substituição Não pode ser utilizado como forma de prova, por não ser formal... Idéia: Avaliar como funciona a recursão, somando os seus custos, para chegar a um limite assintótico... Exemplo: T(n) = T(n/4) + T(n/2) + n² Qual seria seu chute? O(n²)? O(n lg n)?o(n² lg n)?o(n lg n²) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 13/31
14 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² n² T(n/4) T(n/2) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 14/31
15 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² n² (n/4)² (n/2)² T(n/16) T(n/8) T(n/8) T(n/4) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 15/31
16 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (n/16)² : : Θ(1) n² (n/4)² (n/2)² (n/8)² (n/8)² (n/4)² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 16/31
17 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) (n/16)² : : Θ(1) n²... =n² (n/4)² (n/2)² (n/8)² (n/8)² (n/4)² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 17/31
18 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) (n/16)² : : Θ(1) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/8)² (n/8)² (n/4)² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 18/31
19 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/16)² (n/8)² (n/8)² (n/4)²...= 25 n² : 256 : Θ(1) n²+(5/16)n²+(25/256)n² IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 19/31
20 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/16)² (n/8)² (n/8)² (n/4)²...= 25 n² : 256 : Θ(1) n²(1+(5/16)+(25/256)+...) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 20/31
21 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² (Somando:) n²... =n² (n/4)² (n/2)²... = 5 n² 16 (n/16)² (n/8)² (n/8)² (n/4)²...= 25 n² : 256 : Θ(1) Θ(n²) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 21/31
22 Recorrências - Árvore de Recursão T(n) = T(n/4) + T(n/2) + n² é Θ(n²)???? Somente provando pelo Método da Substituição para ter certeza realmente... Exercício: Construa a árvore de recursão para T(n) = 4T(n/2) + n E verifique os limites assintóticos(superior e inferior) pelo método da substituição IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 22/31
23 Recorrências Método Master Fornece uma receita para resolução de recorrências da forma: T(n) = at(n/b) +f(n) onde a 1, e b>1 são constantes e f(n) é uma função assintoticamente positiva. O método Master resolve recorrências de algoritmos do tipo dividir-e-conquistar, onde: um problema de tamanho n é dividido em a subproblemas, cada um resolvido em tempo T(n/b). A função f(n) descreve o custo de dividir o problema, e combinar as soluções parciais. IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 23/31
24 Recorrências - Método Master O método Master requer a memorização de três casos base, mas isto permite a resolução de muitas recorrências com facilidade. 1. f(n) = O(n log b a ε ) para alguma constante ε> f(n) = Θ(n log b a ). 3. f(n) = Ω(n log b a+ε ) para alguma constante ε> 0, e af(n/b) cf(n) para alguma constante c < 1 e n suficientemente grande. IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 24/31
25 Caso 1: Recorrências - Método Master 1. f(n) = O(n log b a ε ) para alguma constante ε> 0. Se isto for verdade, f(n) cresce polinomialmente mais lentamente que n log b a (por um factor n ε ). Solução: T(n) = Θ(n log b a ). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 25/31
26 Caso 2: Recorrências - Método Master 2. f(n) = Θ(n log b a ). Se isto for verdade, f(n) e n log b a crescem a taxas similares. Solução: T(n) = Θ(n log b a lg n). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 26/31
27 Caso 3: Recorrências - Método Master 3. f(n) =Ω(n log b a+ε ) para alguma constante ε> 0, e af(n/b) cf(n) para alguma constante c < 1 e n suficientemente grande. Se isto for verdade, f(n) cresce polinomialmente mais rapidamente que n log b a a uma taxa n ε. Solução: T(n) = Θ(f(n)). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 27/31
28 Recorrências - Método Master Exemplos: T(n) = 4T(n/2) + n a =4, b= 2 n log b a =n 2 ; f(n) = n. CASo1: f(n) = O(n 2-ε ) para ε= 1. T(n) = Θ(n 2 ). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 28/31
29 Recorrências - Método Master Exemplos: T(n) = 4T(n/2) + n 2 a =4, b= 2 n log b a =n 2 ; f(n) = n 2. CASo2: f(n) = Θ(n 2 ). T(n) = Θ(n 2 lg n). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 29/31
30 Recorrências - Método Master Exemplos: T(n) = 4T(n/2) + n 3 a =4, b= 2 n log b a =n 2 ; f(n) = n 3. CASo3: f(n) = Ω(n2+ε ), para ε=1 e 4(n/2) 3 cn 3 para c= 1/2. T(n) = Θ(n 3 ). IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 30/31
31 Recorrências - Método Master Exemplos: T(n) = 2T(n/2) + n lg n a =2, b= 2 n log b a =n ; f(n) = n lg n. O método Master não se aplica! Por quê? O teste: af(n/b) cf(n) para c < 1 e n grande: 2(n/2 lg(n/2)) =n lg(n/2) c n lg(n) (OK!) Mas f(n) =Ω(nlog b a+ε ) para alguma constante ε> 0? f(n)/n log a b =f(n)/n=n lg n/n = lg n. lg n < n ε para algum ε> 0??? NÃO!!!!! (não é polinomialmente menor!!!!!) IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 31/31
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 maisAlgoritmos 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 maisAná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
Leia maisAnálise de algoritmos
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.
Leia maisEstruturas 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 maisMergesort. 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 maisAná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
Leia maisAula 1. Teoria da Computação III
Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável
Leia maisÉ 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
Leia maisAnálise de Algoritmos
Análise de Algoritmos CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram adaptadas das transparências do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Intuitivamente...
Leia maisLista 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
Leia maisAnálise e Síntese de Algoritmos. Revisão CLRS, Cap. 4, 6
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 4, 6 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, logaritmos, etc. Exemplos de algoritmos Ordenação Procura Selecção 2007/2008
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 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 maisLista 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
Leia maisANÁ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
Leia maisAnálise de algoritmos
Análise de algoritmos Introdução à Ciência da Computação 2 Baseado nos slides do Prof. Thiago A. S. Pardo Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado
Leia maisResposta pergunta 1: i n t dectobin ( i n t n ) { i n t mdc( i n t x, i n t y ) ; void testpalindromo ( ) ; i n t main ( ) { testmult ( ) ;
SSC0503 - Introdução à Ciência de Computação II Respostas da 2 a Lista Professor: Claudio Fabiano Motta Toledo (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) Resposta
Leia maisAnálise de Algoritmos
Algoritmos p. 1/28 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/28 Análise de Algoritmos CLRS 7 Essas transparências
Leia maisComplexidade 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
Leia maisTó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 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 maisAná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
Leia maisDivisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).
Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir
Leia maisAlgoritmos 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
Leia maisIntroduçã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 maisAlgoritmos 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 dbeder@usp.br 10/2008 Material
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 maisProjeto 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 (1989) Livro 06 de abril de 2018 Conteúdo
Leia maisEstruturas 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
Leia maisAnálise de Algoritmos
Algoritmos p. 1/25 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/25 Ordenação em tempo linear CLRS cap 8 Algoritmos
Leia maisUma 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
Leia maisProjeto 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
Leia maisAnálise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br Consumo de tempo assintótico Seja A um algoritmo para um problema
Leia maisANÁ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
Leia maisProjeto 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
Leia maisAula 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
Leia maisPCC104 - 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
Leia maisComplexidade 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
Leia maisTé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 dbeder@usp.br 08/2008
Leia maisCT-234. 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 Bibliografia T.H. Cormen, C.E. Leiserson and R.L. Rivest Introduction to algorithms R. Sedgewick
Leia maisAná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
Leia maisAula 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
Leia maisANÁ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
Leia maisProjeto 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
Leia maisOrdenaçã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
Leia maisMelhores momentos AULA 1. Algoritmos p.38/86
Melhores momentos AULA 1 Algoritmos p.38/86 Definições x := inteiro i tal que i x < i + 1 x := inteiro j tal que j 1 < x j Exercício A1.B Mostre que n 1 2 n 2 n 2 e n 2 n 2 n + 1 2 para qualquer inteiro
Leia maisRascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 7 de dezembro de 2016
CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR 7 de dezembro de 016 Sumário 1 Apresentação do Curso Problemas computacionais e algoritmos
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação
Leia maisAnálise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.
Leia maisAná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,
Leia maisProjeto 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
Leia maisParadigmas de Projeto de Algoritmos
Projeto de Algoritmos Cap.2 Paradigmas de Projeto de Algoritmos 1 Conteúdo do Capítulo 2.1 Indução Paradigmas de Projeto de Algoritmos 2.2 Recursividade 2.2.1 Como Implementar Recursividade 2.2.2 Quando
Leia maisParadigmas de Projeto de Algoritmos
Projeto de Algoritmos Cap.2 Paradigmas de Projeto de Algoritmos 1 Conteúdo do Capítulo 2.1 Indução Paradigmas de Projeto de Algoritmos 2.2 Recursividade 2.2.1 Como Implementar Recursividade 2.2.2 Quando
Leia maisParadigmas de Projeto de Algoritmos
Paradigmas de Projeto de Algoritmos Última alteração: 2 de Setembro de 2010 Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de Algoritmos Cap.2 Paradigmas de
Leia maisSCC Capítulo 3 Análise de Algoritmos - Parte 2
SCC-501 - Capítulo 3 Análise de Algoritmos - Parte 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos
Leia maisComparação com Divisão e Conquista
Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisO termo Programação Dinâmica é um bocado infeliz.
Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisRascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 11 de junho de 2017
CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR 11 de junho de 017 Sumário 1 Apresentação do Curso Problemas computacionais e algoritmos 4
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 maisIntrodução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
Leia maisMedida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa Livro Projeto de Algoritmos Nívio Ziviani Capítulo 1 Seção 1.3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Comportamento Assintótico de Funções O parâmetro n
Leia maisMelhores momentos AULA 3. Algoritmos p.148/188
Melhores momentos AULA 3 Algoritmos p.148/188 Análise da intercalação Problema: Dados e crescentes, rearranjar de modo que ele fique em ordem crescente. Entra: Sai: Algoritmos p.149/188 Algoritmos p.150/188
Leia maisI. 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
Leia maisCES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo.
CES-11 Noções de complexidade de algoritmos Complexidade de algoritmos Avaliação do tempo de execução Razão de crescimento desse tempo Notação O Exercícios COMPLEXIDADE DE ALGORITMOS Importância de análise
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 01 Complexidade de Algoritmos Edirlei Soares de Lima O que é um algoritmo? Um conjunto de instruções executáveis para resolver um problema (são
Leia maisParadigmas 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
Leia maisParadigmas de Projeto de Algoritmos
Paradigmas de Projeto de Algoritmos Última alteração: 10 de Outubro de 2006 Transparências elaboradas por Charles Ornelas, Leonardo Rocha, Leonardo Mata e Nivio Ziviani Projeto de Algoritmos Cap.2 Paradigmas
Leia maisAlgoritmos 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 maisAlgoritimos 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
Leia maisJorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.
Ageda Aálise e Técicas de Algoritmos Jorge Figueiredo Relação de de Recorrêcia Derivado recorrêcia Resolvedo recorrêcia Aálise de de algoritmos recursivos Aálise de de Algoritmos Recursivos Itrodução A
Leia maisRelaçõ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
Leia maisAlgoritmos e Estruturas de Dados MEE 2014/2015. Análise de Algoritmos e Complexidade
Algoritmos e Estruturas de Dados MEE 2014/2015 Análise de Algoritmos e Complexidade Análise de Algoritmos [1] Para avaliar e comparar o desempenho de dois algoritmos: executamos ambos (muitas vezes) para
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 05: Análise de Algoritmos (Parte 2) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo
Leia maisUNIVERSIDADE 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
Leia maisTé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 dbeder@usp.br 08/2008
Leia maisIndução Matemática. Matemática Discreta. Indução Matemática. Mayara Midori Omai e Sheila Morais de Almeida UTFPR-PG. Abril
Matemática Discreta Indução Matemática Mayara Midori Omai e Sheila Morais de Almeida UTFPR-PG Abril - 2017 Indução Matemática Se desejamos provar que A(n) B(n) é verdade para números inteiros k maiores
Leia maisQuantidade de memória necessária
Tempo de processamento Um algoritmo que realiza uma tarefa em 10 horas é melhor que outro que realiza em 10 dias Quantidade de memória necessária Um algoritmo que usa 1MB de memória RAM é melhor que outro
Leia maisO Teorema Mestre da Complexidade
O Teorema Mestre da Complexidade Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 23 de aril de 2010 Conteúdo 1 Enunciado 2 Preliminares Peso das Folhas
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 maisBCC202 - 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
Leia maisALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros
Leia maisÁrvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Árvores Binárias Algoritmos e Estruturas de Dados 2 201-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Árvores 2 Raíz 3 Folhas 4 Nós Internos 5 Pais e Filhos 6 Descendentes Ancestrais 8 Irmãos 9 Níveis
Leia maisCapítulo 6 Análise de Algoritmos Capítulo 6
666 Apêndice C Respostas e Sugestões para os Exercícios de Revisão 42. Consulte a Seção 5.4. 43. (a) Escoamento de memória.(b) Porque não há garantia que o cliente irá usá-la devidamente. 44. (a) Contagem
Leia maisAnálise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Leia maisAlgoritmos 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 dbeder@usp.br 10/2008 Material
Leia maisModelagem 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
Leia maisLista 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
Leia maisMelhores momentos AULA PASSADA. Complexidade Computacional p. 205
Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 05: Análise de Algoritmos (Parte 2) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisAula 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
Leia maisAlgoritmos e Complexidade
PMR2300 Escola Politécnica da Universidade de São Paulo Algoritmos Um algoritmo é um procedimento descrito passo a passo para resolução de um problema em tempo finito. Formalização: máquinas de Turing.
Leia mais5. Invólucros Convexos no Plano (cont )
5. Invólucros Convexos no Plano (cont ) Antonio Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Mestrado em Matemática e Aplicações Complexidade Algorítmica Notação O Sejam T(n) e f(n)
Leia maisLista 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 maisEstruturas de Dados 2
Estruturas de Dados 2 Análise Empírica de Algoritmos IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/13 Análise da Eficiência de Algoritmos: Velocidade de Execução;
Leia maisDivisão e Conquista: Par de Pontos mais Próximo
Divisão e Conquista: Par de Pontos mais Próximo Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Divisão e Conquista (cont.) Problema: Dado um conjunto de pontos no plano, obter o par de pontos
Leia maisEstruturas 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 maisAlgoritmos 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 dbeder@usp.br 10/2008 Material
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos! Uma característica importante de qualquer algoritmo é seu tempo de execução! é possível determiná-lo através de métodos empíricos, considerando-se entradas diversas! é também
Leia mais