Programação Dinâmica. Programação Dinâmica Partição de Inteiros. Programação Dinâmica Partição de Inteiros. Programação Dinâmica Partição de Inteiros
|
|
- Maria da Assunção Campos Bastos
- 6 Há anos
- Visualizações:
Transcrição
1 Notas de aula da disciplina IME -8 ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Partição de Inteiros Dado n inteiro, determinar o número de maneiras de particionamento de n. Eemplo : n = maneiras distintas: novembro/ Eemplo : n = maneiras distintas: Partição de Inteiros Formulação recursiva: dado n, T(n, p) = número de partições onde a maior parcela p T(n, p) =, se (n < ) ou (p = ) T(n, p) =, se (n = ) T(n, p) = T(n p, p) + T(n, p - ), n > Procura-se obter T(n, n). Pode-se implementar a recursão com memorização. Partição de Inteiros T(n, p) =, se (n < ) ou (p = ) T(n, p) =, se (n = ) T(n, p) = T(n p, p) + T(n, p - ), n > Quer-se obter T(n, n). A idéia da programação dinâmica é evitar a recursão, de forma análoga à memorização, mas calculando, de forma bottom-up, todos os subproblemas menores do que o problema a ser solucionado. Neste caso, é possível usar a idéia da PD! Partição de Inteiros T(n, p) =, se (n < ) ou (p = ) T(n, p) =, se (n = ) T(n, p) = T(n p, p) + T(n, p - ), n > Quer-se obter T(n, n). Para implementar PD, calcular T(n, p) em ordem crescente por n e p, começando por qualquer um dos dois parâmetros. Partição de Inteiros T(n, p) =, (n < ) ou (p = ) T(n, p) =, (n = ) T(n, p) = T(n p, p) + T(n, p - ), (n > ) Algoritmo (por linha): Para p de a n: T[, p] ; Para i de a n: T[i, ] ; Para p de a n: Se (i p) Então T[i, p] T[i, p-] + T[i-p, p]; Senão T[i, p] T[i, p-]; Compleidade: O(n )
2 Partição de Inteiros T(n, p) =, (n < ) ou (p = ) T(n, p) =, (n = ) T(n, p) = T(n p, p) + T(n, p - ), (n > ) Algoritmo (por coluna): T[,] ; Para i de a n: T[i, ] ; Para p de a n: Para i de a n: Se (i p) Então T[i, p] T[i, p-] + T[i-p, p]; Senão T[i, p] T[i, p-]; Partição de Inteiros Cálculo de T(, ) Partição de Inteiros ES Completar a tabela abaio, para n = Dados os tipos de moedas de um país, determinar o número de maneiras distintas para dar um troco de valor n. Eemplo: V = {,,,,,} m = n = Há maneiras distintas:,,,,,,...,,,,,,,...,,...,...,,,,,,,,,...,,,...,,..., Formulação recursiva: dados m, n T(p, n) = formas distintas de dar um troco n, usando os p tipos iniciais de moedas, V[]...V[p] T(p, n) =, (n < ) T(p, n) =, (n = ) T(p, n) = Σ T(i, n V[i]), (n > ), i p A solução do problema é obter T(m, n). Eemplo: V = {,,,,,} m = n = Há maneiras distintas: T(, -)= T(,-) --- T(, )= T(,-) --- T(, )= T(, ), T(, )= T(, ),,,,,...,,,,,,,...,,...,... T(, )= T(, ),,,,,,,,,..,,,..,,..,.. T(, - ) = T(, ),...
3 Eemplo: V = {,,,,, } m =, n = A solução por PD consiste em preencher a tabela m n por ordem crescente do tamanho dos subproblemas, sem necessidade de recursão. Há duas formas de fazer isso: + ou + E. da a forma: V = {,,,,, } Eercício: Completar a tabela abaio para n = V = {,, } ES: Preencher a tabala para n = T(p, n) =, (n < ) ou (p = ) T(p, n) =, (n = ) T(p, n) = Σ i p T(i, n V[i]), (n > ) Algoritmo, com preenchimento linha coluna: ; Para p de a m: T[p, ] ; Para i de a n: tot ; Para k de a p: Se ((i V[k]) ) Então tot tot + T[k, i V[k]]; T[p, i] tot; Compleidade: O(n.m ) Fim; PD Memorização V = {,,,,, }
4 Outra formulação recursiva: dados m, n T(p, n) = formas distintas de dar um troco n, usando os p tipos iniciais de moedas, V[]...V[p] T(p, n) =, (n < ) ou (p = ) T(p, n) =, (n = ) T(p, n) = T(p, n V[p]) + T(p-, n), (n > ) A solução do problema é obter T(m, n). Eemplo: V = {,,,,, } m =, n = Mochila (/) Dada uma mochila com capacidade M e t ítens com peso w i cada, verificar se eiste uma combinação de itens que preencha eatamente a mochila. Eemplo: Dado o conjunto de ítens {,,, 9, }, é possível preencher eatamente mochilas com capacidades e, mas não é possível preencher mochila com capacidade. Mochila (/) Define-se K(q, n) = = indicador de solução quando se usa os q itens iniciais numa mochila de capacidade n. =- não há solução, cc indica o menor índice de ítem que que completa a mochila. Formulação recursiva: K(q, n) =, se n =, K(q, n) = K(q-, n), se K(q-,n) -, n M; q t; K(q, n) = q, se K(q-, n-p q ) -, n M; q t; K(q, n) = -, nos demais casos Mochila (/) K(q, n) =, se n =, K(q, n) = K(q-, n), se K(q-,n) -, n M; q t; K(q, n) = q, se K(q-, n-p q ) -, n M; q t; K(q, n) = -, nos demais casos K[, ] ; Para j de a M: K[, j] -; Para i de a t: Para j de a M: Se (K[i-, j] -) Então K[i, j] K[i-, j] Senão Se (j P[i]) e (K[i-, j-p[i]] -) Então K[i, j] i; Senão K[i, j] -; Compleidade: O(t.M) Mochila (/) Eemplo: P= {,,, 9, } M = Obs: - não representado () () () (9) ()
5 Mochila (/) P = {,,, 9, } ES: Completar a tabela abaio para M = () Mochila (/) Apresentação de uma solução Solução: j M; Enquanto (j ): Escrever (P[K[t, j]]): j j - P[K[t,j]]; Fe; Fim; Para M =, a saída seria: 9 () () (9) () () () () (9) () Mochila (/) P = {,,, 9, } Eercício: Encontrar a solução para M = 9 () () () (9) () Mochila (/) outras versões a) usar dois valores booleanos em cada célula, o primeiro indicando se há solução e o segundo se o ítem atual é o de menor índice para a solução () () () (9) () Eemplo: P = {,,, 9, } M = Obs: célula em branco com (F,F) VF VF VV VF VV VF VV VF VF VV VF VV VF VV VV VF VF VF VF VF VVVF VF VVVF VVVV VV VF VF VF VF VF VF VF VF VF VF VF VF VVVF VV Mochila (/) outras versões b) usar um vetor ao invés de uma matriz Eemplo: P = {,,, 9, } M = Mochila (/) outras versões b) usar um vetor ao invés de uma matriz Eemplo: P = {,,, 9, } M = K[] ; Para j de a M: K[j] -; Para i de a t: Para j de M descendo a P[i]: Se (K[j] = -) e (K[j-P[i]] ) Então K[j] i; Eercício: mostrar a situação do vetor acima após o processamento de cada ítem, a partir da situação inicial:
6 Mochila (/) outras versões Mochila (/) outras versões b) usar um vetor ao invés de uma matriz ES: mostrar a situação do vetor para o problema mochila para M =, e ítens: {,,,, }: Problema Ferry Loading (Val ) Tem-se um ferry de comprimento lf, duas linhas para carros e uma fila dada de carros, com seus comprimentos lc i. Quer-se saber quantos carros podem ser carregados, obedecendo-se a fila. Dados: n carros de comprimentos lc i dados e o ferry com comprimento lf. lf = 9 Fila:,,,,,,, Sol: (/, /, /, /, /) Mochila (/) outras versões b) usar um vetor ao invés de uma matriz Problema Ferry Loading (Val ) Tem-se um ferry de comprimento lf, duas linhas para carros e uma fila dada de carros, com seus comprimentos lc i. Quer-se saber quantos carros podem ser carregados, obedecendo a fila. lf = 9, lc = (,,,,,,, ) 8 9 tot SIT V V V - - V - - V - - F Mochila (/) outras versões Problema Ferry Loading (Val ) - Escolha dos carros K[*] -; K[] ; F[*] ; i ; lotado F; tot ; Enquanto (i t) E (não lotado): tot tot + lc[i]; lotado V; Para j descendo de lf a lc[i]: Se (K[j-lc[i]] > -) E ((tot-j) lf) Então lotado F; F[i] ; Se (K[j] = -) Então k[j] i; i i+; Fe; Fim; Mochila (/) outras versões Problema Ferry Loading (Val ) - Determinação das filas i lf; Enquanto (K[i] = -): i i-; Fe; Enquanto (i > ): j K[i]; F[j] ; i i-lc[j]; Fe; Fim; Vetor K Vetor F 8 9 SIT - - F i 8 9 Mochila (/) outras versões c) contar o número de soluções Eemplo: P = {,,,, } M = 8 9
7 Mochila (/) outras versões Mochila (/) outras versões c) contar o número de soluções K[] ; Para j de a M: K[j] ; Para i de a t: Para j decrescendo de M a P[i]: K[j] = K[j] + K[j-P[i]]; ES: mostrar o preenchimento do vetor para contar o número de soluções para M =, e ítens: {,,,,}: Mochila (/) outras versões d) contar o número de itens na solução Eemplo: P = {,,, 9, } M = Mochila (/) outras versões d) contar o número de itens na solução Eemplo: P = {,,, 9, } M = K[,] ; Para j de a M: K[,j] -; Para i de a t: Para j de a M: K[i,j] -; Para r decrescendo de i a : Para j de P[i] a M: Se (K[r, j] = -) e (K[r-,j-P[i]] ) Então K[r, j] i; Mochila (/) outras versões d) contar o número de itens na solução Problema Tug of War (Val ) Tem-se n competidores, e são dados os pesos de cada um. Quer-se dividir as pessoas em dois times tal que o número de competidores difira no máimo em e a soma dos pesos deve ser mínima. Indicar os pesos de cada grupo. Dados: n = 9 Pesos:,,, 8, 9,,,, 8 Sol: (,,,,,,,, ) Mochila (/) outras versões d) contar o número de itens na solução Problema Joys of Farming (Val ) Tem-se n casas, cada uma com quartos, em cada quarto um número variável de camas. Quer-se distribuir m moças e r rapazes pelas casas, tal que em cada quarto só tenha ou moças ou rapazes e não podendo os dois quartos de uma mesma casa serem ocupados pelo mesmo seo. É possível fazer a distribuição? Dados: n =, m =, r = Quartos: /8, /, /, /, / Sol: S (moças:,,,, rapazes: 8,,,, )
8 Mochila (/) - ES: mostrar o preenchimento da matriz para mostrar o número de ítens na solução M =, e ítens: {,,,,}: Mochila (/) outras versões e) Mochila com peso e valor: a cada ítem, além do peso(p) é associado um valor(v). O objetivo passa a ser determinar o valor máimo que pode comportar a mochila E: P = {(,), (,), (,), (9,), (,)} M = Mochila (/) outras versões Peso e Valor E: P = {(,), (,), (,), (9,), (,)} M = Mochila (/) outras versões Peso e Valor e) Mochila com peso e valor: a cada ítem, além do peso(w) é associado um valor(v). O objetivo passa a ser determinar o valor máimo que pode comportar a mochila E: P, V = {(,), (,), (,), (9,), (,)} M = K[].me ; K[].vm ; Para j de a M: K[j].me -; K[j].vm ; Para i de a t: Para j descendo de M a P[i]: Se (K[j-P[i]].me ) e (K[j].vm < (K[j-P[i]].vm+V[i])) Então K[j].me i; K[j].vm K[j-P[i]].vm+V[i]; Obs: K[j].me = menor índice que obtém o valor máimo K[j].vm = valor máimo Mochila (/) outras versões - Peso e Valor ES8: mostrar a situação do vetor para os seguintes ítens, M =. E: P, V = {(,), (,), (,), (,)} M = Mochila (/) outras versões - Peso e Valor f) Mochila múltiplos itens: eistem infinitos objetos de cada tipo de ítem E: P = {,,, 9, } M =
9 Mochila outras versões f) Mochila múltiplos itens: eistem infinitos objetos de cada tipo de ítem E: P = {,,, 9, } M = Mochila outras versões g) Mochila com múltiplos itens, cada um com peso e valor: a cada ítem, além do peso(p) é associado um valor(v). O objetivo passa a ser determinar o valor máimo que pode comportar a mochila E: W = {(,), (,), (,), (9,), (,)} M = K[] ; Para j de a M: K[j] -; Para i de a t: Para j de P[i] a M: Se (K[j-P[i]] ) e (K[j] = -) Então K[j] i; (valores da versão /) Mochila outras versões g) Mochila com múltiplos itens, cada um com peso e valor: a cada ítem, além do peso(w) é associado um valor(v). O objetivo passa a ser determinar o valor máimo que pode comportar a mochila E: P, V = {(,), (,), (,), (9,), (,)} M = K[].me ; K[].vm ; Para j de a M: K[j].me -; K[j].vm ; Para i de a t: Para j de P[i] a M: Se (K[j-P[i]].me ) e (K[j].vm < (K[j-P[i]].vm+V[i]) Então K[j].me i; K[j].vm K[j-P[i]].vm+V[i]; Mochila (/) Ítens múltiplos ES9: mostrar a situação do vetor para os seguintes ítens, M =, E: P, V = {(,), (,), (,), (,)} M = a) Sem considerar o valor b) Considerando o valor Mochila outras versões h) Mochila com ítens fracionáveis: cada ítem pode ser fracionado. Será visto adiante (Guloso) i) Mochila mista: parte dos itens não fracionáveis e parte fracionáveis. Será visto adiante (PD+Guloso) Mochila PD Backtracking -Muitos itens pequenos S = {,,,, 9,,,,, 8,,,,,,,,,,, } é melhor PD -Poucos itens grandes S = {., 9.99,.,., 899.,..,...8,.99..} é melhor BK
10 Problemas com paradigma da "diagonal" Alguns problemas com solução por PD requerem que se eamine todos os subproblemas relativos a intervalos consecutivos de um vetor, ou seja intervalos (,), (,)...(,n),(,)...(n-,n)(n,n). Neste caso, o resultado ótimo para cada intervalo (i,j), com j i é guardado na célula (i,j) de uma matriz M n n, que geralmente é preenchida por diagonais, onde cada diagonal representa dada diferença de índices j-i, dos diversos intervalos. Só é preenchido o "triângulo" superior da matriz, Problemas apresentados são: Produto de Matrizes e Jogo da Soma. Produto de Matrizes Dada uma sequência de matrizes que devem ser multiplicadas, determinar a ordem ótima de multiplicação (aquela que requer o menor número de operações), considerando que o produto é associativo. Eemplo: M ( ) M ( ) M ( ) M ( ) O produto pode ser feito de inúmeras maneiras, dentre as quais: ((M M ) (M M )) (M ((M M ) M )) Produto de Matrizes Associatividade M (a b) M (b c) M (c d) a) ((M M ) M ) = M (a d), (M M ) = M (a c) M ij = Σ k c M ik M kj = Σ k c (Σ t b M it M tk,) M kj = Σ k c Σ t b M it M tk M kj b) (M (M M )) = M (a d), (M M ) = M (b d) M ij = Σ t b M it M tj = Σ t b M it (Σ k c M itk M kj ) = Σ k c Σ t b M it M tk M kj Produto de Matrizes Quantidade de operações M (a b) M (b c) a b c produtos a (b-) c somas Produto de Matrizes Mais de duas matrizes M ( ) M ( ) M ( ) M ( ) a) ((M M ) (M M )) + + = = b) (M ((M M ) M )) + + = = Produto de Matrizes Formulação recursiva Vetor de dimensões: M i (r i- r i ) n r r r r n T[i, j] = núm. mínimo de operações p/ obter M i... M j T[i, j] = min i k <j {T[i, k]+t[k+,j] + r i- r k r j } T[i, i] = Produto de Matrizes Implementação com PD M M M M A idéia é calcular os produtos ótimos M i... M j em ordem crescente da diferença j i: T[,], T[,], T[,], T[,] T[,], T[,], T[,] T[,], T[,] T[,], a solução buscada!
11 Produto de Matrizes Implementação com PD M M M M j i = Produto de Matrizes Implementação com PD M M M M j i = Produto de Matrizes Implementação com PD M M M M j i = Produto de Matrizes Implementação com PD M M M M j i = T[,] k = T[,]+T[,]+r.r.r = =. k = T[,]+T[,]+r.r.r = = T[,] k = T[,]+T[,]+r.r.r = =. k = T[,]+T[,]+r.r.r = =. Produto de Matrizes PD - j i = M M M M T[,] k = T[,]+T[,]+r.r.r = =. k = T[,]+T[,]+r.r.r = =. Produto de Matrizes PD - Solução Custo Melhor k k = T[,]+T[,]+r.r.r = = 8. Multiplicação ótima: ((M (M M )) M )
12 Produto Matrizes T[i, j] = min{t[i, k]+t[k+,j] + r i- r k r j } i k <j T[i, i] = Quer-se encontrar T[, n]. Para k de a n: T[k, k] ; Para d de a n : Para i de n - d: j i + d; T[i, j] ; Para k de i até j : Se ((T[i, k] + T[k+, j] + r[i-].r[k].r[j]) < T[i, j]) Então T[i, j] T[i, k] + T[k+, j] + r[i-].r[k].r[j]; MK[i, j] k; Compleidade: O(n ) Produto de Matrizes M M M M ES: Calcular a pior maneira de multiplicar as matrizes acima. Produto Matrizes Impressão da epressão: baseada em uma recorrência sobre a matriz MK Epressao(i,j) { retorna String } Se (i = j) Então Retornar 'M' + i; Senão Retornar '(' + Epressao(i,MK[i,j])+ '' + Epressao(MK[i,j]+,j) + ')'; Fim; Jogo da Soma Dado um vetor V contendo inteiros, determinar ao melhor resultado para o seguinte jogo: os jogadores retiram, em turnos, quantos elementos quiserem do vetor, desde que seja de uma das pontas. A solução é maimizar a diferença entre os dois jogadores, levando em conta que os dois jogam de maneira ótima. Para o vetor abaio, a maior diferença possível é : o primeiro retira e ; o segundo retira, o primeiro retira - e o segundo -, com a diferença (+-)-(-) =. - - Jogo da Soma - Recorrência M(i,i) = V(i) M(i,j) = ma( Ac(i,j), Ac(i,k) - M(k+,j), i k <j, Ac(k,j) - M(i, k-), i< k j, ) O primeiro termo da maimização corresponde à retirada de todos os números i a j; o segundo, às retiradas da ponta esquerda e o trceiro, às retiradas da ponta direita do vetor. Jogo da Soma - Algoritmo Para k de a n: T[k, k] V[k]; VA[] ; Para k de a n: VA[k] VA[k-]+V[k]; Para d de a n : Para i de n - d: j i + d; T[i, j] VA[j]-VA[i-]; MI[i, j] (i, j); Para k de i até j : Se ((T[i, j] < (VA[k]-VA[i-]-T[k+,j])) Então T[i, j] VA[k]-VA[i-]-T[k+,j]; MI[i, j] (i, k); Para k de i+ até j: Se ((T[i, j] < (VA[j]-VA[k-]-T[i, k-])) Então T[i, j] VA[j]-VA[k-]-T[i,k-]; MI[i, j] (k, j);
13 Jogo da Soma - Eemplo: Jogo da Soma - Eemplo: V - - V - - Diagonal de diferença de índices= - - Diagonal de diferença de índices= - - M(,) = ma(-, --(-), --(-)) = M(,) = ma(-, --(), -(-)) = M(,) = ma(, -(), -()) = M(,) = ma(, -(), -()) = Jogo da Soma - Eemplo: Jogo da Soma - Eemplo: V - - V - - Diagonal de diferença de índices= Diagonal de diferença de índices= M(,) = ma(-, --(), --(), -(), --(-) =- M(,) = ma(-, --(), --(), -(), -(-)) = M(,) = ma(, -(), -(), -(), -()) = M(,) = ma(-, --(), --(),--(), -(-),-(), --(-))= M(,) = ma(-, --(), --(), --(), -(),-(),-(-)) =8 Jogo da Soma - Eemplo: Jogo da Soma - Eemplo: V - - V - - Maior diferença Melhor intervalo Diagonal de diferença de índices= M(,) = ma(-, --(8), --(), --(),--(), -(), -(-), -(), -(-)) =
14 Distância de Edição Dados dois strings A e B, quer-se determinar a menor sequência de operações p/ transformar A em B. Os tipos de operação são: -inserção de um caracter -deleção de um caractér -substituição de um caractér Eemplo: ERRO transforma-se em ACERTO mediante operações: -inserção do A AERRO -inserção do C ACERRO -substituição do R ACERTO Distância de Edição - Formulação recursiva Dados os substrings A i (primeiros i caracteres) e B j, D(i, j) = distância de edição entre A i e B j = D(i-, j-), se a i = b j min(d(i-, j), D(i, j-), D(i-, j-)) +, se a i b j Deleção de a i Inserção de bj Substituição de a i por b j Cálculo da Distância de Edição A C E R T O E R R O Distância de Edição D(i, j) = D(i-, j-) =, se a i = b j min(d(i-, j), D(i, j-), D(i-, j-)) +, se a i b j Para i de a n: D[i, ] i; Para i de a m: D[, i] i; Para i de a n: Para j de a m: Se (A[i] = B[j]) Então D[i, j] D[i-, j-]; Senão D[i, j] min(d[i-, j-], D[i-, j], D[i, j-])+; Compleidade: O(n.m) Distância de Edição - Apresentando a transformação A C E R T O E R R O Distância de Edição - Apresentando a transformação M A R R O M A M O R A
15 Distância de Edição - Apresentando a transformação Transf(i,j); Se (i>) ou (j>) Se (A[i] = B[j]) Então Transf(i-,j-); Escrever 'Manteve' A[i]; Senão Se ((j > ) e D[i,j] = D[i,j-]+) Então Transf(i,j-); Escrever 'Inseriu' B[j]; Senão Se ((i > ) e D[i,j] = D[i-,j]+) Então Transf(i-,j); Escrever 'Deletou' A[i]; Senão Transf(i-,j-); Escrever 'Transformou' A[i] 'em' B[j]; Fs; Fim; Eternamente: Transf(n,m); Distância de Edição ES: Determinar a distância de edição do seu ALSTRING(8 letras iniciais do nome) para o do colega. Mostrar duas transformações mínimas do primeiro string para o segundo. Eercício - a) Resolver intuitivamente o seguinte problema: Qual o valor máimo possível da soma dos números obtidos pela concatenação dos dígitos do particionamento do vetor de dígitos em segmentos consecutivos de a dígitos? Eercício - b) Escrever uma recorrência para o problema: Qual o valor máimo possível da soma dos números obtidos pela concatenação dos dígitos do particionamento do vetor de dígitos em segmentos consecutivos de a dígitos? Eercício - c) Escrever um algoritmo de PD para o problema: Qual o valor máimo possível da soma dos números obtidos pela concatenação dos dígitos do particionamento do vetor de dígitos em segmentos consecutivos de a dígitos? Eercício - d) Escrever um algoritmo de PD para o problema: Qual a maneira de particionar um vetor de dígitos em partições de a dígitos, tal que a soma dos números resultantes da concatenação dos dígitos de cada partição seja máima?
16 Eercício - a) Escrever a recorrência que indica o número de caminhos mínimos distintos entre os pontos (,) e (n,m) em um grid de dimensões n m, onde há obstáculos em alguns pontos de cruzamento (no máimo n- obstáculos)., Eercício b) Escrever um algoritmo de PD para a formulação anterior.,,, Eercício c) Mostrar o preenchimento da matriz para o eemplo abaio., Eercício - a) Escrever a recorrência que indica o número mínimo de quadrados, T(a,b) que podem ser obtidos com cortes transversais em uma chapa de dimensões a b. Eemplo: a =, b=, Eercício - Eercício - b) Escrever um algoritmo de PD para o problema descrito. Eemplo: a =, b= c) Preencher a matriz relativa ao eemplo. Eemplo: a =, b=
17 FIM
Programação Dinâmica Partição de Inteiros
Notas de aula da disciplina IME -8 ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/9 Partição de Inteiros Dado n inteiro, determinar o número de maneiras
Leia maisBacktracking. Backtracking
Notas de aula da disciplina IME 0-0 ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) É uma técnica de solução de problemas (construção de algoritmos) que eamina
Leia maisMétodo Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo
Notas de aula da disciplina IME - ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Troco mínimo Dados os tipos de moedas de um país, determinar o número mínimo
Leia maisProgramação dinâmica
Programação dinâmica CLRS 15.2 15.3 = recursão com tabela = transformação inteligente de recursão em iteração Algoritmos p. 1 Multiplicação iterada de matrizes Se A é p q e B é q r então AB é p r. (AB)[i,j]
Leia maisIntrodução à Análise Algoritmos
Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor
Leia maisAnálise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Leia maisProgramação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares
Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para
Leia maisProgramação Dinâmica. Prof. Anderson Almeida Ferreira
Programação Dinâmica Prof. Anderson Almeida Ferreira Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para maior (bottom-up) Tabelas ou memorização É uma técnica de
Leia maisAULA 15. Algoritmos p.600/637
AULA 15 Algoritmos p.600/637 Programação dinâmica CLRS 15.1 15.3 = recursão com tabela = transformação inteligente de recursão em iteração Algoritmos p.601/637 Programação dinâmica "Dynamic programming
Leia maisMATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26
AULA 26 MATRIZES - PARTE 2 26. Mais exemplos Nesta aula, veremos mais dois algoritmos envolvendo matrizes. O primeiro deles calcula a matriz resultante da multiplicação de duas matrizes e utiliza três
Leia maisDivisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).
Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir
Leia mais5ª Lista de Exercícios de Programação I
5ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. Questões que envolvam leitura de matrizes, a construção dessas matrizes pode ser realizada através da geração
Leia maisAula 5 - Produto Vetorial
Aula 5 - Produto Vetorial Antes de iniciar o conceito de produto vetorial, precisamos recordar como se calculam os determinantes. Mas o que é um Determinante? Determinante é uma função matricial que associa
Leia maisAprendizado de Máquina
Aprendizado de Máquina Template Matching Luiz Eduardo S. Oliveira Universidade Federal do Paraná Departamento de Informática http://lesoliveira.net October 25, 2012 Luiz S. Oliveira (UFPR) Aprendizado
Leia maisProgramação Dinâmica. Prof. Marcio Delamaro ICMC/USP
Programação Dinâmica Prof. Marcio Delamaro ICMC/USP Características Resolve problemas combinando soluções para subproblemas Características Resolve problemas combinando soluções para subproblemas Opa!!!
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 11 de agosto de 2017 Marco Antonio
Leia maisAlgoritmos de Ordenação. Profº Carlos Alberto T. Batista
Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e
Leia maisUNIVERSIDADE FEDERAL DE ITAJUBÁ CANDIDATO: CURSO PRETENDIDO: SOLUÇÃO
UNIVERSIDADE FEDERAL DE ITAJUBÁ GABARITO DE CÁLCULO PROVA DE TRANSFERÊNCIA INTERNA, EXTERNA E PARA PORTADOR DE DIPLOMA DE CURSO SUPERIOR - // CANDIDATO: CURSO PRETENDIDO: OBSERVAÇÕES: Prova SEM consulta
Leia maisTópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial
Armando Matos, 2008/2009 Tópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial 1. Optimizar o produto de matrizes Considere o problema da parentização óptima de uma multiplicação
Leia maisComplexidade 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 maisDesafios de Programação
Desafios de Programação 2018.1 Programação Dinâmica É um método de projeto de algoritmos que utiliza a memorização para melhorar a eficiência de um algoritmo. Método parecido com o de divisão e conquista
Leia maisExercícios: Recursão
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial
Leia maisAlgoritmos para Automação e Sistemas. Programação Dinâmica. Universidade Federal do Amazonas Departamento de Eletrônica e Computação
Algoritmos para Automação e Sistemas Programação Dinâmica Universidade Federal do Amazonas Departamento de Eletrônica e Computação Roteiro Programação Dinâmica Problemas de Otimização Linha de Montagem
Leia maisDivisão e conquista. Eficiência de divisão e conquista
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Leia maisIndu c ao Matem atica Indu c ao Matem atica T opicos Adicionais
Indução Matemática Indução Matemática Tópicos Adicionais Indução Matemática Indução Matemática Eercícios Introdutórios Eercício Prove por indução que: + + + n n(n + ) Eercício Prove que + + 5 + + (n )
Leia maisDivisão e conquista. Há divisão quando o algoritmo tem pelo menos 2 chamadas recursivas no corpo
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Leia maisEXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS
UNIVERSIDADE SALGADO DE OLIVEIRA CURSO DE SISTEMAS DE INFORMAÇÃO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO I PROF: GIULIANO PRADO DE MORAIS GIGLIO EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS 0) Faça um algoritmo
Leia maisANÁLISE NUMÉRICA. Sistemas Lineares (3) 5º P. ENG. DE COMPUTAÇÃO/TELECOMUNICAÇÃO/CONTROLE FACIT / Prof. Rodrigo Baleeiro Silva
ANÁLISE NUMÉRICA Sistemas Lineares () 5º P. ENG. DE COMPUTAÇÃO/TELECOMUNICAÇÃO/CONTROLE FACIT / Prof. Rodrigo Baleeiro Silva Decomposição LU Um matriz quadrada A pode ser escrita como o produto de duas
Leia maisPROGRAMAÇÃO DINÂMICA
PROGRAMAÇÃO DINÂMICA Programação dinâmica é tipicamente aplicada para problemas de otimização. O desenvolvimento de um algoritmo de programação dinâmica pode ser divido em 4 etapas. Caracterizar uma solução
Leia maisANÁLISE DE ALGORITMOS
ANÁLISE DE ALGORITMOS Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo agosto 2009 Introdução P. Feofiloff (IME-USP) Análise de Algoritmos agosto 2009 2 / 102 Introdução
Leia maisParadigmas de programação
Paradigmas de programação 1 Paradigma? Um paradigma é algo que serve de exemplo ou modelo. Sinônimos: Padrão Prototipo 2 Paradigma de programação? É uma proposta tecnológica. Fornece uma visão do programador
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando
Leia maisReferências: Notas de aulas do Prof. Silvio Alexandre de Araujo
Programação Inteira Referências: Notas de aulas do Prof Silvio Aleandre de Araujo http://wwwdcceibilceunespbr/~saraujo/ Material da Professora Gladys Castillo do Departamento de Matemática da Universidade
Leia maisAlgoritmos em Strings
Algoritmos em Strings R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Índice Pesquisa exacta (string matching) Pesquisa aproximada (approximate string matching)
Leia maisAlgoritmos gulosos (greedy)
Algoritmos gulosos (greedy) CLRS 16.1 e mais... Algoritmos p. 1 Algoritmos gulosos Algoritmo guloso procura ótimo local e acaba obtendo ótimo global costuma ser muito simples e intuitivo muito eficiente
Leia maisÁLGEBRA LINEAR A FICHA 2
Instituto Superior Técnico Departamento de Matemática Secção de Álgebra e Análise Última actualização: 7/Out/3 ÁLGEBRA LINEAR A FICHA SOLUÇÕES SUMÁRIAS DOS EXERCÍCIOS ÍMPARES Matrizes: Inversão e Formas
Leia maisProblema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números
Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Leia maisAnálise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
Leia maisÁrvore Binária de Busca Ótima
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms
Leia maisLista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
Leia maisIntrodução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
Leia maisTeoria dos Grafos Aula 23
Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação
Leia maisProjeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi
Leia maisMat.Semana. PC Sampaio Alex Amaral Rafael Jesus Gabriel Ritter. (Gabriella Teles)
7 PC Sampaio Ale Amaral Rafael Jesus Gabriel Ritter Semana (Gabriella Teles) Este conteúdo pertence ao Descomplica. Está vedada a cópia ou a reprodução não autorizada previamente e por escrito. Todos os
Leia maisResolução de Sistemas Lineares. Ana Paula
Resolução de Sistemas Lineares Sumário 1 Aula Anterior 2 Decomposição LU 3 Decomposição LU com Pivotamento 4 Revisão Aula Anterior Aula Anterior Aula Anterior Aula Anterior Eliminação de Gauss Transforma
Leia maisClasses, Herança e Interfaces
Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011
Leia maisFundamentos de Matemática Curso: Informática Biomédica
Fundamentos de Matemática Curso: Informática Biomédica Profa. Vanessa Rolnik Artioli Assunto: sequências e matrizes 05 e 06/06/14 Sequências Def.: chama-se sequência finita ou n-upla toda aplicação f do
Leia maisAula 10: Introdução a Vetores e Matrizes
Aula 10: Introdução a Vetores e Matrizes Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda
Leia maisListas Lineares. Alocação Encadeada. Notas de aula da disciplina IME ESTRUTURAS DE DADOS I
Notas de aula da disciplina I 04-0820 STUTUAS D DADOS I Paulo ustáuio Duarte Pinto (pauloedp arroba ime.uerj.br) Listas encadeadas: - Conceitos - Buscas/Inserções/deleções de elementos - Pilhas e Filas
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Leia maisCI811 Tópicos em Algoritmos
CI811 Tópicos em Algoritmos Problemas 15 de junho de 2016 Aqui segue uma lista com alguns problemas computacionais para serem trabalhados pelos alunos da disciplina de Tópicos em Algoritmos (CI811) do
Leia maisOBMEP 2010 Soluções da prova da 2ª Fase Nível 2. Questão 1
Questão a) Para saber o número que deve dizer ao matemágico, Joãozinho deve fazer quatro contas: ª conta: multiplicar o número no cartão escolhido por 2; 2ª conta: somar 3 ao resultado da primeira conta;
Leia maisCIC 111 Análise e Projeto de Algoritmos II
CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 27 Square root algorithms Combining algorithms Integer partitions Mo s algorithm Square
Leia maisAlgoritmo Simplex para Programação Linear I
EA Planejamento e Análise de Sistemas de Produção Algoritmo Simple para Programação Linear I DCA-FEEC-Unicamp Modelo de Programação Linear ma c ( n ) s. a. A b A ( m n) b ( m ) c ( n) P ( R n A b} Poliedro
Leia maisActividade Formativa 1
Actividade Formativa 1 Resolução 1. a. Dada a função y 3+4x definida no conjunto A {x R: 2 x < 7} represente graficamente A e a sua imagem; exprima a imagem de A como um conjunto. b. Dada a função y 3
Leia maisSistemas Lineares - Eliminação de Gauss
1-28 Sistemas Lineares - Andréa Maria Pedrosa Valli Laboratório de Computação de Alto Desempenho (LCAD) Departamento de Informática Universidade Federal do Espírito Santo - UFES, Vitória, ES, Brasil 2-28
Leia maisProblema de designação
Departamento de Engenharia de Produção UFPR 48 Problema de designação Imagine, que em uma gráfica eiste uma única máquina e um único operador apto a operá-la. Como você empregaria o trabalhador? Sua resposta
Leia maisMÉTODOS DE OTIMIZAÇÃO ENE081
UNIVERSIDADE FEDERAL DE JUIZ DE FORA Graduação em Engenharia Elétrica MÉTODOS DE OTIMIZAÇÃO ENE8 PROF. IVO CHAVES DA SILVA JUNIOR E-mail: ivo.junior@uj.edu.br Aula Número: 9 Disciplina Métodos de Otimização
Leia maisGrafos: caminhos (matriz adjacência)
Grafos: caminhos (matriz adjacência) Algoritmos e Estruturas de Dados 2 Graça Nunes 1 O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível entre duas cidades do Brasil
Leia maisTópicos em Algoritmos. André Guedes
Tópicos em Algoritmos André Guedes 31 de agosto de 2017 Sumário 1 Aulas 1 2 Introdução 2 3 Problemas Computacionais e Algoritmos 4 3.1 Definições............................. 4 3.2 Correção e eficiência.......................
Leia maisParadigmas de Projetos de Algoritmos
Paradigmas de Projetos de Algoritmos Luciana Assis 9 de junho de 2016 Luciana Assis (UFVJM) 9 de junho de 2016 1 / 36 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão
Leia maisRefletores de Householder e Fatoração QR
Refletores de Householder e Fatoração QR Antonio Elias Fabris Instituto de Matemática e Estatística Universidade de São Paulo Map 2210 Aplicações de Álgebra Linear Antonio Elias Fabris (IME-USP) Householder
Leia maisENE006. Fluxo de Potência Ótimo. Prof:Ivo Chaves da Silva Junior. Análise de Sistemas de Potência II. Faculdade de Engenharia Departamento de Energia
Faculdade de Engenharia Departamento de Energia ENE6 Análise de Sistemas de Potência II 3 Fluo de Potência Ótimo NR- ivo.junior@uj.edu.br Pro:Ivo Chaves da Silva Junior DESPACHO ECONÔMICO DE SISTEMAS HIDROTÉRMICOS
Leia maisTeoria dos Grafos Aula 22
Teoria dos Grafos Aula 22 Aula passada Caminho mais curto entre todos os pares Algoritmo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto Algoritmo de Bellman Ford Melhorias Caminho
Leia maisEspaço amostral Ω: Conjunto enumerável de todos os possíveis resultados de um experimento aleatório. um evento elementar. E = E[X j ] X j.
Universidade Tecnológica Federal do Paraná Professor Murilo V G da Silva Notas de aula Algoritmos Avançados I (Aula 04 Conteúdos da aula: [CLR09: cap 7 e 9][MIE05 4, 5] Vamos estudar nesta aula três algoritmos
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 11: Introdução aos Grafos Indução Finita Indução Finita é uma técnica para provar teoremas também usada no projecto de algoritmos. Suponha
Leia maisÁ lgebra para intermedia rios Ma ximos, mí nimos e outras ideias u teis
Á lgebra para intermedia rios Ma imos, mí nimos e outras ideias u teis 0) O que veremos na aula de hoje? Máimos e mínimos em funções do º grau Máimos e mínimos por trigonometria Máimos e mínimos por MA
Leia maisExercícios sobre algoritmos
Exercícios sobre algoritmos Exercícios envolvendo estruturas de decisão Fazer um algoritmo para: 1) Receber um número do usuário e mostrar se esse número é par ou não par 2) Receber 3 valores numéricos,
Leia maisn Programação Dinâmica n Exemplo: Sequência de Fibonnaci n Problemas de Otimização n Multiplicação de Matrizes n Principios de Programação Dinâmica
Proeto e Análise e Algoritmos Altigran Soares a Silva Universiae Feeral o Amazonas Departamento e Ciência a Computação Roteiro Exemplo: Sequência e Fibonnaci Problemas e Otimização Multiplicação e Matrizes
Leia maisSistemas de Equações Lineares Algébricas
Sistemas de Equações Lineares Algébricas A 11 x 1 + A 12 x 2 +... + A 1n x n = b 1 A 21 x 1 + A 22 x 2 +... + A 2n x n = b 2............... A n1 x1 + A n2 x 2 +... + A nn x n = b n A 11 A 12... A 1n x
Leia maisCADERNO DE EXERCÍCIOS ALGORITMOS
J. EXERCÍCIOS SOBRE MODULARIZAÇÃO 77. Faça uma função que recebe um número inteiro por parâmetro e retorna verdadeiro se ele for par e falso se for ímpar. 78. Escreva um programa que leia o raio de um
Leia maisOtimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana
Otimização Linear Profª : Adriana Departamento de Matemática adriana@fc.unesp.br wwwp.fc.unesp.br/~adriana Problema da Mistura minimizar f ( 1, 2,..., n ) = c 1 1 + c 2 2 +... + c n n Sujeito a: a 11 1
Leia maisGabarito da Lista de Exercícios sobre Recursão e Relação de Recorrência
Universidade Federal Fluminense Curso: Sistemas de Informação Disciplina: Fundamentos Matemáticos para Computação Professora: Raquel Bravo Gabarito da Lista de Exercícios sobre Recursão e Relação de Recorrência
Leia maisÁlgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares
universidade de aveiro departamento de matemática Álgebra Linear e Geometria Anaĺıtica Agrupamento IV (ECT, EET, EI) Capítulo 1 Matrizes e Sistemas de Equações Lineares Geometria anaĺıtica em R 3 [1 01]
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo
Leia maisResolução de sistemas de equações lineares: Fatorações de matrizes
Resolução de sistemas de equações lineares: Fatorações de matrizes Marina Andretta/Franklina Toledo ICMC-USP 27 de agosto de 2012 Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires. Marina
Leia maisAULA 17. Algoritmos p.662/695
AULA 17 Algoritmos p.662/695 Mochila Dados dois vetores x[1.. n] e w[1.. n], denotamos por x w o produto escalar w[1]x[1] + w[2]x[2] + + w[n]x[n]. Suponha dado um número inteiro não-negativo W e vetores
Leia maisLista de Exercícios Algoritmos Vetores. 10) Escreva um algoritmo em PORTUGOL que armazene em um vetor todos os números
Universidade Federal de Minas Gerais - UFMG Instituto de Ciências Eatas - ICE Disciplina: Programação de Computadores Professor: David Menoti (menoti@dcc.ufmg.br) Monitor: João Felipe Kudo (joao.felipe.kudo@terra.com.br)
Leia maisFaculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote. Exercícios com Vetores e Matrizes
Faculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote Exercícios com Vetores e Matrizes 1. Leia um vetor de 12 posições e em seguida ler também dois valores X e Y quaisquer correspondentes
Leia maisSolução de Recorrências
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia maisEstruturas de Repetição WHILE e DO- WHILE
Universidade Federal do Pampa UNIPAMPA Campus Itaqui RS Engenharia de Agrimensura Introdução à Programação (prof. Dr. Rogério Vargas) Lista 2 (entrega: 1 de junho de 2015) Instruções: Trabalhos iguais
Leia maisResolução de sistemas de equações lineares: Fatorações de matrizes
Resolução de sistemas de equações lineares: Fatorações de matrizes Marina Andretta/Franklina Toledo ICMC-USP 27 de fevereiro de 2015 Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires. Marina
Leia maisTeoria dos Grafos Aula 24
Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo
Leia maisAlgoritmos de Ordenação
Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca
Leia maisPrimeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:
UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM167 Teoria da Computação Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Primeira Lista de Exercícios 2005/1 Exercício
Leia maisIFSP Campus Guarulhos
IFSP Campus Guarulhos TLP Técnica e Linguagem de Programação Prof: Dennis Funções Dividir para conquistar... René Descartes, em seu tratado O discurso sobre o método, diz que uma das regras para atacar
Leia maisQuestão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):
CI240 Fundamentos de Programação Nome: Instruções para a prova A prova é sem consulta; A prova dura 1 hora e 40 minutos; Esta folha de enunciados deverá ser entregue ao professor junto com a folha de respostas;
Leia maisProgramação Dinâmica: Modelos Determinísticos
Programação Dinâmica: Modelos Determinísticos Prof. Fernando Augusto Silva Marins Departamento de Produção Faculdade de Engenharia Campus de Guaratinguetá UNESP www.feg.unesp.br/~fmarins fmarins@feg.unesp.br
Leia maisProgramação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
Leia maisProgramação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP
Programação de Computadores 1 Lista 2 Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP 0.1 Vetores e Cadeias de Caracteres 1. Codifique um programa que leia e armazene duas notas de 10 alunos e calcule
Leia maisFicha 1 Noções de sequência e decisão em algoritmia
Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 05 Técnicas de Projeto de Algoritmos (Programação Dinâmica) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force)
Leia maisTerça-feira, 7 de maio
15.053 Terça-feira, 7 de maio Formulações de Programação Inteira Distribuir: Anotações da Aula 1 Rápido Resumo de PD PD normalmente funciona para a tomada de decisões ao longo do tempo Objetivos das duas
Leia maisDINTER UFF/IFTM - Análise e Síntese de Algoritmos - Lista de Exercícios
DINTER UFF/IFTM - Análise e Síntese de Algoritmos - Lista de Exercícios - 2013 1. Uma pessoa sobe uma escada composta de n degraus, com passos que podem alcançar entre 1 e k n degraus. Escrever equações
Leia mais(versão preliminar) exceto possivelmente para x = a. Dizemos que o limite de f(x) quando x tende para x = a é um numero L, e escrevemos
LIMITE DE FUNÇÕES REAIS JOSÉ ANTÔNIO G. MIRANDA versão preinar). Revisão: Limite e Funções Continuas Definição Limite de Seqüências). Dizemos que uma seqüência de números reais n convergente para um número
Leia maisInterpolação polinomial
Quarto roteiro de exercícios no Scilab Cálculo Numérico Rodrigo Fresneda 8 de abril de 0 Guia para respostas: Entregue suas respostas às tarefas contidas no roteiro de cada uma das quatro atividades, incluindo
Leia maisExercício Obtenha, em cada caso, o módulo, o argumento e a forma trigonométrica de z: a) z = 1 + i. setor Aula 31. ρ = 1 2 +( 3 ) 2 ρ= 2.
setor 0 00408 Aula NÚMEROS COMPLEXOS: PLANO DE ARGAND-GAUSS Até este ponto, usamos, para representar um número complexo a expressão a + b i, em que a e b são números reais e i é a unidade imaginária Com
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 04 Técnicas de Projeto de Algoritmos (Método Guloso) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force) Dividir
Leia mais