logo Bioinform ´ atica 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).