• Nenhum resultado encontrado

An´alise de algoritmos Introduc¸˜ao Prof. Fl´avio Rog´erio Uber(UEM/DIN) Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN)

N/A
N/A
Protected

Academic year: 2022

Share "An´alise de algoritmos Introduc¸˜ao Prof. Fl´avio Rog´erio Uber(UEM/DIN) Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN)"

Copied!
23
0
0

Texto

(1)

An´ alise de algoritmos

Introduc¸˜ao

Prof. Fl´avio Rog´erio Uber(UEM/DIN)

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN)

(2)

Conte´ udo

Algoritmos e problemas Como avaliar um algoritmo?

Simplicidade Corretude Eficiˆencia

Projeto e an´alise de algoritmos O que ´e

Ferramentas Utilidade Exerc´ıcios Referˆencias

(3)

Algoritmos e problemas

Problema

´E uma tarefa a ser executada.

Especifica em termos gerais o relacionamento entre a entrada e sa´ıda desejada.

Algoritmo

´E qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como sa´ıda.

Ferramenta para resolver um problema computacional.

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 3 / 14

(4)

Exemplo - Problema da ordenac¸˜ ao

Entrada

Uma sequˆencia den n´umerosha1,a2, . . . ,ani

Sa´ıda

Uma permutac¸˜ao (reordenac¸˜ao) ha01,a02, . . . ,an0i da sequˆencia de entrada tal quea01a02≤ · · · ≤an0.

I Aplicac¸˜oes pr´aticas de Algoritmos s˜ao onipresentes: Internet, Com´ercio Eletrˆonico, Ind´ustria...

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 4 / 14

(5)

Como avaliar um algoritmo?

I Simplicidade

I Corretude

I Eficiˆencia

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 5 / 14

(6)

Simplicidade

Um algoritmo ´e simplesse puder ser facilmente entendido, implementado e mantido.

Como medir a simplicidade?

N˜ao se conhece t´ecnicas formais para isto!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 6 / 14

(7)

Simplicidade

Um algoritmo ´e simplesse puder ser facilmente entendido, implementado e mantido.

Como medir a simplicidade?

N˜ao se conhece t´ecnicas formais para isto!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 6 / 14

(8)

Simplicidade

Um algoritmo ´e simplesse puder ser facilmente entendido, implementado e mantido.

Como medir a simplicidade?

N˜ao se conhece t´ecnicas formais para isto!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 6 / 14

(9)

Corretude

Um algoritmo ´e dito corretose para toda entrada espec´ıfica a sa´ıda correta ´e produzida. Dizemos que um algoritmo correto resolveo problema dado.

Como saber se um algoritmo est´a correto?

I Testando o algoritmo?

I Testes servem apenas para provar que um algoritmo tem erros, nunca para provar que est´a correto(Dijkstra).

I Com t´ecnicas matem´aticas!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 7 / 14

(10)

Corretude

Um algoritmo ´e dito corretose para toda entrada espec´ıfica a sa´ıda correta ´e produzida. Dizemos que um algoritmo correto resolveo problema dado.

Como saber se um algoritmo est´a correto?

I Testando o algoritmo?

I Testes servem apenas para provar que um algoritmo tem erros, nunca para provar que est´a correto(Dijkstra).

I Com t´ecnicas matem´aticas!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 7 / 14

(11)

Corretude

Um algoritmo ´e dito corretose para toda entrada espec´ıfica a sa´ıda correta ´e produzida. Dizemos que um algoritmo correto resolveo problema dado.

Como saber se um algoritmo est´a correto?

I Testando o algoritmo?

I Testes servem apenas para provar que um algoritmo tem erros, nunca para provar que est´a correto(Dijkstra).

I Com t´ecnicas matem´aticas!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 7 / 14

(12)

Corretude

Um algoritmo ´e dito corretose para toda entrada espec´ıfica a sa´ıda correta ´e produzida. Dizemos que um algoritmo correto resolveo problema dado.

Como saber se um algoritmo est´a correto?

I Testando o algoritmo?

I Testes servem apenas para provar que um algoritmo tem erros, nunca para provar que est´a correto(Dijkstra).

I Com t´ecnicas matem´aticas!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 7 / 14

(13)

Corretude

Um algoritmo ´e dito corretose para toda entrada espec´ıfica a sa´ıda correta ´e produzida. Dizemos que um algoritmo correto resolveo problema dado.

Como saber se um algoritmo est´a correto?

I Testando o algoritmo?

I Testes servem apenas para provar que um algoritmo tem erros, nunca para provar que est´a correto(Dijkstra).

I Com t´ecnicas matem´aticas!

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 7 / 14

(14)

Eficiˆencia

Medida quantitativa inversa da quantidade de recursos (tempo de processamento, mem´oria, etc) requeridos para a execuc¸˜ao do algoritmo.

Quanto maior a eficiˆencia menos recursos s˜ao gastos.

Como medir a eficiˆencia?

I M´etodo experimental

I Implementar diversos algoritmos

I Executar um grande n´umero de vezes

I Analisar os resultados

I M´etodo anal´ıtico

I A ideia ´e encontrar func¸˜oes matem´aticas que descrevam o crescimento do tempo de execuc¸˜ao dos algoritmos em relac¸˜ao ao tamanho da entrada

I Comparar as func¸˜oes

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 8 / 14

(15)

Eficiˆencia

