Projeto e Análise de Algoritmos

Tamanho: px
Começar a partir da página:

Download "Projeto e Análise de Algoritmos"

Transcrição

1 Projeto e Aálise de Algoritmos Cristiao Damiai Vascocellos cristiao.vascocellos@udesc.br Agradeço ao Prof. Diego Buchiger por ajudar a aprimorar esse material. diego.buchiger@outlook.com

2 Bibliografia Algoritmos. Thomas H. Corme, Charles E. Leiserso, Roald L. Rivest, Cliford Stei. Campus. Algorithms. Sajo Dasgupta, Christos Papadimitriou, Umesh Vazirai. McGraw Hill.

3 Aálise de Algoritmos Aalisar um algoritmo sigifica prever os recursos que algoritmo ecessita. Por exemplo, memória, largura de bada e mais frequetemete o tempo de computação. Para aalisar um algoritmo é ecessário defiir um modelo de computação. O modelo de computação do computador tradicioal é o RAM (Radom Access Machie). Ode as istruções são executadas em sequêcia, sem cocorrêcia, e os dados são armazeados em células de memória com acesso aleatório.

4 Aálise de Algoritmos Cotar o úmero de istruções que são executadas pelo algoritmo. Por exemplo: load, store, add, sub, div, mul, call, ret, cmp, jump, etc.

5 Qual o tempo de execução? it pesquisa(estrutura *v, it, it chave) { it i; } for (i = 0; i < ; i++) if (v[i].chave == chave) retur i; retur -; O úmero de istruções e o tempo de execução depede do processador, compilador, etc.

6 Programa Notação Assitótica. Complexidade de tempo e espaço. Relações de Recorrêcia. Somatórios. Divisão e Coquista. Algoritmos Gulosos. Programação Diâmica. Tratabilidade (classes P, NP e NP-Completo).

7 Crescimeto de Fuções Para simplificar o processo usamos uma abstração que igora o custo de cada istrução, que é costate. Cocetrado a aálise o crescimeto do tempo de execução (ou de outro recurso) em relação ao crescimeto da etrada.

8 Notação Assitótica (Notação O grade Limite Superior) Uma fução f() domia assitoticamete outra fução g() se existem duas costates positivas c e 0 tais que, para > 0, temos g() c. f(). g() = O(f()) = O( 2 )

