
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
INTERCORP Ergonómia
Presentation
•
University - Professi...
29 questions
Sesión 10: Salvación por gracia
Presentation
•
University
30 questions
Operating System
Presentation
•
University
25 questions
Las nacionalidades
Presentation
•
University
29 questions
Circuitos eléctricos
Presentation
•
KG
25 questions
II parte de Excel
Presentation
•
KG - University
29 questions
Taller Hermanos Mayores
Presentation
•
University
31 questions
Tránsito Hidrológico
Presentation
•
University
Popular Resources on Wayground
20 questions
"What is the question asking??" Grades 3-5
Quiz
•
1st - 5th Grade
20 questions
“What is the question asking??” Grades 6-8
Quiz
•
6th - 8th Grade
10 questions
Fire Safety Quiz
Quiz
•
12th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
34 questions
STAAR Review 6th - 8th grade Reading Part 1
Quiz
•
6th - 8th Grade
20 questions
“What is the question asking??” English I-II
Quiz
•
9th - 12th Grade
20 questions
Main Idea and Details
Quiz
•
5th Grade
47 questions
8th Grade Reading STAAR Ultimate Review!
Quiz
•
8th Grade
Discover more resources for Computers
15 questions
LGBTQ Trivia
Quiz
•
University
36 questions
8th Grade US History STAAR Review
Quiz
•
KG - University
25 questions
5th Grade Science STAAR Review
Quiz
•
KG - University
16 questions
Parallel, Perpendicular, and Intersecting Lines
Quiz
•
KG - Professional Dev...
20 questions
5_Review_TEACHER
Quiz
•
University
10 questions
Applications of Quadratic Functions
Quiz
•
10th Grade - University
10 questions
Add & Subtract Mixed Numbers with Like Denominators
Quiz
•
KG - University
20 questions
Block Buster Movies
Quiz
•
10th Grade - Professi...