Medida quantitativa inversa da quantidade de recursos (tempo de processamento, mem´oria, etc) requeridos para a execuc¸˜ao do algoritmo.

Quanto maior a eficiˆencia menos recursos s˜ao gastos.

Como medir a eficiˆencia?

I M´etodo experimental

I Implementar diversos algoritmos

I Executar um grande n´umero de vezes

I Analisar os resultados

I M´etodo anal´ıtico

I A ideia ´e encontrar func¸˜oes matem´aticas que descrevam o crescimento do tempo de execuc¸˜ao dos algoritmos em relac¸˜ao ao tamanho da entrada

I Comparar as func¸˜oes

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 8 / 14

(16)

Eficiˆencia

Medida quantitativa inversa da quantidade de recursos (tempo de processamento, mem´oria, etc) requeridos para a execuc¸˜ao do algoritmo.

Quanto maior a eficiˆencia menos recursos s˜ao gastos.

Como medir a eficiˆencia?

I M´etodo experimental

I Implementar diversos algoritmos

I Executar um grande n´umero de vezes

I Analisar os resultados

I M´etodo anal´ıtico

I A ideia ´e encontrar func¸˜oes matem´aticas que descrevam o crescimento do tempo de execuc¸˜ao dos algoritmos em relac¸˜ao ao tamanho da entrada

I Comparar as func¸˜oes

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 8 / 14

(17)

Eficiˆencia

Medida quantitativa inversa da quantidade de recursos (tempo de processamento, mem´oria, etc) requeridos para a execuc¸˜ao do algoritmo.

Quanto maior a eficiˆencia menos recursos s˜ao gastos.

Como medir a eficiˆencia?

I M´etodo experimental

I Implementar diversos algoritmos

I Executar um grande n´umero de vezes

I Analisar os resultados

I M´etodo anal´ıtico

I A ideia ´e encontrar func¸˜oes matem´aticas que descrevam o crescimento do tempo de execuc¸˜ao dos algoritmos em relac¸˜ao ao tamanho da entrada

I Comparar as func¸˜oes

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 8 / 14

(18)

Exemplo

I 1 milh˜ao de n´umeros

I Ordenac¸˜ao por inserc¸˜ao

I c1n2

I Computador que executa 1 bilh˜ao de instruc¸˜oes

I Executa em 2n2 - portantoc1=2

I Ordenac¸˜ao por intercalac¸˜ao

I c2nlgn

I Computador que executa 10 milh˜oes de instruc¸˜oes

I Executa em 50nlgn - portantoc2=50

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 9 / 14

(19)

O que ´ e projeto e an´ alise de algoritmos?

I Analisar um algoritmo significa prever os recursos de que o algoritmo necessitar´a (Cormen, et al. 2002)

I Engenharia

I Tamb´em significa estimar o grau de dificuldade de problemas

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 10 / 14

(20)

Ferramentas

I Ferramentas matem´aticas

I Induc¸˜ao matem´atica

I eries e produt´orios

I Potˆencias e logaritmos

I An´alise combinat´oria

I Teoria das probabilidades

I Criatividade

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 11 / 14

(21)

Utilidade

I Para saber se implementac¸˜oes s˜ao vi´aveis do ponto de vista pr´atico

I Para saber qual ´e o melhor algoritmo para a resoluc¸˜ao de um problema

I Para projetar algoritmos eficientes

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 12 / 14

(22)

Exerc´ıcios

I Leitura do cap´ıtulo 1

I Leitura https:

//en.wikipedia.org/wiki/Analysis_of_algorithms

I Exerc´ıcios 1.2-2 e 1.2-3

I Problema 1-1

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 13 / 14

(23)

Referˆ encias

I Thomas H. Cormen et al. Introduc¸˜ao a Algoritmos. 2a edic¸˜ao em portuguˆes. Cap´ıtulo 1.

Autor: Prof. Marco Aur´elio Lopes Barbosa (UEM/DIN) 14 / 14

Referências

Documentos relacionados

FORMALIZAÇÃO DO ADITAMENTO Nº 08/12, AO CONTRATO Nº 055/11, celebrado com a em- presa STOCKTOTAL TELECOMUNICAÇÕES LTDA, CNPJ n.º 00.915.129/0001-20, referente à locação de

A partir das reflexões de Oliveira Júnior (2005; 2014) acerca dos lugares geográficos e os locais narrativos 2 , que considero uma discussão pertinente para diferenciar o

– Uma aplicação WEB rodando no servidor WEB deve ser capaz de gerar conteúdo, seja em HTML ou outro formato suportado pelos navegadores..

Os pacientes que apresentam celulite periorbitária complicada, como um abscesso (seja suspeito com base na apresentação clínica ou confirmado por exa- mes de imagem), sinais

Os participantes foram avaliados antes do protocolo de treinamento e após por meio do questionário de qualidade de vida (QQV SF-36), teste de caminhada de 6 minutos (TC6M) e pelo

Southern Nuclear Operating Company c/o Corporation Service Company, Registered Agent 2711 Centerville Rd., Ste 400 Wilmington, DE 19808 MEAG Power SPVJ, LLC MEAG Power SPVM, LLC

No entanto, no presente estudo, não foi possível encontrar uma relação convincente entre a profundidade da camada de mistura e a intensidade do vento na primavera, pois, apesar da

Como foi previamente adiantado, o tema da “Assembleia de Turma: a sua importância na formação pessoal e social” foi selecionado no decorrer da PS em 1º Ciclo, como tema