9 Algumas Operações com Notação O c.o(f()) = O(f()), ode c é uma costate. O(f()) + O(g()) = O(MAX(f(), g()).o(f()) = O(.f()) O(f()).O(g()) = O(f().g())

10 Complexidade de Tempo it pesquisa(estrutura *v, it, it chave) { it i; // O() } for (i = 0; i < ; i++) // O() if (v[i].chave == chave) // O() retur i; // O() retur -; // O() Em que situações ocorrem o melhor caso, pior caso e o caso médio?

11 Complexidade de Tempo Caso médio: Caso o i-ésimo registro seja o registro procurado são ecessárias i comparações. Sedo p i a probabilidade de procurarmos o i-ésimo registro temos: f() =.p + 2.p p. Cosiderado que a probabilidade de procurar qualquer registro é a mesma probabilidade, temos p i = /, para todo i. f ( ) ( 2... ) ( ) 2 ( ) 2

12 Crescimeto de Fuções! 2 2.log() log()

13 Crescimeto de Fuções

14 Hierarquia de fuções Hierarquia de fuções do poto de vista assitótico: c c c c log log log log ode e c são costates arbitrárias tais que 0 < < < c.

15 void isercao(it *v, it ) { it i, j, x; for (i = ; i < ; i++) { x = v[i]; j = i - ; while (j >= 0 && v[j] > x) { v[j+] = v[j]; j--; } v[j+] = x; } } Exemplo (Ordeação por Iserção)

16 void bubble(it *v, it ) { it i, j, aux; for (i = - ; i > 0; i--) { for (j = 0; j < i; j++) { if (v[j] > v[j+]) { aux = v[j]; v[j] = v[j+]; v[j+] = aux; } Exemplo (Bubble Sort) } } }

17 it pesqbi(it *v, it p, it r, it e) { it q; if (r<p) retur -; q = (p + r)/2; if (e == v[q]) retur q; if (e < v[q]) retur pesqbi(v, p, q-, e); retur pesqbi(v, q+, r, e); } Exemplo (Pesquisa Biária)

18 it pesqbi(it *v, it p, it r, it e) { it q; if (r<p) retur -; q = (p + r)/2; if (e == v[q]) retur q; if (e < v[q]) retur pesqbi(v, p, q-, e); retur pesqbi(v, q+, r, e); } Exemplo (Pesquisa Biária) Relação de Recorrêcia: T() = T(/2) + O() T() = O() A relação abaixo descreve de forma mais precisa a execução, mas a simplificação acima ão altera a complexidade: T() = T(/2 - ) + O() T() = O()

19 Relação de Recorrêcia T() = T(/2) + T(/2) = T(/2 2 ) + T(/2 2 ) = T(/2 3 ) +... T(/ l- ) = T(/2 l ) + 2 l = 2 l l = log 2 O(log ) Mudaça de base: T() = T() log 2 vezes log b log log a a b

20 Exemplo (Pesquisa Biária) it pesqbi2 (it *v, it, it e) { it p, q, r; } p = 0; r = -; do { q = (p + r) / 2; if (e == v[q]) retur q; if (e < v[q]) r = q -; else p = q + ; } while (p<= r); retur -;

21 Recursividade de cauda Uma fução apreseta recursividade de cauda se ehuma operação é executada após o retoro da chamada recursiva, exceto retorar seu valor. Em geral, compiladores, que executam otimizações de código, substituem as fuções que apresetam recursividade de cauda por uma versão ão recursiva dessa fução.

22 Exemplo (Merge Sort) it mergesort(it *v, it p, it r) { it q; if (p<r) { q = (p+r)/2; mergesort(v, p, q); mergesort(v, q+, r); merge(v, p, q, r); } } void msort(it *v, it ) { mergesort(v, 0, -); }

23 Exemplo (Merge Sort) it mergesort(it *v, it p, it r) { it q; if (p<r) { q = (p+r)/2; mergesort(v, p, q); mergesort(v, q+, r); merge(v, p, q, r); } } void msort(it *v, it ) { mergesort(v, 0, -); } Relação de Recorrêcia: T() = 2T(/2) + O() T() = O()

24 Dividir e Coquistar Desmembrar o problema origial em vários subproblemas semelhates, resolver os subproblemas (executado o mesmo processo recursivamete) e combiar as soluções.

25 Quick Sort void quicksort(it *a, it p, it r) { } it q; if (p < r) { } q = particao(a, p, r); quicksort(a, p, q); quicksort(a, q +, r);

26 Quick Sort it particao(it *v, it e, it d) { it pivo, j, aux; pivo = e; // Geralmete essa ão é a melhor escolha para o pivô. for (j = e + ; j <= d; ++j) { if (v[j] < v[e]) { ++pivo; swap(&v[pivo], &v[j]); } } swap(&v[e], &v[pivo]); retur pivo; }

27 Propriedades dos Somatórios i i i i i i i i i i i i i i i a a b a b a a c ca ) ( (Distributiva) (Associativa) (Comutativa)

28 Propriedades das Potêcias m m m m m m a a b b a b a b a ab a a a a a a a ) ( 0, ) ( 0,

29 Propriedades dos Logaritmos a c c c b b c b c c c c c c b a b b b a c a b a a a c a b a b a b a ab b a b c c a log log log log log log log log log log ) / ( log log log ) ( log log

30 Notação Assitótica Limite Iferior (Notação ) Uma fução f() é o limite iferior de outra fução g() se existem duas costates positivas c e 0 tais que, para > 0, temos g() c. f(), g() = (f()) = ( 2 )

31 Notação Assitótica Limite Firme (Notação ) Uma fução f() é o limite restrito de outra fução g() se existem três costates positivas c, c 2, e 0 tais que, para > 0, temos c. f() g() c 2. f(), g() = (f()) = ( 2 )

32 Ordeação por Iserção 40 Pior caso Caso médio Pior Caso: ( 2 -)/2 O( 2 ), ( 2 ), ( 2 ) Caso Médio: 2 /4 20 Melhor caso O( 2 ), ( 2 ), ( 2 ). 5 0 Melhor Caso: O(), (), ().

33 Heap Biário É um arrajo, ode os dados estão orgaizados de forma que podem ser acessados como se estivessem armazeados em uma árvore biária. No caso de um heap máximo, os elemetos armazeado em uma subárvore serão sempre meores que o elemeto armazeado a raiz. Essa árvore é completa todos seus íveis, com a possível exceção do ível mais baixo it esquerda (it i) {retur (2 * i + );} it direita(it i) {retur (2 * i + 2);} 5 7 2

34 Heap Biário void heapif (it *a, it, it i) { it e, d, maior; e = esquerda(i); d = direita(i); if (e < && a[e] > a[i]) maior = e; else maior = i; if (d < && a[d] > a[maior]) maior = d; if (maior!= i) { swap (&a[i], &a[maior]); heapif(a,, maior); } } T() 3 T( ) T(2 O() 3 3) O() 3

35 Heap Biário it heapextract(it *a, it ) { it maior; } maior = a[0]; a[0] = a[ - ]; heapif(a, -, 0); retur maior; void buildheap(it *a, it ) { it i; } for (i = (-)/2; i >= 0; i--) heapif(a,, i);

36 Heap Biário void buildheap(it *a, it ) { it i; } for (i = (-)/2; i >= 0; i--) heapif(a,, i); O( ) log 2 T ( ) ( h i)2 i0 i h

37 Heap Sort void heapsort(it *a, it ) { it i; } buildheap(a, ); for (i = - ; i > 0; i--) { swap(&a[0], &a[i]); heapif(a, i, 0); }

38 Algoritmos com Iteiros Até esse mometo temos cosiderado costate a complexidade de operações como: adição, subtração, multiplicação, divisão, módulo e comparação. Mas quado essas operações evolvem úmeros cujo o tamaho, em úmero de bits, é muito maior que a palavra do processador (atualmete 32 ou 64 bits)?

39 Algoritmos com Iteiros A adição e multiplicação de grades úmeros em computadores é bastate similar a operações com bits. Carr: + 00 (22) 000 (99) 00 (22) Adição de 2 bits, ode é o tamaho da palavra do processador: b 2 b b +2 b + Carr b b -... b 2 b Podemos cosiderar que a adição de grades úmeros tem complexidade O(), ode é o úmero de bits.

40 Algoritmos com Iteiros (Multiplicação) bigit mul (bigit x, bigit ) { bigit r = 0; while ( > 0) // Comparação etre iteiros grades { r = r + x; // Adição etre iteiros grades O(). --; } retur r; } O() + O() O() vezes Sedo o úmero de bits, qual o valor de o pior caso?

41 Algoritmos com Iteiros (Multiplicação) X (multiplica por 5, desloca 0) 2 (multiplica por, desloca ) 24 (multiplica por 2, desloca 2) 2580 X 00 (0) 0 (3) 00 (multiplica por, desloca 0) 0000 (multiplica por 0, desloca ) 00 (multiplica por, desloca 2) 00 (multiplica por, desloca 3) (30)

42 bigit mul(bigit x, bigit ) { bigit r; if ( == 0) retur 0; r = mul(x, >> ) // r = x * (/2) if (par()) retur r << ; // retur 2*r else retur x + r << ; // retur x+2*r } Algoritmos com Iteiros (Multiplicação)

43 Algoritmos com Iteiros (Multiplicação) ) ( ) ( 2 2 ) )(2 ( / 2 / 2 / 2 / 2 / R R L R R L L L R L R L R L R L R L R L x x x x x x x x x x x x x

44 Algoritmos com Iteiros (Multiplicação) x 2 x L L 2 / 2 ( x L R x R L ) ( x R R ) bigit mul(bigit x, bigit ) // ode é o úmero de bits dos iteiros x e. { bigit xl, xr, l, r, p, p2, p3, p4; if ( == ) retur x; // se uméro de bits for (retora se x = ou =). xl = leftmost(x, /2); xr= rightmost(x, /2); // bits mais à esquerda e mais à direita. l = leftmost(, /2); r= rightmost(, /2); p = mul (xl, l); p2 = mul (xl, r); p3 = mul (xr, l); p4 = mul (xr, r); retur p << + (p2 + p3) << (/2) + p4; }

45 Números Primos Uma úmero atural é primo se possui exatamete dois divisores: o úmero e ele mesmo. Todo úmero composto pode represetado pela multiplicação de seus fatores primos. Primos relativos: Dois iteiros são chamados de primos relativos se o úico iteiro positivo que divide os dois é. Por exemplo, 49 e 5 são primos relativos.

46 Números Primos Teste de primalidade: Dado um úmero, determiar se é primo (fácil). Fatoração de iteiros: Dado um úmero, represetar através de seus fatores primos (difícil).

47 Aritmética Modular É um sistema para maipular faixas restritas de úmeros iteiros. Relação de cogruêcia: a b (mod m) m divide (a b). a b (mod m) se e somete se a mod m = b mod m. Exemplos: 38 4 (mod 2), 38 mod 2 = 4 mod (mod 2), -0 mod 2 = 38 mod 2

48 Aritmética Modular O iverso multiplicativo modular de um iteiro a o módulo m é um iteiro x tal que: ax (mod m). O iverso multiplicativo de a o módulo m existe se e somete se a e m são primos relativos. O iverso multiplicativo de a o módulo m é um iteiro x que satisfaz a equação: ax = + m. Exemplo: Qualquer úmero cogruete à 5 (o módulo 2) é o iverso multiplicativo de 5 o módulo 2: {, -7, 5, 7, 29, }.

49 Criptográfia RSA Trasforma um iteiro M (que represeta um bloco de dados da mesagem) em um iteiro C (que represeta um bloco da mesagem criptografada), usado a seguite fução: C M e mod Sedo = pq, ode p e q são úmeros primos, e e um primo relativo de (p - )(q - ): Chave pública = (e, ). mdc (e, (p - )(q - )) =

50 Criptográfia RSA A trasformação da mesagem criptografada C a mesagem origial é executada através da formula: M C d mod Ode d é o iverso modular de e: ed mod(( p )( q )) Chave privada = (d, ).

51 Criptográfia RSA (Exemplo) Para M = 92, p = e q = 3 o valor de = 43. Escolher arbitráriamete um valor para e = 7, ote que: mdc (7, 20) =. Chave pública = (7, 43). Como 7d (mod 20), podemos dizer que 7d = + 20a, uma possível solução é a = - e d = -7 (ver algoritmo de Euclides Estedido), outras soluções são a = 6 e d = 3, a = 33 e d = 233, Se -7 é o iverso modular de 7 mod 20 etão todo iteiro cogruete a -7 mod 20 é também o iverso modular de 7 mod 20: (, -7, 3, 233, 353, ). Chave privada = (3, 43). C = 92 7 mod 43, C = 27. M = 27 3 mod 43, M = 92.

52 Algoritmos Gulosos (Greed Algorithms) Uma técica para resolver problemas de otimização, um algoritmo guloso sempre faz a escolha que parece ser a melhor em um determiado mometo, esperado que essa melhor escolha local leve ao melhor resultado do problema como um todo. Uma técica simples, mas que a maioria das vezes ão leva ao resultado ótimo.

53 Codificação de Huffma É um método de compressão de dados. Esse método usa a frequêcia com que cada símbolo ocorre, em uma coleção de dados, para determiar um código de tamaho variável para o símbolo. Caractere Frequêcia Código Código (fixo) (variável) a b c Exemplo:... faca d 6 0 e f

54 Codificação de Huffma (Exemplo) 0 00 Exemplo: a: faca c:2 b:3 4 d:6 0 f:5 e:9

55 Codificação de Huffma Huffma(C) C Q C para i até - z AlocaNo() x z.esq Extrair-Miimo(Q) z.dir Extrair-Miimo(Q) z.valor = x.valor +.valor Iserir(Q, z) retore Q

56 Árvore Geradora Míima (Miimum Spaig Tree) Uma árvore geradora para um grafo coexo é uma árvore que coecta todos os vértices do grafo e que o cojuto de arestas é um subcojuto das arestas desse grafo. A árvore geradora é míima se o somatório dos custos associados cada arestas for o meor possível. b 8 7 c 4 2 d 9 a 8 7 h i 6 g 4 2 f 4 0 e

57 Árvore Geradora Míima (Miimum Spaig Tree) MST-PRIM(G,w, r) // G grafo, w custos, r vértice iicial para cada u G.V b 8 7 c u.ke = 4 2 u.π = ull a i 4 r.ke = Q = G.V Equato Q Ø // Executa V vezes u = Extrai-Miimo(Q) // O(log V ) heap biário para cada v G.Adj[u] // Executa A vezes se v Q e w(u, v) < v.ke v. π = u v.ke = w(u, v) // propriedade de heap O(log V ) Árvore geradora míima = {(v, v.π) v V - {r}} h g 2 d f e

58 Problemas tratáveis e itratáveis Problemas tratáveis: resolvidos por algoritmos que executam em tempo poliomial. Problemas itratáveis: ão se cohece algoritmos que os resolvam em tempo poliomial.

59 Problemas de Decisão. Problemas de Otimização: Cada solução possível tem um valor associado e desejamos ecotrar a solução com melhor valor. Problemas de Decisão: Problemas que tem resposta sim ou ão.

60 Problema do Caixeiro Viajate Um vededor deseja visitar cidades e retorar a cidade de origem. Dado um grafo ão orietado completo com vértices, ode existe um custo c(i, j) (associado a cada aresta) para viajar da cidade i a cidade j. Qual o trajeto com custo míimo? E A C D 3 4 B

61 Problema do Caixeiro Viajate Existe um camiho com custo meor que k?

62 Algoritmos Não Determiistas Capaz de escolher uma etre várias alterativas possíveis a cada passo. A alterativa escolhida será sempre a alterativa que leva a coclusão esperada, caso essa alterativa exista. it pesquisa(estrutura *v, it, it chave) { it i; it pesquisa(estrutura *v, it, it chave) { it i; } for (i = 0; i < ; i++) if (v[i].chave == chave) retur i; retur -; } i = escolhend(0, - ); if (v[i].chave == chave) retur i; retur -;

63 Classes de Problemas P e NP Classe de Problemas P: Problemas que podem ser resolvido (por algoritmos determiistas) em tempo poliomial. Classe de Problemas NP: Problemas que podem ser resolvidos por algoritmos ão determiistas em tempo poliomial. Ou problemas que a solução pode ser verificada em tempo poliomial. Possível relação etre as classes: NP P

64 Redução de Problemas Problema A Algoritmo de Redução Solução para o Problema A Problema B Algoritmo que Resolve B Sim Não

65 Ciclo Hamiltoiao Um Ciclo Hamiltoiao em um grafo ão orietado é um camiho que passa por cada vértice do grafo exatamete uma vez. Problema do Ciclo Hamiltoiao: Um grafo G possui um ciclo Hamiltoiao? A B C D E

66 Redução do Problema do Ciclo Hamiltoiao ao Problema do Caixeiro Viajate G (G, 0) A B A 0 B D C E p Redução em tempo poliomial 0 D 0 C 0 E 0 0 para cada vértice i para cada vértice j se (i, j) H etão c(i, j) 0 seão c(i, j)

67 (SAT) Satisfazibilidade de Fórmulas Booleaas O problema da Satisfazibilidade de fórmulas booleaas cosiste em determiar se existe uma atribuição de valores booleaos, para as varáveis que ocorrem a fórmula, de tal forma que o resultado seja verdadeiro. Exemplo: x ( x2 x ) ( x2 x3 ) ( x x2 3) x

68 NP-Completo Teorema de Cook: SAT está em P se e somete se P = NP. Um problema X é NP-Completo se:. X NP 2. X p X para todo X NP. Possível relação etre as classes: NP NP-Completo P

69 Forma Normal Cojutiva Um literal é uma variável proposicioal ou sua egação. Uma formula booleaa está a Forma Normal Cojutiva (CNF) se é expressa por um grupo cláusulas AND, cada uma das quais formada por OR etre literais. Uma fórmula booleaa esta a k-cnf se cada cláusula possui exatamete k literais: ( x x2 x3) ( x x2 x3 ) ( x x2 x3 )

70 3-CNF-SAT Verificar se uma fórmula booleaa a 3-CNF é satisfazível. 3-CNF-SAT é NP-Completo: 3-CNF-SAT NP. SAT p 3-CNF-SAT.

71 SAT p 3-CNF-SAT Dada uma fórmula booleaa: x x ) ( x2 x 2 3. Costruir uma árvore que represete à fórmula. 2. Itroduzir uma variável i para a raiz e a saída de cada o itero. x x2

72 SAT p 3-CNF-SAT ( ( x 2)) ( 2 3) ( 3 ( x 2)) x x 2 3 x x2 3. Reescrevemos a fórmula origial como cojuções etre a variável raiz cláusulas que descrevem as operações de cada ó. Itroduz variável e cláusula para cada operador.

73 SAT p 3-CNF-SAT ( ( x 2)) ( 2 3) ( 3 ( x 2)) x Para cada i costruir uma tabela tabela verdade, usado as etradas que toram i verdade, costruir uma forma ormal disjutiva para cada. i

74 SAT p 3-CNF-SAT ( ( x 2)) ( 2 3) ( 3 ( x 2)) x x 2 2 ( x 2) V V V V V V F F V F V F V F F F F V V F F V F V F F V V F F F V ( 2 ( ( ( x x x x 2 2 ) Cada cláusula de itroduz o máximo 8 cláusulas em, pois cada cláusula de possui o máximo 3 variáveis. ) 2 ) 2 )

75 SAT p 3-CNF-SAT ) ( ) ( ) ( ) ( x x x x ) ( ) ( ) ( ) ( x x x x Coverter a fórmula para a CNF usado as leis de De Morga:

76 SAT p 3-CNF-SAT O último passo faz com que cada cláusula teha exatamete 3 literais, para isso usamos duas ovas variáveis p e q. Para cada cláusula C i em :. Se C i tem 3 literais, simplesmete iclua C i. 2. Se C i tem 2 literais, C i ( l l2), iclua: ( l l2 p) ( l l2 p 3. Se C i tem literal, l, iclua: ( l p q) ( l p q) ( l p q) ( l Itroduz o máximo 4 cláusulas por cláusula em. ) p q )

77 SAT p 3-CNF-SAT )) ( ( ) ( )) ( ( x x x ) ( ) ( ) ( ) ( q p q p q p q p )) ( ( ) ( )) ( ( x x x ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( x x x x q p q p q p q p

78 CLIQUE Um Clique em um grafo ão direcioado G = (V, A) é um subcojuto de vértices V V, ode cada vértice está coectado por uma aresta. Ou seja um subgrafo completo. Versão de otimização: Ecotrar o maior Clique possível. Versão de decisão: Existe um Clique de tamaho k? b c a f d e

79 CLIQUE Clique NP b c a f d e Dado um grafo G = (V, A), a solução (certificado) V e k Verificar de V k Para cada u V Para cada v V Se u v etão verificar se (u, v) A

80 3-CNF-SAT p CLIQUE ϕ = (x ~x 2 ~x 3 ) (~x x 2 x 3 ) (x x 2 x 3 ) ~x x2 x3 x x ~x 2 x 2 ~x 3 x 3 Existe um clique de tamaho k? Sedo k o úmero de cláusulas.

81 3-CNF-SAT p CLIQUE Dada uma istacia ϕ do problema 3-CNF-SAT, cada cláusula de ϕ gera 3 vértices, sedo que cada vértice correspode a um literal da cláusula. É adicioada uma aresta para cada par de vértices u e v duas codições a seguir forem satisfeitas: Se u e v ão foram gerados a partir da mesma cláusula; se as Se u e v ão foram gerados a partir de um literal que correspode a uma variável e sua egação. Por exemplo, um vértice correspodete a variável x ão pode ser coectado a um vértice correspodete a egação de x.

82 Cobertura de Vértices (VERTEX-COVER) Uma Cobertura de Vértices de um grafo ão orietado G = (V, A) é um subcojuto V V tal que se (u, v) A, etão u V ou v V. b c a f d e

83 Cobertura de Vértices (VERTEX-COVER) Versão de otimização: Ecotrar meor Cobertura de Vértices. Versão de decisão: Existe uma cobertura de tamaho k? b c a f d e

84 Cobertura de Vértices NP. Cobertura de Vértices (VERTEX-COVER) b c a f d e Dado um grafo G =(V, A) e a solução (certificado) V Verificar de V k Para cada (u, v) A Verificar se u V ou v V

85 CLIQUE p VERTEX-COVER b c b c a f a f d e d e CLIQUE Etrada (G, k), ode G = (V, A) VERTEX-COVER Etrada (, V - k) G

86 SUBSET-SUM Dado um cojuto fiito de de iteiros positivos S e um iteiro t > 0, determiar se existe um subcojuto S S ode o somatório dos elemetos de S é igual a t. i s t i

87 3-CNF-SAT p SUBSET-SUM ( x x2 x3 ) ( x x2 x3 ) x x 2 x 3 C C 2 v v' v v' v v' s s' s s' t 4 4

88 Programação Diâmica Método de solução de problemas baseado o uso de tabelas. Resolve problemas combiado as soluções de subproblemas. As soluções para cada um dos subproblemas são armezadas em uma tabela, dessa forma uma solução ão ecessita ser recalculada quado um subproblema ocorre repetidas vezes.

89 Programação Diâmica É idicada quado um subproblema ocorre repetidamete e sua solução pode ser reaproveitada. Exemplo: fib( ) fib( ) fib( 2) se 0 se

90 Programação Diâmica Abordagem top-dow (Memoizatio) Pode ser vista como o uso de recursão com apoio de tabelas: Como ocorre em algoritmos recursivos (divisão e coquista), um problema é resolvido dividido-o em subproblemas meores, resolvedo esses subproblemas recursivamete e combiado suas soluções. A solução de cada subproblema é armazeada em uma tabela, dessa forma ão é recalculada caso o subproblema ocorra repetidamete.

91 Programação Diâmica Abordagem top-dow (Memoizatio) Fib() se etão retore seão se F[] está idefiido F[] Fib( ) + Fib( 2) retore F[]

92 Fib() F[0] = 0 F[] = para i 2 até retore F[] Programação Diâmica Abordagem bottom-up F[i] = F[i 2] + F[i ]

93 Programação Diâmica Chage-Makig Problem Dado um cojuto de moedas, cada uma com um valor x i, e um valor t, achar o cojuto {f, f 2,, f }, ode f i represeta a quatidade de moedas de valor x i, que miimiza: f i i tal que: i x i f i t

94 Programação Diâmica Chage-Makig Problem Imprimir-Troco (s, x, t) Equato t > 0 Imprimir (x[s[t]]) t t x[s[t]] Ode c[t] é o úmero míimo de moedas para totalizar o valor t e s[t] é o ídice da última moeda que ocorre essa solução. Exemplo: x = {, 2, 5} e t = 9 t c s

95 Troco(x[..], t) c[0] 0 para p até t mi para i até c[p] mi s[p] moeda retore (c, s) Programação Diâmica Chage-Makig Problem se (x[i] p) e (c[p x[i]] + mi) etão mi c[p x[i]] + moeda i

96 Programação Diâmica (Subset-Sum) Dado um cojuto de iteiros positivos, represetados como um arrajo S[..], e um iteiro t, existe algum subcojuto de S tal que a soma de seus elemetos seja t. SubsetS( i, t) Verdade Falsidade SubsetS( i, t) se t 0 se t 0 i SubsetS( i, t x[ i])

97 Exemplo: x = {2, 3, 5} e t = 8. Programação Diâmica (Subset-Sum) SubsetS( i, t) Verdade Falsidade SubsetS( i, t) se t 0 se t 0 i SubsetS( i, t x[ i])

98 Programação Diâmica (Subset-Sum) SubsetSum(x[..], t) S[ +, 0] Verdade para j até t S[ +, j] Falsidade para i até S[i, 0] Verdade para j até x[i] S[i, j] S[i +, j] para j x[i] até t S[i, j] S[i +, j] v S[i +, j x[i]] retore S[,t]

99 Programação Diâmica (Subset-Sum) Exemplo: x = {, 3, 5, 7} e t = V V F V V V V V V V V 2 V F F V F V F V V F V 3 V F F F F V F V F F F 4 V F F F F F F V F F F 5 V F F F F F F F F F F

100 Algoritmos que Executam em Tempo Pseudo-Poliomial SUBSET-SUM Usado programação diâmica podemos implemetar um algoritmo pseudo-poliomial com complexidade O(t), ode é o umero de elemetos o cojuto e t o valor do somatório que se deseja alcaçar. Se restrigirmos ossa ateção a istâcias do problema ode o valor de t é limitado por um poliómio existe uma solução eficiete.

101 Algoritmos que Executam em Tempo Pseudo-Poliomial Essa restrição pode ser bastate razoável a prática: Problemas ode é impossível a ocorrêcia de úmeros muito grades (e.g. problemas de escaloameto). Problemas ode o tamaho do úmero possa ser restrito ao tamaho da palavra do processador. Note que esse ão é o caso da redução do 3-CNF-SAT ao SUBSET-SUM, ode o valor de t cresce expoeciamete ao úmero de variáveis e cláusulas presetes a fórmula booleaa.

102 Heurísticas e Algoritmos de Aproximação Procedimetos heurísticos são métodos que buscam soluções próximas a solução ótima de um problema. Utilizam alguma iformação (ou ituição) sobre a istâcia do problema para resolvê-lo de forma eficiete. Um algoritmo de aproximação, além de uma solução eficiete, garate a qualidade da solução. É ecessário provar a garatia de proximidade da solução ótima.

103 Algoritmos de Aproximação Caixeiro Viajate E E A D 6 C 3 A C D 3 B 4 B 4 Dado o grafo G = (V, A) e o custo c:. Selecioe um vértice r V para ser o vértice raiz. 2. Obteha a ávore geradora míima a partir de r. 3. Faça P ser a lista de vertices ordeados de acordo com a primeira visita, cosiderado um percurso em pré-ordem. Se a fução custo satisfaz a desigualdade de triâgulos: c(u, w) c(u, v) + c(v, w) c(t ) < c(ótimo) c(t cocateado com [r]) 2c(ótimo)

104 Referêcias Algoritmos. Thomas H. Corme, Charles E. Leiserso, Roald L. Rivest, Cliford Stei. Campus. Algorithms. Sajo Dasgupta, Christos Papadimitriou, Umesh Vazirai. McGraw Hill. Cocrete Mathematics: A Foudatio for Computer Sciece (2d Editio). Roald L. Graham, Doald E. Kuth, Ore Patashik. Addiso Wesle. M. R. Gare ad D. S. Johso Strog NP-Completeess Results: Motivatio, Examples, ad Implicatios. J. ACM 25, 3 (Jul 978)

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS 1 FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002 ANÁLISE DE COMPLEXIDADE DE ALGORITMOS João Pascoal Faria http://www.fe.up.pt/~jpf 2 Itrodução Algoritmo: cojuto claramete especificado de istruções

Leia mais

Complexidade de Algoritmos Aula 5

Complexidade de Algoritmos Aula 5 Complexidade de Algoritmos Aula 5 Potecia (a: real, : iteiro: real; p: real; iicio 1. se = 0 etão retora ( 1 ; 2. se ( mod 2 = 1 etão 3. p Potecia( a, ( 1/2 ; 4. retora( a*p*p ; 5. seão p Potecia( a, /2

Leia mais

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 1-3

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 1-3 Aálise e Sítese de Algoritmos Revisão CLRS, Cap. 1-3 Resumo Algoritmos Aálise de algoritmos Sítese de algoritmos Notação assimptótica Outra otação utilizada Somatórios 2007/2008 Aálise e Sítese de Algoritmos

Leia mais

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores Uma recorrêcia é uma equação que descreve uma fução em termos do seu valor em etradas meores T( ) O( 1) T( 1) 1 se 1 se 1 Útil para aálise de complexidade de algoritmos recursivos ou do tipo dividir para

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007. Ageda Aálise e Técicas de Algoritmos Motivação para aálise de de algoritmos Aálise assitótica Algus exemplos simples Jorge Figueiredo Aálise de de Algoritmos Dois aspectos importates: Um problema pode,

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Aálise de Algoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT-234 5) Ordeação Resoluções simples, Lower boud, MergeSort, RadixSort Algus algoritmos de ordeação

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. Ageda Aálise e Técicas de Algoritmos Jorge Figueiredo Relação de de Recorrêcia Derivado recorrêcia Resolvedo recorrêcia Aálise de de algoritmos recursivos Aálise de de Algoritmos Recursivos Itrodução A

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Funções de Complexidade Considere

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE SETÚBAL DEPARTAMENTO DE MATEMÁTICA MATEMÁTICA DISCRETA Curso: LEI. Correção do exame da Época Normal - A 2006/2007

ESCOLA SUPERIOR DE TECNOLOGIA DE SETÚBAL DEPARTAMENTO DE MATEMÁTICA MATEMÁTICA DISCRETA Curso: LEI. Correção do exame da Época Normal - A 2006/2007 ESCOLA SUPERIOR DE TECNOLOGIA DE SETÚBAL DEPARTAMENTO DE MATEMÁTICA MATEMÁTICA DISCRETA Curso: LEI Correção do exame da Época Normal - A 2006/2007 Diga, justi cado, se as seguites proposições são verdadeiras

Leia mais

Introdução à Computação

Introdução à Computação Itrodução à Computação Recursividade Aula de hoje Recursividade Fução orial Voto de cofiaça recursivo Fução de Fiboacci Desvatages Professor: Adré de Carvalho Recursão Muitas estratégias de programação

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Um pouco de Teoria dos Números

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.)

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.) Fotes Bibliográficas Estruturas de Dados Aula 14: Recursão Livros: Projeto de Algoritmos (Nivio Ziviai): Capítulo 2; Estruturas de Dados e seus Algoritmos (Szwarefiter, et. al): Capítulo 1; Algorithms

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Marcelo Cezar Pito Apresetação Plao de Esio Trabalho Extra-classe Pré-requisitos: Somatório Combiatória Probabilidade Logaritmo Itrodução Algoritmos -> cere da computação Programa

Leia mais

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado.

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado. Itrodução Problema Algoritmo Implemetação Problema Uiversidade Federal de Ouro Preto Departameto de Computação Algoritmo 1 Algoritmo Algoritmo Projeto e Aálise de Algoritmos - I Implemetação C Implemetação

Leia mais

Estudando complexidade de algoritmos

Estudando complexidade de algoritmos Estudado complexidade de algoritmos Dailo de Oliveira Domigos wwwdadomicombr Notas de aula de Estrutura de Dados e Aálise de Algoritmos (Professor Adré Bala, mestrado UFABC) Durate os estudos de complexidade

Leia mais

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3 Itrodução Problema Algoritmo Implemetação Problema Uiversidade Federal de Ouro Preto Departameto de Computação Algoritmo 1 Algoritmo 2 Algoritmo 3 Projeto e Aálise de Algoritmos - I Implemetação C Implemetação

Leia mais

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos Aálise de Algoritmos Aálise de Algoritmos Prof Dr José Augusto Baraauskas DFM-FFCLRP-USP A Aálise de Algoritmos é um campo da Ciêcia da Computação que tem como objetivo o etedimeto da complexidade dos

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Compleidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Reduções de Problemas X NP-Completo

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Algoritmos com Inteiros Grandes

Leia mais

Ordenação e Busca em Arquivos

Ordenação e Busca em Arquivos Ordeação e Busca em Arquivos Cristia D. A. Ciferri Thiago A. S. Pardo Leadro C. Citra M.C.F. de Oliveira Moacir Poti Jr. Ordeação Facilita a busca Pode ajudar a dimiuir o úmero de acessos a disco Busca

Leia mais

Quicksort. Algoritmos e Estruturas de Dados II

Quicksort. Algoritmos e Estruturas de Dados II Quicksort Algoritmos e Estruturas de Dados II História Proposto por Hoare em 960 e publicado em 962 É o algoritmo de ordeação itera mais rápido que se cohece para uma ampla variedade de situações Provavelmete

Leia mais

Ordenação por Troca. Bubblesort Quicksort

Ordenação por Troca. Bubblesort Quicksort Ordeação por roca Bubblesort Quicksort ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[0], r[], r[2],...,

Leia mais

Análise de Equação de Recorrência

Análise de Equação de Recorrência Aálise de Equação de Recorrêcia Carlos Eduardo Ramisch - Cartão: 467 Soraya Sybele Hossai Cartão 497 INF0 - Complexidade de Algoritmos Prof.ª Luciaa Salete Buriol Porto Alegre, 0 de setembro de 006 Itrodução

Leia mais

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[0], r[], r[],..., r[-], cada item a lista é chamado

Leia mais

SINAIS E SISTEMAS DE TEMPO DISCRETO

SINAIS E SISTEMAS DE TEMPO DISCRETO SINAIS E SISTEMAS DE TEMPO DISCRETO SINAIS DE TEMPO DISCRETO Fução de uma variável idepedete iteira. Não é defiido em istates etre duas amostras sucessivas. É icorreto pesar que é igual a zero se ão é

Leia mais

Recorrências. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

Recorrências. Universidade Federal do Amazonas Departamento de Eletrônica e Computação Recorrêcias Uiversidade Federal do Amazoas Departameto de Eletrôica e Computação Recorrêcias A expressão: c T ( ) 2T c 2 é uma recorrêcia. 1 > 1 Recorrêcia: uma equação que descreve uma fução em termos

Leia mais

Formas Normais. Dalton E. dos Santos, Kelvin E. Nogueira da Silva, Jorge L. dos Santos Ramos Jr.

Formas Normais. Dalton E. dos Santos, Kelvin E. Nogueira da Silva, Jorge L. dos Santos Ramos Jr. Formas Normais Dalto E. dos Satos, Kelvi E. Nogueira da Silva, Jorge L. dos Satos Ramos Jr. Departameto de Iformática Uiversidade Tecológica Federal do Paraá (UTFPR) CEP: 80230-901 Curitiba PR Brasil daltoes@ms.com,

Leia mais

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal.

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal. Apêdice B Elemetos de Matemática Este apêdice apreseta tópicos de matemática que podem ser ecessários para completo etedimeto do texto pricipal. B. Somatórios B. Um somatório, represetado pela letra grega

Leia mais

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012 Prova Parcial Aluo(a): Data: 8/2/202. (,5p) Use regras de iferêcia para provar que os argumetos são válidos. (usar os símbolos proposicioais idicados): A Rússia era uma potêcia superior, e ou a Fraça ão

Leia mais

Provas de Matemática Elementar - EAD. Período

Provas de Matemática Elementar - EAD. Período Provas de Matemática Elemetar - EAD Período 01. Sérgio de Albuquerque Souza 4 de setembro de 014 UNIVERSIDADE FEDERAL DA PARAÍBA CCEN - Departameto de Matemática http://www.mat.ufpb.br/sergio 1 a Prova

Leia mais

INTERPOLAÇÃO POLINOMIAL

INTERPOLAÇÃO POLINOMIAL 1 Mat-15/ Cálculo Numérico/ Departameto de Matemática/Prof. Dirceu Melo LISTA DE EXERCÍCIOS INTERPOLAÇÃO POLINOMIAL A aproximação de fuções por poliômios é uma das ideias mais atigas da aálise umérica,

Leia mais

S E Q U Ê N C I A S E L I M I T E S. Prof. Benito Frazão Pires. Uma sequência é uma lista ordenada de números

S E Q U Ê N C I A S E L I M I T E S. Prof. Benito Frazão Pires. Uma sequência é uma lista ordenada de números S E Q U Ê N C I A S E L I M I T E S Prof. Beito Frazão Pires Uma sequêcia é uma lista ordeada de úmeros a, a 2,..., a,... ) deomiados termos da sequêcia: a é o primeiro termo, a 2 é o segudo termo e assim

Leia mais

1.1. Ordem e Precedência dos Cálculos 1) = Capítulo 1

1.1. Ordem e Precedência dos Cálculos 1) = Capítulo 1 Capítulo. Aritmética e Expressões Algébricas O estudo de cálculo exige muito mais que o cohecimeto de limite, derivada e itegral. Para que o apredizado seja satisfatório o domíio de tópicos de aritmética

Leia mais

Séquências e Séries Infinitas de Termos Constantes

Séquências e Séries Infinitas de Termos Constantes Capítulo Séquêcias e Séries Ifiitas de Termos Costates.. Itrodução Neste capítulo estamos iteressados em aalisar as séries ifiitas de termos costates. Etretato, para eteder as séries ifiitas devemos ates

Leia mais

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal.

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal. Apêdice B Elemetos de Matemática Este apêdice apreseta tópicos de matemática que podem ser ecessários para completo etedimeto do texto pricipal B Somatórios B Um somatório, represetado pela letra grega

Leia mais

3ª Lista de Exercícios de Programação I

3ª Lista de Exercícios de Programação I 3ª Lista de Exercícios de Programação I Istrução As questões devem ser implemetadas em C. 1. Desevolva um programa que leia dois valores a e b ( a b ) e mostre os seguites resultados: (1) a. Todos os úmeros

Leia mais

Projeto e Análise de Algoritmos Aula 2: Função de Complexidade Notação Assintótica (GPV 0.3)

Projeto e Análise de Algoritmos Aula 2: Função de Complexidade Notação Assintótica (GPV 0.3) Projeto e Aálise de Algoritos Aula 2: Fução de Coplexidade Notação Assitótica (GPV 0.3) DECOM/UFOP 202/2 5º. Período Aderso Aleida Ferreira Material desevolvido por Adréa Iabrudi Tavares BCC 24/202-2 BCC

Leia mais

binomial seria quase simétrica. Nestas condições será também melhor a aproximação pela distribuição normal.

binomial seria quase simétrica. Nestas condições será também melhor a aproximação pela distribuição normal. biomial seria quase simétrica. Nestas codições será também melhor a aproximação pela distribuição ormal. Na prática, quado e p > 7, a distribuição ormal com parâmetros: µ p 99 σ p ( p) costitui uma boa

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Aálise de Algoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT-234 4) Árvores balaceadas AVL, Rubro-Negras, B-Trees Operações em árvores biárias de busca Numa

Leia mais

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase Prova Escrita de MATEMÁTICA A - 1o Ao 00 - a Fase Proposta de resolução GRUPO I 1. Como a probabilidade do João acertar em cada tetativa é 0,, a probabilidade do João acertar as tetativas é 0, 0, 0, 0,

Leia mais

Ordenação. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Ordenação. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Ordeação David Meotti Algoritmos e Estruturas de Dados II DIf UFPR Critério de Ordeação Ordea-se de acordo com uma chave: typedef it ChaveTipo; typedef struct ChaveTipo Chave; /* outros compoetes */ Item;

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Uiversidade Federal de Alfeas Projeto e Aálise de Algoritmos Aula 07 Notações θ, Ω, ω, ο humberto@bcc.uifal-mg.edu.br Última aula Notação O Uma fução f domia assitoticamete outra fução g se existem duas

Leia mais

Abordagens para Resolução de Problemas

Abordagens para Resolução de Problemas Abordagens para Resolução de Problemas UDESC - Universidade do Estado de Santa Catarina Departamento de Ciência da Computação CAL - Complexidade de Algoritmos Teodoro Alberto Borges Junior Abordagens para

Leia mais

3. Seja C o conjunto dos números complexos. Defina a soma em C por

3. Seja C o conjunto dos números complexos. Defina a soma em C por Eercícios Espaços vetoriais. Cosidere os vetores = (8 ) e = ( -) em. (a) Ecotre o comprimeto de cada vetor. (b) Seja = +. Determie o comprimeto de. Qual a relação etre seu comprimeto e a soma dos comprimetos

Leia mais

Métodos de Classificação dos Objetos Segmentados(IAR) Vizinho Próximo Lógica Fuzzy

Métodos de Classificação dos Objetos Segmentados(IAR) Vizinho Próximo Lógica Fuzzy Viziho Próximo ógica Fuzzy Métodos de Classificação dos Objetos Segmetados(IAR) objeto REGRA CASSE Fuzzy Cohecimeto Miima Distâcia Viziho Próximo O método do viziho próximo é baseado o método da míima

Leia mais

Fundamentos de Análise Matemática Profª Ana Paula. Sequência Infinitas

Fundamentos de Análise Matemática Profª Ana Paula. Sequência Infinitas Fudametos de Aálise Matemática Profª Aa Paula Sequêcia Ifiitas Defiição 1: Uma sequêcia umérica a 1, a 2, a 3,,a,é uma fução, defiida o cojuto dos úmeros aturais : f : f a Notação: O úmero é chamado de

Leia mais

Universidade Federal Fluminense ICEx Volta Redonda Introdução a Matemática Superior Professora: Marina Sequeiros

Universidade Federal Fluminense ICEx Volta Redonda Introdução a Matemática Superior Professora: Marina Sequeiros 3. Poliômios Defiição: Um poliômio ou fução poliomial P, a variável x, é toda expressão do tipo: P(x)=a x + a x +... a x + ax + a0, ode IN, a i, i = 0,,..., são úmeros reais chamados coeficietes e as parcelas

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Aálise de Algoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT-234 3) Estruturas de dados elemetares Filas, pilhas e árvores Alocação estática versus diâmica

Leia mais

Interpolação. Interpolação Polinomial

Interpolação. Interpolação Polinomial Iterpolação Iterpolação Poliomial Objetivo Iterpolar uma fução f(x) cosiste em aproximar essa fução por uma outra fução g(x), escolhida etre uma classe de fuções defiidas (aqui, usaremos poliômios). g(x)

Leia mais

Dessa forma, concluímos que n deve ser ímpar e, como 120 é par, então essa sequência não possui termo central.

Dessa forma, concluímos que n deve ser ímpar e, como 120 é par, então essa sequência não possui termo central. Resoluções das atividades adicioais Capítulo Grupo A. a) a 9, a 7, a 8, a e a 79. b) a, a, a, a e a.. a) a, a, a, a 8 e a 6. 9 b) a, a 6, a, a 9 e a.. Se a 9 e a k são equidistates dos extremos, etão existe

Leia mais

Fundamentos de Análise Matemática Profª Ana Paula. Números reais

Fundamentos de Análise Matemática Profª Ana Paula. Números reais Fudametos de Aálise Matemática Profª Aa Paula Números reais 1,, 3, cojuto dos úmeros aturais 0,1,,3, cojuto dos úmeros iteiros p q /p e q cojuto dos úmeros racioais a, a 0 a 1 a a, a e a i 0, 1,, 3, 4,

Leia mais

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[], r[], r[],, r[-], cada item a lista é chamado registro.

Leia mais

XIX Semana Olímpica de Matemática. Nível U. Algumas Técnicas com Funções Geratrizes. Davi Lopes

XIX Semana Olímpica de Matemática. Nível U. Algumas Técnicas com Funções Geratrizes. Davi Lopes XIX Semaa Olímpica de Matemática Nível U Algumas Técicas com Fuções Geratrizes Davi Lopes O projeto da XIX Semaa Olímpica de Matemática foi patrociado por: Algumas Técicas com Fuções Geratrizes Davi Lopes

Leia mais

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves 1 Algoritmos e Programação Liguagem Computacioal Estruturas de Cotrole: Estruturas de Decisão ou de Seleção Prof. Dr. Adriao Casia Prof. Dr. Leadro Alves Neves O que veremos: Estruturas de Cotrole de Fluxo

Leia mais

Ordenação (Parte 1) Prof. Túlio Toffolo BCC202 Aula 13 Algoritmos e Estruturas de Dados I

Ordenação (Parte 1) Prof. Túlio Toffolo  BCC202 Aula 13 Algoritmos e Estruturas de Dados I Ordeação (Parte 1) Prof. Túlio Toffolo http://www.toffolo.com.br BCC0 Aula 13 Algoritmos e Estruturas de Dados I Critério de Ordeação Ordea-se de acordo com uma chave: typedef it TChave; typedef struct

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011 Campus Pato Braco Prova Parcial Matemática Discreta para Computação 20 Aluo(a): Data: 08/04/20. (,5p) Explicar o Paradoxo de Cator. Use como base o seguite: Teorema de Cator: Para qualquer cojuto A, a

Leia mais

Sequências, PA e PG material teórico

Sequências, PA e PG material teórico Sequêcias, PA e PG material teórico 1 SEQUÊNCIA ou SUCESSÃO: é todo cojuto ode cosideramos os seus elemetos colocados, ou dispostos, uma certa ordem. Cosiderado a sequêcia (; 3; 5; 7;...), dizemos que:

Leia mais

PROF. DR. JACQUES FACON

PROF. DR. JACQUES FACON 1 PUCPR- Potifícia Uiversidade Católica Do Paraá PPGIA- Programa de Pós-Graduação Em Iformática Aplicada PROF. DR. JACQUES FACON LIMIARIZAÇÃO POR MATRIZ DE CO-OCORRÊNCIA Resumo: O método da matriz de co-ocorrêcia,

Leia mais

4.2 Numeração de funções computáveis

4.2 Numeração de funções computáveis 4. Numeração de fuções computáveis 4.1 Numeração de programas 4.2 Numeração de fuções computáveis 4.3 O método da diagoal 4.4 O Teorema s-m- Teresa Galvão LEIC - Teoria da Computação I 4.1 4.1 Numeração

Leia mais

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari MATEMÁTICA II Profa. Dra. Amada Liz Pacífico Mafrim Perticarrari amada@fcav.uesp.br Ecotre a área da região que está sob a curva y = f x de a até b. S = x, y a x b, 0 y f x Isso sigifica que S, ilustrada

Leia mais

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari MATEMÁTICA II Profa. Dra. Amada Liz Pacífico Mafrim Perticarrari amada@fcav.uesp.br O PROBLEMA DA ÁREA O PROBLEMA DA ÁREA Ecotre a área da região que está sob a curva y = f x de a até b. S = x, y a x b,

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT34 Estruturas de Dados, Aálise de Aoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT34 6) Ordeação HeapSort, QuicSort, Rede Bitôica A estrutura heap Heap é uma árvore biária com duas propriedades:

