Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

A. Conceitos matemáticos definição. Para n > 2 define ¯ Θ = i∈[2,n] Θi tal que Θ + ¯ Θ = 1. Com isso temos f i∈[n] Θixi = f Θ1x1 + onde y = j∈[2,n] (Θj/ ¯ Θ)xj, logo f i∈[n] A.2. Somatório i∈[2,n] Θixi ≤ Θ1f(x1) + ¯ Θf(y) = Θ1f(x1) + ¯ Θf ≤ Θ1f(x1) + ¯ Θ Θixi = f(Θ1x1 + ¯ Θy) j∈[2,n] j∈[2,n] (Θj/ ¯ Θ)xj (Θj/ ¯ Θ)f(xj) = i∈[n] Θixi Revisão: Notação Somatório Para k uma constante arbitrária temos n n kai = k ai Distributividade (A.25) 298 i=1 i=1 n k = nk (A.26) i=1 n i=1 j=1 m n aibj = n (ai + bi) = i=1 p ai + i=1 n ap−i = i=0 n i=p+1 i=1 ai n ai + i=1 ai = p i=p−n ai ⎛ m ⎝ n i=1 j=1 bj ⎞ ⎠ Distributividade generalizada (A.27) n bi Associatividade (A.28) i=1 ai (A.29) (A.30)

A.2. Somatório A última regra é um caso particular de troca de índice (ou comutação) para somas. Para um conjunto finito C e uma permutação dos números inteiros π temos ai = aπ(i). i∈C π(i)∈C No exemplo da regra acima, temos C = [0, n] e π(i) = p − i e logo ap−i = ap−(i−p) = ai. 0≤i≤n 0≤p−i≤n p−n≤i≤p Parte da análise de algoritmos se faz usando somatórios, pois laços while e for em geral podem ser representados por somatórios. Como exemplo, considere o seguinte problema. Dadas duas matrizes matA e matB, faça um algoritmo que copie a matriz triangular inferior de matB para matA. Algoritmo A.1 (CopiaMTI) Entrada Matrizes quadráticos A e B e dimensão n. Saída Matriz A com a matriz triangular inferior copiada de B. 1 for i := 1 to n do 2 for j := 1 to i do 3 Aij = Bij 4 end for 5 end for Uma análise simples deste algoritmo seria: Séries n i = i=1 n i=0 n(n + 1) 2 n x i = xn+1 − 1 x − 1 i=1 j=1 i 1 = n i = n(n + 1)/2 = O(n 2 ) i=1 série aritmética (A.31) série geométrica, para x = 1 (A.32) 299

A. Conceitos matemáticos<br />

<strong>de</strong>finição. Para n > 2 <strong>de</strong>fine ¯ Θ = <br />

i∈[2,n] Θi tal que Θ + ¯ Θ = 1. Com isso<br />

temos<br />

f <br />

i∈[n]<br />

<br />

Θixi = f Θ1x1 + <br />

on<strong>de</strong> y = <br />

j∈[2,n] (Θj/ ¯ Θ)xj, logo<br />

f <br />

i∈[n]<br />

A.2. Somatório<br />

i∈[2,n]<br />

<br />

Θixi ≤ Θ1f(x1) + ¯ Θf(y)<br />

= Θ1f(x1) + ¯ Θf <br />

≤ Θ1f(x1) + ¯ Θ <br />

<br />

Θixi = f(Θ1x1 + ¯ Θy)<br />

j∈[2,n]<br />

j∈[2,n]<br />

(Θj/ ¯ <br />

Θ)xj<br />

(Θj/ ¯ Θ)f(xj) = <br />

i∈[n]<br />

Θixi<br />

Revisão: Notação Somatório<br />

Para k uma constante arbitrária temos<br />

n<br />

n<br />

kai = k ai Distributivida<strong>de</strong> (A.25)<br />

298<br />

i=1<br />

i=1<br />

n<br />

k = nk (A.26)<br />

i=1<br />

n<br />

i=1 j=1<br />

m<br />

<br />

n<br />

aibj =<br />

n<br />

(ai + bi) =<br />

i=1<br />

p<br />

ai +<br />

i=1<br />

n<br />

ap−i =<br />

i=0<br />

n<br />

i=p+1<br />

i=1<br />

ai<br />

n<br />

ai +<br />

i=1<br />

ai =<br />

p<br />

i=p−n<br />

ai<br />

⎛<br />

m<br />

⎝<br />

n<br />

i=1<br />

j=1<br />

bj<br />

⎞<br />

⎠ Distributivida<strong>de</strong> generalizada (A.27)<br />

n<br />

bi Associativida<strong>de</strong> (A.28)<br />

i=1<br />

ai<br />

<br />

(A.29)<br />

(A.30)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!