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

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

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Método Simple.. Solução eata para os modelos de Programação Linear O modelo de Programação Linear (PL) reduz um sistema real a um conjunto

Leia mais

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

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

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

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

1 Módulo ou norma de um vetor

1 Módulo ou norma de um vetor Álgebra Linear I - Aula 3-2005.2 Roteiro 1 Módulo ou norma de um vetor A norma ou módulo do vetor ū = (u 1, u 2, u 3 ) de R 3 é ū = u 2 1 + u2 2 + u2 3. Geometricamente a fórmula significa que o módulo

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Classes de Complexidades de Problemas Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Tempo polinomial Um algoritmo A, com entrada

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

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

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br Complexidade de Algoritmos Computabilidade: Um problema é computável

Leia mais

Apresentação e formatação de artigo em publicação periódica científica:

Apresentação e formatação de artigo em publicação periódica científica: Apresentação e formatação de artigo em publicação periódica científica: Conforme NBR 6022:2003 Seção de atendimento ao usuário - SISBI Outubro 2013 Normas técnicas Norma técnica é um documento estabelecido

Leia mais

Cadeias de Markov. Geovany A. Borges gaborges@ene.unb.br

Cadeias de Markov. Geovany A. Borges gaborges@ene.unb.br 36341 - Introdução aos Processos Estocásticos Curso de Pós-Graduação em Engenharia Elétrica Departamento de Engenharia Elétrica Universidade de Brasília Cadeias de Markov Geovany A. Borges gaborges@ene.unb.br

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

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

MARCO TÚLIO NOGUEIRA SILVA

MARCO TÚLIO NOGUEIRA SILVA MARCO TÚLIO NOGUEIRA SILVA ALINHAMENTO MÚLTIPLO GLOBAL DE SEQÜÊNCIAS PELA REPRESENTAÇÃO DE PROFILE E CLUSTERIZAÇÃO: COMPARAÇÃO COM OS RESULTADOS DO CLUSTALW (EMBL-EBI) Monografia de graduação apresentada

Leia mais

Vetor Quantização e Aglomeramento (Clustering)

Vetor Quantização e Aglomeramento (Clustering) (Clustering) Introdução Aglomeramento de K-partes Desafios do Aglomeramento Aglomeramento Hierárquico Aglomeramento divisivo (top-down) Aglomeramento inclusivo (bottom-up) Aplicações para o reconhecimento

Leia mais

Satisfação de Restrições. Capítulo 5 (disponível online)

Satisfação de Restrições. Capítulo 5 (disponível online) Satisfação de Restrições Capítulo 5 (disponível online) Sumário Problemas de Satisfação de Restrições (CSPs) Procura com Retrocesso para CSPs Procura Local para CSPs Estrutura dos CSPs Problemas de Satisfação

Leia mais

Microsoft Excel 2003

Microsoft Excel 2003 Associação Educacional Dom Bosco Faculdades de Engenharia de Resende Microsoft Excel 2003 Professores: Eduardo Arbex Mônica Mara Tathiana da Silva Resende 2010 INICIANDO O EXCEL Para abrir o programa Excel,

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

CAMADA DE REDES. Fabrício de Sousa Pinto

CAMADA DE REDES. Fabrício de Sousa Pinto CAMADA DE REDES Fabrício de Sousa Pinto Introdução 2 Está relacionada a transferência de pacotes da origem para o destino. Pode passar por vários roteadores ao longo do percurso Transmissão fim a fim Para

Leia mais

MATERIAL DE DIVULGAÇÃO DA EDITORA MODERNA

MATERIAL DE DIVULGAÇÃO DA EDITORA MODERNA MATERIAL DE DIVULGAÇÃO DA EDITORA MODERNA Professor, nós, da Editora Moderna, temos como propósito uma educação de qualidade, que respeita as particularidades de todo o país. Desta maneira, o apoio ao

Leia mais

Introdução ao SIG. Objetivos Específicos 18/11/2010. Competência: Apresentar: Utilidade de um SIG

Introdução ao SIG. Objetivos Específicos 18/11/2010. Competência: Apresentar: Utilidade de um SIG MINISTÉRIO DO MEIO AMBIENTE - MMA INSTITUTO CHICO MENDES DE CONSERVAÇÃO DA BIODIVERSIDADE - ICMBio DIRETORIA DE PLANEJAMENTO, ADMINISTRAÇÃO E LOGÍSTICA - DIPLAN COORDENAÇÃO GERAL DE GESTÃO DE PESSOAS -

Leia mais

