Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
1. Introdução e conceitos básicos Relações de crescimento Definição 1.1 (Relações de crescimento) f ≺ g ⇐⇒ f ∈ o(g) (1.16) f g ⇐⇒ f ∈ O(g) (1.17) f ≻ g ⇐⇒ f ∈ ω(g) (1.18) f g ⇐⇒ f ∈ Ω(g) (1.19) f ≍ g ⇐⇒ f ∈ Θ(g) (1.20) Essas relações são chamadas “notação de Vinogradov” 4 . Caso f g digamos as vezes “f é absorvido pela g”. Essas relações satisfazem as características básicas esperadas. Características das relações de crescimento Proposição 1.3 (Características das relações de crescimento) Sobre o conjunto de funções [N → R + ] 1. f g ⇐⇒ g f, 2. e são ordenações parciais (reflexivas, transitivas e anti-simétricas em relação de ≍), 3. f ≺ g ⇐⇒ g ≻ f, 4. ≺ e ≻ são transitivas, 5. ≍ é uma relação de equivalência. Prova. Exercício. Observe que esses resultados podem ser traduzidos para a notação O. Por exemplo, como ≍ é uma relação de equivalência, sabemos que Θ também satisfaz f ∈ Θ(f) f ∈ Θ(g) ⇒ g ∈ Θ(f) f ∈ Θ(g) ∧ g ∈ Θ(h) ⇒ f ∈ Θ(h) A notação com relações é sugestiva e freqüentemente mais fácil de usar, mas nem todas as identidades que ela sugere são válidas, como a seguinte proposição mostra. 4 Uma notação alternativa é ≪ para e ≫ para . Infelizmente a notação não é padro- 26 nizada.
Identidades falsas das relações de crescimento 1.2. Notas Proposição 1.4 (Identidades falsas das relações de crescimento) É verdadeiro que mas as seguintes afirmações não são verdadeiras: f g ⇒ f ≻ g f g ⇒ f ≺ g f ≻ g ⇒ f g (1.21) f ≺ g ⇒ f g (1.22) f ≺ g ∨ f ≍ g ∨ f ≻ g (Tricotomia) Prova. Exercício. Considerando essas características, a notação tem que ser usada com cuidado. Uma outra abordagem é definir O etc. diferente, tal que outras relações acima são verdadeiras. Mas parece que isso não é possível, sem perder outras [68]. 1.2. Notas Alan Turing provou em 1936 que o “problema de parada” não é decidível. O estudo da complexidade de algoritmos começou com o artigo seminal de Hartmanis e Stearns [35]. O estudo da complexidade de calcular a determinante tem muito mais aspectos interessantes. Um deles é que o método de Gauss pode produzir resultados intermediários cuja representação precisa um número exponencial de bits em função do tamanho da entrada. Portanto, o método de Gauss formalmente não tem complexidade O(n 3 ). Resultados atuais mostram que uma complexidade de operações de bits n 3.2 log A 1+o(1) é possível [40]. Nossa discussão da regra de Cramer usa dois métodos naivos para calcular determinantes. Habgood e Arel [34] mostram que existe um algoritmo que resolve um sistema de equações lineares usando a regra de Cramer em tempo O(n 3 ). 1.3. Exercícios (Soluções a partir da página 307.) Exercício 1.1 Quais funções são contidos nos conjuntos O(−1), o(−1), Ω(−1), ω(−1)? 27
- Page 1: Algoritmos e complexidade Notas de
- Page 4 and 5: Conteúdo 5. Programação dinâmic
- Page 6 and 7: Conteúdo 15.Complexidade de circui
- Page 9: Parte I. Análise de algoritmos 7
- Page 12 and 13: 1. Introdução e conceitos básico
- Page 14 and 15: 1. Introdução e conceitos básico
- Page 16 and 17: 1. Introdução e conceitos básico
- Page 18 and 19: 1. Introdução e conceitos básico
- Page 20 and 21: 1. Introdução e conceitos básico
- Page 22 and 23: 1. Introdução e conceitos básico
- Page 24 and 25: 1. Introdução e conceitos básico
- Page 26 and 27: 1. Introdução e conceitos básico
- Page 30 and 31: 1. Introdução e conceitos básico
- Page 32 and 33: 1. Introdução e conceitos básico
- Page 34 and 35: 2. Análise de complexidade • Par
- Page 36 and 37: 2. Análise de complexidade • Uma
- Page 38 and 39: 2. Análise de complexidade 1. Atri
- Page 40 and 41: 2. Análise de complexidade Exemplo
- Page 42 and 43: 2. Análise de complexidade Compone
- Page 44 and 45: 2. Análise de complexidade • Qua
- Page 46 and 47: 2. Análise de complexidade Algorit
- Page 48 and 49: 2. Análise de complexidade Algorit
- Page 50 and 51: 2. Análise de complexidade Tratabi
- Page 52 and 53: 2. Análise de complexidade A compl
- Page 54 and 55: 2. Análise de complexidade • Fre
- Page 56 and 57: 2. Análise de complexidade Exemplo
- Page 58 and 59: 2. Análise de complexidade 1 i f l
- Page 60 and 61: 2. Análise de complexidade Novamen
- Page 62 and 63: 2. Análise de complexidade Logo te
- Page 64 and 65: 2. Análise de complexidade 7 for c
- Page 66 and 67: 2. Análise de complexidade Com iss
- Page 68 and 69: 2. Análise de complexidade funçã
- Page 70 and 71: 2. Análise de complexidade Algorit
- Page 72 and 73: 2. Análise de complexidade resolve
- Page 75: 3. Introdução Resolver problemas
1. Introdução e conceitos básicos<br />
Relações <strong>de</strong> crescimento<br />
Definição 1.1 (Relações <strong>de</strong> crescimento)<br />
f ≺ g ⇐⇒ f ∈ o(g) (1.16)<br />
f g ⇐⇒ f ∈ O(g) (1.17)<br />
f ≻ g ⇐⇒ f ∈ ω(g) (1.18)<br />
f g ⇐⇒ f ∈ Ω(g) (1.19)<br />
f ≍ g ⇐⇒ f ∈ Θ(g) (1.20)<br />
Essas relações são chamadas “notação <strong>de</strong> Vinogradov” 4 .<br />
Caso f g digamos as vezes “f é absorvido pela g”. Essas relações satisfazem<br />
as características básicas esperadas.<br />
Características das relações <strong>de</strong> crescimento<br />
Proposição 1.3 (Características das relações <strong>de</strong> crescimento)<br />
Sobre o conjunto <strong>de</strong> funções [N → R + ]<br />
1. f g ⇐⇒ g f,<br />
2. e são or<strong>de</strong>nações parciais (reflexivas, transitivas e anti-simétricas<br />
em relação <strong>de</strong> ≍),<br />
3. f ≺ g ⇐⇒ g ≻ f,<br />
4. ≺ e ≻ são transitivas,<br />
5. ≍ é uma relação <strong>de</strong> equivalência.<br />
Prova. Exercício. <br />
Observe que esses resultados po<strong>de</strong>m ser traduzidos para a notação O. Por<br />
exemplo, como ≍ é uma relação <strong>de</strong> equivalência, sabemos que Θ também<br />
satisfaz<br />
f ∈ Θ(f)<br />
f ∈ Θ(g) ⇒ g ∈ Θ(f)<br />
f ∈ Θ(g) ∧ g ∈ Θ(h) ⇒ f ∈ Θ(h)<br />
A notação com relações é sugestiva e freqüentemente mais fácil <strong>de</strong> usar, mas<br />
nem todas as i<strong>de</strong>ntida<strong>de</strong>s que ela sugere são válidas, como a seguinte proposição<br />
mostra.<br />
4 Uma notação alternativa é ≪ para e ≫ para . Infelizmente a notação não é padro-<br />
26<br />
nizada.