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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pesquisa em Memória Primária. Prof. Jonas Potros

Pesquisa em Memória Primária. Prof. Jonas Potros Pesquisa em Memória Primária Prof. Jonas Potros Pesquisa em Memoria Primária Estudo de como recuperar informação a partir de uma grande massa de informação previamente armazenada. A informação é dividida

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Balanceamento de Carga

Balanceamento de Carga 40 4. Balanceamento de Carga Pode-se entender por balanceamento de carga uma política a ser adotada para minimizar tanto a ociosidade de utilização de alguns equipamentos quanto a super utilização de outros,

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

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

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

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

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

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

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

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

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

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

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

1 Geometria de referências: pontos, eixos e planos

1 Geometria de referências: pontos, eixos e planos 1 Geometria de referências: pontos, eixos e planos Pontos, eixos e planos são entidades bastante usadas como referências em sistemas CAE/CAE/CAM. Por isso a importância em estudar como definir pontos,

Leia mais

Técnicas de Teste de Software

Técnicas de Teste de Software Técnicas de Teste de Software Fabrício Sousa fabricio@uesb.br Projeto de Caso de Teste Conjunto de técnicas para criação de casos de testes Série de casos de testes que tem grande probabilidade de encontrar

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

7.4 As nuvens de perfis

7.4 As nuvens de perfis 7.4 As nuvens de perfis Cada perfil de linha, ou seja, cada linha da matriz de perfis de linha, P L, define um ponto no espaço a b dimensões, R b. A nuvem de a pontos em R b assim resultante pode ser designada

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

Lista 2 - Modelos determinísticos

Lista 2 - Modelos determinísticos EA044 - Planejamento e Análise de Sistemas de Produção Lista 2 - Modelos determinísticos Exercício 1 A Companhia Ferroviária do Brasil (CFB) está planejando a alocação de vagões a 5 regiões do país 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

Algoritmos de pesquisa. Tabelas de dispersão/hash

Algoritmos de pesquisa. Tabelas de dispersão/hash Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

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

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

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

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

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

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

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

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

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

Agrupamento de dados

Agrupamento de dados Organização e Recuperação de Informação: Agrupamento de dados Marcelo K. A. Faculdade de Computação - UFU Agrupamento de dados / 7 Overview Agrupamento: introdução Agrupamento em ORI 3 K-médias 4 Avaliação

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

Resolução de Problemas Com Procura. Capítulo 3

Resolução de Problemas Com Procura. Capítulo 3 Resolução de Problemas Com Procura Capítulo 3 Sumário Agentes que resolvem problemas Tipos de problemas Formulação de problemas Exemplos de problemas Algoritmos de procura básicos Eliminação de estados

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

Experimento. O experimento. Mensagens secretas com matrizes. Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia

Experimento. O experimento. Mensagens secretas com matrizes. Secretaria de Educação a Distância. Ministério da Ciência e Tecnologia Números e funções O experimento Experimento Mensagens secretas com matrizes Objetivos da unidade 1. Introduzir o conceito de criptografia; 2. Fixar conteúdos como multiplicação e inversão de matrizes.

Leia mais

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF No capítulo anterior... Estratégias de busca auxiliadas por heurísticas (A*, BRPM)

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

Tópicos Especiais em Redes: Introdução a Teoria dos Jogos com Aplicações a Redes de Computadores

Tópicos Especiais em Redes: Introdução a Teoria dos Jogos com Aplicações a Redes de Computadores Tópicos Especiais em Redes: Introdução a Teoria dos Jogos com Aplicações a Redes de Computadores Aula passada: Discussão sobre situações de conflito Exemplos de jogos Jogo em aula Aula de hoje: Introdução

Leia mais

CONTEÚDOS DA DISCIPLINA DE MATEMÁTICA

