10
Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso de 2014/01) Conteúdo Introdução Análise de Algoritmos Custo de um Algoritmo Função de Complexidade Tamanho de entrada de dados Melhor Caso, Pior Caso e Caso Médio Conclusão Exercícios Conteúdo Introdução Análise de Algoritmos Custo de um Algoritmo Função de Complexidade Tamanho de entrada de dados Melhor Caso, Pior Caso e Caso Médio Conclusão Exercícios A importância de algoritmos para a computação Dificuldade intríseca de problemas Dificuldade intríseca de problemas

Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Análise de Algoritmos (Parte 1)

BCC202- Estrutura de DadosDECOM-UFOP

ASN

Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso de 2014/01)

Conteúdo

● Introdução● Análise de Algoritmos

– Custo de um Algoritmo– Função de Complexidade– Tamanho de entrada de dados– Melhor Caso, Pior Caso e Caso Médio

● Conclusão● Exercícios

Conteúdo

● Introdução● Análise de Algoritmos

– Custo de um Algoritmo– Função de Complexidade– Tamanho de entrada de dados– Melhor Caso, Pior Caso e Caso Médio

● Conclusão● Exercícios

A importância de algoritmos para a computação

Dificuldade intríseca de problemas

Dificuldade intríseca de problemas

Page 2: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Algoritmos e Tecnologia

Algoritmos e Tecnologia

Algoritmos e Tecnologia

Algoritmos e Tecnologia: Conclusões

Corretude de Algoritmo

Complexidade de Algoritmos

Page 3: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Modelo Computacional

Máquinas RAM

Máquinas RAM

Tamanho de Entrada de Dados

● A medida do custo de execução de um algoritmo depende principalmente do tamanho de entrada dos dados.

● É comum considerar o tempo de execução de programacomo uma função do tamanho da entrada.

● Para alguns algoritmos, o custo de execução é uma funçãoda entrada dos dados, não apenas do tamanho da entrada. – Ou seja, o custo pode ser diferente para entradas

distintas, mas de mesmo de tamanho.

Tamanho da Entrada

Função Complexidade

● Para medir o custo de execução de um algoritmodefiniremos duas funções de complexidade ou decusto:

● Função de complexidade de tempo: f(n) mede otempo necessário para executar um algoritmo emum problema de tamanho n.

● Função de complexidade de espaço: f'(n) mede amemória necessária para executar um algoritmo emum problema de tamanho n.

Page 4: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Função Complexidade

● Para medir o custo de execução de um algoritmodefiniremos duas funções de complexidade ou decusto:

● Função de complexidade de tempo: f(n) mede otempo necessário para executar um algoritmo emum problema de tamanho n.

● Função de complexidade de espaçõ: f'(n) mede amemória necessária para executar um algoritmo emum problema de tamanho n. Utilizaremos f para denotar uma função de complexidade de tempo daqui

para frente.

Medida de Complexidade e Eficiência de Algoritmos

Computador Idealizado

● É mais usual ignorar o custo de algumas operaçõese considerar apenas as mais significativas.

● Ex.: em algoritmos de ordenação, quais operaçõesconsiderar?

Computador Idealizado

● É mais usual ignorar o custo de algumas operaçõese considerar apenas as mais significativas.

● Ex.: em algoritmos de ordenação, consideramos onúmero de comparações entre os elementos doconjunto a ser ordenado e ignoramos as demaisoperações

Complexidade de Tempo

● A complexidade de tempo na realidade nãorepresenta tempo diretamente: – Representa o número de vezes que determinadas

operações, ditas relevantes, são executadas.

Começando a Trabalhar

Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso de 2014/01)

Page 5: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Exemplo: Maior Elemento de um Vetor

Exemplo: Maior Elemento de um Vetor

Maior Elemento de um Vetor

Tamanho de Entrada de Dados

● No caso da função Max do programa do exemplo, o custoé uniforme sobre todos os problemas de tamanho n.

● O que aconteceria se fossse um algoritmo de ordenação?

Tamanho de Entrada de Dados

● No caso da função Max do programa do exemplo, o custoé uniforme sobre todos os problemas de tamanho n.

● Já um algoritmo de ordenação isso não ocorre: se os dadosde entrada já estiverem quase ordenados, então pode serque o algoritmo trabalhe menos.

Definição

● Melhor caso: menor tempo de execução sobre todas asentradas de tamanho n.

● Pior caso: maior tempo de execução sobre todas asentradas de tamanho n.

● Caso médio (ou caso esperado): média dos tempos deexecução de todas as entradas de tamanho n.

Melhor caso <= Caso médio <= Pior caso

Page 6: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Análise do Caso Médio

● A análise do caso médio é geralmente muito mais difícil deobter do que as análises do melhor e do pior casos.

● Supõe-se uma distribuição de probabilidades sobre oconjunto de entradas de tamanho n.

● É comum supor uma distribuição de probabilidades emque todas as entradas possíveis são igualmente prováveis.– Na prática isso nem sempre é verdade.

Exemplo: Registros de um Arquivo

● Considere o problema de acessar os registros deum arquivo.

● Cada registro contém uma chave única que éutilizada para recuperá-lo.

● O problema: dada uma chave qualquer, localize oregistro que contenha esta chave.

● O algoritmo de pesquisa mais simples é o que faza pesquisa sequencial.

Exemplo: Registros de um arquivo (Análise)

Exemplo: Registros de um arquivo (Análise)

Exemplo: Registros de um arquivo (Análise)

Exemplo: Registros de um arquivo (Análise)

Page 7: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Exemplo: Registros de um arquivo (Análise do CasoMédio)

Exemplo: Registros de um arquivo (Análise do CasoMédio)

Exemplo: Registros de um arquivo (Análise)

Exemplo: Maior e Menor Elemento de um Vetor

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin1)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin1)

Page 8: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin1)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin2)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin2)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin2)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin3)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin3)

Page 9: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin3)

Exemplo: Maior e Menor Elemento de um Vetor(MaxMin3)

Exemplo: Maior e Menor Elemento de um Vetor(comparação)

Conclusão

● Primeiro contato com a Análise de Complexidadede Algoritmos.

● Possibilita avaliar o custo dos algoritmos, servindode referência para a escolha daquele que será maisadequado para uso em determinadas situações.

● Foco principal para a definição da função decomplexidade e análise de melhor caso, pior caso ecaso médio.

● Próxima aula: Análise de Algoritmos (Parte 2) –Comportamento Assintótico e DominaçãoAssintótico.

● Dúvidas?

Vantagens do Método de Análise Proposto

Desvantagens do Método de Análise Proposto

Page 10: Análise de Algoritmos (Parte 1) - DECOM-UFOP · 2017. 5. 17. · Análise de Algoritmos (Parte 1) BCC202- Estrutura de Dados DECOM-UFOP ASN Material elaborado com base nos slides

Exercício