Boletim de Guia para os Pais das Escolas Públicas Elementar de Central Falls

Boletim de Guia para os Pais das Escolas Públicas Elementar de Central Falls Boletim de Guia para os Pais das Escolas Públicas Elementar de Central Falls O objetivo principal do cartão de relatório elementar é comunicar o progresso do aluno para os pais, alunos e outros funcionários

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

Teoria da Complexidade

Teoria da Complexidade handout.pdf June 5, 0 Teoria da Complexidade Cid C. de Souza / IC UNICAMP Universidade Estadual de Campinas Instituto de Computação o semestre de 0 Revisado por Zanoni Dias Autor Prof. Cid Carvalho de

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

Estruturas de Dados Pilhas, Filas e Deques

Estruturas de Dados Pilhas, Filas e Deques Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem

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

BC-0506: Comunicação e Redes Algoritmos em Grafos

BC-0506: Comunicação e Redes Algoritmos em Grafos BC-0506: Comunicação e Redes Algoritmos em Grafos Santo André, 2Q2011 1 Parte 1: Algoritmos de Busca Rediscutindo: Representações em Grafos Matriz de Adjacências Matriz de Incidências Lista de Adjacências

Leia mais

Os desenhos. Representação de desenhos

Os desenhos. Representação de desenhos Os desenhos 1 Os desenhos Tópicos: Representação de desenhos Edição gráfica bidimensional Representação de desenhos Formatos de desenhos: imagens Arranjos de pixels. Digitalização da imagem por papel,

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

Miguel Rocha Dep. Informática - Universidade do Minho. BIOINFORMÁTICA: passado, presente e futuro!!

Miguel Rocha Dep. Informática - Universidade do Minho. BIOINFORMÁTICA: passado, presente e futuro!! Miguel Rocha Dep. Informática - Universidade do Minho BIOINFORMÁTICA: passado, presente e futuro!! Bragança, 11 de Maio de 2006 Porquê a Bioinformática?! Novas tecnologias experimentais da Biologia Molecular

Leia mais

Contagem. George Darmiton da Cunha Cavalcanti CIn - UFPE

Contagem. George Darmiton da Cunha Cavalcanti CIn - UFPE Contagem George Darmiton da Cunha Cavalcanti CIn - UFPE Sumário Princípios Básicos de Contagem A Regra do Produto A Regra da Soma O número de subconjuntos de um conjunto finito Princípio da Inclusão-Exclusão

Leia mais

Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado.

Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado. Estrutura de Dados Introdução Extraído de : Estruturas de Dados Homero L. Pícollo Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado. A eficiência

Leia mais

UMA NOVA PROPOSTA PARA GEOMETRIA ANALÍTICA NO ENSINO MÉDIO

UMA NOVA PROPOSTA PARA GEOMETRIA ANALÍTICA NO ENSINO MÉDIO UMA NOVA PROPOSTA PARA GEOMETRIA ANALÍTICA NO ENSINO MÉDIO DANIELLA ASSEMANY DA GUIA CAp- UFRJ danyprof@bol.com.br 1.1. RESUMO Esta comunicação científica tem como objetivo tratar e apresentar a Geometria

Leia mais

Capítulo 10. Álgebra de Matrizes (Arranjos)

Capítulo 10. Álgebra de Matrizes (Arranjos) 137 Capítulo 10 Álgebra de Matrizes (Arranjos) Já varias vezes tivemos contatos com variáveis indexados em matrizes ou vetores (= matriz especial). Compare o primeiro capitulo, pagina 11, ou no Capítulo

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como

Leia mais

Figura 1.1: Representação gráfica das pontes de Königsberg.

Figura 1.1: Representação gráfica das pontes de Königsberg. Capítulo 1 Introdução Nesse capítulo introdutório aborda-se brevemente o histórico da teoria dos grafos, as aplicações e motivações para estudo e por fim algumas dicas de como utilizar esse livro. 1.1

Leia mais

11 Conclusão. 11.1 Descobertas

11 Conclusão. 11.1 Descobertas 97 11 Conclusão 11.1 Descobertas Nesse trabalho apresentamos o McCloud Service Framework, um arcabouço para implementação de serviços baseados na Simulação de Monte Carlo na nuvem, disponibilizamos duas

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

Experimento. Guia do professor. Qual é o cone com maior volume? Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia

Experimento. Guia do professor. Qual é o cone com maior volume? Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia geometria e medidas Guia do professor Experimento Qual é o cone com maior volume? Objetivos da unidade 1. Dado um círculo de cartolina, investigar qual seria o cone com maior volume que se poderia montar;

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

