Sei sulla pagina 1di 43

MC3305

Algoritmos e Estruturas de Dados II

Aula 03 Notao assinttica,


Pesquisa binria e recursividade

Prof. Jess P. Mena-Chalco


jesus.mena@ufabc.edu.br
2Q-2014

Notao assinttica de funes

Introduo baseada nas aulas do Prof. Antonio A. F. Loureiro (UFMG)


2

Comportamento assinttico de funes

A anlise de algoritmos realizada para


valores grandes de n.
Estudaremos o comportamento assinttico das funes de
custo.
O comportamento assinttico de f(n) representa o limite do
comportamento de custo, quando n cresce.

Dominao assinttica
Definio:
Uma funo f(n) domina assintoticamente uma outra
funo g(n) se existem duas constantes positivas c e
tais
que, para
, temos:

Dominao assinttica
Definio:
Uma funo f(n) domina assintoticamente uma outra
funo g(n) se existem duas constantes positivas c e
tais
que, para
, temos:

Dominao assinttica
Exemplo:
Sejam

Ambas as funes dominam assintoticamente uma da outra,


ja que:
para n>=1
para n>=0
6

Notao assinttica de funes


Existem 3 notaes assintticas de funes:
Notao
Notao
Notao

Notao

g(n) um limite assinttico firme de f(n)


8

Notao

f(n) da ordem no mximo g(n)


O usada para expressar o tempo de execuo de um algoritmo no pior caso, est se
definindo tambm o limite (superior) do tempo de execuo desse algoritmo para todas
as entradas.
9

Notao

Operaes entre conjuntos de funes


10

Notao

Omega: Define um limite inferior para a funo, por um fator constante.


g(n) um limite assintoticamente inferior
11

Teorema

12

Comparao de programas

Podemos avaliar programas comparando as funes de


complexidade, negligenciando as constantes de
proporcionalidade.

Um programa com tempo de execuo


que outro com tempo

melhor do

13

Comparao de programas
Programa 1

Programa 2

Exemplo:
O programa1 leva
O programa2 leva

vezes para ser executado.


vezes para ser executa.

Qual dos dois o melhor?

14

Comparao de programas
Programa 1

Programa 2

Exemplo:
O programa1 leva
O programa2 leva

vezes para ser executado.


vezes para ser executa.

Qual dos dois o melhor?


Depende do tamanho do problema.

15

Comparao de programas
Programa 1

Programa 2

Exemplo:
O programa1 leva
O programa2 leva

vezes para ser executado.


vezes para ser executa.

Qual dos dois o melhor?


Depende do tamanho do problema.
Para n<50, o programa 2 melhor
Para n>50, o programa 1 melhor
16

Comparao de programas

17

Comparao de funes de complexidade

18

Hierarquias de funes

A seguinte herarquia de funes pode ser definida do ponto


de vista assinttico:

onde

so constantes arbitrrias com

19

Tratabilidade do problema

Um problema considerado
Intratvel:
Se ele to difcil que no se conhece um algoritmo
polinomial para resolv-lo

Tratvel (bem resolvido):


Se existe um algoritmo polinomial para resolv-lo.

20

Tratabilidade do problema

Um problema considerado
Intratvel:
Se ele to difcil que no se conhece um algoritmo
polinomial para resolv-lo
Ex. Algoritmo do caixeiro viajante

Tratvel (bem resolvido):


Se existe um algoritmo polinomial para resolv-lo.
Ex. Algoritmo de multiplicao de matrizes.

Algoritmo de Strassen
21

O problema do Caixeiro Viajante


Um caixeiro viajante deseja visitar n cidades de tal forma que
sua viagem inicie e termine em uma mesma cidade, e cada
cidade pode ser visitada uma nica vez.
Supondo que sempre h uma estrada entre 2 cidades, o
problema encontrar a menor ruta para a viagem.

22

O problema do Caixeiro Viajante


