Projeto e An - PowerPoint PPT Presentation

About This Presentation
Title:

Projeto e An

Description:

Title: PowerPoint Presentation Author: cynthia Last modified by: Departamento de Informatica Created Date: 3/16/2004 2:27:57 PM Document presentation format – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 21
Provided by: cyn138
Category:
Tags: calculo | projeto

less

Transcript and Presenter's Notes

Title: Projeto e An


1
Projeto e Análise de Algoritmos
Celso Carneiro Ribeiro http//www.inf.puc-rio.br/
celso
2
Parte 1
Introdução
3
Alguns exemplos
  • Totalizar uma folha de pagamento
  • Ordenar uma lista de números
  • Multiplicar dois números inteiros
  • Multiplicar duas matrizes
  • Dado um tabuleiro de xadrez, obter o melhor
    movimento para as peças brancas.
  • Obter o conjunto de rotas ótimas para um
    determinado número de veículos, que devem
    distribuir um certo número de produtos em
    determinados pontos de venda de certas cidades.
  • Dado um programa R escrito em uma linguagem L e
    uma entrada X qualquer para R, decidir se R
    termina se for submetido à entrada X.

4
O que é um algoritmo?
  • Do dicionário Aurélio processo de cálculo ou de
    resolução de um grupo de problemas semelhantes,
    em que se estipulam, com generalidade e sem
    restrições, regras formais para a obtenção do
    resultado, ou da solução do problema.
  • Conjunto predeterminado e bem definido de regras
    e processos destinados à solução de um problema,
    com um número finito de etapas.

5
O que é um algoritmo?
  • Sequência finita de instruções elementares e bem
    definidas (não-ambíguas), que levam à solução de
    um problema específico.
  • Operações válidas
  • Definidas (some 6 ou 7 a x)
  • Efetivas ( )
    (aritmética de inteiros versus reais)
  • Término em tempo finito (procedimento
    computacional)

6
Qual algoritmo utilizar para resolver um problema?
  • Quando se resolve um problema, é necessário
    decidir-se pelo algoritmo a ser utilizado.

7
Exemplo 1 Multiplicação de dois números inteiros
com n dígitos

Algoritmo 3 n1.59
Algoritmo 2 n2
8
Exemplo 2 MDC Algoritmo ingênuo
  • Entrada x, y ? Z
  • Saída MDC(x, y) Max z ? Z ? a,b ? Z, x
    az, ybz


Function mdc(x, y integer) integer var t
integer início se xlty então t ? x senão t
? y enquanto (x mod t ltgt0) ou (y mod tltgt0) faça
t ? t-1 mdc ? t fim fim_function
9
Exemplo 2 MDC Algoritmo de Euclides
  • MDC (54180, 13125) ?

4 7 1 4 3
54180 13125 1680 1365 315 105
1680 1365 315 105 0
MDC (54180, 13125) 105
10
Exemplo 2 MDC
  • Algoritmo ingênuo realiza 13020 iterações.

Algoritmo de Euclides realiza 5 iterações!
11
Exemplo 2 MDC Algoritmo de Euclides
  • Eliminação da recursão

function mdc(x, y integer) integer var t
integer início enquanto yltgt0 faça
início t? x mod y x? y y? t
fim mdc_e_i ? x fim fim_function_mdc
12
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Seqüência de Fibonacci

an an-1 an-2 a0 0 a1 1
13
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Algoritmo 1

function fib1(n) se nlt2 então retorne
n senão retorne fib1(n-1) fib1(n-2)
fim_function_fib1
14
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Algoritmo 2

function fib2(n) i ? 0 j ? 1 para k1 até
n faça j ? ij i ? j-i fim_para retorne
j fim_function_fib2
15
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Algoritmo 3

function fib3(n) i ? 1, j ? 0, k ? 0, h ?
1 enquanto ngt0 faça se n é ímpar
então t ? j.h j ? i.h j.k t i ?
i.k t fim_se t ?
h2 h ? 2.k.h t k ? k2 t
n ? n div 2 fim_enquanto retorne
j fim_function_fib3
16
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Cálculo da complexidade
  • fib1(n) fib1(n-1) fib1(n-2)
  • Cada chamada de fib1 O(1)
  • T(n) é o número de chamadas de fib1 para o
    cálculo do n-ésimo termo

17
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Cálculo da complexidade
  • Parte homogênea solução da forma rn
  • Parte não-homogênea métodos dos coeficientes
    indeterminados (termo não homogêneo1)

18
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Cálculo da complexidade

19
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Cálculo da complexidade
  • S(n) número de somas efetuadas para calcular
    n-ésimo termo
  • S(n) S(n-1) S(n-2) 1

n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S(n) 0 0 1 2 4 7 12 20 33 54 88 143 232 376 609 1596
20
Exemplo 3 Cálculo do n-ésimo elemento da
seqüência de Fibonacci
  • Cálculo da complexidade

Algoritmo 1
Algoritmo 2
f100 21 dígitos decimais
Algoritmo 3
Pascal, CDC Cyber 835
n102 n108 109 anos _ 1 ½ ms
25 minutos ½ ms 2 ms
Write a Comment
User Comments (0)
About PowerShow.com