Alinhamento de Seqüências Biológicas
|
|
- Valentina Leveck Almada
- 8 Há anos
- Visualizações:
Transcrição
1 Alinhamento de Seqüências Biológicas Rogério Theodoro de Brito Orientador: Prof. Dr. José Augusto Ramos Soares 1
2 Alinhamento de Seqüências Biológicas Motivação: realizar comparações entre espécies fazer estudo filogenético de espécies de interesse; observar evolução de trechos homólogos de proteínas ou de ácidos nucléicos; modelar famílias de seqüências; realizar buscas em bancos de dados de seqüências; Projetos de seqüenciamento (Genoma Humano, Genoma da Xylella fastidiosa) produzem grande quantidade de dados moleculares. Esses dados podem ser usados em comparações. 2
3 O Que é Um Alinhamento? Definição: Um alinhamento de k seqüências s 1,..., s k é uma disposição (forma de inserção) de espaços nas seqüências, de forma que elas fiquem todas com o mesmo comprimento.
4 O Que é Um Alinhamento? Definição: Um alinhamento de k seqüências s 1,..., s k é uma disposição (forma de inserção) de espaços nas seqüências, de forma que elas fiquem todas com o mesmo comprimento. Exemplo. Um alinhamento: TAGGTCA TAGCTA
5 O Que é Um Alinhamento? Definição: Um alinhamento de k seqüências s 1,..., s k é uma disposição (forma de inserção) de espaços nas seqüências, de forma que elas fiquem todas com o mesmo comprimento. Exemplo. Um alinhamento: Exemplo. Alinhamento melhor : TAGGTCA TAGCTA TAGGTCA TAGCT A Para comparar seqüências, o alinhamento 2 é melhor do que o 1: ele evidencia partes que são semelhantes e partes que são diferentes nas seqüências. 3
6 Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos.
7 Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos. Estratégia: atribuir pontuação para cada coluna do alinhamento e fazer a pontuação do alinhamento ser a soma das pontuações.
8 Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos. Estratégia: atribuir pontuação para cada coluna do alinhamento e fazer a pontuação do alinhamento ser a soma das pontuações. Possibilidades: dar pontuação baixa para colunas com caracteres parecidos e penalizar colunas com caracteres diferentes ; dar pontuação alta para colunas com caracteres parecidos e pontuação baixa para colunas com caracteres diferentes ;
9 Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos. Estratégia: atribuir pontuação para cada coluna do alinhamento e fazer a pontuação do alinhamento ser a soma das pontuações. Possibilidades: dar pontuação baixa para colunas com caracteres parecidos e penalizar colunas com caracteres diferentes ; dar pontuação alta para colunas com caracteres parecidos e pontuação baixa para colunas com caracteres diferentes ; Geralmente, usam-se tabelas (matrizes) com as pontuações de todos pares possíveis de caracteres (inclusive o espaço: ). 4
10 Escolha de Alinhamentos O problema de encontrar melhores alinhamentos (Problema APS) é um problema de otimização (encontrar mínimo ou máximo de um conjunto).
11 Escolha de Alinhamentos O problema de encontrar melhores alinhamentos (Problema APS) é um problema de otimização (encontrar mínimo ou máximo de um conjunto). Geralmente, usam-se duas funções-objetivo: No primeiro caso, para uma matriz c (freqüentemente métrica), definimos a distância d(s, t) entre s e t por d(s, t) = min {c(a)}; A
12 Escolha de Alinhamentos O problema de encontrar melhores alinhamentos (Problema APS) é um problema de otimização (encontrar mínimo ou máximo de um conjunto). Geralmente, usam-se duas funções-objetivo: No primeiro caso, para uma matriz c (freqüentemente métrica), definimos a distância d(s, t) entre s e t por d(s, t) = min {c(a)}; A No segundo caso, definimos a similaridade sim(s, t) de s e t por sim(s, t) = max {c(a)}. A 5
13 Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum.
14 Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum. Uma das principais é sua aditividade: c(a) = c(a )+c(a ), se A = (A : A ).
15 Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum. Uma das principais é sua aditividade: c(a) = c(a )+c(a ), se A = (A : A ). Mas há situações em que elas se comportam de forma diferente: distância é geralmente usada do ponto de vista teórico, por causa de propriedades como desigualdade triangular (essencial para alguns algoritmos de aproximação);
16 Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum. Uma das principais é sua aditividade: c(a) = c(a )+c(a ), se A = (A : A ). Mas há situações em que elas se comportam de forma diferente: distância é geralmente usada do ponto de vista teórico, por causa de propriedades como desigualdade triangular (essencial para alguns algoritmos de aproximação); similaridade é geralmente usada na prática (e.g., programas como Clustal) e é possível dar uma interpretação probabiĺıstica à similaridade, dependendo da matriz de pontuação em uso. 6
17 Problemas de Otimização Formalmente, os problemas de otimização são:
18 Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t).
19 Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t). Problema (Problema APS-Sim). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c, encontrar um alinhamento A tal que c(a ) = sim(s, t).
20 Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t). Problema (Problema APS-Sim). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c, encontrar um alinhamento A tal que c(a ) = sim(s, t). Observação: branco. É suficiente considerar apenas alinhamento sem colunas em
21 Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t). Problema (Problema APS-Sim). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c, encontrar um alinhamento A tal que c(a ) = sim(s, t). Observação: branco. É suficiente considerar apenas alinhamento sem colunas em O foco do trabalho é em problemas de minimização e distâncias. 7
22 Encontrando Alinhamentos Ótimos Estratégia 1: Observar todos alinhamentos, calcular pontuação de cada um e escolher o de menor pontuação.
23 Encontrando Alinhamentos Ótimos Estratégia 1: Observar todos alinhamentos, calcular pontuação de cada um e escolher o de menor pontuação. Problema: O número de alinhamentos cresce muito rápido conforme as seqüências crescem. Se N(n) é o número de alinhamentos entre 2 seqüências de tamanho n cada, então n ( ) 2n i N(n) = = Ω(4 n / n), n i, n i, i i=0
24 Encontrando Alinhamentos Ótimos Estratégia 1: Observar todos alinhamentos, calcular pontuação de cada um e escolher o de menor pontuação. Problema: O número de alinhamentos cresce muito rápido conforme as seqüências crescem. Se N(n) é o número de alinhamentos entre 2 seqüências de tamanho n cada, então n ( ) 2n i N(n) = = Ω(4 n / n), n i, n i, i Crescimento de N(n): i=0 n N(n)
25 Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva.
26 Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva. Observação importante: Há apenas 3 possibilidades para a última coluna A de um alinhamento A = (A : A ) de s[1.. m] e t[1.. n]: alinhar s[m] a um espaço em t: A = ( ) s[m] ; alinhar s[m] a t[n]: A = ( ) s[m] t[n] ; alinhar t[n] a um espaço em s: A = ( t[n]).
27 Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva. Observação importante: Há apenas 3 possibilidades para a última coluna A de um alinhamento A = (A : A ) de s[1.. m] e t[1.. n]: alinhar s[m] a um espaço em t: A = ( ) s[m] ; alinhar s[m] a t[n]: A = ( ) s[m] t[n] ; alinhar t[n] a um espaço em s: A = ( t[n]). Fazer uma busca recursiva com os prefixos de s e t correspondentes a cada possibilidade de A e escolher o melhor (segundo a pontuação).
28 Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva. Observação importante: Há apenas 3 possibilidades para a última coluna A de um alinhamento A = (A : A ) de s[1.. m] e t[1.. n]: alinhar s[m] a um espaço em t: A = ( ) s[m] ; alinhar s[m] a t[n]: A = ( ) s[m] t[n] ; alinhar t[n] a um espaço em s: A = ( t[n]). Fazer uma busca recursiva com os prefixos de s e t correspondentes a cada possibilidade de A e escolher o melhor (segundo a pontuação). Problema: O método ainda acaba fazendo uma enumeração exaustiva e leva muito tempo. 9
29 Propriedades do Problema 1. Propriedade das Subsoluções Ótimas: se um alinhamento ótimo A é da forma A = (A : A ), então A e A também são ótimos; 2. Propriedade dos Subproblemas Comuns: durante a resolução de um problema em termos de seus subproblemas, alguns subproblemas precisam ser resolvidos mais de uma vez.
30 Propriedades do Problema 1. Propriedade das Subsoluções Ótimas: se um alinhamento ótimo A é da forma A = (A : A ), então A e A também são ótimos; 2. Propriedade dos Subproblemas Comuns: durante a resolução de um problema em termos de seus subproblemas, alguns subproblemas precisam ser resolvidos mais de uma vez. Exemplo. Para encontrar recursivamente um alinhamento ótimo entre s[1.. m] e t[1.. n], o subproblema de encontrar um alinhamento entre s[1.. m 1] e t[1.. n 1] ocorre mais de uma vez (pelo menos 3 vezes).
31 Propriedades do Problema 1. Propriedade das Subsoluções Ótimas: se um alinhamento ótimo A é da forma A = (A : A ), então A e A também são ótimos; 2. Propriedade dos Subproblemas Comuns: durante a resolução de um problema em termos de seus subproblemas, alguns subproblemas precisam ser resolvidos mais de uma vez. Exemplo. Para encontrar recursivamente um alinhamento ótimo entre s[1.. m] e t[1.. n], o subproblema de encontrar um alinhamento entre s[1.. m 1] e t[1.. n 1] ocorre mais de uma vez (pelo menos 3 vezes). Problemas que possuem as duas propriedades acima podem ser resolvidos pela técnica de Programação Dinâmica. 10
32 Técnica de Programação Dinâmica e Alinhamentos Algoritmo de programação dinâmica para alinhamentos: proposto em 1970, por Needleman e Wunsch. Aparentemente já fazia parte do folclore dos pesquisadores da época. Às vezes é chamado Algoritmo de Wagner e Fischer, por um artigo de Como diversos outros algoritmos de programação dinâmica, opera em duas etapas. 11
33 Primeira Etapa: Algoritmo Dist Preenche uma matriz a de 2 dimensões.
34 Primeira Etapa: Algoritmo Dist Preenche uma matriz a de 2 dimensões. A posição a[i, j] contém a distância (pontuação de um alinhamento ótimo) dos prefixos s[1.. i] e t[1.. j]. De maneira geral, para i > 0 e j > 0, a[i 1, j] + c(s[i], ), a[i, j] = min a[i 1, j 1] + c(s[i], t[j]),. a[i, j 1] + c(, t[j])
35 Primeira Etapa: Algoritmo Dist Preenche uma matriz a de 2 dimensões. A posição a[i, j] contém a distância (pontuação de um alinhamento ótimo) dos prefixos s[1.. i] e t[1.. j]. De maneira geral, para i > 0 e j > 0, a[i 1, j] + c(s[i], ), a[i, j] = min a[i 1, j 1] + c(s[i], t[j]),. a[i, j 1] + c(, t[j]) Dependência entre células: a[i 1, j 1] a[i 1, j] a[i, j 1] a[i, j] Ao fim da etapa, a[m, n] contém a distância entre s e t. 12
36 Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta.
37 Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna).
38 Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima.
39 Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima. O Algoritmo Alinha opera determinando, uma a uma, as colunas do alinhamento.
40 Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima. O Algoritmo Alinha opera determinando, uma a uma, as colunas do alinhamento. Primeira coluna determinada é a última coluna do alinhamento: o algoritmo precisa invertê-las.
41 Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima. O Algoritmo Alinha opera determinando, uma a uma, as colunas do alinhamento. Primeira coluna determinada é a última coluna do alinhamento: o algoritmo precisa invertê-las. Complexidade de tempo e de espaço do método: O(mn) se s = m e t = n. 13
42 Formulação Alternativa de Programação Dinâmica Em vez de considerar possibilidades para última coluna, considera as possibilidades para a primeira (também há 3 possibilidades).
43 Formulação Alternativa de Programação Dinâmica Em vez de considerar possibilidades para última coluna, considera as possibilidades para a primeira (também há 3 possibilidades). Em vez de distâncias entre prefixos, o método preenche a matriz com distâncias entre sufixos de s e de t. Mais precisamente: o Algoritmo Dist-Rev preenche uma matriz a de forma que a[i, j] = d(s[i m], t[j n]).
44 Formulação Alternativa de Programação Dinâmica Em vez de considerar possibilidades para última coluna, considera as possibilidades para a primeira (também há 3 possibilidades). Em vez de distâncias entre prefixos, o método preenche a matriz com distâncias entre sufixos de s e de t. Mais precisamente: o Algoritmo Dist-Rev preenche uma matriz a de forma que a[i, j] = d(s[i m], t[j n]). Usando as propriedades básicas, preenche-se a com a fórmula: a[i, j] = min c(s[i + 1], ) + a[i + 1, j], c(s[i + 1], t[j + 1]) + a[i + 1, j + 1], c(, t[j + 1]) + a[i, j + 1]. Em particular, a[0, 0] = d(s, t). 14
45 Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1]
46 Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas.
47 Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas. Diferença: as colunas são obtidas na ordem direta, sem necessidade de invertê-las.
48 Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas. Diferença: as colunas são obtidas na ordem direta, sem necessidade de invertê-las. Funciona também em tempo e espaço O(mn).
49 Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas. Diferença: as colunas são obtidas na ordem direta, sem necessidade de invertê-las. Funciona também em tempo e espaço O(mn). As matrizes calculadas por Dist e Dist-Rev são importantes para, pelo menos, 2 outras situações. 15
50 Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo.
51 Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos).
52 Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos). Reduzir o espaço suficiente para computar d(s, t) é fácil: cada linha da matriz depende apenas de uma outra linha (Algoritmos Dist-EspLin e Dist-EspLin-Rev).
53 Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos). Reduzir o espaço suficiente para computar d(s, t) é fácil: cada linha da matriz depende apenas de uma outra linha (Algoritmos Dist-EspLin e Dist-EspLin-Rev). Como reduzir o espaço para computar não só a distância, mas também um alinhamento ótimo? Parece difícil, pois o método de seguir setas não pode ser mais usado: guardar apenas duas linhas da matriz perde informação.
54 Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos). Reduzir o espaço suficiente para computar d(s, t) é fácil: cada linha da matriz depende apenas de uma outra linha (Algoritmos Dist-EspLin e Dist-EspLin-Rev). Como reduzir o espaço para computar não só a distância, mas também um alinhamento ótimo? Parece difícil, pois o método de seguir setas não pode ser mais usado: guardar apenas duas linhas da matriz perde informação. Solução: usar o Paradigma de Divisão e Conquista. 16
55 Método de Economia de Espaço (cont.) Fato: Em um alinhamento de s e t, há apenas duas possibilidades para alinhar s[i]: alinhar-se a um caractere t[j], para algum j, ou alinhar-se a um espaço entre t[j] e t[j + 1], para algum j.
56 Método de Economia de Espaço (cont.) Fato: Em um alinhamento de s e t, há apenas duas possibilidades para alinhar s[i]: alinhar-se a um caractere t[j], para algum j, ou alinhar-se a um espaço entre t[j] e t[j + 1], para algum j. Em particular, um alinhamento ótimo A tem uma das formas: ( ( ) ( )) no primeiro caso, A = opt s[1.. i 1] t[1.. : s[i] j 1] t[j] : opt s[i+1.. m] t[j+1.. ; n] ( ( ) ( )) no segundo caso, A = opt s[1.. i 1] t[1.. : s[i] j] : opt s[i+1.. m] t[j+1... n] Para o paradigma da divisão e conquista, fixamos i (e.g., i = (1 + m)/2 ).
57 Método de Economia de Espaço (cont.) Fato: Em um alinhamento de s e t, há apenas duas possibilidades para alinhar s[i]: alinhar-se a um caractere t[j], para algum j, ou alinhar-se a um espaço entre t[j] e t[j + 1], para algum j. Em particular, um alinhamento ótimo A tem uma das formas: ( ( ) ( )) no primeiro caso, A = opt s[1.. i 1] t[1.. : s[i] j 1] t[j] : opt s[i+1.. m] t[j+1.. ; n] ( ( ) ( )) no segundo caso, A = opt s[1.. i 1] t[1.. : s[i] j] : opt s[i+1.. m] t[j+1... n] Para o paradigma da divisão e conquista, fixamos i (e.g., i = (1 + m)/2 ). Divisão: descobrimos qual dos dois casos ocorre para alinhar s[i] e o índice j associado; Conquista: aplicamos o método para sufixos e prefixos apropriados de s e t; Combinação: concatenamos, na ordem correta, os alinhamentos obtidos com a coluna já determinada no primeiro passo. 17
58 Divisão e Conquista Tarefa mais complicada: passo de divisão, para escolha do caso que ocorre e do índice apropriado. Calcula-se j que minimiza d(s[1.. i 1], t[1.. j 1])+c(s[i], t[j])+d(s[i+ 1.. m], t[j n]); Calcula-se j que minimiza d(s[1.. i 1], t[1.. j]) + c(s[i], ) + d(s[i m], t[j n]); Escolhe-se o melhor. As distâncias são facilmente calculadas em espaço linear por adaptações dos Algoritmos Dist e Dist-Rev.
59 Divisão e Conquista Tarefa mais complicada: passo de divisão, para escolha do caso que ocorre e do índice apropriado. Calcula-se j que minimiza d(s[1.. i 1], t[1.. j 1])+c(s[i], t[j])+d(s[i+ 1.. m], t[j n]); Calcula-se j que minimiza d(s[1.. i 1], t[1.. j]) + c(s[i], ) + d(s[i m], t[j n]); Escolhe-se o melhor. As distâncias são facilmente calculadas em espaço linear por adaptações dos Algoritmos Dist e Dist-Rev. Complexidade de espaço: com cuidados na implementação, pode ser feita em espaço O(m + n).
60 Divisão e Conquista Tarefa mais complicada: passo de divisão, para escolha do caso que ocorre e do índice apropriado. Calcula-se j que minimiza d(s[1.. i 1], t[1.. j 1])+c(s[i], t[j])+d(s[i+ 1.. m], t[j n]); Calcula-se j que minimiza d(s[1.. i 1], t[1.. j]) + c(s[i], ) + d(s[i m], t[j n]); Escolhe-se o melhor. As distâncias são facilmente calculadas em espaço linear por adaptações dos Algoritmos Dist e Dist-Rev. Complexidade de espaço: com cuidados na implementação, pode ser feita em espaço O(m + n). Complexidade de tempo: ainda é mantida em O(mn) (o tempo essencialmente dobra). 18
61 Método de Economia de Tempo (Quatro Russos) Originalmente proposto para multiplicação de matrizes booleanas e posteriormente (1980, Masek e Paterson) adaptado para distância de edição. Idéia básica: particionar a matriz de programação dinâmica em submatrizes de tamanho t t (t-blocos) e usar essas matrizes para ajudar no cálculo da matriz de programação dinâmica.
62 Método de Economia de Tempo (Quatro Russos) Originalmente proposto para multiplicação de matrizes booleanas e posteriormente (1980, Masek e Paterson) adaptado para distância de edição. Idéia básica: particionar a matriz de programação dinâmica em submatrizes de tamanho t t (t-blocos) e usar essas matrizes para ajudar no cálculo da matriz de programação dinâmica. A matriz a é coberta por t-blocos de forma que haja sempre sobreposição de 1 linha e 1 coluna entre t-blocos. 19
63 t-blocos Se um t-bloco está dividido e se os valores A, B e C são conhecidos, bem como os trechos D e E das seqüências correspondentes ao bloco, então os valores de F podem ser totalmente determinados. A E C D B F
64 t-blocos Se um t-bloco está dividido e se os valores A, B e C são conhecidos, bem como os trechos D e E das seqüências correspondentes ao bloco, então os valores de F podem ser totalmente determinados. A E C D B F Mais ainda, para calcular os valores dos t-blocos que estão à direita e abaixo, bastam a última coluna e a última linha do t-bloco estarem calculadas. Um total de O(t) + O(t) = O(t) dados são suficientes. A idéia é preencher apenas as bordas dos t-blocos, sempre em tempo O(t). Como? 20
65 Pré-computação e t-blocos Idéia importante: fazer a pré-computação de todos os possíveis t-blocos, armazenando-os em uma tabela indexada por (A, B, C, D, E) e recuperar os O(t) dados referentes à última linha e à última coluna do t-bloco por meio da tabela.
66 Pré-computação e t-blocos Idéia importante: fazer a pré-computação de todos os possíveis t-blocos, armazenando-os em uma tabela indexada por (A, B, C, D, E) e recuperar os O(t) dados referentes à última linha e à última coluna do t-bloco por meio da tabela. Fato: Como os t-blocos contém distâncias, duas células adjacentes diferem de, no máximo, 1. Conseqüência: É possível codificar os vetores B e C como vetores com valores em { 1, 0, +1}, representando apenas as diferenças. Se o valor A for desconhecido, mas B, C, D e E forem conhecidos, todos os valores de F podem ser determinados a menos de A; um t-bloco canônico é um t-bloco que tem A = 0. Esses são os blocos armazenados.
67 Pré-computação e t-blocos Idéia importante: fazer a pré-computação de todos os possíveis t-blocos, armazenando-os em uma tabela indexada por (A, B, C, D, E) e recuperar os O(t) dados referentes à última linha e à última coluna do t-bloco por meio da tabela. Fato: Como os t-blocos contém distâncias, duas células adjacentes diferem de, no máximo, 1. Conseqüência: É possível codificar os vetores B e C como vetores com valores em { 1, 0, +1}, representando apenas as diferenças. Se o valor A for desconhecido, mas B, C, D e E forem conhecidos, todos os valores de F podem ser determinados a menos de A; um t-bloco canônico é um t-bloco que tem A = 0. Esses são os blocos armazenados. Como existem O(n 2 /t 2 ) blocos e cada um pode ser preenchido em tempo O(t), o preenchimento de a leva O(n 2 /t). Tomando t = Θ(log n), segue a complexidade O(n 2 / log n). A pré-computação pode ser feita em tempo O(n(log n) 2 ). 21
68 Método de Economia de Tempo (cont.) O método só funciona para distância de edição. Para lidar com outros casos, um método foi proposto recentemente por Crochemore, Landau e Ziv-Ukelson. Há outros métodos para economia de tempo, como o método de k-bandas. 22
69 Variantes do Problema Dependendo das matrizes de pontuação, há relações entre os Problemas APS e APS-Sim. A formulação do Problema APS-Sim apresenta interesse prático (também pela interpretação probabiĺıstica).
70 Variantes do Problema Dependendo das matrizes de pontuação, há relações entre os Problemas APS e APS-Sim. A formulação do Problema APS-Sim apresenta interesse prático (também pela interpretação probabiĺıstica). Permite também o estudo de variantes de interesse biológico: Alinhamentos semi-globais; Alinhamentos locais. Ambos problemas podem ser resolvidos por adaptações do método de programação dinâmica em complexidades O(mn) (tempo, espaço). 23
71 Alinhamentos de Várias Seqüências Interesse é grande em alinhamentos de várias seqüências: construção de árvores filogenéticas; criação de modelos para famílias de proteínas. É uma generalização natural do caso de 2 seqüências.
72 Alinhamentos de Várias Seqüências Interesse é grande em alinhamentos de várias seqüências: construção de árvores filogenéticas; criação de modelos para famílias de proteínas. É uma generalização natural do caso de 2 seqüências. Entrave: não há um jeito óbvio de atribuir pontuações a alinhamentos de várias seqüências. Solução usual: ainda calcular pontuações por colunas e calcular pontuação de um alinhamento como soma das pontuações das colunas. E para pontuar colunas? 24
73 Pontuação SP Uma solução para pontuar colunas: usar a pontuação SP (Soma-de-Pares).
74 Pontuação SP Uma solução para pontuar colunas: usar a pontuação SP (Soma-de-Pares). Definição. Dada uma coluna C (Σ ) k, onde Σ = Σ { } e fixada uma matriz de pontuação c, definimos SP c (C) = i<j c(c[i], C[j]). Em palavras: a pontuação SP é definida como o somatório dos custos de todos os pares de símbolos da coluna.
75 Pontuação SP Uma solução para pontuar colunas: usar a pontuação SP (Soma-de-Pares). Definição. Dada uma coluna C (Σ ) k, onde Σ = Σ { } e fixada uma matriz de pontuação c, definimos SP c (C) = i<j c(c[i], C[j]). Em palavras: a pontuação SP é definida como o somatório dos custos de todos os pares de símbolos da coluna. Exemplo. A coluna A A T tem pontuação SP igual a 2. 25
76 Problema AVS Problema (Problema AVS). Dadas k 2 seqüências s 1,..., s k sobre Σ e fixada uma função de pontuação c : Σ Σ Q 0, encontrar um alinhamento A com custo c(a ) = c(s 1,..., s k ). É possível ter melhor interpretação do problema de alinhamentos de várias seqüências, através de projeções dos alinhamentos.
77 Problema AVS Problema (Problema AVS). Dadas k 2 seqüências s 1,..., s k sobre Σ e fixada uma função de pontuação c : Σ Σ Q 0, encontrar um alinhamento A com custo c(a ) = c(s 1,..., s k ). É possível ter melhor interpretação do problema de alinhamentos de várias seqüências, através de projeções dos alinhamentos. Definição. A projeção de um alinhamento A na direção de um conjunto S de seqüências é o alinhamento obtido de A apagando-se as seqüências que não estão em S. Notação: A S.
78 Problema AVS Problema (Problema AVS). Dadas k 2 seqüências s 1,..., s k sobre Σ e fixada uma função de pontuação c : Σ Σ Q 0, encontrar um alinhamento A com custo c(a ) = c(s 1,..., s k ). É possível ter melhor interpretação do problema de alinhamentos de várias seqüências, através de projeções dos alinhamentos. Definição. A projeção de um alinhamento A na direção de um conjunto S de seqüências é o alinhamento obtido de A apagando-se as seqüências que não estão em S. Notação: A S. Fato. SP(A) = i<i SP(A i,i ). Em palavras: a pontuação SP de um alinhamento é igual à soma da pontuação de suas 2-projeções. 26
79 Projeções e Interpretação Geométrica Matrizes de programação dinâmica podem ser interpretadas como reticulados: C A T A T Reticulado para a matriz de programação dinâmica de s = AT e t = CAT. O custo de um arco é igual ao custo da coluna determinada pelo arco. ( Caminho ) com arcos pontilhados (custo mínimo) corresponde ao alinhamento AT CAT. 27
ESTRUTURAS DE DADOS II
ESTRUTURAS DE DADOS II Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Conteúdo Programático 1. Introdução
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisx0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?
Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões
Leia mais3 Classificação. 3.1. Resumo do algoritmo proposto
3 Classificação Este capítulo apresenta primeiramente o algoritmo proposto para a classificação de áudio codificado em MPEG-1 Layer 2 em detalhes. Em seguida, são analisadas as inovações apresentadas.
Leia maisAnálise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Caminhos de custo mínimo em grafo orientado Este problema consiste em determinar um caminho de custo mínimo a partir de um vértice fonte a cada vértice do grafo. Considere um grafo orientado
Leia maisO Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48
Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração
Leia maisOrganizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU
Organizaçãoe Recuperaçãode Informação GSI521 Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Aula anterior Organização e Recuperação de Informação(GSI521) Modelo vetorial- Definição Para o modelo vetorial, o
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisProjeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br
Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisHashing. Estruturas de Dados. Motivação
Estruturas de Dados Hashing Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia). Motivação
Leia maisMÓDULO 6 INTRODUÇÃO À PROBABILIDADE
MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisStatus. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna
O que é uma planilha eletrônica? É um aplicativo que oferece recursos para manipular dados organizados em tabelas. A partir deles pode-se gerar gráficos facilitando a análise e interpretação dos dados
Leia mais&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO
Universidade Federal de Viçosa Departamento de Informática &XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Flaviano Aguiar Liziane Santos Soares Jugurta Lisboa Filho (Orientador) PROJETO UNESC@LA Setembro de
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem
Leia maisa 1 x 1 +... + a n x n = b,
Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição
Leia maisBusca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
Leia maisSistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos
Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática
Leia maisAutómatos Finitos Determinísticos
Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Grafos Cliques Maximais Para determinar os cliques maximais de um grafo G podemos usar o método de Maghout em Dado o grafo abaixo, calcule Determine os conjuntos independentes maximais em
Leia maisUtilização do SOLVER do EXCEL
Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de
Leia maisMódulo 4. Construindo uma solução OLAP
Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisAMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário
Leia mais(a 1 + a 100 ) + (a 2 + a 99 ) + (a 3 + a 98 ) +... + (a 50 + a 51 ).
Questão 1. A sequência 0, 3, 7, 10, 14, 17, 21,... é formada a partir do número 0 somando-se alternadamente 3 ou 4 ao termo anterior, isto é: o primeiro termo é 0, o segundo é 3 a mais que o primeiro,
Leia maisConceitos e fórmulas
1 Conceitos e fórmulas 1).- Triângulo: definição e elementos principais Definição - Denominamos triângulo (ou trilátero) a toda figura do plano euclidiano formada por três segmentos AB, BC e CA, tais que
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números
Leia maisArquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Leia maisFACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2
FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade
Leia maisBatalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a.
Atividade 6 Batalha Naval Algoritmos de Busca Sumário Computadores são freqüentemente requisitados a encontrar informação em grandes coleções de dados. Estes precisam desenvolver métodos rápidos e eficientes
Leia maisAlgoritmos e Estrutura de Dados III. Árvores
Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas
Leia maisCAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves
CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisVetores Lidando com grandezas vetoriais
Vetores Lidando com grandezas vetoriais matéria de vetores é de extrema importância para o ensino médio basta levar em consideração que a maioria das matérias de física envolve mecânica (movimento, dinâmica,
Leia maisPossui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
Leia maisNotas da Aula 17 - Fundamentos de Sistemas Operacionais
Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.
Leia mais1. Introdução ao uso da calculadora
1. Introdução ao uso da calculadora O uso da calculadora científica no curso de Estatística é fundamental pois será necessário o cálculo de diversas fórmulas com operações que uma calculadora com apenas
Leia maisMC536 Bancos de Dados: Teoria e Prática
Universidade Estadual de Campinas - UNICAMP Instituto de Computação - IC MC536 Bancos de Dados: Teoria e Prática Aula #3 : MER e MER Estendido Profs. Anderson Rocha e André Santanchè Campinas, 1 de Agosto
Leia maisO ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2
3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata
Leia maisAula 03 Custos de um algoritmo e funções de complexidade
BC1424 Algoritmos e Estruturas de Dados I Aula 03 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2015 1 Custo de um algoritmo e funções de complexidade
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Leia maisIntrodução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em
Material retirado do site Office online. Introdução aos critérios de consulta Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em referências de campo, operadores e
Leia maisSUMÁRIO. Introdução... 3
SUMÁRIO Introdução..................................... 3 1 Consultas por Similaridade e Espaços métricos............. 5 1.1 Consultas por abrangência e consultas aos k-vizinhos mais próximos... 5 1.2
Leia maisAlinhamentos de Múltiplas Seqüências. Rogério T. Brito Orientador: José A. R. Soares
1 Alinhamentos de Múltiplas Seqüências Rogério T. Brito Orientador: José A. R. Soares 2 Motivação Problema em Biologia: saber qual é o grau de parentesco entre um conjunto de espécies (construção de árvores
Leia maisAnalise filogenética baseada em alinhamento de domínios
Analise filogenética baseada em alinhamento de domínios Moléculas biológicas e evolução Como já foi comentado anteriormente sabemos que o DNA de qualquer espécie de ser vivo sofre mutações ao longo do
Leia maisSistema Banco de Preços Manual do Usuário OBSERVATÓRIO
Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO da Despesa Pública 1 Sumário O Banco de Preços... 3 Acessando o Banco de Preços... 4 Funções do Banco de Preços... 5 Gerar Preço de Referência...
Leia maisIvan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente:
Rumo ao ITA Física Análise Dimensional Ivan Guilhon Mitoso Rocha A análise dimensional é um assunto básico que estuda as grandezas físicas em geral, com respeito a suas unidades de medida. Como as grandezas
Leia mais4 Avaliação Econômica
4 Avaliação Econômica Este capítulo tem o objetivo de descrever a segunda etapa da metodologia, correspondente a avaliação econômica das entidades de reservas. A avaliação econômica é realizada a partir
Leia maisProjeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br
Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisUniversidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 6-T 2. Máquinas Sequencias Síncronas: Comparação entre
Leia maisResolução de problemas e desenvolvimento de algoritmos
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de
Leia maisExercícios Teóricos Resolvidos
Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar
Leia maisAlgoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras.
6 6 NOME DA AULA: 6 Algoritmos Duração da aula: 45 60 minutos Tempo de preparação: 10-25 minutos (dependendo da disponibilidade de tangrans prontos ou da necessidade de cortá-los à mão) Objetivo principal:
Leia maisEste material traz a teoria necessária à resolução das questões propostas.
Inclui Teoria e Questões Inteiramente Resolvidas dos assuntos: Contagem: princípio aditivo e multiplicativo. Arranjo. Permutação. Combinação simples e com repetição. Lógica sentencial, de primeira ordem
Leia maisComo conduzir com sucesso um projeto de melhoria da qualidade
Como conduzir com sucesso um projeto de melhoria da qualidade Maria Luiza Guerra de Toledo Coordenar e conduzir um projeto de melhoria da qualidade, seja ele baseado no Seis Sigma, Lean, ou outra metodologia
Leia maisControle do Arquivo Técnico
Controle do Arquivo Técnico Os documentos existentes de forma física (papel) no escritório devem ser guardados em pastas (normalmente pastas suspensas) localizadas no Arquivo Técnico. Este Arquivo pode
Leia maisMicrosoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos
Microsoft Access: Criar consultas para um novo banco de Vitor Valerio de Souza Campos Conteúdo do curso Visão geral: consultas são essenciais Lição: inclui sete seções Tarefas práticas sugeridas Teste.
Leia maisArquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva
Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva Introdução RISC = Reduced Instruction Set Computer Elementos básicos: Grande número de registradores de propósito geral ou uso
Leia maisCAP. I ERROS EM CÁLCULO NUMÉRICO
CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção
Leia maisCT-234. 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 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca
Leia maisReferências internas são os artefatos usados para ajudar na elaboração do PT tais como:
Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisCurso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária
1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste
Leia maisCotagens especiais. Você já aprendeu a interpretar cotas básicas
A UU L AL A Cotagens especiais Você já aprendeu a interpretar cotas básicas e cotas de alguns tipos de elementos em desenhos técnicos de modelos variados. Mas, há alguns casos especiais de cotagem que
Leia maisTécnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14
1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso
Leia maisTOTVS BA Guia de Customização Linha Logix
TOTVS BA Guia de Customização Linha Logix Guia de Customização Sumário Título do documento 1. Objetivo... 3 2. Introdução... 3 3. Customização... 3 2 TOTVS BA Linha Logix Guia de Customização Projeto/Versão:
Leia maisEstabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1
Estabilidade Carlos Alexandre Mello 1 Introdução Já vimos que existem três requisitos fundamentais para projetar um sistema de controle: Resposta Transiente Estabilidade Erros de Estado Estacionário Estabilidade
Leia maisSomatórias e produtórias
Capítulo 8 Somatórias e produtórias 8. Introdução Muitas quantidades importantes em matemática são definidas como a soma de uma quantidade variável de parcelas também variáveis, por exemplo a soma + +
Leia maisAPLICAÇÕES DA DERIVADA
Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,
Leia maisTutorial de Matlab Francesco Franco
Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada
Leia maisCurso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento
Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados
Leia maisProf. Daniela Barreiro Claro
Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias
Leia maisOrganizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU
Organizaçãoe Recuperaçãode Informação GSI521 Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Análisede links Page Rank Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Motivação Suponha que um modelo clássico, como
Leia maisBase Nacional Comum Curricular 2016. Lemann Center at Stanford University
Base Nacional Comum Curricular 2016 Lemann Center at Stanford University Parte II: Base Nacional Comum: Análise e Recomendações da Seção de Matemática Phil Daro Dezembro, 2015 BASE NACIONAL COMUM: ANÁLISE
Leia maisArquiteturas RISC. (Reduced Instructions Set Computers)
Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina
Leia maisAV2 - MA 12-2012. (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos?
Questão 1. Num porta-cds, cabem 10 CDs colocados um sobre o outro, formando uma pilha vertical. Tenho 3 CDs de MPB, 5 de rock e 2 de música clássica. (a) De quantos modos diferentes posso empilhá-los de
Leia maisEngenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1
Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.
Leia maisDepartamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.
Matemática Essencial Extremos de funções reais Departamento de Matemática - UEL - 2010 Conteúdo Ulysses Sodré http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.
Leia mais6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto
Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para
Leia maisAula 8 Circuitos Integrados
INTRODUÇÃO À ENGENHRI DE COMPUTÇÃO PONTIFÍCI UNIVERSIDDE CTÓLIC DO RIO GRNDE DO SUL FCULDDE DE ENGENHRI ula Circuitos Integrados Introdução Portas Lógicas em Circuitos Integrados Implementação de Funções
Leia maisA memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande
A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada
Leia maisTécnicas de Caixa Preta de Teste de Software
Técnicas de Caixa Preta de Teste de Software Na maioria de projetos de teste, o tempo para a realização dos mesmos sempre é curto e os números de testes a serem realizados nas aplicações são inúmeros.
Leia maisFigura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001
47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações
Leia maisCláudio Tadeu Cristino 1. Julho, 2014
Inferência Estatística Estimação Cláudio Tadeu Cristino 1 1 Universidade Federal de Pernambuco, Recife, Brasil Mestrado em Nutrição, Atividade Física e Plasticidade Fenotípica Julho, 2014 C.T.Cristino
Leia maisFACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>
FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido
Leia maisPLANEJAMENTO DA MANUFATURA
58 FUNDIÇÃO e SERVIÇOS NOV. 2012 PLANEJAMENTO DA MANUFATURA Otimizando o planejamento de fundidos em uma linha de montagem de motores (II) O texto dá continuidade à análise do uso da simulação na otimização
Leia maisComputadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador
Leia maisNotas de Cálculo Numérico
Notas de Cálculo Numérico Túlio Carvalho 6 de novembro de 2002 2 Cálculo Numérico Capítulo 1 Elementos sobre erros numéricos Neste primeiro capítulo, vamos falar de uma limitação importante do cálculo
Leia maisÍNDICE... 2 INTRODUÇÃO... 4
Mic crosoft Excel 201 0 ÍNDICE ÍNDICE... 2 INTRODUÇÃO... 4 Interface... 4 Guias de Planilha... 5 Movimentação na planilha... 6 Entrada de textos e números... 7 Congelando painéis... 8 Comentários nas Células...
Leia mais6 Construção de Cenários
6 Construção de Cenários Neste capítulo será mostrada a metodologia utilizada para mensuração dos parâmetros estocásticos (ou incertos) e construção dos cenários com respectivas probabilidades de ocorrência.
Leia maisUNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR Assuntos: Matrizes; Matrizes Especiais; Operações com Matrizes; Operações Elementares
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário
Leia mais1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.
1 1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3. Modelo de Resultados Potenciais e Aleatorização (Cap. 2 e 3
Leia maisPointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T
Pointer Jumping T = (V,E) : árvore direcionada odg(v) e idg(v): graus de saída e entrada do vértice v V um vértice r tal que v V-{r}, odg(v) = 1, odg(r)=0 v V-{r}, um caminho de v a r O vértice r é dita
Leia maisPoliminós e o Tabuleiro de Xadrez Prof. Onofre Campos (onofrecampos@secrel.com.br) Prof. Carlos Shine (cyshine@yahoo.com)
Poliminós e o Tabuleiro de Xadrez Prof. Onofre Campos (onofrecampos@secrel.com.br) Prof. Carlos Shine (cyshine@yahoo.com) 1. O dominó Você já deve conhecer o dominó. Não vamos pensar no jogo de dominós
Leia maisQFD: Quality Function Deployment QFD: CASA DA QUALIDADE - PASSO A PASSO
QFD: CASA DA QUALIDADE - PASSO A PASSO 1 - INTRODUÇÃO Segundo Akao (1990), QFD é a conversão dos requisitos do consumidor em características de qualidade do produto e o desenvolvimento da qualidade de
Leia mais