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 (Os dados correspondem ao consenso científico no momento; obviamente novos descobrimentos podem os mudar Wilkinson Microwave Anisotropy Probe [71], Lloyd [50]) Métodos para resolver um sistema de equações lineares Como resolver um sistema quadrático de equações lineares a11x1 + a12x2 + · · · + a1nxn = b1 a21x1 + a22x2 + · · · + a2nxn = b2 · · · an1x1 + an2x2 + · · · + annxn = bn ou Ax = b? Podemos calcular a inversa da matriz A para chegar em x = bA −1 . O método de Cramer nos fornece as equações xi = det(Ai) det(A) seja Ai a matriz resultante da substituição de b pela i-gésima coluna de A. (A prova dessa fato é bastante simples. Seja Ui a matriz identidade com a i-gésima coluna substituído por x: é simples verificar que AUi = Ai. Com det(Ui) = xi e det(A) det(Ui) = det(Ai) temos o resultado.) Portanto, se o trabalho de calcular o determinante de uma matriz de tamanho n × n é Tn, essa abordagem custa (n + 1)Tn. Um método direto usa a fórmula de Leibniz det(A) = σ∈Sn sgn(σ) 1≤i≤n a i,σ(i) Isso precisa n! adições (A) e n!n multiplicações (M), com custo total (n + 1)(n!A + n!nM) ≥ n!(A + M) ≈ √ 2πn(n/e) n (A + M), um número formidável! Mas talvez a fórmula de Leibniz não é o melhor jeito de calcular o determinante! Vamos tentar a fórmula de expansão de Laplace det(A) = (−1) i+j aij det(Aij) 1≤i≤n (sendo Aij a matriz A sem linha a i e sem a coluna j). O trabalho Tn nesse caso é dado pelo recorrência 12 Tn = n(A + M + Tn−1); T1 = 1 .
cuja solução é Tn = n! 1 + (A + M) 1≤i
- 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 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 28 and 29: 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
1. Introdução e conceitos básicos<br />
(Os dados correspon<strong>de</strong>m ao consenso científico no momento; obviamente novos<br />
<strong>de</strong>scobrimentos po<strong>de</strong>m os mudar Wilkinson Microwave Anisotropy Probe [71],<br />
Lloyd [50])<br />
Métodos para resolver um sistema <strong>de</strong> equações lineares Como resolver um<br />
sistema quadrático <strong>de</strong> equações lineares<br />
a11x1 + a12x2 + · · · + a1nxn = b1<br />
a21x1 + a22x2 + · · · + a2nxn = b2<br />
· · ·<br />
an1x1 + an2x2 + · · · + annxn = bn<br />
ou Ax = b? Po<strong>de</strong>mos calcular a inversa da matriz A para chegar em x = bA −1 .<br />
O método <strong>de</strong> Cramer nos fornece as equações<br />
xi = <strong>de</strong>t(Ai)<br />
<strong>de</strong>t(A)<br />
seja Ai a matriz resultante da substituição <strong>de</strong> b pela i-gésima coluna <strong>de</strong> A.<br />
(A prova <strong>de</strong>ssa fato é bastante simples. Seja Ui a matriz i<strong>de</strong>ntida<strong>de</strong> com a<br />
i-gésima coluna substituído por x: é simples verificar que AUi = Ai. Com<br />
<strong>de</strong>t(Ui) = xi e <strong>de</strong>t(A) <strong>de</strong>t(Ui) = <strong>de</strong>t(Ai) temos o resultado.) Portanto, se o<br />
trabalho <strong>de</strong> calcular o <strong>de</strong>terminante <strong>de</strong> uma matriz <strong>de</strong> tamanho n × n é Tn,<br />
essa abordagem custa (n + 1)Tn. Um método direto usa a fórmula <strong>de</strong> Leibniz<br />
<strong>de</strong>t(A) = <br />
σ∈Sn<br />
<br />
sgn(σ) <br />
1≤i≤n<br />
a i,σ(i)<br />
Isso precisa n! adições (A) e n!n multiplicações (M), com custo total<br />
(n + 1)(n!A + n!nM) ≥ n!(A + M) ≈ √ 2πn(n/e) n (A + M),<br />
um número formidável! Mas talvez a fórmula <strong>de</strong> Leibniz não é o melhor jeito<br />
<strong>de</strong> calcular o <strong>de</strong>terminante! Vamos tentar a fórmula <strong>de</strong> expansão <strong>de</strong> Laplace<br />
<strong>de</strong>t(A) = <br />
(−1) i+j aij <strong>de</strong>t(Aij)<br />
1≤i≤n<br />
(sendo Aij a matriz A sem linha a i e sem a coluna j). O trabalho Tn nesse<br />
caso é dado pelo recorrência<br />
12<br />
Tn = n(A + M + Tn−1); T1 = 1<br />
<br />
.