
ED I - Aula 2 - Complexidade de Algoritmos
Presentation
•
Computers
•
University
•
Hard
Cassiano Gunji
Used 4+ times
FREE Resource
32 Slides • 3 Questions
1
ED I - Aula 2 - Complexidade de Algoritmos
Prof. Manuel Fernandez Paradela Ledón
José Cassiano Grassi Gunji, jose.gunji@cruzeirodosul.edu.br
2
Impacto das comparações e de outras operações no desempenho do código;
Análise assintótica, notação big-O, conceito de limite e de tamanho do problema.
Problemas e sua complexidade;
Benchmarks;
Contagem elementar de instruções;
Complexidade de algoritmos
Estruturas de Dados I
3
Exercício ou problema?
Complexidade de Algoritmos
Demanda muito mais reflexão, pesquisa e esforço para desembaraçar antes de encontrar a abordagem apropriada.
Problema
É uma questão que você sabe como resolver imediatamente. Você não precisa pesquisar quais técnicas utilizar para resolver o exercício.
Exercício
4
Desempenho e eficiência
Completeza ou completude: o algoritmo oferece certeza de encontrar uma solução para o problema?
Otimização: o algoritmo encontrará uma solução ótima para o problema (memória e espaço)?
Complexidade de tempo: quanto tempo é necessário para se executar o algoritmo?
Complexidade algorítmica: qual é o custo da implementação e manutenção dada sua complexidade?
Complexidade de Algoritmos
5
Lembrando...
Um pouco de matemática
6
Polinômios
Revisão de Matemática
7
Exemplos de polinômios com graus diferentes
Revisão de Matemática
8
Exemplos de polinômios com graus diferentes
Revisão de Matemática
9
Funções Exponenciais
Revisão de Matemática
10
Funções Exponenciais
Revisão de Matemática
11
Comparação entre funções
Revisão de Matemática
Gráficos para comparar o comportamento de algumas funções utilizando a ferramenta gratuita www.mathe-fa.de/pt
12
Multiple Choice
Se um algoritmo tiver sua complexidade definida, podemos dizer que:
Ele sempre encontra uma solução
Ele pode ser executado em um tempo aceitável
Ele pode levar um tempo inaceitável para completar
A complexidade é a solução do algoritmo
13
Complexidade de Algoritmos
14
Tratabilidade de algoritmos
Complexidade de Algoritmos
Um problema de complexidade exponencial (ou pior). Nenhum computador pode resolvê-lo em um tempo satisfatório, a não ser que o número n seja pequeno.
Intratáveis
São problemas possivelmente resolvíveis com recursos limitados e em situações simples, porém impossíveis com recursos limitados e em situações reais mais complexas.
Tratáveis
15
Problemas Tratáveis
Complexidade de Algoritmos
É uma classe de problemas resolvíveis em tempo polinomial em uma máquina não-determinística (máquina sem limites). NP significa nondeterministic polynomial time.
Tipo NP
É uma classe de problemas resolvíveis em tempo polinomial em uma máquina determinística (máquina normal, limitada, um processo de cada vez)
Tipo P
16
Computadores determinísticos e não-determinísticos
Complexidade de Algoritmos
Se a solução existe, o computador sempre a encontrará. Não existem limitações de hardware. É um computador paralelo que executa infinito número de processos simultaneamente.
Não-determinístico
Só poderá estar em um estado por vez (PC comum, que executa um processo de cada vez).
Determinístico
17
Lenda do jogo de xadrez
Complexidade de Algoritmos
18
Um "boato" como função exponencial
Complexidade de Algoritmos
Suponhamos que uma pessoa tem um grande segredo, mas no segundo dia não resiste mais e conta para outras três pessoas diferentes. Cada uma das três pessoas contará o segredo para outras três pessoas no dia seguinte.
Quantas pessoas saberão o "segredo" depois de uma semana?
19
Um "boato" como função exponencial
Complexidade de Algoritmos
20
Um "boato" como função exponencial
Complexidade de Algoritmos
E depois de 30 dias?
21
Tempo em função do número de operações realizadas
Complexidade de Algoritmos
Considerando um computador que realiza um milhão de operações por segundo.
22
Alguns algoritmos conhecidos e seu comportamento
23
Determinar qual o trabalhador com maior salário
Complexidade de Algoritmos
24
Ordenar alfabeticamente os trabalhadores, usando o método da bolha
Complexidade de Algoritmos
25
A Sequência de Fibonacci
Complexidade de Algoritmos
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
26
Complexidade de algoritmos
Há várias maneiras de se avaliar a complexidade de um algoritmo. A maioria dos autores se concentram no consumo de memória e no tempo de execução.
Podemos medir a complexidade e a eficiência de um algoritmo efetuando:
Contagem de instruções;
Benchmark;
Estimativa matemática.
Complexidade de Algoritmos
27
Benchmark
Complexidade de Algoritmos
28
Contagem de instruções
Conta-se a quantidade de instruções para se resolver o problema. Entretanto, instruções diferentes levam tempos diferentes para serem executadas.
Por simplicidade, considera-se no cálculo de T(n) que todas as instruções rodam no mesmo tempo.
Complexidade de Algoritmos
29
Contagem de instruções - T(n) polinomial
int q = 0;
for (int i = 1; i <= n; i++){
q = q + 1;
}
Complexidade de Algoritmos
30
Contagem de instruções - T(n) logarítmico
int k = 0, i = n;
while (i > 1){
k = k + 1;
i = i / 2; //controle do laço
}
Complexidade de Algoritmos
31
Notação big-O
se f(x) é a soma de diferentes termos e existe um termo com a maior taxa de crescimento, este será considerado e os restantes omitidos;
se f(x) é o produto de diferentes fatores, todas as constantes podem ser omitidas.
Complexidade de Algoritmos
32
Notação big-O
Complexidade de Algoritmos
33
Multiple Choice
Seja f(n)=2n4+2n5+3n2+12 a complexidade de um algoritmo, qual sua complexidade na notação big-O?
O(2n4)
O(n4)
O(2n5)
O(n5)
34
Multiple Choice
Seja f(n)=4n5+3n3+2n+5 a complexidade de um algoritmo, qual sua complexidade na notação big-O?
O(4n5)
O(n5)
O(2n)
O(n3)
35
Homework
Resolva os 5 exercícios propostos no final da apresentação do prof. Ledón e poste suas respostas na tarefa do BlackBoard.
Complexidade de Algoritmos
ED I - Aula 2 - Complexidade de Algoritmos
Prof. Manuel Fernandez Paradela Ledón
José Cassiano Grassi Gunji, jose.gunji@cruzeirodosul.edu.br
Show answer
Auto Play
Slide 1 / 35
SLIDE
Similar Resources on Wayground
28 questions
2. Implementación JRMI
Presentation
•
University
28 questions
OFFICE365 MODULO 2 FLUJO - PLANNER
Presentation
•
University
29 questions
Java RMI
Presentation
•
University
27 questions
HTML Tutorial 2
Presentation
•
University
27 questions
etica
Presentation
•
University
30 questions
Verb and Tense
Presentation
•
University
28 questions
Toma de decisiones
Presentation
•
University
26 questions
English X
Presentation
•
University
Popular Resources on Wayground
20 questions
Math Review
Quiz
•
3rd Grade
15 questions
Fast food
Quiz
•
7th Grade
20 questions
Context Clues
Quiz
•
6th Grade
20 questions
Inferences
Quiz
•
4th Grade
19 questions
Classifying Quadrilaterals
Quiz
•
3rd Grade
20 questions
Figurative Language Review
Quiz
•
6th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
10 questions
Identify Fractions, Mixed Numbers & Improper Fractions
Quiz
•
3rd - 4th Grade
Discover more resources for Computers
20 questions
Guess The App
Quiz
•
KG - Professional Dev...
11 questions
NFL Football logos
Quiz
•
KG - Professional Dev...
19 questions
Minecraft
Quiz
•
6th Grade - Professio...
40 questions
8th Grade Math Review
Quiz
•
8th Grade - University
20 questions
Block Buster Movies
Quiz
•
10th Grade - Professi...
10 questions
Would you rather...
Quiz
•
KG - University
40 questions
Flags of the World
Quiz
•
KG - Professional Dev...
14 questions
Superhero
Quiz
•
1st Grade - University