Problems e Algoritmos Em muitos domínios, há problems que pedem síd com proprieddes específics qundo são fornecids entrds válids. O primeiro psso é definir o problem usndo estruturs dequds (modelo), seguir utilizr um método que resolv o problem. Um método seri seguir um sequênci de pssos pr chegr um respost desejd, sequenci de pssos é chmd de lgoritmo.
Algoritmos Abu J fr Mohmmed Ibin Mus Al-Khowrizmi (78-85) Definição: Um lgoritmo é um conjunto finito de instruções preciss pr relizr um operção computcionl ou resolver um problem
Algoritmos Abu J fr Mohmmed Ibin Mus Al-Khowrizmi (78-85) Exemplo: Descrever um lgoritmo que poss encontrr o vlor máximo(mior) em um sequênci finit de números inteiros. Solução: Relizmos os seguintes pssos:. Coloque como máximo temporário o primeiro número inteiro d sequênci.. Compre o próximo número inteiro d sequênci com o máximo temporário e, se quele for mior que este, coloque-o como máximo temporário.. Repit o psso nterior se houver mis números inteiros n sequênci. 4. Pre qundo não houver mis números inteiros n sequênci. O máximo temporário neste ponto será o mior inteiro d sequênci.
Proprieddes dos Algoritmos Input: Um lgoritmo tem um vlor de entrd, ou inicil, de um conjunto específico. Output: Pr cd conjunto de vlores de entrd, um lgoritmo produz vlores de síd de um determindo conjunto. Os vlores de síd, ou finis, são s soluções pr o problem. Correctness(Extidão): Um lgoritmo deve produzir vlores de síd corretos pr cd conjunto de vlores iniciis. Finiteness (Finitude): Um lgoritmo deve produzir o vlor finl desejdo depois de um número de pssos finito pr qulquer entrd. Effectiveness(Efetividde): deve ser possível relizr cd psso de um lgoritmo de modo exto e em um quntidde de tempo finit. Generlity: O lgoritmo deve funcionr pr todos os problems d form desejd, não pens pr um determindo conjunto de vlores de entrd.
Encontrndo o Máximo Elemento em um sequênci finit O lgoritmo em pseudocodigo: procedure mx(,,., n : inteiros) mx := for i := to n if mx < i then mx := i return mx{mx é o mior elemento} Este lgoritmo tem tods s proprieddes listds?
Alguns Exemplos de Problems com Algoritmos. Problems de Busc (Serching ): encontrr posição de um elemento em prticulr em um list. Problems de Ordenção (Sorting): colocr os elementos de um list em ordem, por exemplo, crescente.. Problems de Otimizção: encontrr um solução pr o problem ddo que determine o vlor ótimo (máximo ou mínimo) de lgum prâmetro vlido sobre tods s possíveis entrds.
Algoritmos de Busc Algoritmo de busc liner Algoritmo de busc binári Algoritmo de ordenção Bubble sort Insertion sort Algoritmo Guloso (Vorz) usdos pr problems de otimizção Exercício: Implementr um lgoritmo que pr um list dd de n números inteiros, encontre primeir e ultim ocorrênci do mior inteiro d list.
O Problem d Prd Problem que não pode ser resolvido usndo-se qulquer procedimento
Crescimento de funções Tnto n ciênci d computção qunto n mtemátic, muits vezes preocup rpidez com que um função cresce. N ciênci d computção, desej-se entender rpidez com que um lgoritmo pode resolver um problem à medid que o tmnho d entrd ument pr: Comprr eficiênci de dois lgoritmos diferentes que resolvem o mesmo problem. Determinr se é prático usr um lgoritmo específico à medid que entrd ument. Dus ds áres d mtemátic onde s questões sobre o crescimento ds funções são estudds são: Teori dos números Combintóri
Crescimento de funções Big-O: Estimdor de crescimento de funções Estimr o crescimento sem se preocupr com s constntes multiplicdors ou termos de ordens menores. Podendo-se ssumir que operções diferentes usds em um lgoritmo levm o mesmo tempo.
Big-O Nottion Definição: Sejm f e g funções do conjunto de inteiros ou do conjunto de números reis pr o conjunto de números reis. Dizemos que f(x) é O(g(x)) se houver constntes C e k tl que sempre que x > k. Lê-se como f(x) é big-o de g(x) As constntes C e k são chmds de prâmetros d relção f(x) é O(g(x)). Somente um pr de prâmetros é necessário.
Ilustrção do Big-O f(x) é O(g(x)) A prte do gráfico de f(x) que stisfz f x < Cg(x) está em zul f x < Cg x pr x > k
Utilizndo Definição de Big-O Exemplo: Mostrr que f x = x + x + é O x. Solução: Pode ser estimdo o tmnho de f(x) qundo x >, pois: x < x e < x qundo x > Assim: < x + x + < x + x + x = 4x Sempre que x > Assim, podem-se tomr C = 4 e k = como prâmetros pr mostrr que f x é O x
Utilizndo Definição de Big-O Isto é: Qundo x > f x = x + x + < 4x Não é necessário usr vlor bsoluto, pois, s funções são positivs qundo x é positivo.
Ilustrção do Big-O f x = x + x + é O(x )
Mtrizes Mtrizes são usds pr representr relções entre elementos de conjuntos. Exemplo: redes de comunicções Definição: um mtriz é um tbel numéric rrnjd em um número m de linhs e um número n de coluns. A : m : m...... :... n n : mn
Mtrizes A i-ésim linh de A é: m i in i i n j mj j j A j-ésim colun de A é:
Mtrizes Notções e terminologi A mxn : mtriz A com m linhs e n coluns A nxn : mtriz qudrd de tmnho n nn : digonl principl de A ij : elemento d i-ésim linh e d j-ésim colun d mtriz A [ ij ]: denot um mtriz A onde dimensão está definid
Exemplos de mtrizes 5 A 6 4 B C 4 E 5 4 D
Mtrizes Definição: Um mtriz qudrd A=[ ij ] em que todos elementos for d digonl são iguis zero, isto é, ij = pr ij, é chmd de mtriz digonl. Exemplos: F 4 G 5
Mtrizes Definição: Dus mtrizes mxn A=[ ij ] e B=[b ij ] são dits iguis se ij =b ij pr im e jn. 6 4 4 5 A z y x B 4 4 5 Exemplo: A=B se e somente se x=-, y=, e z=6.
Aritmétic de mtrizes Def.: Se A=[ ij ] e B=[b ij ] são dus mtrizes mxn, então som de A e B é mtriz C=[c ij ], de ordem mxn, definid por: 5 4 A 5 4 B Exemplo: c ij = ij + b ij (im, jn) 5 9 7 ) ( 5 5 4 4 B A C
Aritmétic de mtrizes Definição: Um mtriz cujos elementos são todos nulos é chmd de mtriz nul e é denotd por. Exemplos: O O
Proprieddes d som de mtrizes Teorem: ) A + B = B + A b) (A + B) + C = A+ (B + C) c) A + = + A = A
Aritmétic de mtrizes Def.: Se A=[ ij ] é um mtriz mxp e B=[b ij ] é um mtriz pxn, então o produto de A e B (AxB) é mtriz C=[c ij ], de ordem mxn, definid por: c ij i m i m p p ip mp b b b p b b b p b b b b i m, j n i j i j ip pj p k ik kj b b b j j pj b b b n n pn c c c m c c c m c ij c c c n n mn
Produto de mtrizes 4 A 5 B???? C 5 4 5 4 C Exemplo: 4 4 C
Proprieddes do produto de mtrizes As proprieddes básics do produto de mtrizes são dds pelo seguinte teorem: Teorem: ) A(BC) = (AB)C b) A(B + C) = AB + AC c) c) (A + B)C = AC + BC
Proprieddes do produto de mtrizes Note que, dds dus mtrizes A mxp e B pxn, então A.B pode ser clculd (mxn). Qunto B.A pode ocorrer:. o produto B.A pode não ser definido. (m=n) e B.A é definid ms A.B B.A (tmnho). A.B e B.A podem ter o mesmo tmnho ms A.B B.A 4. A.B = B.A
Proprieddes do produto de mtrizes Exemplos: B A 4 9 4 B 4 5 8 4 5 A 5 B 5 A
Multiplicção de mtrizes Questão: qunts operções são necessáris pr clculr o produto C mxn de dus mtrizes A mxp e B pxn? Resp.: - Há mxn elementos no produto de A mxp e B pxn - Pr encontrr cd elemento são necessáris p (x) e p (+) - Logo, um totl de m.n.p (x) e m.n.p (+) são usds
Multiplicção de mtrizes Questão: Em que ordem s mtrizes A (x), A (x4) e A (4x) devem ser multiplicds (mtrizes de inteiros) pr usr o menor n o possível de operções? -A (A A ).4. pr obter mtriz x A A +.. pr multiplicr por A = 4 - (A A ) A..4 +.4. = 6 (!)
Mtriz identidde Definição: mtriz digonl nn n qul todos os elementos d digonl são s é chmdo de mtriz identidde de ordem n e é denotd por I n. I : : :......... :... Not: se A é um mtriz mn, vle: I m.a = A.I n = A :
Potêncis de mtrizes Pode-se definir potêncis de mtrizes qudrds. Se A é um mtriz qudrd nxn, temos: A p = A.A...A p vezes onde: A = I n Tmbém se pode provr s leis de exponencição: A p A q = A p+q (A p ) q = A p.q
Mtrizes trnsposts Definição: Se A é um mtriz mxn, então mtriz nxm: t ij t A onde: é chmd de trnspost d mtriz A. Exemplos: ji t ij n j e m i 6 5 4 A 5 6 4 A t B B t
Proprieddes de mtrizes trnsposts Teorem: Se A e B são mtrizes, então: ) (A t ) t = A b) (A+B) t = A t + B t c) (A.B) t = B t.a t Definição: Um mtriz A=[ ij ] é chmd simétric se A t =A se A é simétric, A deve ser um mtriz qudrd. Exemplo: A 4 5 4 5
Mtrizes boolens Mtrizes constituíds pens de zeros e s são frequentemente utilizds pr representr estruturs discrets (como s relções - prte II). Definição: Um mtriz boolen é um mtriz mxn em que os elementos são zeros ou uns. Exemplo: B
Operções com mtrizes boolens Def.: sejm A=[ ij ] e B=[b ij ] dus mtrizes boolens, ) AB=C=[c ij ] é junção de A e B, dd por: c ij se se ij ij ou e b b ij ij ) AB=D=[d ij ] é o encontro de A e B, ddo por: d ij se se ij ij e ou b ij b ij Note que A e B devem ter o mesmo tmnho
Operções com mtrizes boolens Exemplo: Clcule junção e o encontro de: A B Solução: B A B A
Operções com mtrizes boolens Def.: Sejm s mtrizes boolens A=[ ij ] (mxp) e B=[b ij ] (pxn). O produto booleno de A e B é mtriz C mxn cujos elementos são ddos por: c ij = ( i b j ) ( i b j )... ( ip b pj ) Denot-se este produto por AB Note que est operção é idêntic à multiplicção mtricil ordinári em que: - dição é substituíd por - multiplicção é substituíd por
Produto booleno Exemplo: Encontre o produto booleno de A e B, onde: A Note que #-coluns de A deve ser = #-linhs de B B B A B A
Operções com mtrizes boolens Teorem: Se A, B e C são mtrizes boolens, então: ) ) A B = B A b) A B = B A ) ) (A B) C = A (B C) b) (A B) C = A (B C) ) ) A (B C) = (A B) (A C) b) A (B C) = (A B) (A C) 4) A (B C) = (A B) C