35
logo Bioinform ´ atica Ney Lemke Departamento de F´ ısica e Biof´ ısica 2009

Bioinformática - Acervo Digital: Home · Bioinformatica ´ Ney Lemke

Embed Size (px)

Citation preview

logo

Bioinformatica

Ney Lemke

Departamento de Fısica e Biofısica

2009

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Bibliografia

JONES, N. C.; PEVZNER, P. A. “An Introduction toBioinformatics Algorithms”, Cambridge,The MIT Press, 2004,435pp.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Introducao

Importancia do Raciocınio AlgoritmicoCompreensao das ideias BasicasLimitacoes e falhas

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Exemplo

Alice e Bob estao envolvidos em um excitante jogo. Temos duaspilhas com 10 pedras, cada jogador pode ou retirar uma pedra deuma pilha ou uma pedra de cada uma das pilhas. Alice comecajogando e ganha quem retirar a ultima pedra.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Analise do Jogo

0 1 2 3 4 5 6 7 8 9 100 ∗←∗←∗←∗←∗←∗←∗←∗←∗←∗←∗↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑

1 ∗←∗←∗←∗←∗←∗←∗←∗←∗←∗←∗↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑

2 ∗←∗←∗←∗←∗←∗←∗←∗←∗←∗←∗↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑

3 ∗←∗←∗←∗←∗←∗←∗←∗←∗←∗←∗↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑

4 ∗←∗←∗←∗←∗←∗←∗←∗←∗←∗←∗↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑↖↑

5 ∗←∗←∗←∗←∗←∗←∗←∗←∗←∗←∗

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Analise do Jogo

0 1 2 3 4 5 6 7 8 9 100 L W L W L W L W L W L1 W W W W W W W W W W W2 L W L W L W L W L W L3 W W W W W W W W W W W4 L W L W L W L W L W L5 W W W W W W W W W W W6 L W L W L W L W L W L7 W W W W W W W W W W W8 L W L W L W L W L W L9 W W W W W W W W W W W10 L W L W L W L W L W L

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

O que e um algoritmo

Def. Um algoritmo e uma sequencia de instrucoes que devemosutilizar para resolver um dado problema.Para podermos descrever um algoritmo em geral fazemos uso deuma lingugem chamada de pseudo-codigo.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Atribuicao

Atribuicao a← bEfeito A variavel a recebe o valor de b.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Aritmetica

Formato a + b, a− b, a/b, a× bEfeito Realiza a operacao.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Condicional

if A is true thenB

elseC

end if

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

For

for i←b to n doB

end for

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

while

while A e verdade doB

end while

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Acesso a vetores

Exemplo:1: F1 ← 12: F2 ← 13: for i ← 3 to n do4: Fi ← Fi−1 + Fi−25: end for

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Receita de Bolo

1: PREAQUECAFORNO(425)2: recheio← BATARECHEIO(abobora, acucar, sal, temperos, ovos,

leite)3: torta← ASSENTE(massa, recheio)4: while garfo sai molhado e verdade do5: COZINHE(pie)6: end while7: output “Torta Pronta”8: return pie

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

BATARECHEIO

1: pote← Pegue um pote do armario2: ADICIONE(abobora, pote)3: ADICIONE(acucar, pote)4: ADICIONE(sal, pote)5: ADICIONE(temperos, pote)6: BATA(pote)7: ADICIONE(ovos, pote)8: ADICIONE(leite, pote)9: BATA(pote)

10: recheio← Conteudo de pote11: return recheio

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Algoritmos Biologicos

Helicases se ligam a origem de replicacaoHelicase separa as duas fitas do DNALigacao dos primersLigacao da DNA polimerase a cada uma das fitas do DNADNA Polimerase complementa de forma contınua uma das fitasDNA Polimerase replica de forma descontınua a outra fitaDNA ligase repare os buracos na segunda fitaAs duas fitas se separam

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Algoritmos para Computadores

COPIASTRING(s,n)for i← 1 to n do

ti ← sireturn t

end for

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Exercıcio

Escrevam um algoritmo para escolha de qual revista um paper deveser submetido.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Problema do Troco (USA)

Converter alguma quantidade de dinheiro M no menor numeropossıvel de moedas. Ou seja M = 25q + 10d + 5n + p eq + d + n + p deve ser mınimo.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

USCHANGE(M)

while M > 0 doc ← Maior moeda menor ou igual a MEntregue a moeda c ao clienteM ← M − c

end while

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

USCHANGE(M)

1: r ← M2: q ← r/253: r ← r − 25 ∗ q4: d ← r/105: r ← r − 10 ∗ d6: n← r/57: r ← r − 5 ∗ n8: p ← r9: return (q,d,n,p)

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Problema do Troco

Converter alguma quantidade de dinheiro M no menor numeropossıvel de moedas. Considere um vetor de moedas (c1, . . . , cd ) emordem descrescente de valor e o troco caracterizado pela lista deinteiros: (i1, . . . , id ) Ou seja M = c1 ∗ i1 + . . . cd ∗ id e i1 + . . . id deveser mınimo.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

MELHORTROCO(M,c,d)

1: r ← M2: for k ← 1 to d do3: ik ← r/ck4: r ← r − ck ∗ ik5: end for6: return ( i1, . . . id )

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Discussao

Algoritmos CorretosContra-exemplo: Caso Americano troco para 40 c (moedas:25,20,10,5,1).Solucao: Procurar por todas as solucoes e escolher a melhor.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Algoritmos Recursivos

Def. Algoritmos recursivos sao aqueles que chamam a si mesmos.Exemplo: Fibonacci Recursivo FIBONACCIRECURSIVO

if n = 1 ou n = 2 thenreturn 1

elsea← FIBONACCIRECURSIVO(n − 1)b ← FIBONACCIRECURSIVO(n − 2)return a + b

end if

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Algoritmos Recursivos e Iterativos

Algoritmos Recursivos podem ser eficazes em tempo decomputacao, mas em geral sao gulosos em termos de memoria.Sao mais difıceis de entender e de “debugar”.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Outline

1 Bibliografia

2 Introducao

3 Algoritmos

4 Aplicacoes

5 Algoritmos Recursivos

6 Tipos de Algoritmos

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Complexidade dos Algoritmos

Considere um problema caracterizado por um numero n chamado detamanho do problema.A complexidade de um algoritmo e a dependencia do tempo decomputacao em termos de n. Em geral so queremos saber acomplexidade no limite de n grande e consideramos os casos

n ou n log n Problemas lineares e portanto eficientes, exemplosordenacao de um vetor.

n2 Problemas quadraticos mais custosos, mas que podemser resolvidos exatamente na maioria dos casos deinteresse.

nα Problemas ditos polinomiais, podem em tese serresolvidos, mas rapidamente se tornam muitocustosos.

Outros Problemas ditos nao trataveis algoritmicamente, ouseja a solucao exata levaria em muitos casos milharesde anos.

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Tipos de Algoritmos

Busca Exaustiva Procura por todos os casos a solucao doproblema.

Branch and Bound Divide o problema em classes e ataca as classespromissoras.

Divida e Conquiste Estrategia de devidir um problema em partes eatacar cada uma das partes em separaddo.

Algoritmos Aleatorios Utilizam numeros aleatorios para proporsolucoes para problemas (metodo predileto dosalunos).