22/8/2010 COMPLEXIDADE DE ALGORITMOS CES para os numeradores e 1 para o denominador. Noções de complexidade de algoritmos

Documentos relacionados
CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo.

CAP. 5. TÉCNICAS DE ORDENAÇÃO

M mn (R) : conjunto das matrizes reais m n AnB = fx; x 2 A e x =2 Bg det A : determinante da matriz A

Aula 1. Teoria da Computação III

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Métodos de Ordenação Parte 1

NOTAS DE AULA DA DISCIPLINA CE076

Métodos de Ordenação Parte 1

Aula 3 - Classificação de sinais

Classificação e Pesquisa de Dados

4 Autovetores e autovalores de um operador hermiteano

Capítulo 2 Método de Cross

Flambagem. Cálculo da carga crítica via MDF

7 - Distribuição de Freqüências

IMPLEMENTAÇÃO DO MÉTODO DE FATORAÇÃO DE INTEIROS CRIVO QUADRÁTICO

Identidade dos parâmetros de modelos segmentados

3 Método Numérico. 3.1 Discretização da Equação Diferencial

GABARITO ERP19. impedância total em pu. impedância linha em pu; impedância carga em pu; tensão no gerador em pu.

CÁLCULO DE RAÍZES DE EQUAÇÕES NÃO LINEARES

Medida do Tempo de Execução de um Programa

Complexidade de algoritmos Notação Big-O

NÚMEROS COMPLEXOS (C)

Parte 1: Exercícios Teóricos

Representação e Descrição de Regiões

Resolução das Questões Objetivas

REGRESSÃO NÃO LINEAR 27/06/2017

37 [C] Verdadeira. Veja justificativa do item [B]. Moda = 8

PROVA 2 Cálculo Numérico. Q1. (2.0) (20 min)

Projeto e Análise. Aula 1: Algoritmos de Ordenação Prof. Carlos

Análise de Algoritmos

Cálculo Numérico BCC760 Interpolação Polinomial

UNIDADE IV DELINEAMENTO INTEIRAMENTE CASUALIZADO (DIC)

Sumário, aula 6. Curva da procura. Curva da procura. Curva da procura. Curva da procura

Responda às questões utilizando técnicas adequadas à solução de problemas de grande dimensão.

Cap. IV Análise estatística de incertezas aleatórias

EXERCÍCIO: VIA EXPRESSA CONTROLADA

Estatística II Antonio Roque Aula 18. Regressão Linear

Introdução a Combinatória- Aplicações, parte II

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

Problemas de engenharia

Interpolação Segmentada

Método BubbleSort. Estrutura de Dados II Prof Jairo Francisco de Souza

Compacidade em espaços métricos

6 ALOCAÇÃO POR ÚLTIMA ADIÇÃO (UA)

Matemática. Resolução das atividades complementares. M22 Números Complexos. 1 Resolva as equações no campo dos números complexos.

Revisão de Estatística X = X n

PROCESSOS ESTOCÁSTICOS

3.3 Ordenação por Heap (Heapsort)

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

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

Jogos. Jogos. Jogo. Jogo. Óptimo alvo investigação

Distribuição de uma proporção amostral

CONCEITOS INICIAIS DE ESTATÍSTICA MÓDULO 2 DISTRIBUIÇÃO DE FREQÜÊNCIA - ELEMENTOS Prof. Rogério Rodrigues

Teoria da Computação. Aula 3 Comportamento Assintótico 5COP096. Aula 3 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

4.1 Modelagem dos Resultados Considerando Sazonalização

OPF básico - Exemplo de aplicação dos conceitos de optimização não linear Notas para a disciplina de DOSE (LEEC-FEUP)

DETERMINAÇÃO DOS PARÂMETROS E SEQÜÊNCIA DE CORTE PARA A MÁXIMA PRODUÇÃO EM TORNOS CNC. Palavras-chave: Máxima produção, Seqüência de corte, Torno CNC.

Análise de complexidade

CAP. V AJUSTE DE CURVAS PELO MÉTODO DOS MÍNIMOS QUADRADOS

Proposta de resolução do Exame Nacional de Matemática A 2016 (2 ạ fase) GRUPO I (Versão 1) Logo, P(A B) = = = Opção (A)