Leia mais

Aplicações lineares. Capítulo Seja T: a) Quais dos seguintes vectores estão em Im( T )? 1 i) 4. 3 iii) ii)

Aplicações lineares. Capítulo Seja T: a) Quais dos seguintes vectores estão em Im( T )? 1 i) 4. 3 iii) ii) Capítulo Aplicações lieares Seja T: R R a multiplicação por 8 a) Quais dos seguites vectores estão em Im( T )? i) ii) 5 iii) b) Quais dos seguites vectores estão em Ker( T)? i) ii) iii) c) Qual a dimesão

Leia mais

Distribuições Amostrais

Distribuições Amostrais 9/3/06 Uiversidade Federal do Pará Istituto de Tecologia Estatística Aplicada I Prof. Dr. Jorge Teófilo de Barros Lopes Campus de Belém Curso de Egeharia Mecâica 3/09/06 3:38 ESTATÍSTICA APLICADA I - Teoria

Leia mais

Numeração de funções computáveis. Nota

Numeração de funções computáveis. Nota Numeração de fuções computáveis 4.1 Nota Os presetes acetatos foram baseados quase a sua totalidade os acetatos realizados pela Professora Teresa Galvão da Uiversidade de Porto para a cadeira Teoria da

Leia mais

Como se decidir entre modelos