Um caixeiro viajante deseja visitar n cidades de tal forma que
sua viagem inicie e termine em uma mesma cidade, e cada
cidade pode ser visitada uma nica vez.
Supondo que sempre h uma estrada entre 2 cidades, o
problema encontrar a menor ruta para a viagem.

23

O problema do Caixeiro Viajante


Um algoritmo simples seria verificar todas as rotas e
escolher a menor delas.
H
rotas possveis
a distncia total percorrida em cada rota envolve n adies
logo o nmero de adiciones

24

O problema do Caixeiro Viajante


Um algoritmo simples seria verificar todas as rotas e
escolher a menor delas.
H
rotas possveis
a distncia total percorrida em cada rota envolve n adies
logo o nmero de adiciones

No exemplo anterior teramos 24 adies.

25

O problema do Caixeiro Viajante


Um algoritmo simples seria verificar todas as rotas e
escolher a menor delas.
H
rotas possveis
a distncia total percorrida em cada rota envolve n adies
logo o nmero de adiciones

No exemplo anterior teramos 24 adies.


Com 50 cidades teramos

26

O problema do Caixeiro Viajante


Um algoritmo simples seria verificar todas as rotas e escolher
a menor delas.
H
rotas possveis
a distncia total percorrida em cada rota envolve n adies
logo o nmero de adiciones

No exemplo anterior teramos 24 adies.


Com 50 cidades teramos
Em um computador que executa
adies por segundo
o tempo para resolver o problema seria >
sculos.
27

O problema do Caixeiro Viajante

28

Pesquisa Binria

29

Algoritmo de Pesquisa Binria


Binary search algorithm
Binary chop
Parte do presuposto de que o vetor est ordenado e realiza
sucessivas divises do espao de busca:
O elemento procurado (chave) comparado com o
elemento do meio do vetor:
Se so iguais, a busca termina com sucesso.
Caso contrrio:
Se o elemento do meio vier antes da chave, ento a busca continua
na metade posterior do vetor,
Caso contrrio, a busca continua na metade anterior do vetor.

30

Algoritmo de Pesquisa Binria

31

Algoritmo de Pesquisa Binria

Onde esta o erro?


32

Algoritmo de Pesquisa Binria

O algoritmo parte do presuposto de termos o vetor ordenado na forma ascendente.


Existe outro erro?
33

Algoritmo de Pesquisa Binria

Melhor caso:

Pior caso:

34

Algoritmo de Pesquisa Binria

Melhor caso: 1

Pior caso: log(n)

35

Algoritmo de Pesquisa Binria (verso 2)

Onde est o erro?


36

Algoritmo de Pesquisa Binria (verso 2)

Erro nos ndices (do slide anterior)


37

Algoritmo de Pesquisa Binria (verso 2)

38

Recursividade
Uma funo recursiva aquela que se chama a si mesma (obrigatoriamente)?

39

Recursividade
Uma funo recursiva no necessariamente aquela que se chama a si mesma

40

Exerccios-Problema (EPs) para esta semana


10696 - Problem A - f91
299 - Train Swapping
10499 - The Land of Justice

Data: 07/Julho (segunda-feira) at s 23h50.


Arquivos:
Para cada exerccio-problema dever submeter:
O cdigo fonte: nome do arquivo
O comprovante de aceitao (Uva)

RA_nroDoProblema.cpp
RA_nroDoProblema.pdf

Exemplo: 10123456_11567.cpp
10123456_11567.pdf
41

Exerccios-Problema
Use o Toolkit para ter mais exemplos de dados de entrada

http://uvatoolkit.com/problemssolve.php
Teste com o problema 10055 Hashmat

Resultados Finais do ICPC


http://icpc.baylor.edu/scoreboard/

42

ICPC

Resultados Finais do ICPC


http://icpc.baylor.edu/scoreboard/

43

Potrebbero piacerti anche