Análise de Algoritmos

Documentos relacionados
Preliminares. Profa. Sheila Morais de Almeida. agosto

Análise de Algoritmos

Medida do Tempo de Execução de um Programa

Análise de Algoritmos

BCC202 - Estrutura de Dados I

Indução Matemática. Profa. Sheila Morais de Almeida. junho DAINF-UTFPR-PG

Complexidade de Tempo e Espaço

Teoria dos Grafos Aula 7

Melhores momentos AULA 1. Algoritmos p.38/86

Pesquisa Operacional

André Vignatti DINF- UFPR

Notas sobre crescimento de função

03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II

Aula 1. Teoria da Computação III

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

2. Complexidade de Algoritmos

Lista de Exercícios 6: Soluções Funções

Análise e Projeto de Algoritmos

ANÁLISE DE ALGORITMOS: PARTE 3

Projeto e Análise de Algoritmos

Análise de Algoritmos

Análise de algoritmos

Comportamento assintótico

Comportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (

Análise e Projeto de Algoritmos P R O F : L O A N A T. N O G U E I R A

Introdução à Análise de Algoritmos

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas

É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser

Relações de Recorrência

André Vignatti DINF- UFPR

Análise de Algoritmos

Projeto e Análise de Algoritmos

Quantidade de memória necessária

3. Limites e Continuidade

Anéis quocientes k[x]/i

Teoria da Computação Aula 9 Noções de Complexidade

Análise de algoritmos

COMPLEXIDADE DE ALGORITMOS

ANÁLISE DE ALGORITMOS: PARTE 4

Análise de Algoritmos Estrutura de Dados II

Lista de Exercícios 6 Funções

CONJUNTO DOS NÚMEROS INTEIROS. No conjunto dos números naturais operações do tipo

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Análise de algoritmos. Parte I

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

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS

Técnicas de Programação III Análise de Algoritmos (Continuação)

A = B, isto é, todo elemento de A é também um elemento de B e todo elemento de B é também um elemento de A, ou usando o item anterior, A B e B A.

ANÁLISE DE ALGORITMOS

Análise de algoritmos. Parte I

Análise e Projeto de Algoritmos

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

Curso: Análise e Desenvolvimento de Sistemas

Somatórios. Profa. Sheila Morais de Almeida. junho DAINF-UTFPR-PG. Sheila Almeida (DAINF-UTFPR-PG) Somatórios junho / 30

Indução Matemática. Profa. Sheila Morais de Almeida. junho DAINF-UTFPR-PG

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 7 de dezembro de 2016

Complexidade Assintótica

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 11 de junho de 2017

Análise de algoritmos Parte I

Projeto de Algoritmos por Indução

Otimização Combinatória - Parte 4

Por meio de uma figura fechada, dentro da qual podem-se escrever seus elementos. Diagrama de Venn-Euler.

Derivadas Parciais. Copyright Cengage Learning. Todos os direitos reservados.

MCTA028 Programação Estruturada Aula 20 Exercícios de custos de um algoritmo

Complexidade de Algoritmos. Edson Prestes

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Universidade Federal de Pelotas. Instituto de Física e Matemática Pró-reitoria de Ensino. Módulo de Limites. Aula 01. Projeto GAMA

Funções Polinomiais com Coeficientes Complexos. Quantidade de Raízes e Consequências. 3 ano E.M. Professores Cleber Assis e Tiago Miranda

, (1) onde v é o módulo de v e b 1 e b 2 são constantes positivas.

Grandezas Escalares e Vetoriais

Breve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

Plano de Trabalho 1 Polinômios e Equações Algébricas ( REELABORAÇÃO)

3. ANÁLISE DE COMPLEXIDADE PESSIMISTA

PUC-GOIÁS - Departamento de Computação

ESCOLA SECUNDÁRIA COM 3º CICLO D. DINIS 10º ANO DE MATEMÁTICA A Tema II Funções e Gráficos. Funções polinomiais. Função módulo.

Gabarito das Questões do Curso de Nivelamento LISTA 2

MATEMÁTICA. Polinômios. Professor : Dêner Rocha. Monster Concursos 1

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Sucessões. Limites de sucessões O essencial

Pesquisa Operacional

POLINÔMIOS 1. INTRODUÇÃO Uma função é dita polinomial quando ela é expressa da seguinte forma:

14 Estimador assintótico

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

Análise e Projeto de Algoritmos

Projeto e Análise de Algoritmos

Método de Quadrados Mínimos: Caso discreto

Polinômios. Acadêmica: Vanessa da Silva Pires

Classificação de Dados

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Estruturas de Dados Algoritmos

Problemas Intratáveis ou computação eficiente X computação ineficiente

O Teorema do Valor Médio

Análise e Projeto de Algoritmos

Notação Assintótica Letícia Rodrigues Bueno

Aula 5 Equação Diferencial de Segunda Ordem Linear e Coeficientes constantes:

Funções Polinomiais com Coeficientes Complexos. Divisão de Funções Polinomiais. 3 ano E.M. Professores Cleber Assis e Tiago Miranda

Complexidade de algoritmos Notação Big-O

Análise de algoritmos

Transcrição:

Análise de Algoritmos Análise assintótica Profa. Sheila Morais de Almeida DAINF-UTFPR-PG março - 2016

f (n) = 5n 3 + 3n 2 + 20. g(n) = 2n 3 + n 2. Estamos interessados em comparar essas funções quando o tamanho da entrada for muito grande.

É comum que T (n) tenha constantes sendo somadas ou multiplicadas pelos seus termos. Exemplos: T (n) = f (n) = 5n 3 + 3n 2 + 20. T (n) = g(n) = 2n 3 + n 2. Nesse link, observe como cada um dos termos de um polinômio influencia no crescimento da função. Note como uma multiplicação pelo termo de maior grau tem maior poder de alterar o comportamento da função.

Primeira regra: Como os termos de menor valor (de menor grau, no caso dos polinômios) tem pouca influência no comportamento da função. Os mesmos são desconsiderados na análise assintótica.

Imagine que para uma determinada constante (a) foram determinados os números de instruções que os algoritmos executam: ax 2, ax 3, ax 4 e ax 10, todos em função do tamanho da entrada (x). Observando o mesmo link, veja como a alteração na constante a, que multiplica o termo de maior grau, não modifica a ordem de crescimento das funções. Ou seja: a função que cresce mais rápido, continua crescendo mais rápido e a que cresce mais devagar, continua crescendo mais devagar. Segunda regra: O polinômio de maior grau sempre cresce mais rápido.

Agora, nesse link, considere a comparação das funções polinomial (ax b ) e exponencial (ab x ), onde x é o tamanho da entrada. Veja como a constante que multiplica os termos (a) influencia menos o comportamento das funções que a constante b, usada como expoente em uma função e como base na outra.

Veja como as constantes tem pouca influência na velocidade de crescimento das funções.

Terceira regra: Para fazer a análise pode-se desconsiderar até mesmo as constantes que multiplicam os termos de maior ordem.

Análise de Algoritmos Vamos comparar algumas funções comuns que representam número de instruções:

Análise de Algoritmos Vamos comparar algumas funções comuns que representam número de instruções:

Notação O Uma função f (x) pertence à O(g(x)), se existem duas constantes positivas c e n tais que f (x) c.g(x), para todo x n. Denota-se f (x) O(g(x)). Um abuso de notação (muito usado): f (x) = O(g(x)),

Notação O No geogebra, veja um exemplo de uma função f (x) O(g(x)).

Teorema 3.1 (U. Mamber) para todas as constantes c > 0 e a > 1, e para todas as funções f (n) monótonas crescentes, (f (n)) c O(a f (n) ). Veja no Geogebra um exemplo! Quarta regra: uma função exponencial cresce mais rápido que uma polinomial.

Teorema 3.1 (U. Mamber) para todas as constantes c > 0 e a > 1, e para todas as funções f (n) monótonas crescentes, (f (n)) c O(a f (n) ). Aplicando o Teorema 3.1 em f (n) = n: n c O(a n ). Aplicando o Teorema 3.1 em f (n) = log a n: (log a n) c O(a log a n ) = O(n).

Lema 3.2 (U. Mamber) Se f (n) O(p(n)) e g(n) O(q(n)), então f (n) + g(n) O(p(n) + q(n)) e f (n) g(n) = O(p(n) q(n)).

prova: Por definição da notação O, existem constantes c 1, n 1, c 2 e n 2, tais que f (n) c 1 p(n), para todo n n 1 e g(n) c 2 q(n), para todo n n 2. Então, f (n) + g(n) c 1 p(n) + c 2 q(n). Seja c = max c 1, c 2. Então, f (n) + g(n) c 1 p(n) + c 2 q(n) cp(n) + cq(n) = c(p n ) + q(n)). Portanto, f (n) + g(n) c(p(n) + q(n)) e, por definição, f (n) + g(n) O(p(n) + q(n)).

Além disso, f (n) g(n) c 1 p(n) c 2 q(n) = c 1 c 2 p(n) q(n). Considere a constante c = c 1 c 2. Então, f (n) g(n) c 1 c 2 p(n) q(n) = c p(n) q(n). Então, f (n) g(n) c p(n) q(n) e, por definição, f (n) g(n) O(p(n) q(n)).

Notação Ω Uma função f (x) pertence à Ω(g(x)), se existem duas constantes positivas c e n tais que f (x) c.g(x), para todo x n. Denota-se f (x) Ω(g(x)). Um abuso de notação (muito usado): f (x) = Ω(g(x)),

Notação Ω Uma função f (x) pertence à Ω(g(x)), se existem duas constantes positivas c e n tais que f (x) c.g(x), para todo x n.

Notação Ω O exemplo apresentado no Geogebra é um pouco menos intuitivo.