Leia mais

Matriz Curricular de Matemática 6º ao 9º ano 6º ano 6º Ano Conteúdo Sistemas de Numeração Sistema de numeração Egípcio Sistema de numeração Romano Sistema de numeração Indo-arábico 1º Trimestre Conjunto

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

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

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

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

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

DICIONÁRIOS. template class Par { public: K chave; T valor; Par():chave(),valor()

DICIONÁRIOS. template<class K,class T> class Par { public: K chave; T valor; Par():chave(),valor() DICIONÁRIOS Esta estrutura inclui-se nos chamados contentores associativos, que não são mais do que uma colecção de estruturas de tipo Par, com dois membros de dados (chave de pesquisa e valor associado),

Leia mais

GUIA DO PROFESSOR ATIVIDADE: RAIO DA TERRA

GUIA DO PROFESSOR ATIVIDADE: RAIO DA TERRA GUIA DO PROFESSOR ATIVIDADE: RAIO DA TERRA 1 - RESUMO DA ATIVIDADE Como exemplo de um método de medida, vamos mostrar como há três séculos antes de Cristo, Eratóstenes mediu o raio da Terra, utilizando

Leia mais

3ª Lista de Exercícios Representação de dados com agregados: Arrays e Matrizes

3ª Lista de Exercícios Representação de dados com agregados: Arrays e Matrizes 1 Universidade Federal Fluminense Instituto de Computação Departamento de Ciência da Computação Programação de Computadores II Professores: Leandro A. F. Fernandes, Marcos Lage, Pedro Velloso 3ª Lista

Leia mais

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA CELSO SUCKOW DA FONSECA HABILIDADES CONTEÚDO METODOLOGIA/ESTRATÉGIA HORA/ AULA ANÁLISE GRÁFICA DE FUNÇÕES

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA CELSO SUCKOW DA FONSECA HABILIDADES CONTEÚDO METODOLOGIA/ESTRATÉGIA HORA/ AULA ANÁLISE GRÁFICA DE FUNÇÕES CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA CELSO SUCKOW DA FONSECA ENSINO MÉDIO ÁREA CURRICULAR: CIÊNCIA DA NATUREZA, MATEMÁTICA E SUAS TECNOLOGIAS DISCIPLINA: MATEMÁTICA I SÉRIE 1.ª CH 68 ANO 2012 COMPETÊNCIAS:.

Leia mais

Problemas de Satisfação de Restrições

Problemas de Satisfação de Restrições Computação Inteligente Problemas de Satisfação de Restrições Lucas Augusto Carvalho Mestrado em Ciência da Computação 2011.1 DCOMP - Universidade Federal de Sergipe 1 Conteúdo Problemas de Satisfação de

Leia mais

Método de Eliminação de Gauss. Eduardo Camponogara

Método de Eliminação de Gauss. Eduardo Camponogara Sistemas de Equações Lineares Método de Eliminação de Gauss Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-5103: Cálculo Numérico para Controle e Automação

Leia mais

4.1. Introdução. 4.2. Layout do DNS

4.1. Introdução. 4.2. Layout do DNS MIT 18.996 Tópico da Teoria da Ciência da Computação: Problemas de Pesquisa na Internet Segundo Trimestre 2002 Aula 4 27de fevereiro de 2002 Palestrantes: T. Leighton, D. Shaw, R. Sudaran Redatores: K.

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Algoritmos em Grafos Aula 01 História dos Grafos Prof. Humberto César Brandão de Oliveira Leonhard Euler Em 1735, Euler ganha fama mundial ao resolver um problema que por

Leia mais

Disciplina de Projetos e Análise de Algoritmos

Disciplina de Projetos e Análise de Algoritmos Aula 6 - A Maior Subsequência Comum Possível (Programação Dinâmica Parte IV) Aplicações na Biologia Um problema bastante em voga na Biologia é a análise do DNA de dois ou mais organismos distintos. Um

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

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Idéias básicas Um algoritmo guloso seleciona, a cada passo, o melhor elemento pertencente a entrada. Verifica se ele é viável - vindo a fazer parte da solução ou não. Após uma seqüência de

Leia mais

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres.

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres. Introdução de Cadeias Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Cadeia

Leia mais

EFICIÊNCIA DE ALGORITMOS E

EFICIÊNCIA DE ALGORITMOS E AULA 2 EFICIÊNCIA DE ALGORITMOS E PROGRAMAS Medir a eficiência de um algoritmo ou programa significa tentar predizer os recursos necessários para seu funcionamento. O recurso que temos mais interesse neste

Leia mais

Pesquisa Operacional Programação em Redes

Pesquisa Operacional Programação em Redes Pesquisa Operacional Programação em Redes Profa. Alessandra Martins Coelho outubro/2013 Modelagem em redes: Facilitar a visualização e a compreensão das características do sistema Problema de programação

Leia mais

PROCEDIMENTOS PARA APRESENTAÇÃO DE ARTIGO EM PUBLICAÇÃO PERIÓDICA CIENTÍFICA (NBR 6022:2003)

PROCEDIMENTOS PARA APRESENTAÇÃO DE ARTIGO EM PUBLICAÇÃO PERIÓDICA CIENTÍFICA (NBR 6022:2003) PROCEDIMENTOS PARA APRESENTAÇÃO DE ARTIGO EM PUBLICAÇÃO PERIÓDICA CIENTÍFICA (NBR 6022:2003) Maio de 2012. UNIVERSIDADE FEDERAL DE SANTA CATARINA. Biblioteca Universitária. Programa de capacitação. 2 NORMAS

Leia mais

Aumentando a segurança do MD6 em relação aos ataques diferenciais

Aumentando a segurança do MD6 em relação aos ataques diferenciais Aumentando a segurança do MD6 em relação aos ataques diferenciais Valdson S. Cleto 1, Routo Terada 1 1 Instituto de Matemática e Estatística Universidade de São Paulo (USP) São Paulo SP Brazil vcleto@gmail.com,

Leia mais

RESUMO DAS NORMAS TÉCNICAS DA ABNT

RESUMO DAS NORMAS TÉCNICAS DA ABNT RESUMO DAS NORMAS TÉCNICAS DA ABNT A padronização ou normalização do desenho técnico tem como objetivo uniformizar o desenho por meio de um conjunto de regras ou recomendações que regulamentam a execução

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 14 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas Exponenciais - Algoritmos Exponenciais usando Tentativa e Erro - Heurísticas para

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

Bioinformática. Alinhamento de Sequências. Prof. Msc. Rommel Ramos

Bioinformática. Alinhamento de Sequências. Prof. Msc. Rommel Ramos Bioinformática Alinhamento de Sequências Prof. Msc. Rommel Ramos 2013 Sumário 1. Comparação de Sequências 2. O que é alinhamento? 3. Tipos de Alinhamento 4. Algoritmos 5. Métodos de Alinhamento Comparação

Leia mais

Prof. Júlio Cesar Nievola Data Mining PPGIa PUCPR

Prof. Júlio Cesar Nievola Data Mining PPGIa PUCPR Encontrar grupos de objetos tal que objetos em um grupo são similares (ou relacionados) uns aos outros e diferentes de (ou não relacionados) a objetos em outros grupos Compreensão Agrupa documentos relacionados

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 10 http://www.ic.uff.br/~bianca/engsoft2/ Aula 10-24/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14

Leia mais

Microsoft Excel 2007

Microsoft Excel 2007 Microsoft Excel 2007 O Microsoft Excel é um aplicativo para a construção e edição de planilhas eletrônicas, que permite o trabalho com: formulários, tabelas, gráficos e outros. 2.1 CONCEITOS INICIAIS:

Leia mais

1 Tipos de dados em Análise de Clusters

1 Tipos de dados em Análise de Clusters Curso de Data Mining Sandra de Amo Aula 13 - Análise de Clusters - Introdução Análise de Clusters é o processo de agrupar um conjunto de objetos físicos ou abstratos em classes de objetos similares Um

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Ementas das Disciplinas do Bacharelado em Sistemas de Informação da UNIRIO

Ementas das Disciplinas do Bacharelado em Sistemas de Informação da UNIRIO Ementas das Disciplinas do Bacharelado em Sistemas de Informação da UNIRIO 2 de junho de 2010 Sumário Administração de Bancos de Dados.................................. 3 Administração Financeira.......................................

Leia mais

b : nas representações gráficas de funções do tipo

b : nas representações gráficas de funções do tipo do as suas escolhas a partir daí. Nesta situação, tendem a identificar as assímptotas verticais, as assímptotas horizontais e a associar as representações analítica e gráfica que têm estas características

Leia mais

15.053 Quinta-feira, 14 de março. Introdução aos Fluxos de Rede Handouts: Notas de Aula

15.053 Quinta-feira, 14 de março. Introdução aos Fluxos de Rede Handouts: Notas de Aula 15.053 Quinta-feira, 14 de março Introdução aos Fluxos de Rede Handouts: Notas de Aula 1 Modelos de Rede Modelos de programação linear que exibem uma estrutura muito especial. Podem utilizar essa estrutura

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Introdução Aprendizagem de Máquina Alessandro L. Koerich Introdução Desde que os computadores foram inventados temos nos perguntado: Eles são capazes de aprender? Se pudéssemos programá-los para aprender

Leia mais

Álgebra Linear. Mauri C. Nascimento Departamento de Matemática UNESP/Bauru. 19 de fevereiro de 2013

Álgebra Linear. Mauri C. Nascimento Departamento de Matemática UNESP/Bauru. 19 de fevereiro de 2013 Álgebra Linear Mauri C. Nascimento Departamento de Matemática UNESP/Bauru 19 de fevereiro de 2013 Sumário 1 Matrizes e Determinantes 3 1.1 Matrizes............................................ 3 1.2 Determinante

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

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

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO Luciano Pereira Magalhães - 8º - noite lpmag@hotmail.com Orientador: Prof Gustavo Campos Menezes Banca Examinadora: Prof Reinaldo Sá Fortes, Prof Eduardo

Leia mais

UFRN 2013 Matemática Álgebra 3º ano Prof. Afonso

UFRN 2013 Matemática Álgebra 3º ano Prof. Afonso UFRN 203 Matemática Álgebra 3º ano Prof. Afonso 3 2. (Ufrn 203) Considere a função polinomial f ( x) = x 3x x + 3. a) Calcule os valores de f ( ), f ( ) e f ( 3 ). b) Fatore a função dada. c) Determine

