INPE-13052-TDI/1021
ALGORITMOS DE PROGRAMAÇÃO DINÂMICA USADOS EM MODELOS MARKOVIANOS OCULTOS (HMMs)
José Olimpio Ferreira
Tese de Doutorado do Curso de Pós-Graduação em Computação Aplicada, orientada pelo Dr. Solon Venâncio de Carvalho, aprovada em 29 de março de 2004.
INPE São José dos Campos
2005
519.8
FERREIRA, J. O.
Algoritmos de programação dinâmica usados em modelos markovianos ocultos (HMMs) / J. O. Ferreira. – São José dos Campos: INPE, 2004.
250p. – (INPE-13052-TDI/1021).
1.Processos estocásticos. 2.Modelos markovianos.
3.Progrramação dinâmica. 4.Modelos Markovianos Ocultos (HMMs). 5.Biologia computacional. 6.Bioinformática.
I.Título.
O engajamento na ciência (empregando a palavra na acepção geral alemã Wissenschaft) não reside na discordância sobre fatos verificados, mas sobre sua
escolha e combinação, e sobre o que se pode inferir a partir dos mesmos.
ERIC HOBSBAWN (1917-), historiador, em “Sobre Historia”.
E para que executar projetos, já que o projeto é, nele mesmo, um prazer suficiente?
CHARLES BAUDELAIRE (1821-1867), poeta francês, em “Pequenos poemas em
prosa”.
Dedico carinhosamente esta dissertação
a meus pais MANOEL e ELIZENA (g)
a meus filhos VITOR, VINICIUS e NATÁLIA
a minha esposa MARIA das GRAÇAS
e àqueles que me incentivaram e apoiaram.
AGRADECIMENTOS
Agradeço a todas pessoas que me ajudaram a vencer mais essa etapa da vida.
Agradeço à Fundação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES, pelo auxilio financeiro.
Agradeço so Instituto Nacional de Pesquisas Espaciais - INPE pela oportunidade de estudos e utilização de suas instalações.
Agradeço aos professores do INPE pelo conhecimento compartilhado.
Agradeço à Universidade Católica de Goiás – UCG - por ter proporcionado as condições físicas e financeiras para que eu pudesse cursar o Doutorado em Computação Aplicada no Instituto Nacional de Pesquisas Espaciais – INPE.
Agradeço ao meu orientador Dr. Solon Venâncio de Carvalho pela sua imensa paciência e valioso incentivo na realização desta pesquisa e na confecção deste relatório.
Agradeço ao apoio de minha esposa Maria das Graças, de minha filha Natália e dos meus filhos Vitor e Vinicius que conviveram durante esse período com a minha ausência, com as minhas angústias, ansiedades e o meu nervosismo.
Agradeço a meus pais por sempre acreditarem na importância do estudo.
Agradeço, também, aos amigos e colegas que me apoiaram e incentivaram a fazer esse
curso de Doutorado em Computação Aplicada, e que me aconselharam nos momentos
mais delicados.
RESUMO
Esta tese trata dos algoritmos de programação dinâmica que são usados nos Modelos Markovianos Ocultos (HMMs), perfis-HMMs, aplicados no estudo de seqüências biológicas no campo da Bioinformática. O foco é a investigação de técnicas (métodos ou paradigmas) de economia de espaço que proporcionem a melhor economia de tempo, e que sejam adequadas para a utilização no cálculo de medidas de interesse dos HMMs.
Explorou-se a hipótese da utilização da estratégia de checkpoints em conjunto com o
princípio D&C como solução consistente para o problema de complexidade de espaço
versus complexidade de tempo dos algoritmos de programação dinâmica utilizados no
cálculo de medidas de interesse em perfis-HMMs. Propõe-se um algoritmo denominado
algoritmo de programação dinâmica com L-níveis de checkpoints bidimensionais que
pode ser usado em conjunto com procedimentos de retrocedimento parcial ou completo,
sobre a matriz de programação dinâmica. A versão com retrocedimento parcial desse
algoritmo proposto, denominada algoritmo de Viterbi com L-níveis de checkpoints
bidimensionais, com partição fixa de memória e retrocedimento restrito, foi superior em
desempenho, tanto na análise teórica, quanto nos testes de desempenho a posteriori, ao
algoritmo de Viterbi com L-níveis de checkpoints por diagonais, com partição móvel de
memória e retrocedimento restrito, considerado o estado da arte entre esses algoritmos
de programação dinâmica com a técnica de checkpoints. O desempenho desse algoritmo
proposto foi superior, nos testes a posteriori, inclusive ao próprio algoritmo de Viterbi
básico. Na simulação dos requerimentos de memória, verificou-se que os requerimentos
de memória desse algoritmo proposto são uma fração decrescente dos requerimentos de
memória do algorimo de Viterbi básico, para instâncias crescentes do problema,
indicando um comportamento assintótico dos requerimentos de memória muito
favorável para a computação de instâncias do problema que são intratáveis pelo
algoritmo de Viterbi básico.
DYNAMIC PROGRAMMING ALGORITHMS USED IN HIDDEN MARKOV MODELS (HMMs)
ABSTRACT
This thesis is about dynamic programming algorithms used in Hidden Markov Models
(HMMs) -HMM profiles - applied to biological sequence studies in bioinformatics. Its
investigation focuses on space economy techniques (methods or paradigms), that
provide best time-saving solutions, which would be adequate for use in calculating
HMM interest measures. The checkpoints paradigm use hypothesis together with the
D&C strategy, as a consistent solution for the problem of space versus time complexity
in dynamic programming algorithms which are used in the calculation of measures of
interest to the HMM profiles, is explored. An algorithm denominated dynamic
programming algorithm with L-levels of bidimensional checkpoints which can be used
together with partial or complete traceback procedures through to the dynamic
programming matrix is proposed. The version with partial traceback denominated the
Viterbi algorithm with L-levels of bidimensional checkpoints with fixed memory
partition and restricted traceback was superior in performance to the Viterbi algorithm
with L-levels of diagonals checkpoints with mobile memory partition and restricted
traceback, not only in the theoretical analysis but also in the tests a posteriori. The latter
is considered state of the art among the dynamic programming algorithms with the
checkpoints technique. In the tests a posteriori, the proposed algorithm has been proved
to be superior in performance even to the basic Viterbi algorithm. In the memory
requirement simulation, the memory requirements of the new algorithms have been
shown to be a decreasing fraction of those of the Viterbi basic algorithm for growing
instances of the problem, indicating an asymptotic behavior of memory requeriments,
very favorable to the computation of instances of the problem which are intractable by
the basic Viterbi algorithm.
SUMÁRIO
Pág.
LISTA DE FIGURAS ...17
LISTA DE TABELAS ...19
LISTA DE SÍMBOLOS ...21
LISTA DE SIGLAS E ABREVIATURAS ...25
CAPÍTULO 1 INTRODUÇÃO...27
1.1 Introdução ...27
1.2 O Problema...38
1.3 Objetivos e Hipóteses ...40
1.4 Justificativa...41
CAPÍTULO 2 CONCEITOS BÁSICOS ...47
2.1 Introdução ...47
2.2 Modelos Markovianos Ocultos (HMMs) ...47
2.2.1 Definições ...47
2.2.2 Os Três Problemas Básicos dos HMMs ...49
2.2.2.1 Soluções para o Problema 1 ...49
2.2.2.2 Soluções para o Problema 2 ...51
2.2.2.3 Soluções para o Problema 3 ...55
2.2.3 Modelo de Atribuição de Escores e Problemas Numéricos ... ...57
2.2.4 Perfis-HMMs para Seqüências Biológicas ...60
2.3 Medidas de Complexidade de Algoritmos ...68
2.3.1 Definição de Algoritmo ...68
2.3.2 Análise de Desempenho de Algoritmos e Complexidade de Problemas ...70
2.3.2.1 Análise Assintótica...75
2.4 Algoritmos de Programação Dinâmica...78
2.4.1 Estratégia de Programação Dinâmica...78
2.4.2 Métodos de Programação Dinâmica e HMMS...79
CAPÍTULO 3 ALGORITMOS DE PROGRAMAÇÃO DINÂMICA COM CHECKPOINTS USADOS EM PERFIS-HMMS...83
3.1 Introdução ...83
3.2 Revisão da Literatura...84
3.3 Algoritmos de Programação Dinâmica com Checkpoints...102
3.3.1 Algoritmo A: 2-Níveis com Partição Fixa...105
3.3.2 Algoritmo B: 2-Níveis com Partição Móvel ...106
3.3.3 Algoritmo C: 3-Níveis com Partição Móvel ...108
3.3.4 Algoritmo D: L-Níveis com Partição Móvel ...109
3.3.5 Algoritmo E: Viterbi com L-Níveis de Checkpoints por Diagonais com Retrocedimento Restrito ...112
3.3.6 Disposição Ótima de Checkpoints por Linhas (Colunas) e o Algoritmo Melhorado ...118
3.3.6.1 Algoritmo Melhorado ...119
3.3.6.2 Algoritmo Ótimo ...120
3.3.7 Disposição Ótima de Checkpoints por Diagonais e o Algoritmo de Viterbi Melhorado ...121
CAPÍTULO 4 ALGORITMOS PROPOSTOS ...123
4.1 Introdução ...123
4.2 Algoritmos de L-Níveis de Checkpoints Bidimensionais...124
4.2.1 Algoritmo F: 2-Níveis de Checkpoints Bidimensionais e Partição Fixa de
Memória ...130
4.2.2 Algoritmo G: 3-Níveis de Checkpoints Bidimensionais e Partição Fixa de Memória ...132
4.2.3 Algoritmo H: L-Níveis de Checkpoints Bidimensionais e Partição Fixa de Memória ...135
4.2.4 Algoritmo J: Viterbi com L-Níveis de Checkpoints Bidimensionais e Partição Fixa de Memória...136
CAPÍTULO 5 EXPERIMENTAÇÃO E ANÁLISE DOS RESULTADOS ...145
5.1 Introdução ...145
5.2 Metodologia de Experimentação ...145
5.3 Implementação dos Algoritmos e Realização dos Experimentos ...150
5.4 Apresentação e Análise dos Resultados da Experimentação...161
CAPÍTULO 6 CONCLUSÕES E COMENTÁRIOS...185
REFERÊNCIAS BIBLIOGRÁFICAS ...201
BIBLIOGRAFIA COMPLEMENTAR …...207
APÊNDICE 1 - ALGORITMO DE VITERBI BÁSICO ...209
APÊNDICE 2 - ALGORITMO DE VITERBI COM DE 2-NÍVEIS CHECKPOINTS POR LINHAS E PARTICIONAMENTO MÓVEL DE MEMÓRIA.217 APÊNDICE 3 - ALGORITMO DE VITERBI COM 2-NÍVEIS DE CHECKPOINTS POR DIAGONAIS, COM PARTICIONAMENTO MÓVEL DE MEMÓRIA E RETROCEDIMENTO RESTRITO...227
APÊNDICE 4 - ALGORITMO DE VITERBI COM 2-NÍVEIS DE CHECKPOINTS BIDIMENSIONAIS, PARTICIONAMENTO FIXO DE MEMÓRIA E RETROCEDIMENTO RESTRITO ...239
GLOSSÁRIO ...249
LISTA DE FIGURAS
2.1 - HMM discreto com três estados e 5 símbolos de observação... 49 2.2 - Topologia de um perfil-HMM com 4 módulos padrões (Hughey e Krogh, 1996). 62 2.3 – Taxa de crescimento do tempo de computação de funções típicas. ... 78 4.1 - Particionamento A: L-níveis de checkpoints completos e particionamento fixo de
memória... 125 4.2 - Particionamento B: L-níveis de checkpoints completos e particionamento fixo de
memória... 125 4.3 - Particionamento C: L-níveis de checkpoints completos e particionamento móvel de memória... 126 4.4 - Particionamento D: L-níveis de checkpoints parciais e particionamento fixo de
memória... 126 4.5 - Particionamento E: L-níveis de checkpoints parciais e particionamento móvel de
memória... 127 4.6 - Particionamento F: L-níveis de checkpoints parciais e particionamento fixo de
memória... 127 4.7 - Particionamento G: L-níveis de checkpoints parciais e particionamento móvel de
memória... 128 5.1 - Distribuição do tamanho das seqüências de proteínas – adaptada de figura do
Swiss-Prot group (2004)... 146 5.2 - Modelo Nulo, R, totalmente probabilístico. ... 153 5.3 – Tempos de CPU dos algoritmos Viterbi para alinhamento de seqüências de
aminoácidos a um HMM com 2000 nós... 168 5.4 – Tempos totais de execução dos algoritmos de Viterbi para alinhamentos de
seqüências de aminoácidos a um HMM com 2000 nós... 169 5.5 – Tempos de CPU dos algoritmos de Viterbi para alinhamentos de seqüências de
aminoácidos a um HMM com 2000 nós (eixos logarítmicos)... 170 5.6 – Tempos totais de execução dos algoritmos de Viterbi para alinhamentos de
seqüências de aminoácidos a um HMM com 2000 nós (eixos logarítmicos). .... 171 5.7 – Tempos de CPU dos algoritmos Viterbi para alinhamento de seqüências de
aminoácidos a um HMM com 2000 nós... 172
5.8 – Tempos totais de execução dos algoritmos Viterbi para alinhamento de seqüências de aminoácidos a um HMM com 2000 nós... 173 5.9 – Tempos de CPU para efetuar 4 execuções de computações de programação
dinâmica de seqüências de aminoácidos contra um HMM com 500 nós – extraído da Figura 3 de Tarnas e Hughey (1998). ... 174 5.10 – Tempos totais de execução para efetuar 4 execuções de computações de
programação dinâmica de seqüências de aminoácidos contra um HMM com 500 nós – extraída da Figura 3 de Tarnas e Hughey (1998)... 175 5.11 – Tempos de CPU dos algoritmos Viterbi para alinhamento de seqüências de
aminoácidos a um HMM com 368 nós... 177 5.12 – Tempos totais de execução dos algoritmos Viterbi para alinhamento de
seqüências de aminoácidos a um HMM com 368 nós... 178
LISTA DE TABELAS
2.1 - Taxas de Crescimento Típicas...77 3.1 - Resumo do Desempenho de Alguns Algoritmos de Espaço Linear para o Problema LCS ...90 5.1 - Códigos dos 20 Aminoácidos, com Uma e Três Letras. ...152 5.2 - Freqüências Dayhoff de Ocorrências de Aminoácidos do Banco de Dados
Swissprot 34 ...153 5.3 - Resultados das Estimativas dos Requerimentos de Memória para os Algoritmos de Viterbi (Valores em Mb)...163 5.4 - Resultados das Estimativas Normalizadas dos Requerimentos de Memória para os
Algoritmos de Viterbi (Básico = 1). ...164
5.5 - Resultados dos Tempos de CPU e dos Tempos Totais de Execução (Wall Time) do
Primeiro Experimento para os Algoritmos de Viterbi (Tempos em Segundos). .165
5.6 - Resultados dos Tempos de CPU e dos Tempos Totais de Execução (Wall Time) do
Segundo Experimento para os Algoritmos de Viterbi (Tempos em Segundos)..167
5.7 - Resultados dos Tempos de CPU e dos Tempos Totais de Execução (Wall Time) do
Terceiro Experimento para os Algoritmos de Viterbi (Tempos em Segundos). .176
LISTA DE SÍMBOLOS
A - Matriz de probabilidades de transição de estados
A - Matriz de estimativas das probabilidades de transição de estados
(A
ij) - Número de vezes que cada transição ocorre no conjunto de observações de treinamento
a
ij- Probabilidade de transição do estado i para o estado j
a
ij- Estimativa da probabilidade de transição do estado i para o estado j b
t(i) - Variável backward, definida como a probabilidade de um certo sufixo
até um determinado estado, dado o modelo λ
( )
R nC ,
- Quantidade mínima de computações de linhas da matriz de PD ou o custo de computar n linhas da matriz de PD com R linhas de memória c - Distância entre dois checkpoints sucessivos
D
j- O j-ésimo estado D (delete)
d - Número de pares de pontos concordantes + indels, ou valor do escore E - Matriz de probabilidades de emissão de símbolos
E - Matriz de estimativas das probabilidades de emissão de símbolos (E
i(k)) - Número de vezes que cada emissão ocorre no conjunto de observações
de treinamento
e
i- Estimativa da probabilidade de emissão do símbolo k no estado j e
j(k) - Probabilidade de emissão do símbolo k no estado j
) (t
FjD
- Escore forward em log-odds dos caminhos terminando com O
isendo emitido pelo estado D
j) (t
FjI
- Escore forward em log-odds dos caminhos terminando com O
isendo emitido pelo estado I
j) (t
FjM
- Escore forward em log-odds dos caminhos terminando com O
isendo emitido pelo estado M
jf
t(i) - Variável forward, definida como a probabilidade de um certo prefixo até um determinado estado, dado o modelo λ
G(v
k|O) - Probabilidade a posteriori do símbolo v
kvir de um estado num conjunto especificado
I
j- O j-ésimo estado I (insert)
K - Número de símbolos de um alfabeto discreto e finito L - Número de níveis de checkpoints
l - Operação elementar
M
j- O j-ésimo estado M (match)
m - Comprimento de uma dada string ou seqüência de observações N - Número de estados
n - Comprimento do HMM ou de uma dada string ou seqüência de observações
O - Seqüência de observações
O(n) - Notação big-O para comparação do crescimento assintótico de funções o(n) - Notação little-o para comparação do crescimento assintótico de funções P(O/λ) - Probabilidade de ocorrência de uma certa seqüência de observações O
dado o modelo λ p - Tamanho da LCS
Q - Seqüência ou caminho de Estados de um HMM Q
*- Caminho de estados mais provável
q
t- Processo estocástico que indica o estado do modelo no instante t q - Número de pontos concordantes dominantes
R - Número de linhas (colunas ou diagonais) da matriz de PD que podem ser armazenadas como checkpoints
R
bd- Linhas de memória de checkpoints bidimensionais
R
cp- Linhas de memória R destinadas a armazenar os checkpoints
R
tb- Linhas de memória R destinadas ao cálculo de seções da matriz de PD
( )
RrL
- Número máximo de linhas da matriz de PD, que podem ser computadas com o algoritmo de L-níveis
r - Número de pares de pontos concordantes
S - Conjunto de estados de um HMM S
i- i-ésimo estado do HMM
( )
nSL
- Espaço necessário para armazenar os checkpoints de nível L s - Tamanho do alfabeto
T - Número de épocas ou tempo
( )
nTL
- Estimativa do tempo total gasto pelo algoritmo com L-níveis de checkpoints
( ) t
TB
Xj- Vetor para guardar o argumento que maximiza
VjX(t),
X∈{
D,I,M} , para t e j
t - Instante de tempo (época)
V - Conjunto de símbolos que constitui um alfabeto discreto e finito
)(t
VjD
- Escore Viterbi em log-odds do melhor caminho terminando com O
isendo emitido pelo estado D
j) (t
VjI
- Escore Viterbi em log-odds do melhor caminho terminando com O
isendo emitido pelo estado I
j) (t
VjM
- Escore Viterbi em log-odds do melhor caminho terminando com O
isendo emitido pelo estado M
jv
i- i-ésimo símbolo de um conjunto de símbolos que constitui um alfabeto discreto e finito
v
t(i) - Variável Viterbi, definida como a mais alta pontuação (mais alta probabilidade) ao longo de um caminho até o instante t
w - Tamanho das palavras da máquina (8, 16, 32, ou 64 bits) γ
t(i) - Probabilidade a posteriori do estado S
ino instante t, λ - Parâmetros do modelo, também, designa o próprio modelo
λ - Estimativa dos parâmetros do modelo
π - Vetor de probabilidades para o estado inicial de um HMM
π - Vetor de estimativas das probabilidades para o estado inicial de um HMM
π
i- Probabilidade para o estado inicial i de um HMM
π
i- Estimativa da probabilidade para o estado inicial i de um HMM
ψ
t(j) - Vetor para guardar, para cada t e j, o argumento que maximiza v
t(i)
)) ( (f n
Ω
- Notação big- Ω para comparação do crescimento assintótico de funções
)) ( (f n
ω
- Notação little- ω para comparação do crescimento assintótico de funções
)) ( (f n
Θ