Programação Paralela e Distribuída 2010/11. Métricas de Desempenho. Ricardo Rocha DCC-FCUP

LENTES ESFÉRICAS I) TIPOS DE LENTES III) COMPORTAMENTO ÓPTICO. Lentes de bordos delgados: Lentes de bordos espessos:

Modelo de Alocação de Vagas Docentes

Gabarito da Lista de Exercícios de Econometria I

Medidas de Tendência Central. Prof.: Ademilson Teixeira

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

Critério de Equilíbrio

Termo-Estatística Licenciatura: 4ª Aula (08/03/2013)

Cap 6: 4,5,8,9,10,11,12,15,16,21 fazer diagramas, usar análise por cálculo do tempo de resposta

IMPACTOS DAS INEFICIÊNCIAS NAS ELASTICIDADES DE PRODUÇÃO DOS FATORES: UMA ANÁLISE DA AGROPECUÁRIA BRASILEIRA

COMPLEXIDADE DE ALGORITMOS

PROVA DE MATEMÁTICA DA UFMG VESTIBULAR a Fase. RESOLUÇÃO: Profa. Maria Antônia Gouveia.

3. Coexistência entre Tecnologias 3.1. Fontes de Interferência Interferências co-canal A interferência co-canal ocorre quando duas ou mais

CEL033 Circuitos Lineares I

Prof. Lorí Viali, Dr.

5 Relação entre Análise Limite e Programação Linear 5.1. Modelo Matemático para Análise Limite

O F Í C I O C I R C U L A R. Participantes dos Mercados da B3 Segmento BM&FBOVESPA. Ref.: Nova Metodologia do Índice Dividendos BM&FBOVESPA (IDIV).

MECÂNICA CLÁSSICA. AULA N o 9. Colchetes de Poisson Simetrias Espaço de Fases Transformações Canônicas (Hamiltoniano)

MODELOS DE REGRESSÃO PARAMÉTRICOS

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

3 Metodologia de Avaliação da Relação entre o Custo Operacional e o Preço do Óleo

do Semi-Árido - UFERSA

Rede de Hopfield. Rede de camada única com realimentação x n x 2 x 1 w 1n. w n2. w n1 w 2n w 21. w 12

SOLUÇÕES DA EQUAÇÃO DA CONDUÇÃO DO CALOR BIDIMENSIONAL COM CONDUTIVIDADE TÉRMICA DEPENDENTE DA TEMPERATURA E GERAÇÃO DE CALOR

RAD1507 Estatística Aplicada à Administração I Prof. Dr. Evandro Marcos Saidel Ribeiro

Variação ao acaso. É toda variação devida a fatores não controláveis, denominadas erro.

Seleção Exemplos... Ex3: Calcular o gano genétco na produção de ovos pela seleção de macos cujas médas de 5 rmãs fo de 120 ovos numa pop. de aves com

TABELAS E GRÁFICOS PARA VARIÁVEIS ALEATÓRIAS QUANTITATIVAS CONTÍNUAS

MEDIDAS DE TENDÊNCIA CENTRAL I

Variável discreta: X = número de divórcios por indivíduo