Leia mais

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 Deliverable: D1 - Clip-art Simplification Tool Task: T1 - Clip-art Simplification

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

INTRODUÇÃO AO SCILAB

INTRODUÇÃO AO SCILAB INTRODUÇÃO AO SCILAB Introdução Estas notas, de caráter introdutório e numa versão preliminar, tratam da utilização do software Scilab na disciplina Cálculo Numérico COM400, ministrada por professores

Leia mais

O que são domínios protéicos

O que são domínios protéicos Domínios protéicos O que são domínios protéicos Domínios protéicos é uma parte da cadeia polipeptídica que pode de enovelar independentemente para formar uma estrutura compacta e estável A existência de

Leia mais

Complemento II Noções Introdutória em Redes Neurais

Complemento II Noções Introdutória em Redes Neurais Complemento II Noções Introdutória em Redes Neurais Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

Leia mais

Lista n 0 1 de Exercícios de Teoria da Computação

Lista n 0 1 de Exercícios de Teoria da Computação Lista n 0 1 de Exercícios de Teoria da Computação UFU-Curso de Bacharelado em Ciência da Computação - 7 0 período Profa. Sandra de Amo Exercícios de Revisão : Autômatos e Gramáticas 1. Mostre que a linguagem

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

Minicurso SBSE 2012:

