colegio de postgraduados...colegio de postgraduados, 2009. abstract this work proposes an algorithm...
TRANSCRIPT
i
COLEGIO DE POSTGRADUADOS
INSTITUCIÓN DE ENSEÑANZA E INVESTIGACIÓN EN CIENCIAS AGRÍCOLAS
CAMPUS MONTECILLO
POSTGRADO DE SOCIOECONOMÍA, ESTADÍSTICA E INFORMÁTICA
ESTADÍSTICA
ALGORITMOS DE EVOLUCIÓN DIFERENCIAL PARA LA
ESTIMACIÓN DE MODELOS DE MARKOV OCULTOS, USADOS EN LA
IDENTIFICACIÓN DE EXONES
EVELIO HERNÁNDEZ JUÁREZ
TESIS
PRESENTADA COMO REQUISITO PARCIAL
PARA OBTENER EL GRADO DE:
MAESTRO EN CIENCIAS
MONTECILLO, TEXCOCO, EDO. DE MEXICO.
2009
ii
La presente tesis titulada: ALGORITMOS DE EVOLUCIÓN DIFERENCIAL PARA LA
ESTIMACIÓN DE MODELOS DE MARKOV OCULTOS, USADOS EN LA
IDENTIFICACIÓN DE EXONES, realizada por el alumno: Evelio Hernández Juárez, bajo la
dirección del Consejo Particular indicado, ha sido aprobada por el mismo y aceptada como
requisito parcial para obtener el grado de:
MAESTRO EN CIENCIAS
SOCIOECONOMÍA, ESTADÍSTICA E INFORMÁTICA
ESTADÍSTICA
CONSEJO PARTICULAR
CONSEJERO ________________________________
Dr. Gustavo Ramírez Valverde
ASESOR ________________________________
Dr. Irineo López Cruz
ASESOR ________________________________
Dr. Javier Suárez Espinosa
ASESOR ________________________________
Dr. Paulino Pérez Rodríguez
MONTECILLO, TEXCOCO, EDO. DE MEXICO. NOVIEMBRE DE 2009.
AGRADECIMIENTOS
iii
Al Consejo Nacional de Ciencia y Tecnología (CONACYT) por el apoyo económico brindado en
la realización de mis estudios.
Al Colegio de Postgraduados, por la oportunidad de continuar mi preparación personal y
profesional.
A los integrantes del consejo particular por su orientación y apoyo en este trabajo.
Al Dr. Gustavo Ramírez Valverde, por su gran apoyo y por el tiempo dedicado.
A mis padres y hermanos, por el apoyo y confianza que me han brindado siempre.
A mis maestros y a todas aquellas personas que de forma directa o indirecta contribuyeron a la
culminación de este trabajo.
iv
DEDICATORIA
A Ernesto y Rosario. ¿Qué sería de mi vida sin ustedes?
v
INDICE
I. INTRODUCCIÓN………………………………………………………… …………… 1
II. OBJETIVOS…….………………………………………………………………….…. 2
III. MARCO CONCEPTUAL……….………………………………………………….. 3
3.1. ADN……..………………………………………………………………….. 3
3.1.1. TRANSCRIPCIÓN Y TRADUCCIÓN ………………………… 5
3.1.2. PREDICCIÓN DE GENES………………………………………… 8
3.2. PROCESOS ESTOCÁSTICOS……...……………………………………. 11
3.2.1 PROPIEDAD MARKOVIANA….………………………………….. 11
3.2.2. MODELOS DE MARKOV OCULTOS……...…………………….. 13
3.2.2.1. ELEMENTOS DE UN HMM……...………………………. 14
3.2.2.2. LOS TRES PROBLEMAS BASICOS DE UN HMM……. 15
3.3. EVOLUCIÓN DIFERENCIAL….………………………………………… 25
3.3.1. ESTRUCTURA DE LA POBLACIÓN…………………...……… 25
3.3.2. MUTACIÓN………………………..………………….…………… 26
3.3.3. RECOMBINACIÓN………………………..…….……….……….. 26
3.3.4. SELECCIÓN………………………..…………………….………… 27
3.3.5. VARIANTES DE ED………………………..…………………….… 27
IV. MATERIALES Y METODOS…………………………………………….…………… 31
4.1. IMPLEMENTACION DEL ALGORITMO ED……………………………... 31
4.2. DESCRIPCIÓN DE LOS EXPERIMENTOS………………………….......... 34
4.2.1. EXPERIMENTO A…………………………………………………… 34
4.2.2. EXPERIMENTO B…………………………………………………… 35
4.2.3. EXPERIMENTO C…………………………………………………. 36
4.2.4. EXPERIMRNTO D…………………………………………………. 36
V. RESULTADOS Y DISCUSIÓN………………………………………….…………….. 38
5.1 EXPERIMENTO A…………………………………………………………….. 38
5.2. EXPERIMENTO B……………………………………………….…………… 39
5.3. EXPERIMENTO C……………………………………………………………. 40
5.4. EXPERIMENTO D………………………………………………………….... 40
vi
VI. CONCLUSIONES…………………………………………………………………….. 43
VII. ANEXOS………..……………………………………………………………………… 44
VI. REFERENCIAS………………………………………………………………….……. 54
vii
ALGORITMOS DE EVOLUCIÓN DIFERENCIAL PARA LA ESTIMACIÓN DE
MODELOS DE MARKOV OCULTOS, USADOS EN LA IDENTIFICACIÓN DE
EXONES.
EVELIO HERNÁNDEZ JUÁREZ, M. C.
COLEGIO DE POSTGRADUADOS, 2009.
RESUMEN.
En éste trabajo se propone un algoritmo basado en evolución diferencial (ED) para estimar al
conjunto de parámetros que caracteriza un modelo de Markov oculto (HMM). Dicho modelo se
usa para distinguir en un gen, regiones codificantes de proteínas (exones) de regiones no
codificantes (intrones), empleando para ello solo información de la secuencia.
Muchos de los parámetros en los HMM pueden ser desconocidos y deben ser estimados, para lo
cual se emplea máxima verosimilitud. El algoritmo de reestimación de Baum-Welch es la técnica
más empleada para estimar dichos parámetros; sin embargo este algoritmo lleva solo a máximos
locales. Al implementar el algoritmo basado en ED tanto en secuencias simuladas como reales, se
obtuvieron mejores estimaciones de los parámetros en términos de verosimilitud, que los que
produce la técnica de Baun-Welch.
Palabras clave: Regiones codificantes, Evolución Diferencial, Modelos de Markov ocultos.
viii
DIFFERENTIAL EVOLUTION ALGORITHMS FOR ESTIMATION OF HIDDEN
MARKOV MODELS, USED IN THE IDENTIFICATION OF EXON
EVELIO HERNÁNDEZ JUÁREZ, M. C.
COLEGIO DE POSTGRADUADOS, 2009.
ABSTRACT
This work proposes an algorithm based on differential evolution (DE) to estimate the parameter
set that characterizes a Hidden Markov Model (HMM). Such model is used to distinguish in a
gene, protein-coding regions (exons) from non coding regions (introns) by using only information
of the sequence.
Most of parameters in HMM may be unknown and must be estimated, for which maximum
likelihood is used. Baum-Welch re-estimation algorithm is the most widely used technique to
estimate such parameters; however this algorithm leads only local maximums. Best estimations
of the parameters in terms of likelihood were obtained than Baum-Welch’s technique, when
algorithm based on ED was used on simulated sequences and real sequences.
Key words: Coding regions, Differential Evolution, Hidden Markov Models.
1
I. INTRODUCCIÓN.
Toda secuencia de ADN esta formada por cuatro nucleótidos, cada uno se caracteriza por una
base distinta: Adenina (A), Citosina (C), Guanina (G) y Timina (T). Para organismos eucariontes,
en un gen además de las regiones codificantes de proteínas (exones) se encuentran regiones no
codificantes llamadas intrones. (Lewin, 2006)
Los modelos de Markov ocultos (HMM por sus siglas en ingles) son procesos estocásticos en los
que los estados no son observables, y solo se expresan a través de un conjunto de emisiones que
si son observables; estos modelos fueron usados para al reconocimiento de voz (Rabiner, 1989),
posteriormente se mostró su eficacia para la modelación de secuencias biológicas (Durbin et al.,
1998). Por otra parte, han revelado un buen desempeño en la predicción de la estructura biológica
de secuencias (Asai et al., 1993). Y en 2004 fueron usados para la predicción de la estructura
secundaria de proteínas (Won, J.-K. et al).
Un HMM queda completamente definido por un conjunto de parámetros , los cuales son
desconocidos y deben ser estimados. Una de las formas para realizar dicha estimación es máxima
verosimilitud, es decir, se debe escoger de tal forma que maximice la probabilidad OP ,
donde O representa una secuencia de observaciones.
Para seleccionar , regularmente se usa el algoritmo de reestimación de Baum-Welch; Rabiner
(1989) menciona que la efectividad de esta metodología depende del valor inicial de los
parámetros, el cual comúnmente se escoge de manera aleatoria, por tanto este algoritmo suele
converger a óptimos locales; también comenta que en la mayoría de las aplicaciones de interés la
superficie de optimización es muy compleja y tiene muchos máximos locales.
Según Storn y Price (1995) evolución diferencial (ED) es un método de búsqueda estocástica que
converge al óptimo global y comparado con otras metodologías, requiere menor tiempo
computacional. En el presente trabajo se propone un algoritmo basado en ED para estimar los
parámetros de un modelo de Markov oculto, el cual se usa para distinguir si cada nucleótido en
un gen es codificante o no, usando solo información de la secuencia.
2
II. OBJETIVOS.
Diseñar un algoritmo basado en ED, para encontrar valores de los parámetros de un HMM
que maximicen la función OP .
Comparar el algoritmo propuesto contra el algoritmo Baum-Welch, bajo los siguientes
criterios:
a) valor de OP .
b) número de observaciones clasificadas correctamente.
Probar al algoritmo propuesto en secuencias reales de ADN, en cuanto al número de bases
clasificadas correctamente.
3
III. MARCO CONCEPTUAL.
3.1 ADN.
Ringo (2004) afirma que el ácido desoxirribonucleico, frecuentemente abreviado como ADN (y
también DNA, del inglés Deoxyribonucleic Acid), es una macromolécula que contiene la
información genética usada en el desarrollo y el funcionamiento de los organismos vivos
conocidos y de algunos virus.
Singer (1993) menciona que el ADN de todos organismos esta formado por los mismos
componentes llamados nucleótidos, y cada uno de estos, a su vez, está formado por un azúcar,
una base nitrogenada y un grupo fosfato que actúa como enganche entre los nucleótidos.
Los grupos fosfato, forman enlaces fosfodiéster entre los átomos de carbono tercero (3′) y quinto
(5′) de dos anillos adyacentes de azúcar. La formación de enlaces asimétricos implica que cada
hebra de ADN tiene una dirección. En una doble hélice, la dirección de los nucleótidos en una
hebra (3′ → 5′) es opuesta a la dirección en la otra hebra (5′ → 3′).
Las cuatro bases nitrogenadas que se encuentran en el ADN son adenina (A), citosina (C),
guanina (G) y timina (T). Ringo (2004) asevera que cada una de estas se clasifican en dos
grupos: las bases púricas o purinas (adenina y guanina) formadas por dos anillos unidos entre sí,
y las bases pirimidínicas o pirimidinas (citosina y timina), derivadas de la pirimidina las cuales
cuentan con un solo anillo que las une.
En los ácidos nucléicos existe una quinta base pirimidínica, denominada uracilo (U), que
normalmente ocupa el lugar de la timina en el ácido ribonucleico (ARN).
La doble hélice de ADN se mantiene estable mediante la formación de puentes de hidrógeno
entre las bases asociadas a cada una de las dos cadenas entrelazadas (hebras).
Los puentes de hidrógeno pueden romperse y formarse de nuevo de forma relativamente sencilla.
Por esta razón, las dos hebras de la doble hélice pueden separarse bien por fuerza mecánica o por
alta temperatura (Clausen-Schaumann, 2000).
4
Cada tipo de base en una hebra forma un enlace únicamente con un tipo de base en la otra hebra,
lo que se denomina "complementariedad de las bases". Según esto, las purinas forman enlaces
con las pirimidinas, de forma que A se enlaza sólo con T, y C sólo con G. La organización de dos
nucleótidos apareados a lo largo de la doble hélice se denomina apareamiento de bases.
Las bases nitrogenadas tienen una serie de características que les confieren unas propiedades
determinadas. Una característica importante es su carácter aromático, ello les confiere la
capacidad de absorber luz en la zona ultravioleta del espectro en torno a los 260 nm, lo cual
puede ser aprovechado para determinar la concentración existente de los ácidos nucléicos. (Berg,
2002)
Según Lewin (2006) el gen es la unidad fundamental de la herencia y cada uno de estos es parte
de una secuencia continua de ADN. La secuencia de nucleótidos en el ADN es importante no por
propia estructura, si no por que codifica una secuencia de aminoácidos que constituyen la
correspondiente proteína. La relación entre una secuencia de ADN y la secuencia correspondiente
de proteínas es llamada código genético.
Según Singer (1993) las investigaciones de mediados de los años 50 revelaron las características
moleculares del código genético y cómo este se traduce durante la síntesis de proteínas. Además
comenta que el código genético se reveló constante, prácticamente el mismo en todos los
organismos y las reglas generales para traducir los mensajes codificados genéticamente resultaron
ser también universales.
En el mismo texto Singer (1993) continúa, con la afirmación: el diccionario genético contiene
sesenta y cuatro codones, cada uno de los cuales está compuesto por tres nucleótidos contiguos
en una cadena de ADN (Fig. 1), sesenta y uno de estos codones especifican aminoácidos, y cada
triplete codifica un único aminoácido.
5
Fig. 1. El código genético. Tomada de Griffiths, et al (2002).
Uno de estos tripletes (AUG) además de codificar al aminoácido metionina, señala el inicio de las
secuencias de ADN que codifican proteínas. Cualquiera de los tres tripletes restantes (UAA,
UAG o UGG) puede señalar el final de la cadena codificada. Algunos aminoácidos pueden ser
especificados por más de un codón, pero ningún codón especifica a más de un aminoácido.
3.1.1 TRANSCRIPCIÓN Y TRADUCCIÓN.
De acuerdo con Lewin (2006) la expresión de un gen en forma de proteína requiere que el ADN
sea transcrito a ARN (Fig. 2). Este proceso es catalizado por ARN polimerasas, que son enzimas
que sintetizan cadenas de ARN, copiando la secuencia de nucleótidos de una de la hebras del
ADN, siguiendo las reglas de apareamiento entre bases complementarias. Los genes que
codifican proteínas producen ARN mensajeros (ARNm) llamados así porque transportan el
mensaje contenido en el ADN e intervienen directamente en la síntesis de proteínas.
Fig. 2 Transcripción de dos genes. Tomada de Griffiths, et al (2002).
6
Singer (1993) comenta que algunos genes no codifican proteínas, en lugar de ARNm, su
transcripción produce moléculas de ARN que son necesarias para la maduración de los diferentes
tipos de ARN y para la traducción de las secuencias de los ARNm para generar proteínas.
El proceso mediante el cual una secuencia de nucleótidos es traducida a una cadena proteica es
complejo e implica un gran número de pasos iterativos. Los ribosomas que contienen más de
cincuenta proteínas diferentes y tres clases de ARN catalizan la traducción a proteínas de los
ARNm. El ensamblaje de una cadena de proteínas empieza cuando los ribosomas se unen al
ARNm. La cadena de proteínas se alarga aminoácido por aminoácido, uno por vez a medida que
el ribosoma se desplaza codón por codón a lo largo de ARNm (Fig. 3).
Fig. 3 Adición de un aminoácido a la cadena polipeptídica creciente durante la traducción del ARNm.
Tomada de Griffiths, et al (2002).
Cada aminoácido esta unido a un ARN de transferencia (ARNt) apropiado, que contiene un
triplete (anticodon) que es complementario al triplete codificante en el ARNm (Fig. 4). El
apareamiento entre el codón y el anticodón coloca al aminoácido correcto en su sitio y permite la
unión de los nuevos aminoácidos al extremo en crecimiento de la cadena proteica. Cada vez que
un ribosoma recorre la longitud total de la secuencia codificante del ARNm se sintetiza una
molécula completa de la proteína correspondiente.
7
Fig. 4. a) Secuencia especifica de ARNt de la alanina de levadura. b) Esquema de la estructura
tridimensional real del ARNt de la fenilalanina de levadura. Tomadas de Griffiths, et al (2002).
Lewin (2006) menciona que en procariontes ambos procesos transcripción y traducción ocurren
en el mismo sitio ya que estos organismos carecen de un núcleo definido (Fig. 5 a). En
organismos eucariontes el resultado inmediato de la transcripción es llamado pre-ARNm y debe
ser transportado al citoplasma para que se lleve a cabo la traducción. El pre-ARNm requiere un
proceso para generar el ARNm maduro (Fig. 5 b).
Fig. 5. a) Transcripción y traducción en procariontes. b) Transcripción y traducción en eucariontes.
Tomadas de Lewin (2006).
a) b)
a) b)
8
Un paso crucial en el proceso de la expresión de un gen es la edición del ARNm, ya que el pre-
ARNm contiene regiones que no codifican proteínas (intrones), en el proceso de edición estas
regiones son eliminadas y así se genera el ARNm maduro, el cual consta solo de secuencias que
codifican proteínas (exones).
3.1.2. PREDICCIÓN DE GENES.
Según Mount (2004) el propósito de la predicción de genes es identificar regiones de ADN que
codifican proteínas.
De acuerdo con Rogic (2000) existen varios métodos para el descubrimiento experimental de los
genes, pero son lentos y costosos. En consecuencia se han desarrollado métodos computacionales
para el descubrimiento de genes.
Las secuencias de ADN que codifican proteínas no son cadenas aleatorias de codones, si no una
lista en un orden específico de estos, el cual refleja el origen evolutivo de un gen y las
restricciones asociadas con la expresión de los genes, esto puede ser usado para encontrar
regiones de ADN que codifican proteínas.
Según Mount (2004) el método más simple para encontrar secuencias de ADN que codifican
proteínas es buscar marcos de lectura abiertos (ORF, por sus siglas en inglés). El punto de inicio
de la traducción de una secuencia de nucleótidos se conoce como marco de lectura (Lewin,
2006). Un marco de lectura que consiste de exclusivamente de tripletes que representan
aminoácidos se llama marco de lectura abierto.
Hay seis posibles marcos de lectura en cada secuencia de ADN, tres inicios en las posiciones 1, 2
y 3 en dirección 5’ a 3’ de una hebra, y otros tres inicios en la dirección 5’ a 3’ de la hebra
complementaria (Mount, 2004).
Una secuencia que se traduce en una proteína tiene un marco de lectura que inicia con un codón
especial de iniciación (AUG) y se extiende como una serie de tripletes que representan
aminoácidos hasta que se llega a uno de tres codones de finalización (Lewin, 2006).
9
Se han establecido diferentes enfoques para la búsqueda de genes, Rogic (2000) los describe
como sigue:
BÚSQUEDA DE SIMILITUDES DE SECUENCIAS.
Se basa en la conservación de las secuencias, y se utiliza para buscar en las regiones similares
entre la secuencia de interés no caracterizada y las secuencias ya caracterizadas en una base de
datos.
Si una secuencia de consulta es similar a una secuencia ya caracterizada (ADN o proteínas), se
puede asumir que estas dos secuencias son homólogas, es decir, tienen origen evolutivo común.
ESTADÍSTICAS CODIFICANTES Y DETECCIÓN DE SEÑALES.
El segundo enfoque computacional para la predicción de estructuras genéticas en secuencias de
ADN genómico, integra estadísticas codificantes con detección de señales en un marco, a este
tipo de búsqueda también se le conoce como encontrar genes ab initio. Las estadísticas
codificantes son medidas indicativas de una función de codificación de proteínas, estas medidas
están basadas en el supuesto de que las regiones codificantes se comportan de manera
estadísticamente diferente a las regiones no codificantes.
Las metodologías para detectar señales intentan imitar los procesos que ocurren dentro de la
célula. Están destinadas a identificar señales, por lo general subsecuencias de varios nucleótidos
que son reconocidos por la maquinaria celular y son los indicadores de ciertos procesos. Las
señales que suelen ser modeladas por los programas predicción de genes son: elementos
promotores, codones de iniciación o de parada, sitios de edición (splice sites). Se han usado
muchos métodos de reconocimiento de patrones para detectar señales incluyendo secuencias de
consenso simple, matrices ponderadas, redes neuronales, y árboles de decisión.
Las señales en secuencias de ADN contienen poca información, suelen ser degeneradas y poco
específicas, ya que es casi imposible distinguir realmente las señales procesadas por la célula de
las que aparentemente no son funcionales. Por lo tanto, las metodologías para detectar señales no
10
son suficientes para dilucidar la estructura del gen y es necesario combinarlas con métodos que
usan estadísticas codificantes con el fin de obtener un poder predictivo satisfactorio.
Existen programas computacionales que usan tanto búsqueda de señales como estadísticas
codificantes, tales como GeneMark.hmm (Lukashin y Borodovski, 1998), GENSCAN (Burge,
1997) y HMMgene (Krogh, 1997), estos están basados modelos de Markov ocultos de quinto
orden.
Además de los anteriores, en la literatura se han reportado diferentes métodos y programas
computacionales que ofrecen alternativas para la predicción de genes, por ejemplo:
Nielsen y Krogh (1998) generaron un modelo basado en HMM que puede ser utilizado para
predecir la ubicación del sitio de inicio del proceso de edición.
Stanke y Waack (2003) desarrollaron un nuevo programa, llamado AUGUSTUS, para la
predicción ab initio de los genes que codifican proteínas en la genomas eucariontes. El programa
se basa en modelos de Markov ocultos y se integra una serie de métodos conocidos y
submodelos.
Parra, et al. (2003) describen un programa de predicción de genes (SGP2), que combina la
predicción de genes ab initio con búsquedas entre dos secuencias del genoma para proporcionar
predicciones sensibles y específicas. Además Parra y sus colaboradores sugieren que la
conservación de secuencias a nivel de proteínas en el genoma del ratón puede ayudar a eliminar
algunos de los falsos positivos en el genoma humano.
“Todavía tenemos un largo camino por recorrer antes de que podamos descifrar la estructura
exónica precisa de cada gen en el genoma humano, usando solamente metodología
computacional”(Guigo, 2000).
11
3.2. PROCESOS ESTOCÁSTICOS.
Taylor (1998) define un proceso estocástico como una familia de variables aleatorias tX ,
donde t es un parámetro que corre sobre un conjunto fijo de índices T. En una situación común, el
índice t corresponde a unidades discretas de tiempo, y el conjunto de índices es ,2,1,0T . En
general tX representa una característica de interés medible en el tiempo t.
El conjunto S de todos los posibles valores asociados a un proceso estocástico se define como
espacio de estados. El valor asociado a kX es el estado del proceso en el tiempo k. Si S contiene
valores discretos el proceso estocástico se denomina discreto; de otra forma, el proceso
estocástico es continuo. Cualquier secuencia de valores asociados a un proceso estocástico se
define como una realización del proceso.
3.2.1 PROPIEDAD MARKOVIANA.
Andrei Andreivich Markov (1856-1922) fue un matemático ruso que postuló el principio de que
existen ciertos procesos estocásticos cuyo futuro depende únicamente de su presente y son
independientes de su pasado.
Considere un sistema el cual, en puntos específicos del tiempo, se encuentra exactamente en uno
de un conjunto de N estados, NSSS ,,, 21 , mutuamente excluyentes.
De manera formal, se dice que un proceso estocástico tX tiene la propiedad markoviana si:
011 0111 ,,,, kkktitjt SXSXSXSXSXP
t
itjt SXSXP 1
para ,2,1,0t y toda sucesión 110 ...,,,,, tkkkji .
Es decir, la probabilidad condicional de cualquier evento futuro, dados cualquier evento pasado y
el evento actual, es independiente del evento pasado y solo depende del estado actual del proceso.
Así, un proceso de markov {Xt} es un proceso estocástico con la propiedad markoviana.
12
Siguiendo el texto de Davis (1986), las probabilidades condicionales itjt SXSXP 1
para
Nji ,2,1, y ,2,1,0t se llaman probabilidades de transición y se denotaran por ija .
Si para cada i y j se cumple que:
ijitjt SXSXPSXSXP 011
para toda ,2,1,0t
Entonces se dice que las probabilidades de transición (de un paso) son estacionarias. Es decir,
las probabilidades de transición no cambian con el tiempo.
La existencia de probabilidades de transición estacionarias (de un paso) también implica que,
para cada i, j y n ( ,2,1,0n )
ijnitjnt SXSXPSXSXP 0 , para toda ,2,1,0t
Estas probabilidades condicionales se denotan por )(n
ija y se conocen como probabilidades de
transición de n pasos. Así, )(n
ija es simplemente la probabilidad condicional de que la variable
X , comenzando en el estado iS , se encuentre en el estado jS , después de n pasos (unidades de
tiempo).
Nótese: que para 0n , )0(
ija es solo ij SXSXP 00 y esto es igual a 1 si i=j y es 0 si ji .
Y para n=1 )1(
ija es simplemente la probabilidad de transición de un paso.
Las probabilidades de transición deben satisfacer:
i) 10 )( n
ija ,2,1,0n
ii) N
j
n
ija1
)( 1 ,2,1,0n
Una forma conveniente de representar las )(n
ija es a través de una matriz
)()(
1
)(
0
)(
1
)(
11
)(
10
)(
0
)(
01
)(
00
)(
n
NN
n
N
n
N
n
N
nn
n
N
nn
n
aaa
aaa
aaa
A
para ,2,1,0n
Que se conoce como matriz de transición
13
Prawda (1984) define una cadena de Markov como sigue:
Un proceso estocástico tQ es una cadena de Markov finita si cumple con cada una de las
siguientes propiedades.
a) Posee la propiedad de Markov.
b) El espacio de estados es finito.
c) Las probabilidades de transición son estacionarias.
d) Se conocen las probabilidades iniciales ii SQP 1 , para toda i.
Para redondear conceptos considérese el siguiente ejemplo de un modelo de Markov con tres
estados: El almuerzo en el comedor de una universidad se puede catalogar diariamente como
1S =Bueno, 2S =Regular o 3S =Malo. Se postula que el tipo de almuerzo está caracterizado por la
matriz de transición A:
4.01.05.0
3.04.03.0
5.03.02.0
ijaA
Dado este modelo y sabiendo que el almuerzo en el día 1 ( 1t ) fue bueno, se puede preguntar
¿Cuál es la probabilidad de que el almuerzo sea bueno los próximos 2 días, al siguiente sea malo
y después regular? Es decir se quiere la probabilidad de observar la secuencia 2311 ,,, SSSS
correspondiente a los tiempos 5,4,3,2t , dado el modelo anterior. Si se denota al estado en el
tiempo t como tq , entonces:
ASqSqSqSqSqP ,,,, 1125341312
3425133412131112 SqSqPSqSqPSqSqPSqSqP
32131111 aaaa
002.0)1.0()5.0()2.0()2.0(
3.2.2. MODELOS DE MARKOV OCULTOS (HMM).
Un modelo de Markov considera que cada estado corresponde a un evento físicamente
observable. Los HMM extienden el concepto para incluir el caso donde la observación es una
función probabilística del estado, es decir, en el modelo hay un proceso subyacente que no es
14
observable, y solo puede ser visto a través de otro conjunto de procesos estocásticos que
producen la secuencia de observaciones.
En el ejemplo del almuerzo, considérese que el cocinero tiene dos estados de ánimo: Feliz y
Enojado. El problema es que nadie ve al cocinero, por lo que no se conoce su estado de ánimo, la
única manifestación de este son las observaciones, es decir, si el almuerzo es: Malo, Regular o
Bueno.
Así, si el cocinero está feliz:
P(Almuerzo Bueno)= )1(1b
P(Almuerzo Regular)= )2(1b
P(Almuerzo Malo)= )3(1b
y si está enojado:
P(Almuerzo Bueno)= )1(2b
P(Almuerzo Regular)= )2(2b
P(Almuerzo Malo)= )3(2b
MacDonald (1997) indica que en un HMM cada secuencia de observaciones TOOO ,, 21 es una
realización de tamaño T de un proceso estocástico de espacio de estados finito. Este proceso es
generado por dos mecanismos probabilísticos: primero, una cadena de Markov tQ con N
posibles estados y segundo, un conjunto de distribuciones de probabilidad, una para cada estado
de tQ , que produce observaciones de un conjunto finito de tamaño M.
3.2.2.1. ELEMENTOS DE UN HMM.
De acuerdo con Rabiner (1989), un HMM está caracterizada por:
1) N, el número de estados en modelo. Si bien los estados están ocultos, para muchas
aplicaciones existe frecuentemente información acerca del estado o conjunto de estados
del modelo. Se denotara a los estados como NSSSS ,,, 21 , y al estado en el tiempo t
como tq .
15
2) M, el número de distintas observaciones (emisiones) por estado, dichas emisiones son la
parte observable del sistema modelado y se denotaran como MvvvV ,,, 21 . Y a la
observación en el tiempo t como tO .
3) La distribución de probabilidades de transición de los estados ijaA donde
itjtij SqSqPa 1 , Ni 1
4) La distribución de probabilidades de emisión para cada estado, )(kbB j donde
jtkj SqtenvPkb )(
Mk
Nj
1
1
5) La distribución inicial de los estados i , donde
ii SqP 1 , Ni 1
Así, para una completa especificación de un HMM se requiere de cada uno de los parámetros
mencionados. Por conveniencia, se usará la notación compacta ),,( BA para indicar el
conjunto completo de parámetros del modelo, los valores de N y M están implícitos en el tamaño
de las matrices A y B. En adelante nos referiremos a un modelo con el conjunto de parámetros ,
simplemente como el modelo .
3.2.2.2. LOS TRES PROBLEMAS BASICOS DE UN HMM.
Según Rabiner (1989) existen tres problemas que deben resolverse para hacer aplicaciones de un
HMM. Estos problemas son los siguientes:
Problema 1.
Dada una secuencia de observaciones TOOOO ,, 21 y el modelo ),,( BA , ¿Cómo
calcular de forma eficiente OP , es decir, como calcular la probabilidad de la secuencia de
observaciones, dado el modelo?
Problema 2.
Dada una secuencia de observaciones TOOOO ,, 21 y el modelo ),,( BA , ¿Cómo
escoger una secuencia de estados TqqqQ ,, 21 , que explique las observaciones?
16
Nótese que los problemas 1 y 2 implican que se debe conocer el conjunto de
parámetros ),,( BA , y se debe recalcar que estos son desconocidos y deben estimarse.
Problema 3.
Dada una secuencia de observaciones TOOOO ,, 21 ¿Cómo estimar los parámetros del
modelo?
Si se estima por máxima verosimilitud, la solución involucra la evaluación y maximización de
la probabilidad OP (la cual puede ser denotada por TL ) con respecto a las matrices A, B y .
Solución del problema 1.
La probabilidad buscada es evaluada usualmente por el algoritmo Forward-Backward.
Se enlistan a continuación cuatro propiedades del proceso tO las cuales se usaran mas adelante:
1) Para Tt ,,2,1 :
tTtttttT qOOOPqOOOPqOOOP ,,,,,,,,, 212121 (1a)
(para el caso en el que t=T , 1,,, 21 tTtt qOOOP )
2) Para 1,,2,1 Tt
12121121 ,,,,,,,,,, tTttttttT qOOOPqOOOPqqOOOP (1b)
3) Para 11 Tlt
lTlllttTll qOOOPqqqOOOP ,,,,,,,, 111 (1c)
4) Para Tt ,,2,1
tTtttttTtt qOOOPqOPqOOOP ,,,,,, 211 (1d)
Las pruebas de estas propiedades se pueden encontrar en MacDonald (1997) en el Apéndice A
(pág. 203).
Según MacDonald (1997) el algoritmo Forward-Backward, consiste esencialmente en el cálculo
de la probabilidad Forward )(it y la probabilidad Backward )(it , estas se definen para todo
estado Si ,y para todo t de 1 hasta T como sigue:
17
ittt SqOOOPi ,,)( 21
es decir, )(it es la probabilidad de observar la secuencia parcial tOOO 21, , y el estado iS en el
tiempo t, dado el modelo .
,,)( 21 itTttt SqOOOPi
Es decir, la probabilidad de la secuencia parcial desde t+1 hasta el final, dado el estado iS en el
tiempo t y el modelo . Por facilidad en la notación en adelante se omitirá .
Nótese ahora que para Tt ,,2,1 :
itTttitttt SqOOOPSqOOOPii 2121 ,,,)()(
itTttittit SqOOOPSqOOOPSqP ,,,,,, 2121
Usando la propiedad (1a), tenemos
itTittt SqOOOPSqPii ,,,)()( 21
itT SqOOOP ,,,, 21 (2)
entonces
TT
N
i
itT
N
i
tt LOOOPSqOOOPii ,,,,,,,)()( 21
1
21
1
De esta forma, sí es posible evaluar las probabilidades Forward y Backward para todo t, se tienen
T diferentes formas de calcular la probabilidad deseada.
Para encontrar todas las )(it y )(it nótese que:
1)( iT y )(,)( 1111111 ObSqOPSqPSqOPi iiiii para todo i
y se usan estos valores para iniciar los dos algoritmos recursivos derivados a continuación, los
cuales son validos para 1,,2,1 Tt .
Primero considere:
jttt SqOOOPj 11211 ,,,,)(
N
i
jtitt SqSqOOOP1
1121 ,,,,,
18
jtitt
N
i
jtit SqSqOOOPSqSqP 1121
1
1 ,,,,,
jtitt
N
i
itjtit SqSqOOOPSqSqPSqP 1121
1
1 ,,,,
Usando (1b) y la definición de probabilidad de transición, aij, tenemos
jttittij
N
i
it SqOPSqOOOPaSqP 1121
1
,,,
Como )( 111 tjjtt ObSqOP , se llega a:
)(,,,, 1
1
21 tjij
N
i
itt ObaSqOOOP
)()()( 1
1
1
tj
N
i
ijtt Obaij
Del desarrollo anterior note que como )(it es la probabilidad de observar tOOO ,,, 21 y el
estado iS en el tiempo t, el producto ijt ai )( es entonces la probabilidad de observar la
secuencia tOOO ,,, 21 , y el estado jS en el tiempo t+1, proveniente del estado iS en el tiempo
t. Sumando este producto sobre todos los posibles estados para el tiempo t resulta la probabilidad
de tener jS en el tiempo t+1 y la secuencia tOOO 21, . Una vez hecho esto y jS conocido, se
puede ver que )(1 jt se obtiene calculando la probabilidad de la observación Ot+1 en el estado
j, es decir, la probabilidad )( 1tj Ob .
Segundo,
itTttt SqOOOPi 21,)(
it
itTtt
SqP
SqOOOP
,,, 21
N
j it
jtitTtt
SqP
SqSqOOOP
1
121 ,,,,,
N
j it
jtit
jtitTttSqP
SqSqPSqSqOOOP
1
1
121
,,,,,
19
Usando (1c), y la definición de aij se tiene que:
ij
N
j
jtTtt aSqOOOP 1
121 ,,,
Y por (1d), se llega a:
ijjtTtt
N
j
jtt aSqOOOPSqOP 132
1
11 ,,,
N
j
ijttj ajOb1
11 )()(
Note que estando en iS en el tiempo t y tomando en cuenta la secuencia de observaciones para el
tiempo t+1, se deben considerar todos los posibles estados jS en el tiempo t+1, además de la
probabilidad de transición de iS a jS ( ija ) así como la probabilidad de observar Ot+1 en el estado
j ( )( 1tj Ob ) y también la secuencia parcial de observaciones del estado j ( )(1 jt ).
Solución del problema 2.
La dificultad de este problema yace en la definición de secuencia óptima de estados, es decir,
existen varios criterios de optimalidad. Por ejemplo un criterio seria escoger los estados tq que
sean individualmente más probables, dados el modelo y la secuencia de observaciones. Este
criterio maximiza el número esperado de estados correctos. Para implementar esta solución se
define la variable
,)( OSqPi itt
Es decir la probabilidad de estar en el estado iS en el tiempo t dados la secuencia de
observaciones TOOOO ,, 21 y el modelo , esta probabilidad se puede expresar en término
de variables Forward-Backward como:
N
i
tt
ttttt
ii
ii
OP
iii
1
)()(
)()()()()(
donde )(it da información de la secuencia parcial tOOO ,, 21 y del estado iS en el tiempo t,
20
mientras que )(it informa del resto de la secuencia Ttt OOO ,, 21 dado el iS en t. El factor
N
i
tt ii1
)()( hace a )(it tal que:
N
i
t i1
1)(
Usando )(it es posible encontrar el estado tq en el tiempo t con mayor verosimilitud individual,
como:
)(maxarg1
iq tNi
t Tt 1
Otra posible solución sería una secuencia que maximice el número de pares correctos de estados
),( 1tt qq , o de tripletas de estados ),,( 21 ttt qqq , etc. A pesar de que estos criterios parecen
razonables para algunas aplicaciones, lo más usual es encontrar la mejor secuencia de estados
TqqqQ ,, 21 , es decir, maximizar ,OQP lo cual es equivalente a maximizar OQP , .
Una técnica formal para resolver lo anterior, está basada en programación dinámica y es llamado
Algoritmo de Viterbi, la descripción siguiente fue tomada de Rabiner (1989).
Para encontrar la mejor secuencia de estados TqqqQ ,, 21 , para una secuencia de
observaciones TOOOO ,, 21 se necesita definir:
),(max)( 2121,,, 121
ttqqq
t OOOiqqqPit
es decir, )(it es la máxima probabilidad de obtener las primeras t observaciones y terminar en
el estado iS .
Por inducción se tiene que:
)(])(max[)( 11 tjijti
t Obaij (3)
Para actualizar la secuencia de estados necesitamos el argumento que maximiza (3) para cada t y
j. Esto se hace mediante el arreglo )( jt . El procedimiento completo es como sigue:
1) Inicialización:
)()( 11 Obi ii Ni 1
21
0)(1 i
2) Inducción:
)(])([max)( 11
tjijtNi
t Obaij Nj
Tt
1
2
])([maxarg)( 11
ijtNi
t aij Nj
Tt
1
2
3) Término
)]([max*1
iP TNi
)]([maxarg1
* iq TNi
T
4) Secuencia de estados.
)( *
11
* ttT qq , 1,,2,1 TTt
Solución del problema 3.
Se describe a continuación el algoritmo de Baum-Welch, el cual mediante reestimación de los
parámetros ofrece una solución al problema en cuestión. Se presenta el análisis mostrado en
MacDonald (1997).
Considérese la probabilidad de que el estado inicial sea Si, dadas las observaciones
T
iTTi
L
SqOOOPOOOSqP
121
211
,,,,,,,
Usando la ecuación (2), para t=1 tenemos que
iT SqOOOPii 12111 ,,,,)()(
Entonces:
T
TiL
iiOOOSqP
)()(,,, 11
211
(4)
Así, la ecuación (4), calculada sobre las estimaciones actuales de los parámetros, provee una
reestimación de i (que se denotara como ___
i ), es decir:
T
iL
ii )()( 11___ (5)
22
Ahora nótese que, dadas las observaciones, el número esperado de ocurrencias del estado Sj es:
T
T
t
ttT
t
TjtL
jj
OOOSqP
1
1
21
)()(
,,,
(6)
Y el número esperado de ocurrencias del estado Sj para las cuales kt vO es
T
t
Tjtkt OOOSqvOP1
21 ,,,,
kt vOt
Tjt OOOSqP:
21 ,,,
T
vOt
tt
L
jjkt
:
)()(
(7)
Así, el cociente de (7) entre (6) es la proporción esperada de ocurrencias del estado Sj para las
cuales se observo vk. La siguiente expresión, calculada sobre las estimaciones actuales de los
parámetros, dan una nueva estimación de )(kb j .
T
t
tt
vOt
tt
j
jj
jj
kb kt
1
:________
)()(
)()(
)(
(8)
De forma similar se puede ver que el número esperado de transiciones desde el estado Si, dadas
las observaciones, es
T
T
t
ttT
t
TjtL
jj
OOOSqP
1
11
1
21
)()(
,,,
y el número esperado de transiciones de Si a Sj es
1
1
211 ,,,,T
t
Tjtit OOOSqSqP
1
1
211 ,,,,,T
t T
Tjtit
L
OOOSqSqP
jtit
T
t
jtitT
T
SqSqPSqSqOOOPL
1
1
1
121 ,,,,,1
23
itjtit
T
t
jtitT
T
SqSqPSqPSqSqOOOPL
1
1
1
121 ,,,,1
ijit
T
t
jtitT
T
aSqPSqSqOOOPL
1
1
121 ,,,,1
Pero las propiedades (1b) y (1d) implican que:
jtitT SqSqOOOP 121 ,,,,
jtTttitt SqOOOPSqOOOP 12121 ,,,,,,
jtTttjttitt SqOOOPSqOPSqOOOP 1321121 ,,,,,,
)()(
11 jObSqP
ittj
it
t
Por tanto, el número esperado de transiciones de Si a Sj es
1
1
11 )()(T
t
ttjt
T
ijjObi
L
a
El resultado de la nueva estimación de aij es el siguiente cociente, evaluado en las estimaciones
actuales de los parámetros:
1
1
1
1
11____
)()(
)()(
T
t
tt
T
t
ttjtij
ij
jj
jObia
a
(9)
Así, sí se define el modelo actual ),,( BA y se usan las formulas (5), (8) y (9) para estimar
al modelo y se define al modelo de reestimación como ),,(________
BA , entonces se tiene el modelo
propuesto por Baum, para el cual existen dos opciones:
1) el modelo inicial define un punto crítico en la función de verosimilitud, en este caso
__
2) el modelo __
es más verosímil que el modelo , en el sentido que OPOP
__
, es
decir, se tiene un nuevo modelo __
, con el cual es más probable que haya sido producida
la secuencia de observaciones.
24
Con base en este procedimiento, si se usa__
de forma iterativa en lugar de y se repite el
proceso de reestimación, se puede mejorar OP , hasta cumplir algún criterio de termino.
Las formulas de reestimación se pueden derivar directamente por maximización de la función
auxiliar de Baum:
____
,log,),( QOPOQPQQ
sobre __
. Baum et. al. en 1970 probaron que la maximización de ),(__
Q , lleva a un incremento
en la verosimilitud, es decir:
OPOPQ
____
),(max__
Eventualmente la función de verosimilitud converge a un punto crítico.
Notas acerca del procedimiento de reestimación:
Las formulas de reestimación pueden ser interpretadas como una implementación del algoritmo
EM, en el cual el paso E es el calculo de la función auxiliar ),(__
Q y el paso M es la
maximización sobre __
. Por lo tanto las ecuaciones de reestimación de Baum-Welch son en
esencia el algoritmo EM para este problema particular. Un aspecto importante del procedimiento
de reestimación es que las restricciones estocásticas (mostradas en las ecuaciones 34 a, b y c) de
los parámetros del HMM se satisfacen automáticamente en cada iteración.
11
N
i
i (10a)
11
N
j
ija Nj 1 (10b)
1)(1
M
k
j kb Nj 1 (10c)
25
Rabiner (1989) indica que el algoritmo Baum-Welch lleva solo a un máximo local y que en la
mayoría de las aplicaciones de interés la superficie de optimización es muy compleja y tiene
muchos máximos locales.
Por ello surge la necesidad de explorar métodos de búsqueda global, tales como los algoritmos de
evolución diferencial.
3.3. EVOLUCIÓN DIFERENCIAL.
Rainer Storn y Kenneth Price (1995) presentaron una técnica estocástica de búsqueda
directa para resolver problemas de minimización de funciones no lineales y no
diferenciables, a la cual llamaron Evolución diferencial (ED).
A continuación se presenta la descripción de un algoritmo ED, presentada en Price, et al
(2005).
3.3.1. ESTRUCTURA DE LA POBLACIÓN.
ED emplea una población de NP vectores de parámetros de tamaño D. La población para
cada generación denotada por gxP , , está compuesta de vectores gix , los cuales contienen las
variables del problema.
max,, ,...,1,0,1...,,2,1, ggNPixP gigx
1...,,1,0,,,, Djxx gijgi
Donde el índice max,...,1,0 gg , indica la generación a la que pertenece el vector, el índice
1...,,2,1 NPi , diferencia a cada vector dentro de la población y cada variable dentro de un
vector se distingue por el índice 1...,,1,0 Dj .
Una vez generada (al azar) la población inicial, ED mediante un proceso de mutación genera una
población intermedia gvP , , de NP vectores mutantes, giv , .
max,, ,...,1,0,1...,,2,1, ggNPivP gigv
1...,,1,0,,,, Djvv gijgi
26
Cada vector en la población actual se combina con un vector mutante y se produce una población
de prueba, guP ,, con NP vectores, giu , .
max,, ,...,1,0,1...,,2,1, ggNPiuP gigu
1...,,1,0,,,, Djuu gijgi
Durante la recombinación, los vectores de prueba reemplazan a la población mutante, y así para
cada generación se tienen solo dos poblaciones.
3.3.2. MUTACIÓN.
En el proceso de mutación se eligen vectores de la población actual, y se suma la diferencia
ponderada de dos de ellos a un tercero. La ecuación (11) muestra como se combinan tres vectores
diferentes seleccionados para crear un vector mutante giv , :
grgrgrgi xxFxv ,2,1,0, , max,...,1,0,1...,,2,1 ggNPi (11)
El factor de escala F, es un número real positivo que controla la razón con la cual la población
evoluciona. A pesar de que F no tiene un límite superior, comúnmente no se toma un valor mayor
a 1. El vector 0rx se puede escoger de diferentes maneras, por ahora asumiremos que se escoge
al azar, los vectores grgr xyx ,2,1 se eligen aleatoriamente, con la condición de que deben ser
todos diferentes entre sí y diferentes al índice i.
3.3.3. RECOMBINACIÓN.
Mediante la recombinación ED construye vectores de prueba giu , , en los que cada entrada giju ,,
se escoge de uno de dos valores gijx ,, o gijv ,, , es decir, ED cruza cada vector de la población
gxP , con un vector mutante, bajo el siguiente criterio:
maneraotradex
jjoCRrandsivu
gij
randjgij
gij
,,
,,
,, (12)
Para max,...,1,0,1...,,2,1 ggNPi . La probabilidad de cruzamiento 1,0CR es definida por
el usuario. Para determinar cuáles elementos del vector de prueba serán tomados del vector
mutante se compara el valor de CR con un valor generado de la distribución uniforme continua
1,0 , denotado por jrand , 1...,,1,0 Dj . Si el número aleatorio es menor o igual que CR se
27
toma como toma el valor del vector mutante gijv ,,, caso contrario se copia en valor
gijx ,,.
Además se escoge un índice randj , para el cual el valor de prueba sea tomado del vector mutante
es decir, gijrandgijrand vu ,,,, , lo anterior es con el propósito de que el vector de prueba giu , difiera
al menos en un valor del vector actual gix , .
Para elegir los parámetros que hasta ahora se han mencionado, Storn y Price (1997) mencionan
que de acuerdo a su experiencia es razonable escoger NP entre 5*D y 10*D, y necesariamente
debe ser mayor que 4. Para el valor de F, usualmente un buen inicio es 0.5, si la población
converge prematuramente F o NP deben incrementarse. Un buen inicio para CR, es 0.1, valores
más grandes de este parámetro incrementen la velocidad de convergencia.
Price (1999) comenta F y CR afectan la velocidad de convergencia y la robustez de la búsqueda
del proceso, los valores óptimos de estos parámetros dependerán de las características de la
función objetivo y del tamaño de la población NP, los valores adecuados de F, CR y NP pueden
determinarse mediante prueba y error después de pocos intentos.
3.3.4. SELECCIÓN.
Si el vector de prueba giu , , obtiene un valor de la función objetivo menor o igual (considerando
un problema de minimización), que el que valor obtenido por el vector gix , , este último es
reemplazado por el vector de prueba para la siguiente generación, en caso contrario conserva su
lugar en la población por lo menos una generación más. La ecuación (39) muestra el proceso
descrito:
maneraotradex
xfufsiux
gi
gigigi
gi
,
,,,
1, max,...,1,0,1...,,2,1 ggNPi (13)
Una vez que se genera la nueva población el proceso de mutación, recombinación y selección se
repite hasta cumplir un criterio de término.
3.3.5. VARIANTES DE EVOLUCIÓN DIFERENCIAL.
Existen diferentes estrategias de ED basadas en las combinaciones de los esquemas de mutación
y recombinación que existen, Storn y Price (1997) introducen la notación:
28
zyxED /// ,
donde
x especifica la manera de escoger al vector 0rx , puede ser rand, donde se elige de forma
aleatoria o best, se escoge al vector de la población con el mejor valor de la función a
optimizar, dependiendo de si el problema es de maximización o minimización.
y es el número de pares de vectores con los que se genera la diferencia que se suma a
0rx .
z representa al esquema de recombinación, los más comunes son bin, este es el esquema
representado en la ecuación (12) y exp, este esquema se representa con la ecuación
siguiente:
maneraotradex
jjoCRranddesdevu
gij
randjgij
gij
,,
,,
,,
En diversas publicaciones han sido presentadas variantes para los algoritmos ED. Desde un inicio
Storn y Price (1995) presentan dos esquemas, el primero ED/rand/1/bin, es el descrito
anteriormente, y el segundo denotado (Storn, 1996) como ED/rand-to best/1/bin, determina al
vector giv , , como sigue:
grgrgigbestgigi xxFxxxv ,2,1,,,,
este esquema introduce otra variable de control , la cual tiene las mismas características que F.
Posteriormente Price, et al (2005), presenta diferentes variantes de los esquemas, y un
estudio comparativo entre algunas de estas, las estrategias que compara son:
ED/rand/1/bin (este es el algoritmo clásico)
ED/best/1/bin
ED/target-to best/1/bin
ED/rand/1/either-or.
Una descripción detallada de estas variantes se puede encontrar en Price, et. al. (2005).En el
mismo texto se menciona que ED/best/1/bin y ED/target-to best/1/bin convergen más rápido
que ED/rand/1/bin, pero este último es más confiable, ya que falla solo con una de las 10
funciones con las que se probaron los algoritmos y en menor grado con otra de dichas
29
funciones. ED/rand/1/either-or destaca por ser tanto rápido como confiable.
En Velázquez (2006) se presenta un estudio comparativo empleando las estrategias de
Evolución Diferencial listados en la cuadro 1. El estudio consistió en efectuar 100
ejecuciones independientes por cada modelo mostrado para cada una de trece funciones de
prueba.
Cuadro 1: Estrategias ED. Donde p es el número de pares de la diferencia y randj es un
valor entero tomado aleatoriamente entre 0 y el número de variables de decisión D.
ESTRATEGIA MODELO
ED/rand/p/bin
contrariocasoenx
jjoCRrandsixxFxu
ji
p
k
randjgrjgrjgrj
gijkk
,
1
,2,,1,,0,
,,
ED/rand/p/exp
contrariocasoenx
jjoCRranddesdexxFxu
ji
p
k
randjgrjgrjgrj
gijkk
,
1
,2,,1,,0,
,,
ED/best/p/bin
contrariocasoenx
jjoCRrandsixxFxu
ji
p
k
randjgrjgrjgbestj
gijkk
,
1
,2,,1,,,
,,
ED/best/p/exp
contrariocasoenx
jjoCRranddesdexxFxu
ji
p
k
randjgrjgrjgbestj
gijkk
,
1
,2,,1,,,
,,
ED/current-to-
rand/p
p
k
grgrgigrgigi kkxxFxxKxu
1
,2,1,,0,, )(
ED/current-to-
best/p
p
k
grgrgigbestgigi kkxxFxxKxu
1
,2,1,,,, )(
ED/current-to-
rand/p/bin
contrariocasoenx
jjoCRrandsixxFxxKxu
ji
p
k
randjgrjgrjgijgrjgij
gijkk
,
1
,2,,1,,,,0,,,
,,
)(
30
La conclusión que obtiene es que los modelos ED/rand/l/bin y ED/best/l/bin son los
que muestran los mejores rendimientos en término de resultados y de número de
evaluaciones de la función objetivo.
31
IV. MATERIALES Y METODOS.
4.1. IMPLEMENTACION DEL ALGORITMO.
En éste trabajo se propone un algoritmo basado en Evolución Diferencial, para determinar el
conjunto de parámetros de un HMM que hagan máxima OP . Para fines prácticos se busca
minimizar el valor negativo del logaritmo natural de la probabilidad de la secuencia de
observaciones O dado un modelo , OPln , lo cual es equivalente a maximizar OP .
La minimización se lleva a cabo con respecto a todos los posibles conjuntos de parámetros
),,( BA , y está sujeta a las restricciones propias del modelo, las cuales son especificadas en
las ecuaciones (10a), (10b) y (10c).
Se debe recordar que un HMM está caracterizada por:
N, el número de estados en modelo.
M, el número de distintas emisiones por estado.
La distribución de probabilidades de transición de los estados, ijaA .
La distribución de probabilidades de emisión para cada estado, )(kbB j .
La distribución inicial de los estados, .
Los algoritmos de Evolución Diferencial son un método de búsqueda que utiliza un número NP
de individuos (vectores de parámetros) como población para cada generación, donde NP es fijo
durante todo el proceso.
La población inicial se genera de forma aleatoria, ya que debe cubrir el espacio paramétrico. El
programa con el cual se construyen los individuos de la población inicial fue diseñado con el uso
del software R.2.7.0, el código computacional implementado para generar dicho conjunto de
vectores con las restricciones requeridas se presentan en el Anexo 1.
Dado que ED usa una representación vectorial de los individuos de la población, cada se
reordena como un vector, el cual contiene en sus primeras N entradas al vector , después la
32
primera hilera de la matriz A, en seguida la segunda hilera, y así sucesivamente hasta llegar a la
N-esima hilera de esta matriz, y posteriormente, de forma análoga contendrá las hileras de la
matriz B. Existe una correspondencia entre la representación vectorial y el arreglo de un vector y
dos matrices ),,( BA , por lo que se puede pasar de un arreglo a otro en cualquier momento.
Una vez generada la población inicial de NP vectores, se procede a utilizar alguna de las
estrategias de evolución diferencial para generar una población de prueba. De acuerdo con lo
mencionado en Price, et. al. (2005) y con las recomendaciones de Velázquez (2006) y se decidió
usar algoritmo estándar ED/rand/1/bin.
Como la estrategia empleada para generar la población de prueba usa la diferencia de dos
vectores de parámetros seleccionados al azar como fuente de variación para un tercer vector, los
individuos resultantes en dicha población, en general no cumplirán las restricciones del modelo,
por lo que es necesario un proceso verificación de soluciones factibles y ajuste, el cual se
describe a continuación considerando el arreglo ),,( BA :
i) Si algún componente del modelo es menor que 0, a este componente se le asigna el
valor de 0.
ii) Si algún componente del modelo es mayor que 1, se le asigna a este el valor 1, y al
resto de los componentes de la hilera a la que corresponde se le asigna 0.
iii) Si la suma de alguna hilera es mayor que 1, se le resta a cada componente de esta
hilera el exceso entre el número de componentes.
iv) Si la suma de alguna hilera es menor que 1, se le suma a cada componente el
defecto entre el número de componentes.
Este ajuste resta efectividad al mecanismo de búsqueda del algoritmo, lo que implica un mayor
número de iteraciones, sin embargo es necesario para encontrar un modelo consistente con las
restricciones del problema. El programa computacional que realiza el proceso de ajuste se
presenta en el Anexo 2.
33
Una vez que cada miembro de la población de prueba es una solución factible, se compara
mediante la función de aptitud cada individuo de esta población con el individuo que lo generó, y
el que obtiene mejor desempeño es que pasa a la siguiente generación.
Esta nueva población será la que genere otra población de prueba para la cual se repite el
procedimiento hasta que se cumpla una condición de término, que para nuestro caso es un
número máximo de iteraciones.
En la Fig. 6 se muestra un diagrama de flujo que ilustra el algoritmo usado.
Fig. 6. Diagrama de flujo del algoritmo generado en el presente trabajo.
Para el desarrollo del algoritmo se parte de la función “DEoptim” la cual forma parte del paquete
del mismo nombre (Ardia, 2007) para el software R.2.7.0, a la función mencionada se le
agregaron las funciones de los anexos 1 y 2, además de adecuaciones para el funcionamiento de
dicho algoritmo. En el anexo 3, se presenta la totalidad del código computacional usado,
programado para el software R.2.7.0. Al algoritmo lo denotaremos por EDHMM.
34
4.2. DESCRIPCIÓN DE LOS EXPERIMENTOS.
Se realizaron cuatro experimentos con fin de comparar el algoritmo propuesto contra el
algoritmo Baum-Welch en términos del valor de la función OPln y de la cantidad de
observaciones clasificadas en el estado al que corresponden.
4.2.1. EXPERIMENTO A. Mejor valor de OPln , secuencias simuladas.
Para este experimento se simulan secuencias de observaciones de un HMM usando el
procedimiento descrito en Rabiner (1989), el cual se presenta a continuación:
Dados valores de N, M, A, B y
1) Escoger un estado inicial iSq 1 de acuerdo con la distribución inicial .
2) Hacer 1t .
3) Escoger tt vO de acuerdo con la distribución de probabilidad de emisión, es decir,
)(kb j .
4) Hacer la transición a un nuevo estado jt Sq 1 de acuerdo a la distribución de
probabilidades de transición de los estados, por estado, es decir, ija .
5) Hacer 1 tt ; regresar al paso 3 si Tt ; de otra forma terminar el proceso.
Para las secuencias se usan dos estados (N=2) y cuatro emisiones por estado (M=4), al usar estos
parámetros se pretende simular secuencias de ADN, en especifico genes, en los cuales se tienen
dos estados ocultos (exón e intrón) y cuatro emisiones observables por estado (Adenina, Citocina,
Guanina y Timina), ver Fig. 7. Los valores correspondientes a A, B, y son escogidos de manera
aleatoria.
Una vez que se tienen las secuencias simuladas se usa tanto EDHMM como Baum-Welch para
determinar, con cada algoritmo, el modelo que hace mínimo el valor de la función de interés. Se
usa cada algoritmo 10 veces en cada secuencia y se registran los valores de OPln obtenidos
en cada repetición.
35
Fig. 7. Esquema con estados ocultos y emisiones observables de las secuencas simuladas.
4.2.2. EXPERIMENTO B. MEJOR VALOR DE OPln , CASINO DESHONESTO.
Para este experimento se tomo una secuencia de 300 tiradas del ejemplo del casino
ocasionalmente deshonesto presentada por Durbin, et al. (1998). El ejemplo se describe a
continuación:
Un casino tiene dos dados:
Dado justo en el que 6
1)6()5()4()3()2()1( PPPPPP
Dado cargado en el que 10
1)5()4()3()2()1( PPPPP y
6
1)6( P
El casino alterna entre el dado justo y el cargado.
El juego:
Apostamos $1.
Tiramos (siempre con un dado justo).
El casino tira (tal vez con un dado justo tal vez con un dado cargado).
El número más alto gana $2.
La Fig. 8 muestra el esquema del juego.
36
Fig. 8. Esquema del juego del casino ocasionalmente deshonesto.
4.2.3. EXPERIMENTO C. BASES CLASIFICADAS CORRECTAMENTE, SECUENCIAS
SIMULADAS.
Con este experimento se pretende investigar si modelo al que corresponde el menor valor de
OPln , (de los dos encontrados, uno con cada algoritmo) es el que clasifica el mayor
número de observación en el estado al que corresponde. El experimento se describe a
continuación.
De la misma manera en la que se generan las secuencias del experimento A, se generaron
30 secuencias de tamaño 1000, y se usaron tanto EDHMM como Baum-Welch para
estimar el modelo.
Usando el algoritmo de Viterbi se escoge la secuencia de estados (intrón, exón) que mejor
explique las observaciones, dado el modelo encontrado con cada procedimiento.
Se comparan las secuencias de estados obtenidas con Viterbi, con las secuencias
simuladas de estados (que fungen como secuencias verdaderas) y se obtiene el número de
bases clasificadas correctamente.
37
4.2.4. EXPERIMENTO D.
BASES CLASIFICADAS CORRECTAMENTE, SECUENCIAS REALES
De la página de Internet del NCBI (National Center for Biotechnology Information), se tomaron
dos secuencia de ADN de la mosca de la fruta (Drosophila melanogaster) , estas secuencias son
genes ya identificados y en la información adicional que contiene dicha referencia se muestra qué
partes del gen son exones y cuales son intrones. Con esta información se realizo un experimento
análogo al C.
38
V. RESULTADOS Y DISCUSIÓN
Para todos los experimentos se uso evolución diferencial con los parámetros mostrados en el
cuadro 2.
Cuadro 2. Parámetros usados para ED en los experimentos.
Parámetro Valor
Estrategia RAND/1/BIN
NP 140
F 0.9
CR 0.1
Solo el parámetro número máximo de iteraciones fue diferente en cada experimento, debido a que
el incremento en el tamaño de la secuencia aumenta la complejidad al problema.
El algoritmo Baum-Welch que se usó en los experimentos fue tomado de la función HMMFit
incluida en paquete RHmm (Taramasco, 2008) para el software R.2.3.0.
5.1 EXPERIMENTO A.
El cuadro 3 muestra los diferentes resultados del valor de la función OPln obtenidos con
cada algoritmo, el dígito que se encuentra entre paréntesis corresponde al número de veces que el
algoritmo correspondiente encontró dicho valor. Así por ejemplo, la celda correspondiente al
experimento 3, para el algoritmo Baum-Welch se debe entender como: el algoritmo en cuestión
obtuvo cinco veces el valor 260.93, cuatro veces obtuvo 263.75 y una vez el valor 266.37.
Mientras que con el algoritmo EDHMM, para el mismo experimento con las diez repeticiones se
obtuvo el valor 260.93.
De acuerdo con el cuadro 3, el algoritmo propuesto en este trabajo obtiene para cada caso cuando
más el valor que se obtiene con el algoritmo Baum-Welch, y además se debe notar que con el
algoritmo EDHMM la totalidad de los ensayos llegan a un mismo valor, lo cual sugiere que este
valor es un serio candidato a ser el máximo global.
39
Cuadro 3. Resultados del experimento A. Donde T es el tamaño de la secuencia.
Experimento T Baum-Welch EDHMM
1 20 16.05 (4)
16.17 (6) 16.048(10)
2 20 12.87 (10) 12.75(10)
3 200
260.93 (5);
263.75 (4);
266.37 (1)
260.93(10)
4 200
264.70 (5)
266.24 (1)
267.60 (2)
268.28 (2)
264.700(10)
El cuadro 4 muestra el número de iteraciones que se usaron en cada experimento con respecto al
tamaño de secuencia.
Cuadro 4. Numero de iteraciones por tamaño de secuencia.
T Numero de Iteraciones
20 500
200 5 000
5.2. EXPERIMENTO B.
Cabe señalar que el usar la secuencia que aparece en Durbin (1998) tiene como finalidad avalar
los resultados del experimento A, el cual usa secuencias simuladas, generadas por los autores de
este trabajo; además de hacer notar que el algoritmo EDHMM funciona con parámetros N y M
diferentes de los presentados en al experimento A.
El cuadro 5 muestra los valores obtenidos con cada algoritmo para el presente experimento, la
interpretación de cuadro es análoga a la del cuadro 4. El número de iteraciones requeridas por el
algoritmo EDHMM fue 5000.
40
Nuevamente la convergencia del algoritmo basado en Evolución Diferencial fue mejor, pues las
10 optimizaciones produjeron el mismo índice de desempeño.
Cuadro 5. Resultados del experimento B.
Experimento T Baum-Welch EDHMM
1 300
513.72 (1)
514.26 (3)
514.61(2)
515.76(1)
517.55(1)
519.11(2)
513.72 (10)
5.3. EXPERIMENTO C.
Con los resultados de este experimento, los cuales se resumen en el cuadro 6, se corrobora que el
algoritmo EDHMM obtiene para cada caso, cuando más, el valor de la función OPln que se
obtiene con Baum-Welch y en la mayoría de las repeticiones obtiene un valor menor.
También debe notarse que salvo 5 casos (5, 13, 16, 19 y 22) EDHMM obtiene un mayor número
de bases clasificadas correctamente, que el algoritmo Baum-Welch.
Para este experimento se usaron los mismos parámetros mencionados en el cuadro 2, con un
número de iteraciones igual a 20,000.
5.4. EXPERIMENTO D.
Como puede observarse en el cuadro 7 los resultados de las simulaciones del experimento C son
comparables con los obtenidos con las secuencias reales. Para este par de secuencias se usaron
50,000 iteraciones en el algoritmo EDHMM.
Sin embargo nótese que los resultados difieren considerablemente para cada secuencia. Una
propuesta para mejorar los resultados es añadir información biológica que permita explicar de
mejor manera la variabilidad que existe en las secuencias de ADN.
41
Cuadro 6. Resultados del experimento C. BCC es el número de bases clasificadas
correctamente.
Repetición EDHMM Baum-Welch
OPln BCC OPln BCC
1 1334.368 793 1334.39 742
2 1318.653 773 1331.09 500
3 1294.091 840 1294.23 829
4 1329.986 761 1329.99 761
5 1329.882 608 1329.9 642
6 1346.839 617 1346.84 617
7 1335.798 731 1336.77 698
8 1318.161 678 1318.17 678
9 1290.554 743 1290.56 743
10 1312.612 658 1312.61 650
11 1311.101 779 1311.12 778
12 1356.494 605 1356.51 605
13 1339.27 751 1339.28 756
14 1354.514 648 1356.13 488
15 1284.302 704 1284.3 704
16 1338.182 567 1340.45 596
17 1315.906 775 1329.25 510
18 1298.79 785 1298.79 785
19 1331.494 614 1331.49 688
20 1340.49 771 1349.26 771
21 1322.282 803 1333.65 517
22 1309.602 767 1309.61 772
23 1347.241 653 1347.27 644
24 1340.917 625 1340.9 625
25 1339.515 755 1346.29 445
26 1335.886 711 1346.21 487
27 1311.64 609 1311.62 609
28 1346.613 799 1352.21 713
29 1322.467 692 1322.47 683
30 1337.972 835 1337.98 835
Promedio 1326.52 715 1328.98 662.3
42
Cuadro 7. Resultados del experimento D.
Secuencia T
EDHMM Baum-Welch
OPln BCC % OPln BCC %
1 1963 2697.270 1778 90.57 2703.06 1362 69.4
2 3816 5197.95 1564 67.1 5197.95 1564 67.1
Observaciones generales.
Debe mencionarse que el tiempo computacional requerido por el algoritmo EDHMM es
considerablemente superior al que se requiere con Baum-Welch. Ya que con el primero cada
optimización tarda alrededor de 2 horas, con el segundo solo toma unos minutos.
No se llevo a cabo un proceso formal de experimentación para determinar los parámetros NP, F y
CR usados en el algoritmo EDHMM, solo se partió de recomendaciones como las descritas en
Storn y Price (1997) y Price (1999) y a prueba y error se determinaron los parámetros que no
produjeron convergencia prematura.
En cuanto al número máximo de iteraciones, solo se hicieron intentos con valores inferiores a los
que después se tomaron como definitivos, y estos últimos se escogieron ya que después de
muchas generaciones ya no producían cambios en la función de interés.
43
VI. CONCLUSIONES
El algoritmo propuesto (el cual está basado en evolución diferencial) provee soluciones
factibles para la estimación de los parámetros de un HMM.
En correspondencia con el marco teórico el algoritmo Baum-Welch suele converger a
óptimos locales, mientras que el algoritmo EDHMM muestra consistencia en los valores a
los que converge.
El conjunto de parámetros estimados por el algoritmo EDHMM ( ED ), obtiene para cada
repetición de los experimentos descritos, un valor de la función de interés menor o igual
al que se obtiene con el conjunto de parámetros escogidos con el algoritmo Baum-Welch,
BW , es decir BWED OPOP lnln .
En más del 80% de las secuencias analizadas, el algoritmo EDHMM clasifica de manera
correcta un mayor número de observaciones que algoritmo Baum-Welch.
El desempeño del algoritmo propuesto en datos reales, difiere considerablemente entre
secuencias.
Para obtener mejores resultados en términos de clasificación, para investigaciones futuras, se
sugiere incorporar información biológica al algoritmo EDHMM, ya que este solo usa información
de la secuencia.
44
VII. ANEXOS
ANEXO 1. FUNCIÓN PARA R.2.7.0.
Sirve para generar de forma aleatoria vectores que cumplan con las restricciones de un
HMM.
lambda<-function(N,M) {
d<-sample(1:N)
P<-c(matrix(0,1,N))
P[d[1]]=runif(1)
if (N==2) {
P[d[2]]=1-P[d[1]] }
if (N>2) {
su=P[d[1]]
for (e in 2:(N-1)) {
P[d[e]]=runif(1)
while (su+P[d[e]]>1) {
P[d[e]]=runif(1) }
su=su+P[d[e]] }
P[d[N]]=1-su }
A<-matrix(0,N,N)
f<-matrix(0,N,N)
for (i in 1:N){
f[i,]<-sample(1:N) }
for(k in 1:N) {
A[k,f[k,1]]=runif(1)
if (N==2) {
A[k,f[k,2]]=1-A[k,f[k,1]] }
if (N>2) {
su=A[k,f[k,1]]
for (e in 2:(N-1)) {
A[k,f[k,e]]=runif(1)
45
while (su+A[k,f[k,e]]>1) {
A[k,f[k,e]]=runif(1) }
su=su+A[k,f[k,e]] }
A[k,f[k,N]]=1-su } }
B<-matrix(0,N,M)
f<-matrix(0,N,M)
for (i in 1:N){
f[i,]<-sample(1:M) }
for(k in 1:N) {
B[k,f[k,1]]=runif(1)
if (M==2) {
B[k,f[k,2]]=1-B[k,f[k,1]] }
if (M>2) {
su=B[k,f[k,1]]
for (e in 2:(M-1)) {
B[k,f[k,e]]=runif(1)
while (su+B[k,f[k,e]]>1) {
B[k,f[k,e]]=runif(1) }
su=su+B[k,f[k,e]] }
B[k,f[k,M]]=1-su }
}
lambda<-conv.ML(P,A,B) }
ANEXO 2. FUNCIÓN PARA R.2.7.0
Lleva a cabo el proceso de ajuste.
arre<-function(X)
{
X=as.matrix(X)
c=ncol(X)
if(c==1){X<-t(X)}
46
c<-ncol(X)
h<-nrow(X)
for (k in 1:h){#loop principal
x<-X[k,]
#si una entrada es mayor que 1
for (i in 1:c){
if (x[i]>1){
x[i]=1
for (j in 1:c){
if(j!=i){
x[j]=0 } } } } #si una entrada es menor que 0
for (i in 1:c){
if (x[i]<0){
x[i]=0
}
}
#si la suma es mayor que 1
while (sum(x)>1){
xx=x-((sum(x)-1)/c)
for (i in 1:c){
if (xx[i]<0){
xx[i]=0
}
}
x=xx
}
#si la suma es menor que 1
while (sum(x)<1){
for (w in 1:c){
x[w]=x[w]+((1-sum(x))/c)
}
}
X[k,]<-x
47
}#fin del loop principal
arre<-X
}#fin de la función
ANEXO 3. FUNCIÓN EDHMM.
Previamente se definen funciones que se usan en el algoritmo principal EDHMM
fn.zeros <- function(nr, nc) matrix(rep.int(0, nr * nc),
nrow = nr)
conv.ML<-function(PP,AA,BB)
{
la1<-matrix(PP,1)
la2<-matrix(t(AA),1)
la3<-matrix(t(BB),1)
conv.ML<-c(la1,la2,la3)
}
conv.LM<-function(L,N,M)
{
P<-L[1:N]
A<-matrix(0,N,N)
B<-matrix(0,N,M)
for (i in 1:N)
{
A[i,]<-L[((i*N)+1):((i+1)*N)]
}
k<-((N+1)*N)+1
for (j in 1:N)
{
B[j,]=L[(k+((j-1)*M)):(k+(j*M)-1)]
48
}
conv.LM<-list(P=P,A=A,B=B)
}
mlogver<-function(L,O,N,M)
{
PAB<-conv.LM(L,N,M)
B<-PAB$B
BB<-list(B[1,])
for(i in 2:N){
BB[[i]]<-B[i,]
}
MO<-HMMSet(PAB$P,PAB$A,dis="DISCRETE",BB, labels=NULL)
FB<-forwardbackward(MO,O)
mlogver<-(-FB$LLH)
}
arreglaL<-function(L)
{
PAB<-conv.LM(L,N,M)
P<-arre(PAB$P)
A<-arre(PAB$A)
B<-arre(PAB$B)
arreglaL<-conv.ML(P,A,B)
}
EDHMM<-function (OBS,N,M,VTR,itermax,initial,NP,F,CR,strategy,refresh,digits)
{
d <-N*(1+N+M)
49
if (itermax <= 0) {
warning("'itermax' <= 0; set to default value 200\n",
immediate. = TRUE)
itermax <- 100
}
if (NP < 1) {
warning("'NP' < 1; set to default value 50\n", immediate. = TRUE)
NP <- 1500
}
if (F < 0 | F > 2) {
warning("'F' not in [0,2]; set to default value 0.8\n",
immediate. = TRUE)
F <- 0.8
}
if (CR < 0 | CR > 1) {
warning("'CR' not in [0,1]; set to default value 0.5\n",
immediate. = TRUE)
CR <- 0.2
}
if (strategy < 1 | strategy > 5) {
warning("'strategy' not in {1,...,5}; set to default value 2\n",
immediate. = TRUE)
strategy <- 2
}
refresh <- floor(refresh)
if (refresh > itermax) {
refresh <- 0}
#SE GENERA LA POBLACION INICIAL
pop <- fn.zeros(NP,d)
for(k in 1:NP){
pop[k,]<-lambda(N,M)
50
}
popold <-fn.zeros(NP, d)
val <- rep.int(0, NP)
bestmem <- bestmemit <- rep.int(0, d)
nfeval <- NP
val <- apply(pop, 1,mlogver,OBS,N,M)
for(i in 1:length(val)){
if((is.na(val[i]))){val[i]=10000}
}
for(i in 1:length(val)){
if((is.nan(val[i]))){val[i]=10000}
}
bestval <- bestvalit <- min(val)
ibest <- match(bestvalit, val)
bestmem <- pop[ibest, ]
bestmemit <- matrix(bestmem, nrow = 1)
pm1 <- pm2 <- pm3 <- pm4 <- pm5 <- fn.zeros(NP, d)
bm <- ui <- mui <- mpo <- fn.zeros(NP, d)
rot <- seq(from = 0, by = 1, to = (NP - 1))
rotd <- seq(from = 0, by = 1, to = (d - 1))
rt <- fn.zeros(NP, NP)
rtd <- fn.zeros(d, d)
a1 <- a2 <- a3 <- a4 <- a5 <- fn.zeros(NP, NP)
ind <- fn.zeros(4, 4)
iter <- 1
while (iter <= itermax & bestval >= VTR) {
popold <- pop
ind <- sample(1:4)
a1 <- sample(1:NP)
rt <- (rot + ind[1])%%NP
a2 <- a1[rt + 1]
51
rt <- (rot + ind[2])%%NP
a3 <- a2[rt + 1]
rt <- (rot + ind[3])%%NP
a4 <- a3[rt + 1]
rt <- (rot + ind[4])%%NP
a5 <- a4[rt + 1]
pm1 <- popold[a1, ]
pm2 <- popold[a2, ]
pm3 <- popold[a3, ]
pm4 <- popold[a4, ]
pm5 <- popold[a5, ]
bm <- matrix(rep.int(bestmemit[iter, ], NP), nrow = NP,
byrow = TRUE)
mui <- matrix(runif(NP * d), nrow = NP) < CR
mpo <- mui < 0.5
if (strategy == 1) {
ui <- bm + F * (pm1 - pm2)
ui <- popold * mpo + ui * mui
}
if (strategy == 2) {
ui <- pm3 + F * (pm1 - pm2)
ui <- popold * mpo + ui * mui
}
if (strategy == 3) {
ui <- popold + F * (bm - popold) + F * (pm1 - pm2)
ui <- popold * mpo + ui * mui
}
if (strategy == 4) {
ui <- bm + F * (pm1 - pm2 + pm3 - pm4)
ui <- popold * mpo + ui * mui
}
52
if(strategy == 5){
ui <- pm5 + F * (pm1 - pm2 + pm3 - pm4)
ui <- popold * mpo + ui * mui
}
for (i in 1:NP) {ui[i, ] <- arreglaL(ui[i, ]) }
nfeval <- nfeval + NP
tempval <- apply(ui, 1,mlogver,OBS,N,M)
for(i in 1:length(tempval)){
if((is.na(tempval[i]))){tempval[i]=10000}
}
for(i in 1:length(tempval)){
if((is.nan(tempval[i]))){tempval[i]=10000}
}
ichange <- tempval <= val
val[ichange] <- tempval[ichange]
pop[ichange, ] <- ui[ichange, ]
bestval <- min(val)
bestvalit <- c(bestvalit, bestval)
ibest <- match(bestval, val)
bestmem <- pop[ibest, ]
bestmemit <- rbind(bestmemit, bestmem)
if (refresh > 0 & iter%%refresh == 0)
cat("iteration: ", iter, "value: ", round(bestval,digits),"\n")
iter <- iter + 1
}
Bestmodel<-conv.LM(bestmem,N,M)
B<-Bestmodel$B
BB<-list(B[1,])
for(i in 2:N){
BB[[i]]<-B[i,]
}
53
BM<-HMMSet(Bestmodel$P,Bestmodel$A,dis="DISCRETE",BB, labels=NULL)
VIT<-viterbi(BM,OBS)
VITER<-VIT$states
DEHMM<-list(HMM.Optimo=BM,Sec.Optima=VITER,'-LV'= bestval)
}
54
VIII. REFERENCIAS.
1. Ardia, D. (2008). The DEoptim Package. Differential Evolution Optimization. Version
1.2-1 (Disponible en línea en http://cran.r-project.org/web/packages/DEoptim/index.html)
(Revisado en abril de 2008).
2. Asai, K., Hayamizu, S. and Handa, K. (1993). Training HMM structure with genetic
algorithm for biological sequence analysis Comput. Appl. Biosci., 9, 141–146.
3. Baum, L.E., Petrie, T., Soules, G., and Weiss, N. (1970). A maximization technique
occurring in the statistical analysis of probabilistic function of Markov chains. Ann. Math.
Stat., vol 41, no. 1 pp. 164-171
4. Berg J., Tymoczko J. and Stryer L. (2002) Biochemistry. W. H. FREEMAN AND
COMPANY ISBN 0-7167-4955-6.
5. Burge, C. 1997. Identification of complete gene structure in human genomic DNA. PhD
thesis. Stanford University, Stanford, CA.
6. Clausen-Schaumann, H., Rief M, Tolksdorf, C. and Gaub, H. (2000). Mechanical stability
of single DNA molecules. Biophys J 78 (4): 1997–2007. PMID 10733978.
7. Davis, K. y P. McKeown. (1986). Modelos Cuantitativos para Administración. Ed.
IBEROAMERICA, México.
8. Durbin, R. M., Eddy, S. R., Krogh, A. and Mitchison, G. (1998). Biological Sequence
analysis. Cambridge University Press, Cambridge.
9. Griffiths, J. F, Miller, J.H., Susuki, D.T., Lewontin, R.C. and Gelbart, W. M. (2002).
Genetica. Séptima Edición. Mc GRAW-HILL INTERAMERICANA DE ESPAÑA.
55
10. Guigo, R., Agarwal, P., Abril, J.F., Burset, M. and Fickett, J. W. (2000). An Assessment
of Gene Prediction Accuracy in Large DNA Sequences. Cold Spring Harbor Laboratory
Press.
11. Krogh, A. 1997. Two methods for improving performance of an HMM and their application
for gene-finding. In Proceedings of the Fifth International Conference on Intelligent Systems
for Molecular Biology (ed. Gaasterland, T., Karp, P., Karplus, K., Ouzounis, C., Sander, C.,
and Valencia, A.), pp. 179-186. AAAI Press, Menlo Park, CA.
12. Lewin, B. (2006). Genes IX. JONES AND BARTLETT PUBLISHERS. SUDBURY,
MASSACHUSETTS.
13. Lukashin, A.V. and Borodovsky, M. 1998. GeneMark.hmm: new solutions for gene-finding.
Nucleic Acids Res. 26: 1107-1115.
14. MacDonald, I. L. and Zucchini, W. (1997) Hidden Markov and Other Models for
Discrete-valued Times Series. London: Chapman and Hall.
15. Mount, D. W. (2004). Bioinformatics. Sequence and Genome Analysis. COLD SPRING
HARBOR LABORATORY PRESS.
16. Nielsen, H. and Krogh, A. (1998). Prediction of signal peptides and signal anchors by a
hidden Markov model. American Association for Artificial Intelligence. (www.aaai.org).
17. Parra, G., Agarwal, P., Abril, J.F., Wiehe, T., Fickett, J. W. and Guigo, R (2003)
Comparative Gene Prediction in Human and Mouse.Cold Spring Harbor Laboratory
Press.
18. Prawda, W. J. (1984) Métodos y Modelos de Investigación de operaciones. Ed. LIMUSA,
México.
19. Price K., V., (1999): An Introduction to Differential Evolution. In Corne, D., Dorigo, M., and
Glover, F. (eds.). New Ideas in Optimization. Mc Graw Hill.
56
20. Price K.V., Storn R.M. and Lampinen J.A. (2005): Differential Evolution. A practical
approach to global optimization. Springer-Verlag
21. Rabiner, L. R. (1989). A tutorial on hidden Markov models and selected applications in
Speech recognition. Proc. IEEE, 77, 257–286.
22. Ringo, J. (2004). Genética Fundamental. THE PRESS SYNDICATE OF THE
UNIVERSITY OF CAMBRIDGE. UNITED KINGDOM.
23. Rogic, S. (2000) .Evaluating and Improving the Accuracy of Computational Gene-
Finding on Mammalian DNA Sequences. Computer Science Department, The University
of California at Santa Cruz, Santa Cruz, California.
24. Singer, M. and Berg, P., (1993). Genes and Genomes. A changing perspective.
UNIVERSITY SCIENCE BOOKS. CALIFORNIA.
25. Stanke, M. and Waack, S.(2003 ) Gene prediction with a hidden Markov model and a new
intron submodel. Vol. 19 Suppl. 2 2003, pages ii215–ii225 DOI:
10.1093/bioinformatics/btg1080.
26. Storn, R. and Price, K., (1997): Differential Evolution- A simple and efficient heuristic for
global optimization over continuous spaces. Journal of Global Optimization 11. 341-359.
27. Storn, R., (1996) On the Usage of Differential Evolution for Function Optimization
NAFIPS, Berkeley, pp. 519 – 523.
28. Storn, R., and Price, K. (1995). Differential Evolution- A simple and Efficient Adaptive
Scheme for Global Optimization over Continuos Spaces. Tech. Rep. TR-95-012,
International Computer Science Institute
57
29. Taramasco, O., (2007). The RHmm Package. Hidden Markov Models simulations and
estimations. Version 1.0.1 (Disponible en línea en http://r-forge.r-
project.org/projects/rhmm/) (Revisado en junio de 2008).
30. Taylor H. M. y S Karlin (1998). An Introduction to Stochastic Modeling. Ed.
ACADEMIC PRESS, USA
31. Velázquez, R. (2006). Propuesta de evolución diferencial para la optimización de espacios
restringidos. CINVESTAV. México.
32. Won, J.-K, Prügell-Bennett, A. and Krogh, A. (2004). Prediction of protein secondary
structure by the Hidden Markov Model. Proc. Bioinformatics, Vol. 20, pp. 3613-3619