Alinhamento de Seqüências Biológicas

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

Download "Alinhamento de Seqüências Biológicas"

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 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 mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍ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 mais

x0 = 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?

x0 = 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 mais

3 Classificação. 3.1. Resumo do algoritmo proposto

3 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 mais

Análise e Complexidade de Algoritmos

Aná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 mais

Complexidade de Algoritmos. Edson Prestes

Complexidade 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 mais

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O 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 mais

Organizaçã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 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 mais

BCC202 - Estrutura de Dados I

BCC202 - 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 mais

Projeto 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 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 mais

Orientação a Objetos

Orientaçã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 mais

Hashing. Estruturas de Dados. Motivação

Hashing. 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 mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓ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 mais

Tabela 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. 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 mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas 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 mais

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Status. 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

&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 mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃ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 mais

a 1 x 1 +... + a n x n = b,

a 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 mais

Busca. Pesquisa sequencial

Busca. 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 mais

Sistemas 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 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 mais

Autómatos Finitos Determinísticos

Autó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 mais

Teoria dos Grafos. Edson Prestes

Teoria 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 mais

Utilização do SOLVER do EXCEL

Utilizaçã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 mais

Módulo 4. Construindo uma solução OLAP

Mó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 mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos 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 mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE 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 ).

(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 mais

Conceitos e fórmulas

Conceitos 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 mais

Organização e Arquitetura de Computadores I

Organizaçã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 mais

Arquitetura de Rede de Computadores

Arquitetura 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 mais

FACULDADE 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 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 mais

Batalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a.

Batalha 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 mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos 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 mais

CAP 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 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 mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. 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 mais

Vetores Lidando com grandezas vetoriais

Vetores 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 mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui 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 mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas 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 mais

1. Introdução ao uso da calculadora

1. 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 mais

MC536 Bancos de Dados: Teoria e Prática

MC536 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 mais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O 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 mais

Aula 03 Custos de um algoritmo e funções de complexidade

Aula 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 Á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 mais

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Introduçã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 mais

SUMÁRIO. Introdução... 3

SUMÁ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 mais

Alinhamentos de Múltiplas Seqüências. Rogério T. Brito Orientador: José A. R. Soares

Alinhamentos 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 mais

Analise filogenética baseada em alinhamento de domínios

Analise 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 mais

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

Sistema 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 mais

Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente:

Ivan 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 mais

4 Avaliação Econômica

4 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 mais

Projeto 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 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 mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE 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 mais

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

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 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 mais

Resolução de problemas e desenvolvimento de algoritmos

Resoluçã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 mais

Exercícios Teóricos Resolvidos

Exercí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 mais

Algoritmos. 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.

Algoritmos. 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 mais

Este material traz a teoria necessária à resolução das questões propostas.

Este 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 mais

Como conduzir com sucesso um projeto de melhoria da qualidade

Como 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 mais

Controle do Arquivo Técnico

Controle 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 mais

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Microsoft 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 mais

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Arquitetura 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 mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. 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 mais

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

CT-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 mais

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referê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 mais

2 Diagrama de Caso de Uso

2 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 mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: 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 mais

Cotagens especiais. Você já aprendeu a interpretar cotas básicas

Cotagens 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 mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Té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 mais

TOTVS BA Guia de Customização Linha Logix

TOTVS 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 mais

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1

Estabilidade. 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 mais

Somatórias e produtórias

Somató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 mais

APLICAÇÕES DA DERIVADA

APLICAÇÕ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 mais

Tutorial de Matlab Francesco Franco

Tutorial 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 mais

Curso: 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 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 mais

Prof. Daniela Barreiro Claro

Prof. 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 mais

Organizaçã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 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 mais

Base Nacional Comum Curricular 2016. Lemann Center at Stanford University

Base 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 mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas 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 mais

AV2 - MA 12-2012. (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos?

AV2 - 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 mais

Engenharia 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 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 mais

Departamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Departamento 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 mais

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.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 mais

Aula 8 Circuitos Integrados

Aula 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 mais

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

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 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 mais

Técnicas de Caixa Preta de Teste de Software

Té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 mais

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Figura 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 mais

Cláudio Tadeu Cristino 1. Julho, 2014

Clá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 mais

FACULDADE 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 <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 mais

PLANEJAMENTO DA MANUFATURA

PLANEJAMENTO 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 mais

Computadores de Programação (MAB353)

Computadores 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 mais

Notas de Cálculo Numérico

Notas 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

Í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 mais

6 Construção de Cenários

6 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 mais

UNIVERSIDADE 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 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 mais

Sistemas Operacionais

Sistemas 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 mais

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.

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. 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 mais

Pointer 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. 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 mais

Poliminó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) 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 mais

QFD: Quality Function Deployment QFD: CASA DA QUALIDADE - PASSO A PASSO

QFD: 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