Minicurso SBSE 2012: Campus de Ilha Solteira Faculdade de Engenharia de Ilha Solteira Departamento de Energia Elétrica Minicurso SBSE 2012: Metaheurísticas em sistemas elétricos de potência: introdução ao estudo e aplicações

Leia mais

Temas para estudo com alunos

Temas para estudo com alunos Temas para estudo com alunos Este documento reúne alguns dos temas de pesquisa desenvolvidos por professores do Departamento de Matemática Aplicada (DMA) e que podem ter alunos de graduação atuando. Tratam-se

Leia mais

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de: Roteamentos AULA META Introduzir alguns problemas de roteamento. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir circuito euleriano e ciclo hamiltoniano; Obter um circuito euleriano

Leia mais

O que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais

O que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais Processamento Estatístico da Linguagem Natural Aula 5 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ O que queremos Algo que faça automaticamente um mapeamento

Leia mais

MÓDULO - III Manual Prático Microsoft Excel 2007

MÓDULO - III Manual Prático Microsoft Excel 2007 MÓDULO - III Manual Prático Microsoft Excel 2007 1 MÓDULO - III CÁLCULOS... 3 Fazer contas... 3 Fórmulas com operadores básicos... 3 Fórmulas com funções... 4 Funções mais usadas... 8 Soma... 8 Media...

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

Instituto Superior Técnico. 19 de Janeiro de 2001. Parte I

Instituto Superior Técnico. 19 de Janeiro de 2001. Parte I Exame de Compressão e Codificação de Dados Secção de Telecomunicacções DEEC, Instituto Superior Técnico 19 de Janeiro de 1 Parte I Esta parte do exame é constituida por 20 perguntas de resposta múltipla.

Leia mais