Estruturas de Dados Algoritmos

Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (

3 Elementos de modelagem para o problema de controle de potência

Capítulo 16: Equilíbrio Geral e Eficiência Econômica

Módulo I Ondas Planas. Reflexão e Transmissão com incidência normal Reflexão e Transmissão com incidência oblíqua

SC de Física I Nota Q Nota Q2 Nota Q3 NOME: DRE Teste 1

1. ANÁLISE EXPLORATÓRIA E ESTATÍSTICA DESCRITIVA

8 Estrutura horizontal da célula de chuva 8.1. Procedimentos iniciais

Programação Dinâmica. Fernando Nogueira Programação Dinâmica 1

Transcrição:

Razão de crescmento desse temo Imortânca de análse de algortmos Um mesmo roblema ode, em mutos casos, ser resolvdo or város algortmos. Nesse caso, qual algortmo deve ser o escolhdo? Crtéro 1: fácl comreensão, codfcação e correção Geralmente, são algortmos nefcentes Este crtéro sera adequado se o algortmo fosse executado oucas vezes: Custo de rogramação (C) > Custo de execução (Ce) Crtéro 2: efcênca no uso dos recursos comutaconas e radez na execução Geralmente, são algortmos mas comlcados Crtéro mas adequado ara o caso de algortmos muto utlzados ( C < Ce ) Exemlo: Regra de Cramer ara a solução de sstemas de equações lneares Medção de efcênca: uso de memóra e temo de execução Nesta dsclna, a ênfase é dada ara algortmos efcentes no temo de execução. Há mutos casos em que algortmos smles não são executados em temo vável Consderando n = 20, quantos determnantes seram calculados? 20 ara os numeradores e 1 ara o denomnador Cálculo do número m de multlcações: multlcações 21 det 20 = 21 ( 20m + 20 det 19 ) = 21 ( 20m + 20 ( 19m + 19 det 18 )) = 21 ( 20m + 20 ( 19m + 19 ( 18m + 18 det 17 ))) = 21 ( 20m + 20 ( 19m + 19 ( 18m + 18 ( 17m + 17 (... ( 3m + 3 ( 2m )...))))) Lembrando do cálculo recursvo de determnante: 1

= 21 ( 20m + 20 ( 19m + 19 ( 18m + 18 ( 17m + 17 (... ( 3m + 3 ( 2m )...))))) = m ( 2 x 3 x 4 x 5 x... x 20 x 21 + + 3 x 4 x 5 x... x 20 x 21 + + 4 x 5 x... x 20 x 21 + + 5 x... x 20 x 21 + : : + 19 x 20 x 21 + + 20 x 21 ) Utlzando um suercomutador atual: 10 11 multlcações or segundo Temo gasto: 8,778 x 10 8 s = 27,8 anos! Um algortmo mas efcente é o Método da Elmnação de Gauss 209 dvsões + 2850 multlcações Razão de crescmento desse temo AVALIAÇÃO DO TEMPO DE EXECUÇÃO Ex: método de ordenação Bubble-Sort 32 8 40 21 3 97 15 aux = A[]; A[] = A[+1]; A[+1] = aux; trocou = TRUE; = 1; 8 32 40 21 3 97 15 8 32 40 21 3 97 15 8 32 21 40 3 97 15 8 32 21 3 40 97 15 8 32 21 3 40 97 15 8 32 21 3 40 15 97 Ex: método de ordenação Bubble-Sort 8 32 21 3 40 15 97 aux = A[]; A[] = A[+1]; A[+1] = aux; trocou = TRUE; = 1; 8 32 21 3 40 15 97 8 21 32 3 40 15 97 8 21 3 32 40 15 97 8 21 3 32 40 15 97 8 21 3 32 15 40 97... 3 8 15 21 32 40 97 Oeração Temo(ns) Oeração Temo(ns) Oeração Temo(ns) Atrb nt 1 + - < <== nt 2 + - < <== float 15 Atrb float 2 && 1,5 [ ] 8 * nt 5 * float 20 / nt 8 / float 30 aux = A[]; A[] = A[+1]; A[+1] = aux; trocou = TRUE; = 1; 3 Obs: suomos que vetor A contém números do to float 4 Mas quantas vezes cada trecho será executado? 2

Análse do or caso Ocorrerá quando o teste do f for semre verdadero O que sso sgnfca sso? aux = A[]; A[] = A[+1]; A[+1] = aux; trocou = TRUE; = 1; Vetor em ordem decrescente executado 1 vez executado n vezes executado +1 vezes a cada teração do whle externo 79 ns executado vezes a cada teração do whle externo Análse do or caso Ocorrerá quando o teste do f for semre verdadero O que sso sgnfca sso? aux = A[]; A[] = A[+1]; A[+1] = aux; trocou = TRUE; 79 ns Total = (n-1) +... + 3 + 2 + 1 = 1; Vetor em ordem decrescente executado 1 vez executado n vezes Total = n + (n-1) +... + 3 + 2 T(n) = 4 + 3,5n + 2(n-1) + 2 (n + (n-1) +... + 3 + 2) + 79 ((n-1) + (n-2) +... + 2 + 1) + 3(n-1) aux = A[]; A[] = A[+1]; A[+1] = aux; trocou = TRUE; 79 ns Total = (n-1) +... + 3 + 2 + 1 = 1; executado 1 vez executado n vezes Total = n + (n-1) +... + 3 + 2 Por caso do Bubble-Sort: T(n) = 4 + 3,5n + 2(n-1) + 2 (n + (n-1) +... + 3 + 2) + 79 ((n-1) + (n-2) +... + 2 + 1) + 3(n-1) T(n) = 40,5n 2-30n - 3 Quando n aumenta ndefndamente, o termo com n 2 redomna sobre os demas T(n) é roorconal a n 2 Também há casos melhores: nem todos os testes do comando f são semre verdaderos Casos mas estudados: Por caso Caso médo Razões ara estudar o or caso: O temo de execução do or caso de um algortmo é o lmte sueror do temo de execução ara uma entrada qualquer. Para alguns algortmos, o or caso ocorre com bastante frequênca. Geralmente, o caso médo não é fácl de ser calculado. Váras vezes, ele é quase tão rum quanto o or caso. Razão de crescmento desse temo 3

Ex1: Sejam A1 e A2 dos algortmos que resolvem o mesmo roblema, e com os resectvos temos de execução: T 1 ( n ) = 100n 2 T 2 ( n ) = 5n 3 Qual desses algortmos é o melhor? Deenderá do valor de n Emate: 100n 2 = 5n 3 => n = 20 Para n < 20, A2 é melhor Para n > 20, A1 é melhor A1 é consderado o melhor Ex2: Consdere 4 algortmos que resolvem o mesmo roblema de tamanho n. Abaxo, seus resectvos temos de execução: T 1 ( n ) = 100n T 2 ( n ) = 5n 2 T 3 ( n ) = n 3 /2 T 4 ( n ) = 2 n Suonha que esse roblema recse ser resolvdo em no máxmo 1.000 segundos. T(n) n ara 10 3 seg 100n 10 5n 2 14,14 n 3 /2 12,60 2 n 9,97 Os roblemas soluconáves elos 4 algortmos têm tamanho da mesma ordem de magntude (em torno de 10). Consderando uma máquna mas ráda, elevemos esse temo ara 10.000 segundos. T(n) n ara 10 3 seg n ara 10 4 seg Ganho 100n 10 100 10 5n 2 14,14 44,72 3,16 n 3 /2 12,60 27,14 2,15 2 n 9,97 13,28 1,33 Reare que o algortmo 4 só oderá resolver um roblema 1,33 vezes maor... Razão de crescmento desse temo Seja o temo de execução de um algortmo gual a uma somatóra de termos (funções do tamanho da entrada): T 1 (n) = O(n 3 ) T 1 (n) = c 1.n 3 + c 2.n 2 + c 3.n + c 4 T 2 (n) = 2 n + n 3 /2 + 5n 2 + 100n T 2 (n) = O(2 n ) À medda que n aumenta ndefndamente, um dos termos assa a ter domíno sobre os demas: T 1 (n) é roorconal a n 3 : é da ordem de n 3 T 2 (n) é roorconal a 2 n : é da ordem de 2 n 4

Defnção: T(n) = O (f(n)), ou seja, T(n) é da ordem de f(n) se e somente se exstrem constantes ostvas c e n 0 tas que, ara qualquer n n 0, T(n) c.f(n) Ex1: T(n) = (n+1) 2 = O(n 2 ) (n+1) 2 4n 2, n 1 (basta escolher n o = 1 e c = 4) Podera ser c = 2? Sm, mas n 0 = 3 n 0 1 2 3 4 5 (n+1) 2 1 4 9 16 25 36 4n 2 0 4 16 36 64 100 2n 2 0 2 8 18 32 50 Ex2: Por caso do Bublle Sort T(n) = 40,5n 2 30n 3 = O(n 2 ) T(n) 40,5n 2 (sendo n o = 1 e c = 40,5) Ex3: Seja T(n) o olnômo de grau N +, onde a 0 0: T(n) = a 0.n + a 1.n -1 +... + a -1.n + a a 0.n + a 1.n -1 +... + a -1.n + a a 0.n + a 1.n +... + a -1.n + a.n (a 0 + a 1 +... + a -1 + a ).n c.n, ara n 1 T(n) = O(n ) T(n) = O(f(n)) f(n) é um lmte sueror ara a taxa de crescmento de T(n) Dado T(n), temos uma únca f(n)? Não, os váras funções odem satsfazer a defnção. Exemlo: T(n) = 4n 2 + 3n + 1 T(n) é O(n 2 ), O(n 3 ), O(n 10 ) No entanto, T(n) não é O(n) Na análse de algortmos, as taxas mas usadas são n 2, n 3, n, log n, n.log n, 2 n, 3 n, etc. Dentre todas as ossíves funções f(n), o objetvo é encontrar a que tenha o menor crescmento ossível Notações smlares: Bg-Omega T(n) = O(f(n)) T(n) c.f(n) ara n n 0 Bg-Teta f(n) é um lmte sueror ara T(n) T(n) = Ω(f(n)) T(n) c.f(n) ara n n 0 f(n) é um lmte nferor ara T(n) T(n) = Θ(f(n)) T(n) c 1.f(n) ara n n 0 T(n) c 2.f(n) ara n n 0 f(n) é um lmte nferor e sueror de T(n) Razão de crescmento desse temo 1. Provar que n 3 O(n 2 ) Por absurdo, suonhamos que n 3 = O(n 2 ) Pela defnção, exstem constantes ostvas c e n 0 tas que, ara n n o, n 3 c.n 2 Logo, c n. Portanto, à medda que n cresce ndefndamente, c também crescerá Isso contrara a defnção de c ser constante 5

2. Provar que 3 n O(2 n ) Por absurdo, suonhamos que 3 n = O(2 n ) Pela defnção, exstem constantes ostvas c e n 0 tas que, ara n n o, 3 n c.2 n Logo, c (3/2) n. Portanto, à medda que n cresce ndefndamente, (3/2) n também crescerá Assm, ara qualquer valor de n, não exste uma constante que exceda (3/2) n 3. Analsar o or caso de algortmo ao lado, que calcula o valor de n n nt func(nt n) { nt, r; r = 1; t 1 1 vez = 1; whle ( <= n) { r = r*n; ++; t 2 t 3 n+1 vezes n vezes nt func(nt n) { nt, r; r = 1; for (=1; <=n; ++) r = r*n; T(n) = t 1 + t 2.(n+1) + t 3.n = t 1 + t 2 + t 2.n + t 3.n = c 1 + c 2.n T(n) = O(n) 4. Analsar o or caso do algortmo abaxo: nt func (nt n) { nt a, b, c, r; b = n; c = n; r = 1; whle (b >= 1) { a = b % 2; f (a == 1) r = r * c; c = c * c * c; b = b / 2; t 3 x =? x vezes x = log 2 n + 1 t 1 t 2 1 vez x + 1 vezes n b terações 2 2,1,0 2 3 3,1,0 2 4 4,2,1,0 3 16 16,8,4,2,1,0 5 17 17,8,4,2,1,0 5 31 31,15,7,3,1,0 5 2 x-1 n < 2 x... x 4. Analsar o or caso do algortmo abaxo: nt func (nt n) { nt a, b, c, r; b = n; c = n; r = 1; whle (b >= 1) { a = b%2; f (a == 1) r = r*c; c = c*c*c; b = b/2; t 3 x vezes x = log 2 n + 1 t 1 t 2 1 vez x + 1 vezes T(n) = t 1 + t 2.(x+1) + t 3.x = t 1 + t 2 + (t 2 + t 3 ).x = c 1 + c 2.x = c 1 + c 2.( log 2 n + 1) = c 1 + c 2 + c 2 log 2 n = c 3 + c 2 log 2 n c 3 + c 2.log 2 n T(n) = O(log n) 5. Analsar o or caso do cálculo recursvo de fatoras nt fat(nt n) { d f (n <= 1) fat = 1; else fat = fat(n-1) * n; c T(n) = d, se n 1 T(n) = c + T(n-1), se n > 1 Para n > 1: T(n) = c + T(n-1) = c + c + T(n-2) = 2c + T(n-2) = 3c + T(n-3)... = (n-1)c + T(1) = (n-1)c + d T(n) = O(n) 6