Como se decidir entre modelos Como se decidir etre modelos Juliaa M. Berbert Quado uma curva é lei de potecia? O procedimeto amplamete usado para testar movimetação biológica a fim de ecotrar padrões de busca como Voos de Levy tem

Leia mais

Distribuições Amostrais

Distribuições Amostrais 7/3/07 Uiversidade Federal do Pará Istituto de Tecologia Estatística Aplicada I Prof. Dr. Jorge Teófilo de Barros Lopes Campus de Belém Curso de Egeharia Mecâica 3/07/07 09:3 ESTATÍSTICA APLICADA I - Teoria

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Uiversidade Federal de Alfeas Algoritmos em Grafos Aula 02 Coceitos Básicos Prof. Humberto César Bradão de Oliveira Última aula Histórico dos Grafos Abstração por Euller; Utilização em Química; Utilização

Leia mais

= o logaritmo natural de x.

= o logaritmo natural de x. VI OLIMPÍ IEROMERIN E MTEMÁTI UNIVERSITÁRI 8 E NOVEMRO E 00 PROLEM [5 potos] Seja f ( x) log x 0 = o logaritmo atural de x efia para todo 0 f+ ( x) = f() t dt = lim f() t dt x 0 ε 0 ε Prove que o limite

Leia mais

SUCESSÕES DE NÚMEROS REAIS. Sucessões