CONTEÚDOS DA DISCIPLINA DE MATEMÁTICA CONTEÚDOS DA DISCIPLINA DE MATEMÁTICA 6ºANO CONTEÚDOS-1º TRIMESTRE Números naturais; Diferença entre número e algarismos; Posição relativa do algarismo dentro do número; Leitura do número; Sucessor e antecessor;

Leia mais

CI165 Introdução. André Vignatti. 31 de julho de 2014

CI165 Introdução. André Vignatti. 31 de julho de 2014 Introdução 31 de julho de 2014 Antes de mais nada... Os slides de 6 aulas (introdução, insertion sort, mergesort, quicksort, recorrências e limitantes de ordenação) foram originalmente feitos pelos Profs.

Leia mais

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

PASSEIOS ALEATÓRIOS E CIRCUITOS ELÉTRICOS

PASSEIOS ALEATÓRIOS E CIRCUITOS ELÉTRICOS PASSEIOS ALEATÓRIOS E CIRCUITOS ELÉTRICOS Aluno: Ricardo Fernando Paes Tiecher Orientador: Lorenzo Justiniano Díaz Casado Introdução A teoria da probabilidade, assim como grande parte da matemática, está

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

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

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

Sistemas Inteligentes Lista de Exercícios sobre Busca

Sistemas Inteligentes Lista de Exercícios sobre Busca Sistemas Inteligentes Lista de Exercícios sobre Busca 1) A* - Problema do metrô de Paris Suponha que queremos construir um sistema para auxiliar um usuário do metrô de Paris a saber o trajeto mais rápido

Leia mais

Roteamento em Redes de Computadores

Roteamento em Redes de Computadores Roteamento em Redes de Computadores José Marcos Câmara Brito INATEL - Instituto Nacional de Telecomunicações INATEL - Instituto Nacional de Telecomunicações 01/08/00 1 Introdução Objetivo Tipos de rede

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

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

Apartir da identificação das falhas poderão ser processadas modificações racionalizantes em todo o sistema.

Apartir da identificação das falhas poderão ser processadas modificações racionalizantes em todo o sistema. Gráficos Os gráficos podem ser divididos em dois grupos: Gráficos Informacionais Gráfico é a representação de dados sobre uma superfície plana, através de diferentes formas, de modo a facilitar a visualização

Leia mais

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo 1 FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2 Vieira Lima Junior Everson Santos Araujo ALGORITMOS DE ORDENAÇÃO: estudo comparativo de diversos algoritmos

Leia mais

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 06 Criptografia e Esteganografia

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 06 Criptografia e Esteganografia Gestão da Segurança da Informação Professor: Maurício Criptografia A forma mais utilizada para prover a segurança em pontos vulneráveis de uma rede de computadores é a utilização da criptografia. A criptografia

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Estruturas de dados Representação computacional das informações do problema ser resolvido Informações podem ser de

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

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos

Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos Técnicas de Computação Paralela Capítulo III Design de Algoritmos Paralelos José Rogado jose.rogado@ulusofona.pt Universidade Lusófona Mestrado Eng.ª Informática e Sistemas de Informação 2013/14 Resumo

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

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

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

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

Nathalie Portugal Vargas

Nathalie Portugal Vargas Nathalie Portugal Vargas 1 Introdução Trabalhos Relacionados Recuperação da Informação com redes ART1 Mineração de Dados com Redes SOM RNA na extração da Informação Filtragem de Informação com Redes Hopfield

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

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

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

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

INE 7001 - Procedimentos de Análise Bidimensional de variáveis QUANTITATIVAS utilizando o Microsoft Excel. Professor Marcelo Menezes Reis

INE 7001 - Procedimentos de Análise Bidimensional de variáveis QUANTITATIVAS utilizando o Microsoft Excel. Professor Marcelo Menezes Reis INE 7001 - Procedimentos de Análise Bidimensional de variáveis QUANTITATIVAS utilizando o Microsoft Excel. Professor Marcelo Menezes Reis O objetivo deste texto é apresentar os principais procedimentos

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