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

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

Feb 21, 2019

Download

Documents

trinhlien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bioinformática - Acervo Digital: Home · Bioinformatica ´ Ney Lemke ...

logo

Bioinformatica

Ney Lemke

Departamento de Fısica e Biofısica

2009

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

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

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

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

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

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.

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

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

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Introducao

Importancia do Raciocınio AlgoritmicoCompreensao das ideias BasicasLimitacoes e falhas

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

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.

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

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

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

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

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

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

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

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.

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Atribuicao

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

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Aritmetica

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

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Condicional

if A is true thenB

elseC

end if

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

For

for i←b to n doB

end for

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

while

while A e verdade doB

end while

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

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

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

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

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

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

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

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

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

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

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

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

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

logo

Bibliografia Introducao Algoritmos Aplicacoes Algoritmos Recursivos Tipos de Algoritmos

Exercıcio

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

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

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.

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

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

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

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)

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

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.

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

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 )

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

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.

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

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

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

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

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

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

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

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

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

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.

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

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