SUCESSÕES DE NÚMEROS REAIS. Sucessões SUCESSÕES DE NÚMEROS REAIS Sucessões Chama-se sucessão de úmeros reais ou sucessão em IR a toda a aplicação f do cojuto IN dos úmeros aturais em IR, f : IN IR f ( ) = x IR Chamamos termos da sucessão aos

Leia mais

Exame Final Nacional de Matemática Aplicada às Ciências Sociais a Fase

Exame Final Nacional de Matemática Aplicada às Ciências Sociais a Fase Exame Nacioal de Matemática Aplicada às Ciêcias Sociais 2013-1. a Fase Proposta de resolução 1. 1.1. Aplicado o método descrito, icluido o tema Festas, temos: Potuação do tema Bullig: 3 415 + 1 370 + 2

Leia mais

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO 5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO 5.1 INTRODUÇÃO Um sistema é defiido como todo o cojuto de compoetes itercoectados, previamete determiados, de forma a realizar um cojuto

Leia mais

O termo "linear" significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2

O termo linear significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2 MÓDULO 4 - PROBLEMAS DE TRANSPORTE Baseado em Novaes, Atôio Galvão, Métodos de Otimização: aplicações aos trasportes. Edgar Blücher, São Paulo, 978..CONCEITOS BÁSICOS DE PROGRAMAÇÃO LINEAR É uma técica

