
ED I - Aula 2 - Complexidade de Algoritmos
Presentation
•
Computers
•
University
•
Hard
Cassiano Gunji
Used 4+ times
FREE Resource
31 Slides • 3 Questions
1
ED I - Aula 2 - Complexidade de Algoritmos
Prof. Manuel Fernandez Paradela Ledón
José Cassiano Grassi Gunji, jose.gunji@docente.unip.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
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 Select
Se um algoritmo tiver sua complexidade definida, podemos dizer que:
Ele sempre encontra uma solução
Ele sempre 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
Calculando, temos:
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)
ED I - Aula 2 - Complexidade de Algoritmos
Prof. Manuel Fernandez Paradela Ledón
José Cassiano Grassi Gunji, jose.gunji@docente.unip.br
Show answer
Auto Play
Slide 1 / 34
SLIDE
Similar Resources on Wayground
24 questions
Tipos de sitios web
Presentation
•
University
27 questions
Pengertian Data, Fungsi, Jenis-jenis, Manfaat dan Contohnya
Presentation
•
12th Grade
29 questions
Ciudadanía Digital
Presentation
•
University
28 questions
IDIK 4010 - TTM 1
Presentation
•
University
26 questions
Reproduksi Naskah
Presentation
•
University
26 questions
Normalización
Presentation
•
University
24 questions
Olympics
Presentation
•
University
25 questions
Microbioma: "yo contengo multitudes"
Presentation
•
University
Popular Resources on Wayground
6 questions
Secondary Safety Quiz
Presentation
•
9th - 12th Grade
10 questions
MyPath Diagnostic Overview
Presentation
•
6th - 8th Grade
20 questions
Lab Safety Quiz
Quiz
•
6th Grade
21 questions
Continents and Oceans
Quiz
•
6th Grade
20 questions
Adding and Subtracting Decimals
Quiz
•
5th Grade
20 questions
Parts of Speech
Quiz
•
5th Grade
16 questions
Subject & Predicate
Quiz
•
5th Grade
21 questions
Lab Safety
Quiz
•
10th Grade
Discover more resources for Computers
20 questions
Disney Trivia
Quiz
•
University
20 questions
Brand Trivia
Quiz
•
9th Grade - University
10 questions
Would you rather...
Quiz
•
KG - University
21 questions
Mapa países hispanohablantes
Quiz
•
1st Grade - University
10 questions
Spanish Greetings and Goodbyes!
Presentation
•
6th Grade - University
12 questions
CE 2b Early Documents Review
Quiz
•
7th Grade - University
30 questions
Multiplying and Dividing Integers
Quiz
•
6th Grade - University
13 questions
Back to School
Quiz
•
KG - University