Leia mais

2.2. Séries de potências

2.2. Séries de potências Capítulo 2 Séries de Potêcias 2.. Itrodução Série de potêcias é uma série ifiita de termos variáveis. Assim, a teoria desevolvida para séries ifiitas de termos costates pode ser estedida para a aálise

Leia mais

Cap. 4 - Estimação por Intervalo

Cap. 4 - Estimação por Intervalo Cap. 4 - Estimação por Itervalo Amostragem e iferêcia estatística População: cosiste a totalidade das observações em que estamos iteressados. Nº de observações a população é deomiado tamaho=n. Amostra:

Leia mais

CONHECIMENTOS ESPECÍFICOS

CONHECIMENTOS ESPECÍFICOS CESPE/UB FUB/0 fa 5 4 CONHECIMENTOS ESPECÍFICOS 60 As distribuições B e C possuem os mesmos valores para os quartis Q e Q, e o quartil superior em B correspode ao quartil cetral (Q ) da distribuição A.

Leia mais

O Algoritmo de Ordenação Smoothsort Explicado

O Algoritmo de Ordenação Smoothsort Explicado O Algoritmo de Ordeação Smoothsort Explicado Adré L. Pfitzer adrepfitzer@gmail.com Paulo E. D. Pito pauloedp@ime.uerj.br Rosa Maria E. M. da Costa rcosta@ime.uerj.br Istituto de Matemática e Estatística

Leia mais

5 Teoria dos Valores Extremos

5 Teoria dos Valores Extremos Teoria dos Valores Extremos 57 5 Teoria dos Valores Extremos A Teoria dos Valores Extremos vem sedo bastate utilizada em campos ligados a evetos raros. Sua estatística é aplicada a estimação de evetos

Leia mais

BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS. 1 a Edição

BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS. 1 a Edição BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS 1 a Edição Rio Grade 2017 Uiversidade Federal do Rio Grade - FURG NOTAS DE AULA DE CÁLCULO

Leia mais

Análise de Algoritmos

Análise de Algoritmos Aálise de Algoritmos Após estudar este capítulo, você deverá ser capaz de: hh Defiir e usar os seguites coceitos: Aálise de algoritmo Complexidade Custo temporal Custo espacial Pior caso Melhor caso Caso

Leia mais

n ) uma amostra aleatória da variável aleatória X.

n ) uma amostra aleatória da variável aleatória X. - Distribuições amostrais Cosidere uma população de objetos dos quais estamos iteressados em estudar uma determiada característica. Quado dizemos que a população tem distribuição FX ( x ), queremos dizer

Leia mais

CARACTERIZAÇÃO DO CONJUNTO EQUILIBRADOR PARA GRAFOS COM GAP NULO

CARACTERIZAÇÃO DO CONJUNTO EQUILIBRADOR PARA GRAFOS COM GAP NULO CARACTERIZAÇÃO DO CONJUNTO EQUILIBRADOR PARA GRAFOS COM GAP NULO Maximiliao Pito Damas Programa de Egeharia de Produção Uiversidade Federal do Rio de Jaeiro e-mail: maxdamas@hotmailcom Lilia Markezo Núcleo

Leia mais

Aula 3 : Somatórios & PIF

Aula 3 : Somatórios & PIF Aula 3 : Somatórios & PIF Somatório: Somatório é um operador matemático que os permite represetar facilmete somas de um grade úmero de parcelas É represetado pela letra maiúscula do alfabeto grego sigma

Leia mais

Exame Final Nacional de Matemática Aplicada às Ciências Sociais Época especial

Exame Final Nacional de Matemática Aplicada às Ciências Sociais Época especial Exame Fial Nacioal de Matemática Aplicada às Ciêcias Sociais 016 - Época especial Proposta de resolução 1. Aplicado o primeiro método para o apurameto do vecedor, temos: N o. de votos 615 300 435 150 Total

Leia mais

Um estudo das permutações caóticas

Um estudo das permutações caóticas Um estudo das permutações caóticas Trabalho apresetado como atividade do PIPE a disciplia Matemática Fiita do Curso de Matemática o 1º semestre de 2009 Fabrício Alves de Oliveira Gabriel Gomes Cuha Grégory

Leia mais

Faculdade Campo Limpo Paulista Mestrado em Ciência da Computação Complexidade de Algoritmos Avaliação 2

Faculdade Campo Limpo Paulista Mestrado em Ciência da Computação Complexidade de Algoritmos Avaliação 2 Faculdade Campo Limpo Paulista Mestrado em Ciêcia da Computação Complexidade de Algoritmos Avaliação 2. (2,0): Resolva a seguite relação de recorrêcia. T() = T( ) + 3 T() = 3 Pelo método iterativo progressivo.

Leia mais

Estatística: Aplicação ao Sensoriamento Remoto SER ANO Teoria da amostragem

Estatística: Aplicação ao Sensoriamento Remoto SER ANO Teoria da amostragem Estatística: Aplicação ao Sesoriameto Remoto SER 04 - ANO 017 Teoria da amostragem Camilo Daleles Reó camilo@dpi.ipe.br http://www.dpi.ipe.br/~camilo/estatistica/ Algumas Cosiderações... É importate ter

Leia mais

Elevando ao quadrado (o que pode criar raízes estranhas),

Elevando ao quadrado (o que pode criar raízes estranhas), A MATEMÁTICA DO ENSINO MÉDIO, Vol. Soluções. Progressões Aritméticas ) O aumeto de um triâgulo causa o aumeto de dois palitos.logo, o úmero de palitos costitui uma progressão aritmética de razão. a a +(

Leia mais

Problema de Fluxo de Custo Mínimo

Problema de Fluxo de Custo Mínimo Problema de Fluo de Custo Míimo The Miimum Cost Flow Problem Fluo de Custo Míimo O Problema de Fluo de Custo Míimo (The Miimum Cost Flow Problem) Este problema possui papel pricipal etre os modelos de

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter

Leia mais

2 OPERAÇÕES E REPRESENTAÇÃO BÁSICAS EM 2D

2 OPERAÇÕES E REPRESENTAÇÃO BÁSICAS EM 2D 2 OPERAÇÕES E REPRESENTAÇÃO BÁSICAS EM 2D Neste capítulo abordaremos os aspectos pricipais em um sistema gráfico 2D: Trasformações 2D e o Sistema de Coordeadas Homogêeo Como Modelamos as Traformações de

Leia mais

Sucessão ou Sequência. Sucessão ou seqüência é todo conjunto que consideramos os elementos dispostos em certa ordem. janeiro,fevereiro,...

Sucessão ou Sequência. Sucessão ou seqüência é todo conjunto que consideramos os elementos dispostos em certa ordem. janeiro,fevereiro,... Curso Metor www.cursometor.wordpress.com Sucessão ou Sequêcia Defiição Sucessão ou seqüêcia é todo cojuto que cosideramos os elemetos dispostos em certa ordem. jaeiro,fevereiro,...,dezembro Exemplo : Exemplo

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Abordagens para Resolução de Problemas

Leia mais

1 Amintas engenharia

1 Amintas engenharia 1 Amitas egeharia 2 Cálculo Numérico 1. Itrodução Amitas Paiva Afoso 3 1. Itrodução O que é o Cálculo Numérico? 4 1. Itrodução O Cálculo Numérico correspode a um cojuto de ferrametas ou métodos usados

Leia mais

Escola de Engenharia de Lorena EEL USP Departamento de Engenharia Química DEQUI Disciplina: Normalização e Controle da Qualidade NCQ

Escola de Engenharia de Lorena EEL USP Departamento de Engenharia Química DEQUI Disciplina: Normalização e Controle da Qualidade NCQ 1 Escola de Egeharia de orea EE SP Departameto de Egeharia Química DEQI Disciplia: Normalização e Cotrole da Qualidade NCQ Capítulo : Amostragem por Variáveis (MI STD 1) SEÇÃO A.1 Objetivo Este capítulo

Leia mais

Lista de Exercícios #6 Assunto: Propriedade dos Estimadores e Métodos de Estimação

Lista de Exercícios #6 Assunto: Propriedade dos Estimadores e Métodos de Estimação Assuto: Propriedade dos Estimadores e Métodos de Estimação. ANPEC 08 - Questão 6 Por regulametação, a cocetração de um produto químico ão pode ultrapassar 0 ppm. Uma fábrica utiliza esse produto e sabe

Leia mais

CPV O cursinho que mais aprova na fgv

CPV O cursinho que mais aprova na fgv CPV O cursiho que mais aprova a fgv FGV ecoomia a Fase 0/dezembro/0 MATEMÁTICA 0. Chamaremos de S() a soma dos algarismos do úmero iteiro positivo, e de P() o produto dos algarismos de. Por exemplo, se

Leia mais

Implementação de Planilha de Cálculos Simplificada

Implementação de Planilha de Cálculos Simplificada INF 1620 Estruturas de Dados Semestre 08.2 Primeiro Trabalho Implemetação de Plailha de Cálculos Simplificada Uma plailha de cálculos é um programa muito utilizado em aplicações fiaceiras e aquelas que,

Leia mais

MATEMÁTICA CADERNO 1 CURSO E FRENTE 1 ÁLGEBRA. Módulo 1 Equações do 1 ọ Grau e

MATEMÁTICA CADERNO 1 CURSO E FRENTE 1 ÁLGEBRA. Módulo 1 Equações do 1 ọ Grau e MATEMÁTICA CADERNO CURSO E FRENTE ÁLGEBRA Módulo Equações do ọ Grau e do ọ Grau ) [ ( )] = [ + ] = + = + = + = = Resposta: V = { } 9) Na equação 6 = 0, tem-se a = 6, b = e c =, etão: I) = b ac = + = b

Leia mais

AMOSTRAGEM ALEATÓRIA DISTRIBUIÇÕES POR AMOSTRAGEM

AMOSTRAGEM ALEATÓRIA DISTRIBUIÇÕES POR AMOSTRAGEM 6 AMOSTRAGEM ALEATÓRIA DISTRIBUIÇÕES POR AMOSTRAGEM Quado se pretede estudar uma determiada população, aalisam-se certas características ou variáveis dessa população. Essas variáveis poderão ser discretas

Leia mais