Moreno-Sedano, F. (2023). Tres algoritmos bioinspirados para el problema de plegado de proteínas. Tesis de licenciatura. CDMX, UNAM
Moreno-Sedano, F. (2023). Tres algoritmos bioinspirados para el problema de plegado de proteínas. Tesis de licenciatura. CDMX, UNAM
Moreno-Sedano, F. (2023). Tres algoritmos bioinspirados para el problema de plegado de proteínas. Tesis de licenciatura. CDMX, UNAM
DE MÉXICO
FACULTAD DE CIENCIAS
T E S I S
ACTUARIO
PRESENTA:
TUTORA
DERECHOS RESERVADOS ©
PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL
Todo el material contenido en esta tesis esta protegido por la Ley Federal
del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México).
Todo mi agradecimiento a mi mamá y a mi hermana, por todo su esfuerzo en todos estos años para
que yo pudiera llegar hasta aquı́, sin ustedes eso no habrı́a sido posible y no habrı́a valido la pena. Aún
no sabemos que nos depara el futuro, pero lo que venga lo afrontaremos, por fin, juntos.
A la familia V. R. por la paciencia que nos han tenido todo este tiempo.
A la Doctora Katya por sus enseñanazas, por su motivación y comprensión y por permitirme usar el
laboratorio de CEB para completar este trabajo.
A mi madrina por todas las veces que me apoyó y a mi ma por cuidar a mi hermana todos estos años.
A los amigos con los que me he cruzado, gracias por los buenos momentos.
A mis cuatro sinodales por todas sus observaciones que me ayudaron a mejorar mucho este trabajo.
A la UNAM por sus enseñanzas, espero contribuir con mi granito de arena para hacer de este paı́s un
mejor lugar.
III
Índice general
Lista de Tablas IX
Introducción 1
1. Proteı́nas 5
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Estructura de las proteı́nas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1. Estructura primaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2. Estructura secundaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3. Estructura terciaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.4. Estructura cuarternaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Modelo hidrofóbico-polar en una malla de dos dimensiones . . . . . . . . . . . . . . . . 10
1.4. Planteamiento matemático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2. Algoritmos bioinspirados 16
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1. Conceptos biológicos detrás de los operadores del algoritmo genético . . . . . . 18
2.2.2. Algoritmo genético simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3. Población inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.4. Codificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.5. Mapeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.6. Función de aptitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IV
ÍNDICE GENERAL V
2.2.7. Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.8. Recombinación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.9. Mutación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.10. Reemplazo de la población . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.11. Criterio de paro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3. Inteligencia de enjambre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Optimización por enjambre de partı́culas . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.1. Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.2. Actualización de posición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.3. Ajustes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5. Optimización por colonia de hormigas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.1. Algoritmos de construcción y búsqueda local . . . . . . . . . . . . . . . . . . . 31
2.5.2. Ant System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.3. Inicialización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.4. Construcción de soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.5. Información heurı́stica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.6. Implementación de búsqueda local . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.7. Actualización global de feromona . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.8. Variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3. Metodologı́a 38
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2. Algoritmos genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.1. Mutación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.2. Recombinación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.3. Función objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.4. Función de aptitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.5. Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.6. Algoritmo genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3. Optimización por enjambre de partı́culas . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.1. Velocidades y actualización de posición . . . . . . . . . . . . . . . . . . . . . . 49
3.4. Colonia de hormigas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
ÍNDICE GENERAL VI
4. Resultados 54
4.1. Resultados para algoritmos genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2. Resultados para optimización por enjambre de partı́culas . . . . . . . . . . . . . . . . . 63
4.3. Resultados para optimización por colonia de hormigas (ACO) . . . . . . . . . . . . . . 68
Conclusiones 78
Índice de figuras
VII
ÍNDICE DE FIGURAS VIII
IX
Introducción
Las proteı́nas desarrollan un papel fundamental dentro de la vida en la Tierra, pues están involucra-
das en muchos procesos que se llevan a cabo dentro del organismo de los seres vivos, están formadas
por moléculas conocidas como aminoácidos, los cuales comparten una estructura que es similar, los
aminoácidos se unen mediante enlaces peptı́dicos, en donde el grupo amino de uno se une al grupo car-
boxilo del otro, liberando en el proceso una molécula de agua. Se ha descubierto que el funcionamiento
de una proteı́na está estrechamente relacionado con la estructura que adopta.
Bajo las condiciones habituales de pH 1 y temperatura, una misma secuencia de aminoácidos adoptará
siempre la misma estructura, que es conocida como estado nativo. Este es un proceso que se lleva a cabo
dentro de los ribosomas, y toma un tiempo en escalas menores que segundos, lo sorprendente detrás de
esto es que existen miles de millones de posibles formas que puede adoptar la secuencia de aminácidos, y
en caso de que la secuencia fuera adoptando una por una todas las posibles conformaciones se tomarı́a un
tiempo que podrı́a ser incluso mayor que la edad actual del universo, esto es conocido como la paradoja
de Levinthal, por lo que deben existir reglas que por el momento desconocemos y que rigen el proceso del
plegado de proteı́nas, bajo la hipótesis de Anfinsen se sabe que el estado nativo es aquella conformación
en la que la energı́a libre de Gibbs es mı́nima.
Motivación
Predecir la estructura final de una proteı́na es de mucha importancia ya que en caso de que se presenten
plegados erróneos dentro de las células, puede provocar enfermedades como el cáncer y Alzheimer. Si se
logra conocer la estructura que debe adoptar una proteı́na se puede contar con herramientas para hacer
frente a estas enfermedades. Aunque en la actualidad se conoce el estado nativo de varias proteı́nas,
hacerlo en laboratorios mediante los métodos que existen, como la difracción por rayos X o la resonancia
1 ElpH, que significa potencial de hidrógeno, es una escala que indica la concentración de iones de hidrógeno, esta escala
va de 0 a 14, de esta manera se puede expresar la acidez o alcalinidad de una sustancia. [3]
1
ÍNDICE DE TABLAS 2
magnética nuclear, es muy costoso e involucra grandes cantidades de tiempo por su nivel de complejidad,
pero gracias a las herramientas computacionales con las que se cuentan actualmente y que mejoran más
cada dı́a, es posible hacer uso de la computación para poder simular la estructura que debe adoptar
una secuencia de aminoácidos, lo cual puede llevarse a cabo en menos tiempo y requiriendo menores
cantidades de dinero.
Existen muchos modelos que intentan describir la estructura de las proteı́nas, dentro de los cuales
se encuentra el modelo HP propuesto por Dill [4]. En este modelo, cada aminoácido es clasificado de-
pendiendo de su interacción con el agua, los aminoácidos hidrofóbicos (H) tienen repulsión al agua,
mientras que los aminoácidos polares (P) son afines al agua. En este modelo, de dos dimensiones, los
aminoácidos son acomodados dentro de una malla en R2 que no permite empalmes, cada aminoácido
se acomoda a la derecha (1) arriba (2), a la izquierda (3) o por debajo (4) del aminoácido que ocupa
una posición previa dentro de la secuencia lineal de aminoácidos que forman a la proteı́na. Para una
secuencia con n aminoácidos, bajo este modelo, esta estructura puede adoptar un total de 4n−1 posibles
conformaciones distintas, aunque no todas son factibles.
En el modelo HP, la energı́a se calcula como el total de interacciones hidrofóbicas dentro de los
aminoácidos que la conforman. Se presenta una interacción hidrofóbica cuando dos aminoácidos hi-
drofóbicos no consecutivos están acomodados a una unidad de distancia entre sı́, de esta interacción se
desprende una energı́a de −1, mientras que de las demás interacciones no se desprende energı́a, además,
para evitar caer en plegados que no son factibles se agrega una penalización por cada posible empalme.
El modelo propuesto por Dill forma parte de los problemas de optimización combinatoria, por lo que se
pueden usar metaheurı́sticas para poder predecir la estructura final de una proteı́na. De entre todas las me-
taheurı́sticas diseñadas en este trabajo se usarán tres que toman inspiración directamente de situaciones
observadas en la naturaleza.
El algoritmo genético forma parte los algoritmos evolutivos y basados en poblaciones, está directa-
mente inspirado en la teorı́a de la evolución propuesta por Darwin, pues se simulan conceptos como son
los genes, la morfogénesis, la recombinación del material genético de los individuos más aptos, la pre-
sencia de mutaciones, y la preservación del buen material genético que lleva a que las poblaciones vayan
adoptando rasgos evolutivos que les permiten desarrollarse de manera óptima dentro de su ambiente.
Por otra parte, al observar el comportamiento, que a simple vista parece errático, de las parvadas y
los bancos de peces, llevó a algunos cientı́ficos proponer un modelo conocido como optimización por
enjambre de partı́culas (PSO). Este modelo trata de imitar dichos comportamientos, que permiten a las
aves y a los peces poder huir de depredadores, minimizando el número de pérdidas, o encontrar un lugar
ÍNDICE DE TABLAS 3
Estructura de la tesis
Este trabajo consta de cuatro capı́tulos. En el primer capı́tulo se abordan distintos conceptos quı́micos
sobre los aminoácidos y las proteı́nas que pueden ayudar a entender el proceso de plegado de proteı́nas,
se presenta el modelo propuesto por Dill, la visualización gráfica y una propuesta de modelo matemático.
En el segundo capı́tulo se mencionan algunos fenómenos observados en la naturaleza que dieron
inspiración a los tres algoritmos bioinspirados que se utilizaron, ademas de que se presenta el trabajo de
diversos autores sobre cada uno de los tres algoritmos, se explica cada uno de los parámetros involucrados
en su implementación y se mencionan algunas variantes.
En el tercer capı́tulo se explica la metodologı́a usada en cada uno de los tres algoritmos, las modifi-
caciones propuestas para cada uno de ellos, además de que se incluye la documentación del código de
programación utilizado.
En el último capı́tulo se muestran los resultados a los que se llegó, se evalúan los distintos parámetros
para seleccionar los mejores valores para dichos parámetros. Se hace uso de varias gráficas para mostrar
la convergencia de los algoritmos, cómo cambia el valor mı́nimo encontrado a lo largo de las iteraciones
y por último se muestra cómo evoluciona el mejor plegado encontrado por cada algoritmo.
Finalmente se presentan las conclusiones a las que se llegó, además de que se plantean algunas ideas
que podrı́an ayudar a mejorar el desempeño de los tres algoritmos en un futuro.
ÍNDICE DE TABLAS 4
Objetivos
Realizar los ajustes adecuados para poder implementar Algoritmos genéticos, Optimización por
cúmulo de partı́culas y Optimización por colonia de hormigas en el problema de plegado de pro-
teı́nas bajo el modelo propuesto por Dill, para algunas secuencias que son conocidas dentro de
otros trabajos.
Ajustar los distintos parámetros de cada algoritmo de manera que se evite el estancamiento de ser
posible.
Plantear ideas que puedan ayudar a abordar este problema en trabajos posteriores con mejores
herramientas.
Capı́tulo 1
Proteı́nas
1.1. Introducción
En este capı́tulo se presentan los conceptos más importantes dentro del campo de la quı́mica que
sirven como sustento para describir la estructura de las proteı́nas, se presenta el modelo Hidrofóbico-
Polar propuesto por Dill para describir dicha estructura y finalmente se presenta una propuesta de modelo
matemático que servirá para utilizar tres algoritmos bionspirados que serán presentados en el Capı́tulo 2
Las proteı́nas son las unidades encargadas de dar soporte a la estructura de los seres vivos pues:
“Están involucradas en casi todos los procesos que ocurren en la célula. El ADN es la me-
moria que contiene la información genética, y los ARN son las macromoléculas decodifica-
doras, ya que son capaces de convertir la información codificada en los ácidos nucleicos en
la información secuencial de las proteı́nas. ” [3]
Esta información indica las proteı́nas que generan las células de cada organismo, lo que finalmente otorga
las caracterı́sticas que lo definen.
A pesar de que las distintas proteı́nas pueden realizar funciones tan distintas que van desde la cata-
lización de procesos y reacciones quı́micas, hasta la protección inmunológica [5], todas están formadas
por los mismos componente básicos: los aminoácidos. Éstos aminoácidos comparten la misma estruc-
tura, pues están compuestos por un átomo central de carbono (C) un grupo amino (NH2 ) en uno de los
extremos de la molécula, un grupo carboxilo (COOH), además de un grupo lateral R (residuo) que es el
que distingue a un aminoácido de otro [3].
Existen 20 aminoácidos distintos que pueden formar proteı́nas y que por su grado de interacción
con el agua pueden ser clasificados como: aminoácidos no polares (hidrofóbicos), aminoácidos pola-
5
CAPÍTULO 1. PROTEÍNAS 6
res, aminoácidos ácidos y aminoácidos básicos [3]. Dentro del grupo de los no polares se encuentran
la glicina, alanina, valina, leucina, isoleucina, fenilalanina, triptófano, metionina, cisteı́na y la prolina,
éstos tienen una función importante para determinar la estructura final de la proteı́na por su repulsión al
agua. Los aminoácidos polares son: serina, treonina, tirosina, asparagina, glutamina y éstos son afines
al agua debido a las caracterı́stica de su grupo funcional, pues tienen la capacidad de formar enlaces de
hidrógeno. Los aminoácidos ácidos son el aspartato y el glutamato, por últimos los aminoácidos básicos
son la lisina, arginina e histidina.
Hidrofóbicos Polares
Glicina (G) Serina (S)
Alanina (A) Treonina (T)
Valina (V) Tirosina (Y)
Leucina (L) Asparagina (N)
Isoleucina (I) Glutamina (Q)
Fenilalanina (F) Aspartato (D)
Metionina (M) Glutamato (E)
Prolina (P) Lisina (K)
– Histidina (H)
– Arginina (R)
– Cisteı́na (C)
– Triptófano (W)
En este trabajo y tomando como base el modelo propuesto por Dill, que es explicado más adelante, los
aminoácidos serán clasificados como polares o no polares (hidrofóbicos). También es importante trabajar
con las abreviaturas con una sola letra de los aminoácidos porque en bases de datos como la del Protein
Data Bank las secuencias de aminoácidos que conforman a las proteı́nas que se tienen registradas vienen
representadas únicamente con su abreviatura en una letra. Clasificar los aminoácidos como hidrofóbicos
o polares es de gran utilidad, ya que se sabe que el agua ocupa aproximadamente el ochenta por ciento
de las células. Esta clasificación se muestra en la tabla 1.1.
El proceso de sı́ntesis se lleva a cabo cuando los aminoácidos se unen formando cadenas largas, dicha
unión recibe el nombre de enlace peptı́dico. Para que pueda realizarse este tipo de enlace, el extremo
CAPÍTULO 1. PROTEÍNAS 7
amino de uno de los aminoácidos (quien terminará perdiendo un átomo de hidrógeno) se combina con el
extremo carboxı́lico del otro aminoácido (quien pierde un grupo hidroxilo) creándose un enlace covalente
entre ellos. En esta unión se pierde una molécula de agua y surgen los péptidos. Dependiendo el número
de aminoácidos involucrados los péptidos reciben por nombre bipéptidos, tripéptidos, polipéptidos. Por
lo general, se considera que las proteı́nas están formadas por más de 50 aminoácidos [12]. Aunque la
diferencia entre proteı́nas y polipéptidos puede tomarse también de acuerdo al peso molecular, en donde
las proteı́nas tienen un peso molecular al menos de 5, 000.
Cuando se realiza el proceso de sı́ntesis, la proteı́na se pliega en una estructura tridimensional, que es
conocida como conformación nativa, pero esto se logra bajo las condiciones habituales de temperatura y
pH dentro de la célula. La importancia de poder predecir esta estructura, radica en que una configuración
incorrecta en el plegado puede provocar que la estructura creada tenga propiedades que puedan perjudicar
la salud. En los humanos, por ejemplo, puede provocar cáncer y Alzheimer, por esto, y debido a que las
herramientas experimentales que se usan son muy costosas y requieren una gran inversión de tiempo,
por ejemplo difracción por rayos X [5], es de gran utilidad usar metaheurı́sticas entre las que están los
algoritmos bioinspirados.
La evolución también se ve reflejada en el proceso de plegado de proteı́nas pues las secuencias de
proteı́nas “han sido seleccionadas por el proceso evolutivo para alcanzar una estructura reproducible y
estable” [5]. Además como afirma McKee, si se toma en cuenta que son veinte los aminoácidos que
pueden formar proteı́nas, y que éstas pueden estar formadas por largas secuencias de aminoácidos, al
considerar, por ejemplo, una proteı́na compuesta por 100 de ellos, existen 20100 posibles conformaciones,
pero no todas las conformaciones forman proteı́nas útiles para los organismos vivos. Las caracterı́sticas
del plegado de las proteı́nas que podrı́an explicar esto son [12]:
La estructura final debe encontrar un balance entre rigidez y flexibilidad de forma que siga mante-
niendo el funcionamiento.
La superficie debe tener caracterı́sticas adecuadas para el sitio en el que la proteı́na va a realizar
sus funciones.
CAPÍTULO 1. PROTEÍNAS 8
Las proteı́nas pueden sufrir degradación cuando sufren algún daño o dejan de ser útiles.
Existen cuatro formas de describir la estructura de las proteı́nas y cada una toma en consideración la
información obtenida en los niveles estructurales previos.
Se refiere al conjunto de aminoácidos que forman a la proteı́na y al orden en que se encuentran [12].
No contiene ningún tipo de información geométrica. Tiene repercusión en la forma tridimensional que
adoptará la proteı́na, pues la estructura depende en gran medida de la polaridad de los aminoácidos. Se
ha observado que proteı́nas que tienen una función similar también comparten una estructura primaria
similar, además de que el análisis de la estructura primaria de proteı́nas que realizan funciones muy pa-
recidas en organismos de diferentes especies ha ayudado a encontrar relaciones genéticas entre ellos.
En la década de 1930 haciendo uso de los resultados obtenidos por la difracción de Rayos X, Linus
Pauling dedujo la existencia de dos estructuras comunes para las moléculas de proteı́nas [12], éstas son:
la estructura hélice-α y lámina plegada-β . La estructura secundaria consta de la presencia de éstos dos
tipos de estructura en algunas partes de la cadena.
La estructura hélice-α, es estabilizada por la presencia de enlaces de hidrógeno intramoleculares entre
los grupos amino y carboxilo lo que da lugar a una estructura en forma de barra. El grupo carboxilo se une
mediante enlaces por puentes de hidrógeno al grupo amino del residuo que se encuentra a cuatro residuos
CAPÍTULO 1. PROTEÍNAS 9
en la secuencia. La estructura lámina plegada-β como su nombre lo indica se asemeja a una lámina,
pues la cadena está prácticamente extendida, se presentan muchos enlaces por puentes de hidrógeno
intermoleculares pero estos están presentes entre las cadenas y sus cadenas vecinas.
Es la forma que toma la cadena en tres dimensiones, haciendo uso de distintas estructuras secunda-
rias, estabilizado por fuerzas de dispersión, enlaces por puentes de hidrógeno y algunas otras fuerzas
moleculares [12]. La diferencia con respecto a la estructura secundaria consiste en que los aminoácidos
que intervienen en la formación de esta estructura están alejados dentro de la secuencia. En la figura
1.3 se muestra una proteı́na en la que los segmentos en color rojo muestran aminoácidos que forman
una estructura de hélice-α mientras que los segmentos de color amarillo son aminoácidos que forman
estructuras en lámina plegada-β .
Solamente existen en proteı́nas que están formadas por más de una cadena polipeptı́dica enlazadas por
medio de puentes de hidrógeno entre ellas, por lo que en esta estructura se puede analizar las interaccio-
nes entre dichas cadenas [12].
A pesar de que, dada una secuencia de aminoácidos, la proteı́na puede adoptar una gran cantidad
de estructuras distintas, el plegado de proteı́nas se lleva a cabo de manera rápida y exitosa [12]. Sin
embargo, si la proteı́na adoptara todas las posibles conformaciones hasta llegar a la conformación nativa,
le llevarı́a años encontrarla, incluso si pudiera adoptar cada posible configuración a una gran velocidad.
Esto es conocido como la paradoja de Levinthal [2]. El estado nativo se refiere a la estructura idónea
que forma la proteı́na bajo ciertas caracterı́sticas de temperatura y pH. La hipótesis de Anfinsen sugiere
que “la estructura nativa tridimensional de una proteı́na en su ambiente fisiológico es aquella en donde
la energı́a libre de Gibbs es menor en todo el sistema” [1].
Para entender el concepto de energı́a libre de Gibbs es necesario definir algunos conceptos previos.
La termodinámica es la rama de la fı́sica encargada del estudio de la energı́a, sus transformaciones e
interacciones con la materia, entendiendo que la energı́a es la capacidad de un cuerpo para realizar un
trabajo [9].
La presión es un concepto que hace referencia a la fuerza ejercida por un cuerpo ejercida sobre una
superficie o área, por otro lado, la temperatura (T ) se refiere a una magnitud que expresa el grado de frı́o
CAPÍTULO 1. PROTEÍNAS 11
o calor de los cuerpos. La entalpı́a representada como h es una magnitud termodinámica definida como
[9]:
h = u+P·v (1.1)
g = h−T ·S (1.2)
En este caso g representa la energı́a libre de Gibbs. Una reacción es espontánea cuando se realiza sin
necesidad de llevar a cabo un aporte de energı́a, por ejemplo la oxidación de un metal. Cuando se tiene
que g < 0 la reacción es espontánea. Por lo tanto, si se cumple la hipótesis de Anfinsen, y se tiene que g
alcanza un valor mı́nimo y este es negativo, entonces se tendrá que el proceso de plegado de proteı́nas es
un proceso espontáneo.
Tanto la hipótesis de Anfinsen como la clasificación de los aminoácidos de acuerdo a su polaridad
sirven como base para el modelo hidrofóbico-polar propuesto por Dill. En este modelo se reduce el
alfabeto con que se representan los aminoácidos que forman parte de la proteı́na, pues se pasa de 20
caracteres distintos para los aminoácidos, a representarlos sólo con 2 letras, los aminoácidos polares
quedan representados por la letra P, mientras que los hidrofóbicos con la letra H. Posteriormente los
aminoácidos se acomodan a la izquierda (1), arriba (2), derecha (3) o por debajo (4) del aminoácido
anterior.
Se define el espacio conformacional como el conjunto de todas las posibles conformaciones que
puede adoptar una secuencia dada de aminoácidos [4]. Bajo el modelo propuesto por Dill este tiene
una dimensión de zn−1 . En el caso de este trabajo se tiene que z = 4 (debido a que hay cuatro posiciones
que puede ocupar un aminoácido con respecto a su antecesor) y n es el número de aminoácidos que
forman la secuencia. Se debe tener en consideración que hay secuencias que son exactamente iguales a
otras, porque pueden verse como una reflexión o una rotación de otra posible solución. En su trabajo Dill
estimó que el número de posibles conformaciones distintas es aproximadamente de 2.71n−1 para el caso
CAPÍTULO 1. PROTEÍNAS 12
especı́fico en que z = 4.
De cumplirse la hipótesis de Anfinsen, entonces la conformación nativa de una secuencia de aminoáci-
dos debe ser aquella que tiene la menor energı́a libre. Se hace uso del término energı́a libre, debido a que
no se está tomando en cuenta la influencia que tiene la temperatura en este tipo de contacto.
Bajo este modelo, la configuración de una secuencia de aminoácidos se entiende como un recorrido
sobre una red cuadrada bidimensional que no permite empalmes. Si se cambiara el modelo por otro de
una red cúbica, la única diferencia serı́a en el total de posibles conformaciones ya que el número de
aminoácidos vecinos aumenta. Pero considerando que el propósito de Dill era simplificar la manera de
describir la estructura final que adopta una proteı́na dada la secuencia de aminoácidos que la conforman
no es necesario cambiar el modelo en dos dimensiones por uno de tres.
Es importante señalar que, si bien en este modelo un aminoácido tiene como vecinos al aminoácido
anterior y al siguiente, en caso de que los dos sean aminoácidos del tipo H, no se cuenta como interacción
de energı́a libre. La energı́a liberada por la interacción entre aminoácidos no polares adyacentes será de
ε < 0, en el presente trabajo se considera ε = −1. En cualquier otra interacción la energı́a libre es de
ε =0
Dado lo anterior, para ejemplificar como funciona el modelo propuesto por Dill se considera la se-
cuencia S1 formada por 19 aminoácidos. Esta secuencia está descrita de la siguiente forma:
S19 = H2 PHPH2 P2 H3 P2 H2 P2 H
En donde cada subı́ndice indica cuántos aminoácidos consecutivos hay en la secuencia que son del tipo
H o del tipo P. Cuando no se indica un subı́ndice se entiende que en realidad el subı́ndice que deberı́a ir
indicado es un 1. Si se considera una posible solución:
x1 = (1, 1, 2, 3, 3, 3, 3, 4, 1, 4, 3, 3, 4, 1, 1, 1, 4, 3).
Entonces la estructura de la proteı́na se puede ilustrar cómo se ve en la figura 1.5. En donde los puntos
negros representan a los aminoácidos polares, mientras que los puntos en color rojo representan a los
aminoácidos hidrofóbicos. Las interacciones hidrofóbicas están representadas mediante lı́neas punteadas
en color rojo. Para facilitar la visualización de las estructuras el primer aminoácido de la secuencia es de
mayor tamaño que el resto.
CAPÍTULO 1. PROTEÍNAS 13
Figura 1.5: Representación gráfica para S19 tomando en cuenta el orden definido por x1 .
En este problema el valor en la función objetivo de cada solución depende directamente de la secuencia
de aminoácidos que se está analizando y también de la forma en que esta secuencia esté acomodada para
formar a una proteı́na. Tomando en cuenta que en el modelo de Dill, se le da mayor importancia a las
interacciones entre aminoácidos hidrofóbicos se harán primero algunas definiciones.
Sea S = s1 s2 . . . sn la secuencia de aminoácidos que conforman a la proteı́na R.
En donde si = H o si = P para i = 1, 2, . . . , n.
Las posiciones de la secuencia S que contienen aminoácidos hidrofóbicos están contenidas en el con-
junto:
H(S) = {i ∈ 1, 2, . . . , n |si ∈ S ∧ si = H}.
Sea h ∈ H. Se define al conjunto de los posibles vecinos factibles del aminoácido hidrofóbico sh como:
Es importante notar que el conjunto H contiene únicamente los ı́ndices de la secuencia S donde se
tienen aminoácidos hidrofóbicos. El conjunto de posibles vecinos factibles está construido de esa forma
por los siguientes motivos.
1. Al considerar la restricción hi > h + 1 se evitará contar dos veces las interacciones entre aminoáci-
dos, por ejemplo, una posible interacción entre el aminoácido s1 , con el aminoácido s8 solamente
será contada al considerar los posibles vecinos factibles del primer aminoácido. Además, también
se evita contar las interacciones entre dos aminoácidos hidrofóbicos consecutivos.
De esta forma, se puede plantear el problema de plegado de proteı́nas para una malla de dos dimen-
siones de la siguiente manera.
Sea x ∈ {1, 2, 3, 4}n−1 el orden en que están acomodados los aminoácidos que forman parte de la
secuencia S.
La energı́a libre, bajo el modelo de Dill, donde las interacciones entre aminoácidos hidrofóbicos no
consecutivos desprenden una energı́a eg y en donde los empalmes tiene una penalización f p se puede
calcular de la siguiente manera:
" #
v−1 v−1 v−1 v−1
E(x, S) = ∑ ∑ eg ∗ 11 ∑ 11 (x j ) − ∑ 13 (x j ) + ∑ 12 (x j ) − ∑ 14 (x j ) + f p . (1.3)
hi ∈H(S) v∈V (hi ) j=hi j=hi j=hi j=hi
i:1,...,|H(S)|
n−i
n−2 ⌊ 2 ⌋
" #
i+2 j−1 i+2 j−1 i+2 j−1 i+2 j−1
fp = ∑ ∑ k ∗ 10 ∑ 11 (xq ) − ∑ 13 (xq ) + ∑ 12 (xq ) − ∑ 14 (xq ) . (1.4)
i=1 j=1 q=i q=i q=i q=i
recha el aminoácido hidrofóbico sv está alejado del aminoácido shi . De manera análoga el término
| ∑v−1 v−1
j=hi 12 (x j ) − ∑ j=hi 14 (x j )| indica qué tan alejados están de forma vertical, porque al indicar la
2. Se está considerando que la suma de los valores absolutos debe tomar el valor de 1 porque esto
implicarı́a que debido a que la función valor absoluto es no negativa, uno de los dos sumandos
debe tomar el valor de 1 y el otro deberá valer 0. Esto indica que el aminoácido vecino está
solamente a una unidad de distancia de forma vertical u horizontal respecto al aminoácido al que
se le están buscando vecinos con interacción hidrofóbica. Si se cumple esta condición se tiene
una interacción hidrofóbica con energı́a eg , ya que por la construcción de los posibles vecinos no
se están considerando como interacción a los aminoácidos hidrofóbicos que ocupan posiciones
consecutivas dentro de la secuencia lineal.
3. El razonamiento es análogo al momento de calcular f pen . Porque si la suma de los valores absolutos
tiene un valor de cero, quiere decir que hay un empalme.
4. En f pen la primera suma llega hasta n − 2 porque los últimos dos aminoácidos no se pueden em-
palmar. En la segunda suma se usa la función piso para no contar dos veces un empalme y debido
a que en este caso los empalmes se dan entre aminoácidos que ocupan posiciones pares con otros
aminoácidos que también ocupan posiciones pares dentro de la secuencia, y sucede lo mismo si
ocupan posiciones impares.
Capı́tulo 2
Algoritmos bioinspirados
2.1. Introducción
Es este capı́tulo se presentan brevemente los tres algoritmos bioinspirados con los que se abordará en
este trabajo el problema de plegado de proteı́nas bajo el modelo hidrofóbico-polar. Existen algoritmos
que han sido desarrollados tomando inspiración en lo observado en la naturaleza, un grupo de ellos son
los algoritmos evolutivos, los cuales toman inspiración de la evolución. Uno de los algoritmos evolutivos
más conocidos es el algoritmo genético que es el que será utilizado en el presente trabajo, en el caso
de este algoritmo es posible notar algunas acciones observadas en la naturaleza como es la presencia de
mutaciones y la combinación del material genético de los individuos que mejor se desempeñan dentro
de su entorno, el uso de los distintos operadores lleva a la evolución de las poblaciones.
Los otros dos algoritmos utilizados pertenecen a la rama denominada inteligencia de enjambre, que
abarca algoritmos inspirados en el comportamiento colectivo de grandes conjuntos de animales como
pueden ser las parvadas o los cardúmenes, que, a pesar de no considerar operaciones demasiado sofisti-
cadas para las acciones llevadas a cabo por cada uno de los individuos, al considerar el comportamiento
de todo el grupo es posible apreciar un nivel de inteligencia más avanzado. De los algoritmos perte-
necientes a la inteligencia de enjambre se considerarán la optimización por enjambre de partı́culas y
la optimización por colonia de hormigas, los cuales toman inspiración en el vuelo sincronizado de las
parvadas y en el comportamiento de las hormigas en busca de comida, respectivamente.
16
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 17
La publicación de El origen de las especies por Charles Darwin en 1859, fue un parteaguas que cambió
la perspectiva de la forma en que se entendı́a la vida dentro del planeta y más de cien años después ins-
piró el desarrollo de una nueva herramienta computacional: los algoritmos genéticos, cuyos mecanismos
tienen inspiración en la selección natural que se planteó, pues trata de imitar acciones como la selección
de los individuos más aptos, además de otros comportamientos que se mencionan más adelante.
El algoritmo genético trata de imitar de la mejor forma posible el comportamiento de la evolución
de los seres vivos, como se refleja en la siguiente idea: “Dentro de la naturaleza, cada individuo del
ecosistema compite contra los otros por los recursos disponibles, como el alimento, pero a la vez, hay
una competencia entre individuos de la misma especie por reproducirse. Es por esto que los individuos
que tengan menor aptitud para desarrollarse en su ambiente tendrán menos capacidad para poder llegar
a reproducirse y transmitir sus genes a las siguientes generaciones” [15].
Las caracterı́sticas que distinguen a los algoritmos genéticos de otros métodos de optimización son
[8]:
Trabajan con la codificación del conjunto de parámetros, no los parámetros en sı́. Pues los opera-
dores de cruza y mutación se aplican sobre el cromosoma de los individuos.
Buscan desde un conjunto de puntos, no usando un solo punto. Esto se refiere a que trabaja sobre
una población.
Usan el valor en función objetivo, no derivadas ni información adicional. Este punto es importante
ya que da a los algoritmos genéticos flexibilidad para trabajar en una gran variedad de problemas.
Usan reglas de transición probabilı́sticas, no determinı́sticas. Todos los operadores que se realizan
no siguen un patrón fijo y siempre son al azar.
Durante cada generación, se crea un nuevo conjunto de “criaturas artificiales” [8]. El tiempo que
tarda el proceso de evolución en los organismos vivos puede variar, dependiendo de la complejidad del
organismo, como se puede ver en las bacterias que no tardan en ser inmunes a antibióticos y pueden
presentarse casos en que la transición dure miles de años. En el algoritmo genético las poblaciones
cambian de caracterı́sticas de una generación a otra, pero los cambios más significativos pueden llegar
en muchas generaciones o en pocas.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 18
Aunque el origen de los conceptos que dieron origen a los algoritmos genéticos puede remontarse
años atrás, no fue hasta los años sesenta en que John Holland desarrolló su trabajo en la Universidad de
Michigan [11] en su libro Adaption in natural and artificial systems, en donde desarrolló las ideas para
adaptar este comportamiento en sistemas artificiales.
Cada ser vivo tiene caracterı́sticas que lo hacen diferente de otros seres vivos, aún de los de su misma
especie. Estas caracterı́sticas vienen determinadas por las proteı́nas que él mismo produce; esta informa-
ción está codificada dentro de cada una de sus células. Este mapeo es una función que va de todas las
posibles secuencias de aminoácidos a todos los posibles individuos. La secuencia codificada de aminoáci-
dos es lo que llamamos genotipo, mientras que la manifestación fı́sica de esta codificación es lo que se
conoce como fenotipo [11].
El proceso de morfogénesis es el proceso biológico que determina la forma que tendrá un ser vivo,
marca el paso del genotipo al fenotipo. De acuerdo a la aptitud de los seres vivos, su probabilidad de
reproducirse será más grande; esto es, si sus condiciones fı́sicas les dan un mejor desempeño dentro de
su entorno, es más probable que se reproduzcan. Pero para realizar esto también es necesario hacer una
comparación con respecto al desempeño de los demás individuos de la población. Para individuos que
forman parte de la cima de la cadena alimenticia se podrı́a medir, por ejemplo, su capacidad para cazar,
o bien, para los animales que viven en los lugares más inhóspitos del planeta su capacidad para resistir
cambios en el clima.
Una vez que dos seres vivos se reproducen se lleva a cabo un intercambio de información genética
de ambos padres, por lo que los hijos heredan caracterı́sticas de sus ancestros y dado que los mejores
individuos son quienes se reproducen, los descendientes tienen la posibilidad de tener mejores carac-
terı́sticas. Mientras se hace este intercambio de material genético, puede presentarse una falla en la
ADN-polimerasa, que puede llevar al nuevo descendiente a tener caracterı́sticas diferente al resto de la
población, lo que se conoce como mutación.
La idea del algoritmo genético simple fue dada por Goldberg [8] y gran parte de sus fundamentos
está apoyada en la teorı́a de esquemas. La población consta de elementos codificados, que serán las
soluciones candidatas. Dichas codificaciones representan soluciones para el problema de optimización a
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 19
resolver. Para la codificación se tiene una lista de sı́mbolos, el algoritmo genético simple usa un sistema
de codificación binario, compuesto por cadenas de ceros y unos. Esta lista de sı́mbolos que se utilizan
para la codificación tiene influencia en los operadores de cruza y mutación. El mecanismo de cruza que
se aplica es la cruza en un punto, y selección por ruleta. En la siguientes secciones se profundiza más
sobre los distintos mecanismos del algoritmo genético.
El algoritmo genético trabaja sobre un conjunto de individuos, para inicializar el proceso es necesario
crear la población inicial la cual debe ser aleatoria, esto se debe a que por lo general no se tiene conoci-
miento sobre la parte del dominio en la que se encuentra la solución óptima [14]. Algunas caracterı́sticas
que se deben considerar para la población a lo largo del algoritmo genético es el tamaño de población,
pues un menor tamaño de población puede disminuir la capacidad de exploración del algoritmo [14],
mientras que tener una población grande puede provocar que el algoritmo sea menos eficiente ya que
se lleva más tiempo de ejecución, por lo que diversos estudios han tratado de resolver este problema
buscando cumplir criterios de efectividad y eficiencia. El número de individuos de la población, suele
permanecer como una cantidad fija a lo largo de las iteraciones del algoritmo, aunque en la naturaleza el
cambio del tamaño de las especies no permanece constante.
Goldberg analiza el algoritmo genético simple, mediante el análisis de esquemas [14]. Desde su análi-
sis el tamaño de la población incrementa exponencialmente con respecto a la longitud de las cadenas de
codificación. Mientras que trabajos como los de Grefenstette y los de Schaffer sugieren que poblaciones
de tamaño tan pequeño como 30 son adecuados en muchos casos. Trabajos posteriores de Goldberg lo
llevaron a poner el tamaño de la población con una dependencia lineal con respecto a la longitud de las
cadenas de codificación.
La población inicial debe ser aleatoria, aunque hay casos en que se presentan poblaciones pseudo alea-
torias, lo que provoca que los individuos de la población no necesariamente estén distribuidos de forma
uniforme en el espacio de búsqueda . Reeves tiene trabajos en donde muestra que incluir alguna buena
solución encontrada con otros algoritmos puede llevar al algoritmo genético a encontrar mejores solu-
ciones en un menor tiempo [14]. Sin embargo, existe la posibilidad de tener una convergencia prematura
hacia algún óptimo local.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 20
2.2.4. Codificación
En el algoritmo genético la población está integrada por individuos (soluciones potenciales a un pro-
blema dado) representados por cromosomas, cada cromosoma se divide en genes, cada gen forma parte
de un conjunto finito de dı́gitos dependiendo el tipo de codificación que se trabaje (binario, octal, deci-
mal, real).
En la codificación binaria, cada cadena consta de bits, y su longitud depende de las caracterı́sticas del
problema, como su número de variables, también depende del número de bits que se quieren utilizar, ya
que en problemas con dominio real se puede optar por incrementar el número de bits con el fin de cubrir
una mayor cantidad de puntos en el dominio del problema de optimización.
En la codificación octal, se opta por un alfabeto con caracteres {0, 1, 2, 3, 4, 5, 6, 7}, considerando una
codificación hexadecimal se considera el alfabeto {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,C, D, E, F}. También se
puede presentar el caso en que la codificación consista en permutaciones, comúnmente formadas por
números enteros en el que cada variable se repite una sola vez. El ejemplo más claro es el problema
del agente viajero, y requiere de algunas mutaciones y recombinaciones más especı́ficas [11]. También
pueden existir codificaciones en los que cada gen consta de un valor, ya sea números reales o secuencias
de caracteres, por lo que puede ser necesario algún tipo de mutación y cruza más especializado.
2.2.5. Mapeo
En el algoritmo genético la función que lleva a cabo la traducción del genotipo en su respectivo
fenotipo recibe el nombre de mapeo; es una función porque a cada genotipo le corresponde solamente un
fenotipo. Otro requisito que se puede tener en cuenta sobre todo cuando el dominio de la función objetivo
es numerable, es que esta función sea biyectiva, para evitar que se presente el caso en que se omita algún
alelo que sea necesario para alcanzar el óptimo global. Cuando el código que se maneja es binario se
puede presentar el caso en que cromosomas que sean distintos tengan asociado el mismo fenotipo, por
lo que esta función no es inyectiva.
En los problemas de optimización, la función objetivo da una medida de la calidad de los elementos
dentro del dominio de búsqueda. Dependiendo del tipo del problema esta función será de maximizar o
minimizar. En el campo biológico, esta función es llamada función fitness o función de aptitud y como
lo indica su nombre, da una medida de la aptitud de los individuos dentro de su ambiente, dependiendo
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 21
de sus caracterı́sticas fı́sicas, por lo que es importante hacer la traducción del genotipo a fenotipo de los
individuos para poder evaluar esta función.
Esta función no siempre coincide con la función objetivo, ya que esta función debe cumplir los si-
guientes requisitos [11]:
Ser no negativa.
′ c
f = (2.1)
f +K
′
En donde K es una constante calculada de manera que la función f no sea indeterminada y cumpla que
f + K > 0. Además la constante c es otra constante positiva, por lo general toma el valor de c = 1.
La función de aptitud tiene repercusión directamente dentro de la selección de los individuos que
heredarán su genotipo a las siguientes generaciones.
2.2.7. Selección
Una vez que se lleva a cabo la evaluación de los individuos, es necesario seleccionar los más aptos
bajo la premisa de que las siguientes generaciones heredarán las caracterı́sticas de los mejores.
Los mecanismos de selección más comunes son los siguientes:
El mecanismo más común es la selección por ruleta (roulette wheel selection), el cual consiste en
seleccionar de acuerdo a su proporción con respecto a la suma de los valores en la función de aptitud de
toda la población, a mayor valor en la función de aptitud la probabilidad de ser seleccionado aumenta.
Se considera gk como la función de aptitud del individuo k, entonces la probabilidad de ser seleccionado
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 22
para realizar cruzamiento, de un individuo perteneciente a una población de tamaño N viene dada por
[14]:
gk
Pr[k] = N . (2.2)
∑ j=1 g j
Esto es similar a tener una ruleta, que para una población de tamaño N se divide en N , cuyo tamaño
dependerá directamente del valor de la aptitud de cada individuo, a continuación se lanza un número
al azar en el intervalo [0,1] y de acuerdo al valor obtenido se escoge al primer individuo que será se-
leccionado para reproducirse. Posteriormente se hace el mismo procedimiento para escoger al segundo
individuo, aunque es posible omitir el individuo que ya fue seleccionado y hacer una selección por ruleta
sin reemplazo.
El mecanismo es semejante al que se maneja en el método de selección por ruleta, pero haciendo una
mejora. Cuando se realiza la selección por el método de ruleta, en un sorteo, únicamente se realiza la
selección de un cromosoma para su recombinación. En este mecanismo se seleccionan M individuos. Se
construyen probabilidades de forma idéntica al método de selección por ruleta, el siguiente paso es crear
un número aleatorio α0 ∈ [0, M1 ], después se crea una de sucesion de números {α0 ,α1 = α0 + M1 ,α2 =
α0 + M2 ,. . . ,αM−1 = α0 + M−1
M }. Una vez que se tiene dicha sucesión, a cada cromosoma que forma parte
Este método de selección tiene el siguiente funcionamiento: se crean dos listas con los contendientes
que participarán en el torneo, usando una distribución uniforme, con o sin reemplazo, ambas con la
misma longitud. El k− ésimo elemento de la primera lista se enfrentará al k− ésimo elemento de la
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 23
segunda lista, el ganador de esta contienda será el que tenga un mejor valor en la función de aptitud,
aunque es posible evitar la conversión de la función objetivo en función de aptitud teniendo cuidado
al momento de escoger al ganador de cada enfrentamiento. El ganador del primer enfrentamiento se
cruzará con el ganador del segundo enfrentamiento, el ganador del tercer enfrentamiento se cruzará con
el ganador del cuarto y ası́ sucesivamente [14].
Si se desea que incremente la probabilidad de seleccionar al mejor individuo para su reproducción se
puede incrementar el número de fases del torneo, o manipulando la distribución con que seleccionan los
individuos que tendrán enfrentamientos. El número de elementos que tendrán las listas de contendientes
depende directamente del tamaño de la población, y también de cómo esté elaborado el mecanismo de
cruza.
Al momento de llevar a cabo la selección se tiene la esperanza de escoger a los individuos más aptos
para que sus descendientes hereden sus mejores caracterı́sticas. Este mecanismo, como se puede ver en el
funcionamiento de los tres ejemplos mencionados, elige individuos al azar, tomando en cuenta la función
de aptitud. De acuerdo a las caracterı́sticas del problema es preferible usar alguno de los distintos tipos
de selección. Cuando el rango en el que se encuentra la función que se está optimizando es pequeño, se
pueden hacer dos cosas, expandir el intervalo de búsqueda y usar la selección por el método de ruleta ya
que en caso contrario, las probabilidades de selección serán semejantes o se puede optar por un método
de selección como la selección universal estocástica o torneo.
2.2.8. Recombinación
Es el operador que realiza la combinación del material genético de los individuos que resultaron
ser más aptos después del proceso de selección. Se puede pensar que la recombinación siempre debe
realizarse, pero esto no siempre es ası́ [14], ya que en el algoritmo genético se puede incorporar una
probabilidad ρ de cruza, menor que uno. Luego se obtiene un número aleatorio en el intervalo [0,1], si
dicho número es menor que la probabilidad se lleva a cado el cruce por el método seleccionado, en caso
contrario, los hijos serán copias de los padres.
Existen muchos métodos de recombinación pero los más usuales son los siguientes:
Cruza en un punto
Este método es el que se utiliza en el algoritmo genético simple. Si se tienen dos padres, con genotipo
dado por a = a1 a2 . . . aM y b = b1 b2 . . . bM respectivamente, entonces se escoge un número d al azar del
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 24
conjunto {1,2, . . . ,M-1}, de forma que se crean dos hijos h1 y h2 , y el primer hijo heredará los primeros
d genes de a, mientras que los restantes M − d genes los heredará de b. De esta forma se obtienen dos
nuevos pares de cromosomas h1 = a1 , . . . , ad bd+1 . . . bM y h2 = b1 . . . bd ad+1 . . . aM
Cruza en n puntos
Cruza uniforme
En este método de recombinación, los hijos heredan genes de los padres con la misma probabilidad.
Se crean dos máscaras [15] de ceros y unos, distribuidos de manera uniforme. Cuando la casilla m de la
máscara tenga un valor de 0, el hijo heredará el m−ésimo gen del padre a, en cambio, heredará los genes
del padre b en las casillas de la máscara que tengan un valor de 1.
2.2.9. Mutación
Realiza la alteración de un gen, con una probabilidad ρm la cual es por lo general pequeña. En muchas
ocasiones se utiliza ρm = 1/L, donde L representa la longitud del cromosoma, el gen que es alterado
puede tomar cualquier otro valor que esté dentro del alfabeto que se esté utilizando. Hay problemas
cuyas soluciones son permutaciones, en donde la mutación lleva a cabo un intercambio entre los genes
para evitar repeticiones.
El mecanismo de mutación tiene como función evitar que el algoritmo se estanque en óptimos locales
[15], por lo que está ligado con la exploración del algoritmo, pues al modificar los genes obtenidos por
medio de la recombinación se permite que haya diversidad en la población. Este operador requiere lo
siguiente [10]:
1. Accesibilidad: cada punto debe ser accesible desde cualquier otro punto arbitrario en el espacio de
soluciones, debe haber una mı́nima posibilidad de llegar a cualquier parte del espacio de búsqueda,
en caso contrario cabe la posibilidad de no poder encontrar el óptimo.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 25
2. Imparcialidad: este requerimiento tiene el principal objetivo de no guiar la búsqueda en una direc-
ción en particular.
3. Escalabilidad: esta condición es posible cuando el operador de mutación está basado en alguna
distribución de probabilidad.
Una vez que se llevó a cabo la selección de los individuos que recombinarán su material genético y que
se creó la lista de descendientes, lo más común es hacer que la nueva población reemplace a la población
original excepto por la mejor solución que se ha generado en el algoritmo, esto es para conservar buen
material genético, el caso en que se conserva cierta cantidad de individuos con un buen valor de aptitud
se conoce como elitismo.
Aunque en la naturaleza lo usual es que la evolución continúe por el tiempo en que hayan ejemplares
vivos de las especies, el algoritmo genético suele tener un criterio de paro, por ejemplo cierto tiempo
de ejecución, no sobrepasar cierto número de evaluaciones de la función de aptitud (en problemas en
los que calcular la función objetivo puede conllevar un alto costo computacional), terminar cuando haya
cierta cantidad de individuos idénticos entre sı́, o realizar únicamente cierto número de iteraciones. Otro
mecanismo común es finalizar la ejecución luego de que haya pasado cierto número de iteraciones sin
que se haya mejorado al mejor individuo encontrado.
Esta rama de la inteligencia artificial, en un principio fue usada para “describir el comportamiento
colectivo de sistemas descentralizados y auto-organizados, tanto naturales como artificales”[16]. Y toma
como base el comportamiento observado en colonias de hormigas, parvadas, cardúmenes, enjambres,
entre otros.
Básicamente la inteligencia de enjambre consiste en una población de agentes simples, que interactúan
localmente unos con otros y con el ambiente en el que habitan, estas interacciones casi siempre muestran
cierto grado de aleatoriedad, y es gracias a ellas que se puede observar el comportamiento inteligente a
nivel colectivo, a pesar de que cada agente no muestra inteligencia muy avanzada.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 26
Este algoritmo bioinspirado fue desarrollado por Rusell Eberhart y James Kennedy en 1995, tomando
como base el comportamiento de las parvadas, cardúmenes y enjambres. En la naturaleza se ha observado
que el comportamiento de estas grandes colonias de animales les da beneficios como encontrar fuentes de
alimento de mejor manera, además de que les ayuda a que la mayor parte de la población sobreviva a los
ataques de los depredadores. Al prestar atención se puede ver que el comportamiento de cada individuo
además de estar guiado por la conducta que siguen los demás individuos también tiene cierto grado de
aleatoriedad [15].
El primer uso que le dieron fue para el entrenamiento de pesos en redes neuronales artificiales. So-
lamente requiere operadores matemáticos muy simples y tiene un costo computacional muy bajo en
términos de requerimientos de memoria y velocidad [6].
En el artı́culo en que presentan este nuevo algoritmo, Kennedy y Eberthart mencionan los trabajos
de Reynolds, Heppener y Grenander, quienes presentaron simulaciones del comportamiento de banda-
das, teniendo principal interés en las reglas subyacentes que permiten a las aves congregarse de manera
sincronizada, cambiando de dirección repentinamente, dispersándose y reagrupándose. Aunque en sus
modelos daban importancia a la manipulación de la distancia que habı́a entre los individuos ya que veı́an
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 27
a la sincronı́a de las bandadas como resultado del esfuerzo de las aves por mantener una distancia óptima
entre sı́ mismos y sus vecinos [6].
En su artı́culo Eberhart y Kennedy mencionan la simulación de Heppener, quien habı́a plantado un
“gallinero” en el espacio de búsqueda, la aves volaban alrededor hasta que finalmente aterrizaban cer-
ca, pero esto no representa fielmente a la realidad, pues las aves aterrizan de acuerdo a sus necesidades
inmediatas. Otro trabajo que tuvo mucha influencia para el desarrollo de PSO fue la idea de E.O. Wil-
son de que los bancos de peces se benefician de la experiencia previa de otros miembros del banco con
respecto a la ubicación de fuentes de alimento y que esta ventaja evolutiva les permite superar la desven-
taja de tener que competir por comida, aunque para esto, los alimentos deberı́an de aparecer de forma
impredecible.
El enjambre, consta de m agentes, que también pueden ser llamados partı́culas. Unicamente consta de
dos operadores: actualización de velocidad y actualización de posición. La velocidad tiene la función de
mover a las partı́culas dentro del espacio de búsqueda y es calculada de acuerdo a la información que se
obtiene en las iteraciones previas del algoritmo.
Al momento de implementar este algoritmo se hace el supuesto de que los miembros del enjambre
tienen memoria para recordar la mejor ubicación que han encontrado tanto por su cuenta como la mejor
ruta encontrada por todo el enjambre, además de modificar su velocidad de movimiento de acuerdo a
esta misma información. El planteamiento matemático es el siguiente:
Cada una de las m partı́culas se mueve dentro del espacio de búsqueda, para llevar a cabo el movimiento
se hace uso de una velocidad vi (t), con la que se pretende que las partı́culas sean capaces de explorar
cualquier región de A [13]. El ı́ndice t es el contador de iteraciones, por lo que en la iteración o el tiempo
t del algoritmo la partı́cula i tendrá asociada la posición xi (t) y la velocidad vi (t).
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 28
Durante cada iteración se tiene almacenada información de la mejor posición encontrada por cada
partı́cula a lo largo del algoritmo, lo que contribuye al intercambio de información. Para esto se hace uso
de un conjunto P definido de la siguiente manera:
Donde pi (t) = (pi,1 (t), pi,2 (t), ..., pi,n (t)) ∈ A para i : 1, 2, ..., m.
Se puede definir la mejor posición encontrada por la partı́cula i al tiempo t + 1 de forma recursiva de
la siguiente manera:
xi (t + 1), f (xi (t + 1)) ≤ f (pi (t))
pi (t + 1) =
pi (t),
f (xi (t + 1)) > f (pi (t)
Por otra parte se define a la mejor posición encontrada por todas las partı́culas o la mejor posición
global como:
pg (t) = {pme jor ∈ P | f (pme jor ) ≤ f (p) ∀p ∈ P}.
2.4.1. Velocidad
En cada iteración este operador cambia de manera que la posición de la partı́cula al tiempo t + 1
se acerque cada vez más a la ubicación de la mejor posición global o la mejor posición local, por lo
general se trata de un vector, dependiendo del número de variables que considere el problema que se está
optimizando. Para calcular la velocidad con que se moverá cada partı́cula se usa la fórmula [16]:
vi, j (t + 1) = vi, j (t) + c1 · r1 · (pi, j (t) − xi, j (t)) + c2 · r2 · (pg, j (t) − xi, j (t)). (2.3)
Los términos c1 y c2 son las componentes cognitivo y social, respectivamente, y son ponderaciones
que se le dan al conocimiento sobre la ubicación de la mejor posición encontrada por el individuo
y la mejor ubicación encontrada por la población, respectivamente. Si c1 es mayor que c2 puede
incrementar la probabilidad de dar prioridad a buscar en regiones cercanas a la mejor solución que
ha encontrado la partı́cula i, si c2 es mayor que c1 las partı́culas se acercarán a la región del espacio
de búsqueda que está explorando la partı́cula que ha encontrado un valor en la función objetivo
más prometedor.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 29
Los parámetros r1 y r2 son totalmente aleatorios en cada iteración e indican la aportación que darán
el componente cognitivo y social, respectivamente, ambos se consideran en el intervalo [0, 1]. Es
importante que sean variables, con el objetivo de imitar el movimiento errático de las bandadas y
los bancos de peces.
El término pi, j (t) es la mejor posición que ha sido encontrada por la partı́cula i a lo largo de las
iteraciones hasta el tiempo t.
El término pg, j (t) es la información de la mejor posición encontrada por todas las partı́culas del
enjambre hasta el tiempo t.
vi, j (t + 1) = w · vi, j (t) + c1 · r1 · (pi, j (t) − xi, j (t)) + c2 · r2 · (pg, j (t) − xi, j (t)). (2.4)
Este componente como lo indica su nombre dirá qué tanta influencia tendrá la velocidad previa del
algoritmo en la iteración actual.
Una vez que se ha calculado la velocidad para la partı́cula i al tiempo t + 1 se actualiza la posición
usando la siguiente fórmula [16]:
De esta forma la partı́cula podrá moverse a otra posición que dependerá de la elección de parámetros
que se hayan hecho pero que seguirá siendo al azar pues se tiene la presencia de las variables r1 y r2
dentro del cálculo de la velocidad.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 30
2.4.3. Ajustes
Posteriormente surgieron trabajos que buscaron afrontar las problemáticas a las que se enfrenta este
algoritmo para resolver problemas más complejos. Una de las primeras aportaciones fue crear un lı́mite
en la velocidad, pues a lo largo de las iteraciones la velocidad puede llegar a tomar valores muy elevados o
demasiado bajos que pueden provocar que las posiciones de las partı́culas salgan del espacio de búsqueda.
El lı́mite en la velocidad se lleva a cabo después de haber realizado el cálculo de la velocidad, se
incorpora un lı́mite máximo de velocidad vmax > 0, se usa la siguiente condición:
Otra modificación propuesta es considerar un ajuste en el que la inercia decrece de manera lineal
usando la siguiente fórmula [16]:
En donde wmax es la inercia que tendrá el algortimo al principio, mientras que el parámetro wmin es la
inercia que se quiere utilizar en la última iteración. Por su parte el término iteracion f inal hace referencia
al número de iteraciones que tendrá el algoritmo, mientras que el término iteracionactual hace referencia
a la iteración en la que se encuentra el algoritmo.
Las hormigas, al igual que la gran mayorı́a de los animales que viven la mayor parte de su vida
dentro del suelo no tienen muy desarrollado el sentido de la vista, a cambio de esto han desarrollado un
sistema de comunicación muy interesante al hacer uso de una sustancia llamada feromona, esta sustancia
es depositada en el camino que conduce de su hormiguero hacia las fuentes de comida, y como las
demás hormigas también son capaces de percibir esta sustancia pueden guiar su búsqueda de acuerdo a
la concentración que haya de esta sustancia en el camino.
En un experimento conocido como el experimento de doble puente, con el propósito de estudiar los
rastros de feromona bajo condiciones experimentales, Deneubourg y sus colegas conectaron un hormi-
guero a una fuente de alimentos mediante dos posibles rutas. En cada experimento variaban la longitud
de las dos rutas, aunque para Dorigo [7], el experimento que mas resaltó fue uno en que especı́ficamente
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 31
una de ellas era más larga que la otra, en los primeros momentos del análisis, las hormigas decidı́an li-
bremente cual de las dos rutas seguir, como resultado final se observó que a pesar de que en los primeros
momentos las hormigas parecı́an decidir al azar entre las dos rutas, en la mayorı́a de los experimentos
las hormigas tendı́an a usar la más corta de ellas.
La explicación que propone Dorigo es que debido a que en un principio no hay ningún rastro de
feromona en ninguna de las dos rutas, esto lleva a que las hormigas no tengan una preferencia por alguna
de ellas, por lo que escogen con la misma probabilidad una o la otra, pero debido a que una es más corta
que la otra, las hormigas que escogieron dicha ruta requerirán menos tiempo para realizar el trayecto de
ida y regreso, por lo que, cuando las hormigas tengan que realizar un nuevo trayecto, la alta concentración
de feromona en la ruta más corta hará que la decisión sea sesgada en favor de esta ruta, y como el rastro de
feromona se reforzará más rápido cuando pasen más hormigas, el rastro tenderá a estar más concentrado
en la ruta más corta y eventualmente será el trayecto que siga la mayorı́a de las hormigas.
Debido a que los problemas que se buscan resolver haciendo uso de hormigas artificiales son más
complejos que los problemas a resolver por las hormigas, a las hormigas artificiales se le dan capacidades
adicionales como tener memoria, con el fin de que se puedan conocer las restricciones del problema a
resolver y de que las rutas puedan ser recordadas sin ningún error [7], aunque en algunas hormigas reales
se ha observado que la cantidad de feromona depositada por las hormigas varı́a dependiendo de la calidad
de la fuente de comida.
A menudo, para tener una solución con un costo computacional relativamente bajo se recurre a al-
goritmos de aproximación que por lo general son de construcción o de búsqueda local. Los algoritmos
de construcción elaboran las soluciones al problema que esté en consideración a partir de una solución
inicial vacı́a a la que, de forma iterativa, se le agregan los componentes que parezcan adecuados hasta
que se obtiene una solución al problema que se está trabajando. Se suelen obtener mejores resultados
si se hace una estimación heurı́stica del beneficio miope que se obtiene por agregar componentes a la
solución. Este beneficio es llamado miope porque en cada iteración esta información no ve mas allá del
beneficio inmediato por agregar una componente.
Para cada posible componente que pueda formar parte de la solución que está en construcción, la pro-
babilidad de que finalmente forme parte de la solución dependerá del beneficio que se obtiene de agregar
dicha componente [7], por lo general estos algoritmos proporcionan mejores soluciones en comparación
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 32
con construcciones totalmente aleatorias, sin embargo, se puede presentar el inconveniente de que la
búsqueda se concentre únicamente en algún sector del espacio de búsqueda, pues las elecciones que se
llevan a cabo durante las primeras etapas del proceso de construcción limitan las posibilidades en las
fases finales.
Por su parte los algoritmos de búsqueda local están estrechamente relacionados con el concepto de
vecindad. En estos algoritmos el punto de partida no es una solución vacı́a, sino una solución obtenida
mediante algún otro algoritmo. El propósito a lo largo del proceso de búsqueda es encontrar una mejor
solución dentro de una vecindad de cada solución que se va obteniendo [7], para lo cual es importante
plantear de forma adecuada la vecindad. Si se encuentra una mejor solución, esta reemplaza a la solución
inicial y el proceso continúa, esto se repite hasta que ya no se encuentre una mejora en una vecindad, por
lo que se ha encontrado un óptimo local.
Es muy importante elegir correctamente la estructura que definirá a la vecindad, además de que esta
estructura dependerá del problema que se está trabajando. La vecindad de una solución s define un
conjunto de soluciones que pueden ser accesibles desde ese punto en un solo paso del algoritmo. La
forma en que se lleva acabo el algoritmo de búsqueda local puede variar, pues se puede definir de distintas
formas como se lleva a cabo la búsqueda en la vecindad, además de que también puede variar como se
decide qué vecino sustituirá a la solución actual.
Estas dos clases de algoritmos pueden relacionarse con el algoritmo de colonia de hormigas, pues
la construcción de las soluciones llevada a cabo por las hormigas parten de soluciones iniciales vacı́as,
además, cada solución se va construyendo paso a paso, aunque en este caso las soluciones se construyen
de forma probabilı́stica, y se toma en cuenta la información que se tiene sobre el problema (información
heurı́stica) y la información que recolecta toda la población a lo largo del algoritmo.
El hecho de que la construcción de las soluciones sea de manera aleatoria permite a las hormigas
artificiales construir una amplia variedad de soluciones y por lo tanto explorar más regiones en compa-
ración con los algoritmos glotones, además, la información heurı́stica, que está disponible para muchos
problemas, puede guiar a las hormigas hacia las soluciones más prometedoras.
En un principio este algoritmo consistı́a a su vez en tres variantes distintas llamados ant-cycle, ant-
density y ant-quantity, fueron propuestos por Dorigo en su tesis doctoral y se usaron para abordar el
problema del agente viajero. En los dos últimos algoritmos las hormigas actualizaban la feromona inme-
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 33
diatamente después de moverse de una ciudad a otra ciudad adyacente [7], pero en la variante ant-cycle
la actualización se llevaba a cabo hasta que todas las hormigas hubieran terminado la construcción de sus
rutas y la cantidad de feromona depositada variaba en función de la calidad de la solución encontrada.
Debido a que ésta variante tuvo con un desempeño mejor que las otras dos, finalmente fue la que tomó
el nombre de Ant System, mientras que las otras variantes no fueron estudiadas más a fondo.
En un principio esta variante obtuvo buenos resultados, sin embargo estos resultados no competı́an
con los de otros algoritmos existentes en ese momento. La importancia de este algoritmo inicial radica
en que sentó las bases para las posteriores investigaciones que condujeron a variantes más fructı́feras,
que tendrı́an un mejor desempeño y que podrı́an tener aplicación a un gran número de problemas.
Tomando como analogı́a lo que se observa en las hormigas, el algoritmo ACO también muestra una
comunicación indirecta dentro de una colonia de agentes simples conocidos como hormigas artificiales
mediante el uso de rastros artificiales de feromonas. Los rastros de feromona son usados por las hormigas
para la construcción de forma probabilı́stica de las soluciones del problema a resolver, además de que
durante la ejecución del algoritmo refleja su experiencia en la búsqueda.
2.5.3. Inicialización
Al inicio del algoritmo, se establece el valor de la feromona τ0 . Por lo general las soluciones iniciales
son generadas aleatoriamente dentro del espacio de búsqueda.
La forma en que se escogen los componentes de las soluciones a construir y que se usó desde que
se creó Ant System y en las variantes que derivaron de este algoritmos se explica a continuación. En
todas las iteraciones del algoritmo esta fase inicia con una solución vacı́a s p = 0,
/ y durante cada paso
de la construcción cada hormiga extiende la longitud de su solución parcial escogiendo de entre los
componentes factibles y añadiendo al componente elegido a la solución parcial s p utilizando la siguiente
probabilidad de selección [7]:
En donde:
El conjunto N(s p ) está formado por los componentes que son factibles dada la solución parcial
construida por la hormiga p.
Por su parte τi, j representa a la casilla i, j de la matriz de feromona y da un indicio de qué tan
favorable ha sido pasar de la componente i a la componente j dada la experiencia aprendida por
toda la colonia a lo largo del algoritmo.
La función η() asigna un valor heurı́stico a cada componente factible cij ∈ N(s p ), es conocido
como información heurı́stica. Suele estar disponible para la mayorı́a de los problemas.
Para la gran mayorı́a de problemas la información heurı́stica está disponible desde un principio. Por
ejemplo, para el problema del agente viajero se puede tomar en cuenta el inverso multiplicativo de las
distancias que hay entre las ciudades. Pero también puede darse el caso como en el problema de plegado
de proteı́nas en que la información heurı́stica depende directamente de componentes que fueron selec-
cionadas en las iteraciones previas del algoritmo, por lo que este valor deberá ser calculado al mismo
tiempo en que se está construyendo la solución, lo que aumenta el costo computacional pero que tam-
bién proporciona una mayor precisión en los valores heurı́sticos calculados. La información heurı́stica
debe cumplir la condición de tener valores más altos conforme sea mejor agregar una componente a la
solución parcial que está en construcción.
Una vez que ha concluido la construcción de las soluciones candidatas se puede realizar un algoritmo
de búsqueda local y de acuerdo a Dorigo se ha observado que este algoritmo bioinspirado tiene un mejor
rendimiento cuando se complementa con un algoritmo de búsqueda local. Esto puede ser considerado
dentro de las llamadas acciones del demonio, es decir, acciones especificas que no pueden ser realizadas
por las hormigas de forma individual.
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 35
El principal objetivo de usar el rastro de feromona es hacer más deseables aquellas componentes que
han formado parte de las mejores soluciones encontradas para que en las siguientes iteraciones sea más
probable que las hormigas que construyan las soluciones opten por escoger estas componentes sobre el
resto. Esto se logra de dos formas, mediante el reforzamiento del rastro de feromona de las componentes
de las mejores soluciones, aunque en la propuesta de Dorigo [7], se puede trabajar con un porcentaje
de las mejores soluciones (conocido como Supd ) y también mediante la evaporación de todos los rastros
de feromona para todas las posibles componentes. El mecanismo de evaporación también es necesario
para evitar la convergencia rápida a óptimos locales, pues al evaporar todos los rastros se favorece la
exploración de nuevas regiones en el espacio de búsqueda. La actualización del rastro de feromona se
implementa de acuerdo a la ecuación:
En donde
El conjuntoSupd está compuesto por las soluciones que han sido seleccionadas para que sus rastros
de feromona sean actualizados. Por lo general este conjunto de soluciones es un subconjunto de
las soluciones que fueron generadas en cada iteración pero también puede presentarse el caso en
el que este conjunto se escoge de entre las mejores soluciones que fueron encontradas a lo largo
de las iteraciones previas.
g(s) : S → R+ (2.9)
Tal que si
f (x) < f (y) → g(x) > g(y).
La función g(s) es una función que tiene un valor más alto conforme una solución es mejor.
Es en este proceso de la implementación de ACO en donde las distintas variantes trabajan de forma di-
ferente, por ejemplo, en esta variante se considera Supd = Siter para realizar la actualización de feromona
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 36
2.5.8. Variantes
Una de las primeras mejoras que se realizó, un año después por el mismo Dorigo, es conocida co-
mo estrategia elitista que consistió en dar una mejora adicional a los nodos que ha visitado la mejor
trayectoria que se ha encontrado a lo largo del algoritmo, en este caso la ecuación 2.8 se convierte en:
En donde e es un número entero mayor que cero, y es el depósito adicional que se agrega en caso de
que los nodos i, j pertenezcan a la mejor ruta. Este depósito extra puede ser considerado dentro de las
denominadas acciones del demonio.
Otra variante muy conocida es MAX-MIN Ant System en donde se agregan unos limites, inferior (τmin )
y superior (τmax ), a la cantidad de feromona que se permite que esté depositada en las aristas, de esta
manera se tiene que:
τmin ≤ τi, j ≤ τmax . (2.11)
Con el fin de tener una mayor exploración en las primeras iteraciones del algoritmo se suele sugerir
que todos los valores en la matriz de feromona inicializen con valores por arriba de τmax . En esta variante
solamente se permite a la mejor solución mejorar su rastro de feromona, aunque esta solución puede
ser elegida entre la mejor solución generada en la iteración o a la mejor solución encontrada en todo el
algoritmo, incluso Dorigo menciona que se puede alternar en cada iteración la actualización entre una y
otra. Como un paso adicional para mejorar la exploración con esta variante se sugiere reiniciar el rastro
de feromona después de cierto número de iteraciones.
La variante Ant Colony System [7], da más importancia a la explotación de la información que ha sido
recopilada por las hormigas que ya han trazado sus camino que a la exploración del espacio de búsqueda,
esto lo logra mediante dos mecanismos, primero mediante una estrategia elitista para llevar a cabo la
actualización del rastro de feromona, el segundo mediante una probabilidad de escoger los próximos
componente de una forma pseudoaleatoria.
En esta variante se tiene una probabilidad q0 , 0 ≤ q0 < 1, de que la próxima componente sea escogida
ya no de manera aleatoria, sino que se considere a aquella componente que tenga un valor más alto al
CAPÍTULO 2. ALGORITMOS BIOINSPIRADOS 37
β
considerar τi,αj ∗ ηi, j , es decir, la próxima componente será aquella componente j que cumpla:
β
j = argmaxc j ∈N(s p ) {τi,αj ∗ ηi, j }. (2.12)
i
En esta variante se utiliza la función argmax porque se escogerá a la componente j que maximiza a la
β
función τi,αj ∗ ηi, j .
Cuando el valor de q0 es muy cercano a 1, se favorecerá más la explotación que la exploración, y si es
un valor muy cercano a 0 se asemejará más al algoritmo Ant System. En esta variante la estrategia elitista
permite que solamente la mejor solución de la iteración o la mejor solución global actualice su rastro de
feromona, aunque se suele dar preferencia a la mejor solución global (sgb ) de todo el algoritmo, por lo
que la ecuación 2.8 se convierte en:
Otra diferencia muy importante de esta variante con respecto al modelo original es que la actualización
de la feromona no se lleva a cabo una vez que toda la colonia ha terminado de construir su trayecto, sino
que se lleva a cabo al mismo tiempo que se van construyendo las soluciones, esto con el propósito de
evitar que todas las hormigas sigan el mismo camino, lo que favorece la exploración.
Capı́tulo 3
Metodologı́a
3.1. Introducción
Debido a que el algoritmo genético es un algoritmo basado en poblaciones, el primer paso es generar
una población al azar, con números entre uno y cuatro. La primera nota importante es recalcar que es
necesario que xi,1 = 1, ∀xi ∈ P con el objetivo de disminuir en una dimensión el espacio de búsqueda.
Esto tiene como base que hay soluciones que tienen la misma estructura pero con diferente orientación.
Para ilustrarlo se considera a la sucesión de aminoácidos:
38
CAPÍTULO 3. METODOLOGÍA 39
x1 = (1, 1, 1, 4, 3, 3, 4, 4, 3, 2, 2, 3, 2, 2, 3, 2, 1, 1, 4),
x2 = (2, 2, 2, 1, 4, 4, 1, 1, 4, 3, 3, 4, 3, 3, 4, 3, 2, 2, 1),
x3 = (3, 3, 3, 2, 1, 1, 2, 2, 1, 4, 4, 1, 4, 4, 1, 4, 3, 3, 2),
x4 = (4, 4, 4, 3, 2, 2, 3, 3, 2, 1, 1, 2, 1, 1, 2, 1, 4, 4, 3).
La población a lo largo del algoritmo es una matriz en donde cada renglón contiene la configuración
que va a adoptando cada solución, y como se busca reducir la dimensión del espacio de búsqueda, la
primera columna siempre tendrá el valor de uno, en cada renglón.
3.2.1. Mutación
Esto ocurre cuando dos variables consecutivas toman los valores 1 y 3 o los valores 2 y 4. Para
simplificar la notación se presenta una funcion que convierte a un 1 en 3 y viceversa y que hace lo mismo
con los números 2 y 4.
x − 2
si x > 2,
a(x) = (3.2)
si x ≤ 2.
x + 2
Para evitar empalmes consecutivos, la función de mutación tomará valores del siguiente conjunto:
Cuando la variable que presentará una mutación es (xn−1 ), considerando que esta variable indica la
posición del último aminoácido con respecto al penúltimo aminoácido, y que al ser el último aminoácido
de la secuencia ya no tiene un aminoácido sucesor, los posibles valores que puede tomar están contenidos
dentro del siguiente conjunto:
CAPÍTULO 3. METODOLOGÍA 41
3.2.2. Recombinación
C = {c1 , c2 , . . . , cn−2 }.
El punto en donde se realizará la cruza será escogido de manera aleatoria dentro de aquellas ci que hayan
tomado el valor de 0, pues en estos puntos es donde se garantiza que los hijos generados no presenten
empalmes de manera consecutiva, lo cual no implica que no se puedan presentar empalmes de alguna
forma diferente. Se puede programar de forma que cada ci detecte posibles empalmes en segmentos de
longitud 4, 6, etcétera, pero esto implicarı́a aumentar el tiempo de ejecución.
Al momento de calcular la energı́a que desprende un plegamiento dado se hace uso de la ecuación
1.3. Esta ecuación consta de dos partes, la primera identifica las interacciones exclusivamente entre
aminoácidos hidrofóbicos, mientras que la segunda se encarga de calcular la penalización que se le dará
a una solución por presentar empalmes pero sin importar que se trate de aminoácidos hidrofóbicos o
polares.
CAPÍTULO 3. METODOLOGÍA 42
En un principio la energı́a toma el valor de 0. Para calcular las interacciones entre aminoácidos hi-
drofóbicos el primer paso es identificar cuales son los aminoácidos que tienen esta caracterı́stica, lo cual
se hace solamente usando la función which. Cuando se tienen identificados los aminoácidos hidrofóbi-
cos, se identifican sus posibles vecinos y los puntos que ocupan en R2 , se verifica que los puntos que
ocupan cada uno de los vecinos se encuentren a una unidad de distancia de la posición del aminoácido
que se esté analizando, para hacer esto se analiza el segmento de la solución que abarca desde la posición
del aminoácido bajo análisis hasta la ubicación de cada uno de sus posibles vecinos, en este segmento
se cuenta el número de pasos hacia la derecha, que es equivalente a contar el número de veces en que
se repite el número uno dentro del segmento, además de contar los pasos hacia la izquierda que están
indicados por las veces en que se repitió el número tres dentro de la secuencia. Posteriormente se verifi-
can los pasos hacia arriba y hacia abajo, indicados por las veces en que se repite el número dos y cuatro
respectivamente. Si se tiene que la cantidad de pasos hacia la derecha coincide con los pasos dados hacia
la izquierda y que la diferencia entre los pasos dados hacia arriba con respecto a los pasos dados hacia
abajo es de uno, o si por el contrario, la diferencia entre los pasos hacia la derecha difiere en una unidad
respecto a los pasos dados hacia la izquierda mientras que el número de pasos dados hacia arriba coinci-
de con el total de pasos dados hacia abajo entonces se tendrá que el aminoácido bajo análisis tiene una
interacción hidrofóbica con su vecino y se actualiza el valor de la energı́a tomando energı́a = energı́a − 1.
Para hacer el cálculo de la penalización se puede hacer uso de un ciclo for dentro de otro ciclo for para
hacer uso de la ecuación 1.4. Pero realizar esto tiene un alto costo computacional porque los empalmes
se pueden presentar sin importar que los aminoácidos sean hidrofóbicos o no. Para disminuir el costo
computacional de hacer estas verificaciones se hace uso de otra forma que es más rápida en los tiempos
de ejecución.
Para calcular la penalización que desprende una secuencia x ∈ {1, 2, 3, 4}n−1 dada una secuencia de
aminoácidos S de longitud n se hace uso de una trayectoria en R2 . A cada aminoácido si ∈ S se le asigna
un punto ai ∈ R2 , teniendo como primer paso el supuesto de que el primer aminoácido estará ubicado en
el origen, la ubicación de cada aminoácido dependerá de la ubicación del aminoácido previo, la forma
en que se actualiza la posición de cada aminoácido se muestra en la tabla 3.1.
CAPÍTULO 3. METODOLOGÍA 43
Como consecuencia de esto y debido a que en todos los algoritmos bioinspirados realizados se consi-
deró xi,1 = 1 el segundo aminoácido estará ubicado en el punto (1, 0).
Otra forma consiste en construir la trayectoria de forma iterativa con la siguiente fórmula:
ai,1 = (0, 0)
(3.6)
ai,k = ai,k−1 + (11 (xi,k ) − 13 (xi,k ), 12 (xi,k ) − 14 (xi,k ))
Una vez que a una solución x se le ha asignado una trayectoria para calcular los empalmes solamente se
hace uso de la función unique que se encarga de eliminar los elementos duplicados y lo que da un indicio
del número de empalmes que se tiene en la estructura que se ha formado porque un empalme se presenta
cuando dos aminoácidos ocupan la misma posición en R2 . Cuando no se ha eliminado algún elemento
quiere decir que no hubo empalmes. Se debe tomar en cuenta que este método no afecta a soluciones
factibles, mientras que en el caso de empalmes, al usar la función unique no se tiene información sobre
cuántos aminoácidos se empalmaron en un mismo punto.
Es necesario que la función de aptitud que se esté utilizando sea no negativa y que los individuos que
mejor desempeño tienen en el entorno en donde se está desarrollando tengan valores más altos. Cuando
se está trabajando en problemas de minimización es necesario realizar un ajuste a la función objetivo. El
cambio que se hizo en este caso fue el descrito en la ecuación 2.1. En esta ecuación la constante K es una
variable que es lo suficientemente grande para hacer que la función objetivo sea no negativa. Se pueden
considerar valores muy elevados para garantizar que el dividendo f + K siempre sea positivo, pero en
este trabajo se calculó a K bajo el procedimiento descrito a continuación.
Tomando en consideración que bajo el modelo de Dill un aminoácido tiene disponibles cuatro po-
CAPÍTULO 3. METODOLOGÍA 44
siciones posibles con respecto a la posición que está ocupando actualmente y que en caso de que los
aminoácidos que ocupan la primera y la última posición dentro de la secuencia S que conforma a la
proteı́na sean aminoácidos clasificados como hidrofóbicos pueden tener interacción hidrofóbica a lo mas
con otros tres aminoácidos, mientras que el resto de aminoácidos al tener ocupadas dos de las cuatro
posiciones que tiene disponibles alrededor, sólo pueden tener a lo más dos interacciones hidrofóbicas
con aminoácidos que ocupen las casilla desocupadas.
Por último, es importante recalcar que si se considera que un aminoácido hidrofóbico que ocupe
una posición par dentro de secuencia S estará alejado por una longitud par de otros aminoácidos que
también ocupen posiciones pares, y considerando que sucede lo mismo con los aminoácidos que ocupan
posiciones impares, con respecto a los otros aminoácidos hidrofóbicos que ocupan posiciones impares,
lo que se traduce en que un aminoácido que ocupa una posición par solamente puede tener interacciones
hidrofóbicas con aminoácidos hidrofóbicos que ocupan posiciones impares y viceversa. Dado lo anterior
se tiene lo siguiente:
Se define el conjunto de los aminoácidos pares de la secuencia S como:
K = min{2 ∗ |P(S)| + 1 ∗ (sn ∈ P(S)), 2 ∗ |I(S)| + 1 ∗ (s1 ∈ I(S)) + 1 ∗ (sn ∈ I(S))} + 1 (3.7)
Se considera la cardinalidad de los conjuntos I(S) y P(S) para contar el número de aminoácidos impa-
res y pares, este número se multiplica por dos ya que se pueden presentar dos interacciones hidrofóbicas,
mientras que el factor extra que implica que el primer y el último aminoácido que conforman a la se-
cuencia S sean hidrofóbicos es agregado porque en caso de que estos dos aminoácidos sean hidrofóbicos
pueden llegar a tener hasta tres interacciones hidrofóbicas.
De estos dos posibles resultados se considera al menor de ellos porque no importa desde que punto
de vista se consideren las interacciones hidrofóbicas, el total de éstas debe ser el mismo si se considera
como punto de partida contar las interacciones de cada aminoácido par, que si se toma en cuenta las inter-
CAPÍTULO 3. METODOLOGÍA 45
acciones hidrofóbicas de los aminoácidos impares. Por último, al número obtenido se le suma una unidad
para que en caso de que la solucion óptima coincida con este número no provoque una indeterminación
en el dividendo.
El objetivo al calcular K de esta forma, es que los valores de la función de aptitud no sean demasiado
pequeños, porque al agregar constantes que sean muy grandes, en el denominador de la ecuación 2.1, los
valores obtenidos pueden llegar a ser menores que el epsilon de la máquina.
3.2.5. Selección
columnas en la matriz de encuentros se va reduciendo a la mitad, para finalmente obtener una matriz con
una sola columna, que contendrá a los individuos que serán recombinados.
En un principio, la matriz de enfrentamientos se llena por columnas, utilizando el argumento bycol=T,
de manera que se garantiza que el número asignado a cada individuo, que es el renglón que ocupa en
la matriz que contiene a la población, aparece una vez en cada columna. En cada enfrentamiento, se
compara el valor obtenido en la función objetivo, como se trata de un problema de minimización el
individuo que resultará ganador es el que tiene una menor energı́a, en caso de presentarse un empate, el
individuo ganador es seleccionado al azar.
Una vez finalizado el torneo, se lleva a cabo la creación de la nueva población, guardando al mejor
individuo de la población de padres, y recombinando a los individuos que resultaron ganadores en el
torneo, de forma que el individuo que ocupa el primer renglón en la matriz de ganadores del torneo se
recombina con el que ocupa el segundo renglón, el individuo del tercer renglón recombina su genotipo
con el individuo que está en el cuarto renglón y ası́ sucesivamente. En caso de que el número total de
individuos de la población exceda el tamaño de población asignado al inicio del algoritmo se elimina al
último hijo generado.
Para la implementación de selección universal estocástica se necesitan los argumentos aleatorioM que
indica el número de apuntadores que se quieren utilizar. También recibe como argumento la población,
sus valores obtenidos en la función objetivo, la cota que se usará para hacer la conversión en función de
aptitud (calculada como se muestra en la ecuación 3.7 ) y por último la probabilidad de llevar a cabo la
recombinación. Como primer paso se determina el número de giros necesarios, que depende del número
de apuntadores, pues por cada giro de ruleta se tienen M apuntadores que señalan a M padres que podrán
ser recombinados.
Para determinar el número de giros en la ruleta se utiliza la función ceiling para obtener el número
entero mas próximo por exceso de la división del tamaño de la población entre el número de apuntadores.
El número de giros debe ser tal que tam población ≤ M ∗ numgiros
Se construyen las probabilidades de forma semejante a la ruleta, pero adicionalmente se crea una
matriz que indica la distribución acumulada, de acuerdo al número de apuntadores tendrá cada giro de
ruleta. Una vez que se han obtenido los apuntadores se busca el intervalo que le corresponde dentro de
la matriz de distribución acumulada para saber que individuos tendrán la posibilidad de recombinar su
material genético.
Cuando ya se han llevado a cabo los giros de ruleta necesarios y en caso de que el número de padres
generados exceda el número de padres necesarios para generar una nueva población se obtiene una
CAPÍTULO 3. METODOLOGÍA 47
muestra aleatoria sin reemplazo usando la función sample. Cuando ya se obtuvo la población de padres,
se guarda al mejor individuo encontrado en dicha población, y se recombina el material genético del
primer miembro de la lista de padres con el segundo, el tercero con el cuarto y ası́ sucesivamente.
Por último, se unen todas la funciones creadas en una sola función. El primer paso es generar la
población inicial aleatoria, a la que se le calculará la función objetivo, esta primera población no se
muta, después se calcula la función de aptitud con el fin de poder seleccionar a los individuos de acuerdo
al método de selección que se esté usando. Cuando se tiene la lista de padres estos se recombinan y la
nueva población puede tener una mutación, dependiendo de la probabilidad de mutación.
La respuesta de esta función es una lista, que contiene a la última población, que se acomoda en un
data.frame. Por construcción, la última población tiene una matriz en la que el primer renglón tiene al
mejor individuo que se encontró a lo largo del algoritmo y en el resto de renglones contiene otros miem-
bros de la población, éste data.frame también contiene los valores obtenidos en la función objetivo. La
lista también tiene la opción de devolver la matriz con la información de la función objetivo de cada
población generada a lo largo del algoritmo y por último devuelve una matriz que contiene la informa-
ción sobre cómo van evolucionando los plegados, la conformación obtenida, la energı́a desprendida y la
iteración en que hubo una mejora.
Este algoritmo se implementó teniendo como primer paso la creación de una población aleatoria, que
es guardada en una matriz y en donde cada renglón es un miembro del enjambre. Esta matriz contiene
solamente miembros del conjunto {1, 2, 3, 4}. Al igual que en algoritmos genéticos se considera que
xi,1 = 1, ∀xi ∈ P, por lo que la primera columna de la matriz que contiene a la población tiene el valor de
1.
Debido a que este algoritmo fue ideado para afrontar problemas en donde la función objetivo es una
función continua, es necesario realizar algunos ajustes para que las soluciones obtenidas pertenezcan
a {1, 2, 3, 4}n−1 . Cuando se realiza la operación pi, j (t) − xi, j (t) debido a que ambos términos forman
parte del conjunto {1, 2, 3, 4} la resta entre los distintos elementos de ese conjunto forman parte del
conjunto {−3, −2, −1, 0, 1, 2, 3}. Pero al momento de multiplicar por números reales, como es el caso
de los parámetros w, c1 , c2 , r1 y r2 el número obtenido y que terminará siendo la velocidad será de igual
CAPÍTULO 3. METODOLOGÍA 48
manera un número real, al momento de realizar la actualización de la posición usando la ecuación 2.5, el
resultado puede no estar dentro del conjunto {1, 2, 3, 4}.
Para afrontar la problemática anterior se puede pensar en algunas alternativas. Por ejemplo, se puede
optar por aplicar redondeo para poder calcular la función objetivo, mientras que se puede usar también
las funciones techo o piso e incluso congruencias. Aunque éstos operadores se realizan únicamente para
poder calcular la función objetivo, esto es con el objetivo de no perder la información que el algoritmo
obtiene al realizar el cálculo de la velocidad. Sin embargo, en las ejecuciones realizadas se observó que
de no poner un lı́mite a la velocidad, esta solı́a incrementar, por lo que al actualizar las posiciones ya no
es posible calcular la función objetivo.
Para poder aplicar optimización por enjambre de partı́culas al problema de plegado de proteı́nas se hizo
uso de la construcción del recorrido que se forma en R2 por lo que la velocidad ya no se calcula usando
elementos del conjunto {1, 2, 3, 4} puesto que ahora pi, j (t), xi, j (t) y pg j (t) son puntos ubicados en R2 , y
que surgen como consecuencia de la trayectoria que se forma por la configuración que tiene la partı́cula
xi , al realizar la resta de estos elementos se obtiene como resultado un vector que será multiplicado por
un escalar (c1 , c2 , r1 , r2 ) según sea el caso, y por lo tanto vi, j (t) también será un vector.
Por otra parte, se hizo una lista llamada listaTray cuyo tamaño depende del número de individuos que
formen el enjambre. En esta lista se guarda la trayectoria que se ha formado dada la configuración de
cada individuo de la población. En R las listas son objetos que pueden contener objeto de distintos tipos.
En este caso es útil que el historial sea una lista formada de listas, éstas contienen tanto la matriz que
incluye la trayectoria que se ha formado dada la configuración del k-ésimo individuo del enjambre ası́
como también deberá incluir el valor que ha tomado la función objetivo dada esa configuración.
Como es de esperarse, en la primera iteración todos los individuos tienen el mejor valor objetivo que
han encontrado hasta ese momento, y es a partir de la segunda iteración en que el historial empezará a
tener modificaciones. A partir del historial se construye una última lista llamada mejorGlobal que sólo
contendrá dos elementos, la trayectoria que siguió el individuo con el valor mı́nimo en la función objetivo
de entre todas las configuraciones que han sido guardadas en el historial además del valor que se obtuvo.
En el caso de que hayan dos o más individuos que desprendan la misma energı́a y que esta sea la mı́nima
de la población, el individuo que ocupará la lista mejorGlobal será escogido de manera aleatoria.
CAPÍTULO 3. METODOLOGÍA 49
La velocidad se calcula de manera que indica cómo deberı́a acomodarse un aminoácido con respecto
al aminoácido antecesor, pero de forma que se asemeje más a la configuración que se ha guardado en
el historial y de acuerdo a la configuración del mejorGlobal dependiendo de los valores asignados a c1
y c2 y del valor obtenido al azar por r1 y r2 . Para almacenar la velocidad también se hace uso de listas,
aunque en este caso es una lista que contiene matrices.
Considerando que las posiciones ocupadas por los aminoácidos son vectores, cada matriz con las
velocidades tiene dos columnas. La velocidad inicial se construye haciendo una resta de la posición que
ocupa un aminoácido con respecto a su antecesor, es por esto que en cada renglón de las matrices que
almacenan la velocidad se verá alguno de los vectores (1, 0), (0, 1), (−1, 0) o (0, −1).
Para hacer esto se usa una función llamada conversion1234 puntos que recibe como argumento un
vector que contiene la configuración que ha tomado una partı́cula de la población inicial, si la columna
i del vector tiene asignado un 1, el renglón i de la matriz de velocidades que le corresponde tendrá el
valor de (1, 0), con un 1 en la primera columna y un 0 en la segunda, cuando se tiene asignado un 2, le
corresponderá el vector (0, 1), en caso de tener un valor de 3, le corresponderá el vector (−1, 0) mientras
que si tiene asignado un 4 el vector que le corresponderá será (0, −1).
Para calcular la velocidad de las partı́culas bajo este enfoque se usa la ecuación 2.4 considerando
que ahora pi, j (t), xi, j (t) y pg j (t) son puntos ubicados en R2 . En esta propuesta se hace la excepción de
que la velocidad no se calcula para el primer aminoácido, ya que en todos los casos éste siempre será
colocado en el origen, y por la forma en la cual se construyó la población inicial, la velocidad del segundo
aminoácido estará siempre orientada hacia la derecha (porque siempre se tiene que xi,1 = 1).
Una vez que se obtiene una matriz con los vectores que corresponden a la velocidad que tendrá cada
partı́cula se realiza una conversión a una nueva configuración a la que se le podrá calcular la energı́a.
Esta conversión se hizo mediante una función llamada normalizacion1234 y recibe como argumento una
matriz de dimensión (n − 1) × 2, donde n es el número de aminoácidos que conforman a la proteı́na. Esta
función se define de la siguiente manera:
x > y ∧ x ≥ −y,
1 si
2 si x ≤ y ∧ x > −y,
norm1234 (x, y) = (3.8)
x < y ∧ x ≤ −y,
3 si
4 si x ≥ y ∧ x < −y.
CAPÍTULO 3. METODOLOGÍA 50
De manera gráfica esta función se puede visualizar como se muestra en la figura 3.2.
En donde el color azul abarca la región de vectores de velocidad que indican que un aminoácido deberá
ir a la derecha de su aminoácido antecesor, mientras que la región en color verde indicará que debe ir por
arriba, cuando el color asignado es de la región en color rojo el aminoácido está ubicado a la izquierda
de su aminoácido antecesor y finalmente, si ocupa un lugar dentro de la región con color amarillo deberá
ser colocado por debajo de su aminoácido antecesor.
Debido a que la función norm1234 convierte a una matriz de velocidades en un vector en el que ya
es posible calcular la función objetivo, la actualización de la posición se usa construyendo de nuevo la
trayectoria que surge como consecuencia de la nueva configuración alcanzada.
Una vez que a cada partı́cula se le ha calculado la velocidad y actualizado su posición se procede a
evaluar la función objetivo en toda la población, para poder realizar la actualización en el historial y si es
necesario la actualización de la mejor configuración alcanzada a nivel global. El cambio en el historial
se lleva acabo solamente en el caso de que algún valor en la función objetivo sea menor estrictamente,
que el valor que se obtuvo en la trayectoria que ha sido almacenada para la partı́cula.
CAPÍTULO 3. METODOLOGÍA 51
Para la realización del algoritmo de colonia de hormigas las soluciones fueron vistas ya no como los
puntos en R2 que dan forma a la estructura como se hizo en optimización por enjambre de partı́culas,
sino que se toma en cuenta la transición de que el aminoácido k + 1 ocupe cierta posición con respecto a
la ubicación del aminoácido k dada la posición que este último tuvo a la vez con respecto al aminoácido
k − 1. Esto se puede ver como recorridos sobre un diagrama como el mostrado en la figura 3.3.
En este algoritmo al igual que en los otros algoritmos bioinspirados se redujo el espacio de búsqueda
en una dimensión al considerar que en todos las rutas construidas por cada individuo la primera variable
cumple que xi,1 = 1, para i = 1, 2, . . . , m.
Dado que en este problema no se dispone de manera clara la información heurı́stica, pues ésta deberı́a
de tener valores más altos para los casos en que una nueva componente que sea añadida agregue más
interacciones hidrofóbicas, pero también deberá disminuir su valor para las componentes que provoquen
empalmes, y estos datos a su vez dependen también de las configuraciones de los aminoácidos que ya
han sido colocados dentro de la malla, por lo que es necesario calcular esta información conforme se van
añadiendo nuevas componentes.
CAPÍTULO 3. METODOLOGÍA 52
Para abordar esto se pueden calcular las nuevas interacciones y empalmes que podrı́an agregarse a la
solución que está en construcción para cada posible componente, aunque se observó que esto, a pesar de
que no calcula todas las interacciones que tiene una solución, suele tener un alto costo computacional.
La información heurı́stica se creó mediante una función que devuelve una matriz de cuatro columnas y
un renglón. En un principio cada componente tiene un valor heurı́stico de 0.25, pero mediante un ciclo
for se verifica para cada componente si se puede crear una nueva interacción hidrofóbica con cada uno de
los posibles vecinos factibles del aminoácido que será acomodado dentro de la malla. En caso de que se
presente una nueva interacción el valor de la información heurı́stica de dicha componente incrementará
en un valor de 0.1 por cada posible nueva interacción.
Para calcular los empalmes de nueva cuenta se construye la ruta que ha seguido la hormiga y se verifica
que no hayan puntos repetidos usando la función unique. En caso de que se presente un empalme de dos
o más aminoácidos al agregar una componente a la solución parcial, la información heurı́stica de dicha
componente tendrá un valor de 0.0001, sin importar que la componente pueda crear alguna interacción
hidrofóbica y algún empalme al mismo tiempo, con el propósito de que la probabilidad de seleccionar
esa componente sea muy baja.
3.4.2. Poblaciones
En este algoritmo las poblaciones fueron almacenadas en matrices, cuya dimensión depende del núme-
ro de individuos y de la longitud de la secuencia de aminoácidos bajo análisis, cada renglón contiene a las
componentes que definen la conformación adoptada por cada individuo. A esta población se le calculará
la función objetivo y su tamaño se mantiene constante a lo largo del algoritmo.
3.4.3. Feromona
La feromona fue almacenada en una lista que contiene matrices, dado que el segundo aminoácido
siempre está colocado a la derecha del primer aminoácido, la primera matriz solamente tendrá un renglón
y cuatro columnas, pero esta matriz contiene el rastro de feromona que hay en las aristas que conectan
al tercer aminoácido con respecto al segundo. El resto de matrices serán todas de cuatro renglones por
cuatro columnas e indican el rastro de feromona que hay para que una nueva componente tome algún
valor entre 1, 2, 3 y 4 dado que la componente anterior a su vez tomó alguno de esos valores. Es por esto
que la k-ésima matriz de feromona hace referencia a la arista que conecta al aminoácido k + 1 con el
aminoácido k + 2.
CAPÍTULO 3. METODOLOGÍA 53
La evaporación se lleva a cabo mediante un ciclo for que recorre cada una de las matrices de feromona,
para realizar la evaporación en cada una de ellas, mientras que el aumento en el rastro de feromona se
hace mediante un ciclo for que recorre a cada una de las matrices con el rastro de feromona pero que
sólo aumenta el valor en el renglón y columna especı́ficos que recorrió la mejor hormiga. Para llevar a
cabo la actualización del rastro de feromona se utilizó la ecuación 2.8.
En el caso de este algoritmo el conjunto Supd contiene a todos los individuos de la población. Para
llevar a cabo el refuerzo del rastro de feromona se usó la siguiente función g(s), que es muy semejante a
la forma en que se
Q
g(s) = (3.9)
fob j + cota + 1
En donde la constante Q es positiva y en este trabajo se tomó como Q = 1. El término fob j contiene la
energı́a desplegada por la configuración construida hasta el momento. Por último la cota se calcula como
se indica en la ecuación 3.7. En la propuesta de este algoritmo que se utilizó se hace un depósito extra
con valor de ∆ únicamente en las componentes que forman parte de la mejor solución generada en cada
iteración.
Capı́tulo 4
Resultados
En este capı́tulo se presentan los resultados obtenidos al implementar los tres algoritmos bioinspirados
para el problema de plegado de proteı́nas bajo el modelo hidrofóbico-polar de Dill. Para ello se hace uso
de tablas en las que se muestran los resultados que se obtuvieron bajo los distintos parámetros pertene-
cientes a cada algoritmo para algunas secuencias cortas de aminoácidos, posteriormente se escogieron
los parámetros que obtuvieron un mejor desempeño para ejecutar los algoritmos bajo dichos parámetros
en secuencias de aminoácidos más largas.
Al considerar que los tres algoritmos bioinspirados que se utilizaron trabajan con conjuntos de pobla-
ciones se hizo uso de diagramas de caja y bigotes para mostrar algunos ejemplos de cómo evoluciona a
lo largo de las iteraciones cada algoritmo. Además se muestran algunas gráficas en las que se muestra la
evolución del mejor plegado que obtiene cada algoritmo para una secuencia corta de aminoácidos.
Para llevar a cabo las ejecuciones se tomaron en cuenta cinco secuencias de aminoácidos que son
conocidas dentro de otros trabajos que han abordado este problema y de las cuales se conocen los mejores
valores reportados en la literatura. Estas son:
S3 =P2 HP2 H2 P4 H2 P4 H2 P4 H2 .
54
CAPÍTULO 4. RESULTADOS 55
Para poner a prueba los tiempos de ejecución para las tres variantes de algoritmos genéticos se reali-
zaron doce ejecuciones, en dos grupos de seis, las primeras fueron ejecutadas sin fijar una semilla y las
otras seis al considerar la semilla 2, 022. En las tres variantes se consideró una población de 30 indivi-
duos, pues en [14] se menciona que es un tamaño de población adecuado , la secuencia bajo análisis fue
S1 para lo que se consideró una mutación de 1/19 con el proposito de mutar solamente una variable en
promedio por cada individuo, la probabilidad de recombinación escogida fue de 0.95 ya que, después de
las primeras ejecuciones de las tres variantes de algoritmos genéticos, las cuales no fueron registradas,
se obtuvieron mejores resultados al tener probabilidades altas de recombinación. Como criterio de paro
se tomó un total de 1, 500 generaciones. Para que las tres variantes compitieran en igualdad de condi-
ciones se consideró que el algoritmo genético con selección por torneo solamente tuviera una fase de
eliminación, mientras que la ruleta de selección universal estocástica tuviera 20 apuntadores. El tiempo
de ejecución de cada grupo y los resultados obtenidos se muestran en la tabla 4.1.
Variante Resultados con semilla Resultados sin semilla Tiempo (segundos) Promedio
Torneo -7,-7,-6,-7,-7,-7 -6,-7,-8,-9,-8,-7 365.98 -7.16666
Ruleta -7,-7,-8,-9,-8,-7 -7,-7,-8,-7,-9,-8 354.28 -7.666667
Baker -8,-8,-8,-7,-8,-8 -7 ,-7,-7,-8,- 7, -8 364.24 -7.583333
Se puede observar que los tiempos de ejecución fueron ligeramente menores en el algoritmo genético
con selección por ruleta y también pareciera que este algoritmo tiene el mejor desempeño, pero no hay
que olvidar que las otras dos variantes podrı́an tener mejores resultados si se considerara aumentar el
número de fases o modificar de número de apuntadores para aprovechar las ventajas que pueden ofrecer
estos parámetros.
Para poner a prueba los parámetros del algoritmo genético se consideró únicamente a la selección por
ruleta. Teóricamente se sabe que es mejor considerar una probabilidad de mutación de 1/L en donde
L representa la longitud de la cadena que contiene al genotipo de cada individuo. Para analizar este
parámetro se consideró de nuevo a la secuencia S1 y los resultados se muestran en la tabla 4.2.
CAPÍTULO 4. RESULTADOS 56
Para la secuencia S1 se sabe que el plegado que alcanza un mı́nimo reportado tiene una energı́a de
−9. Con base a esto y a los resultados obtenidos se puede estimar que se obtienen mejores resultados
al tener una probabilidad de mutación en el intervalo [ L1 , L2 ]. El siguiente parámetro bajo análisis fue
la probabilidad de recombinación. La secuencia considerada de nueva cuenta fue S1 . Los resultados se
muestran en la tabla 4.3.
A partir de los resultados mostrados en la tabla 4.3 se escogerá una probabilidad de 0.97. El siguiente
paso es ejecutar el algoritmo genético variando la penalización de los empalmes. El incrementar cada
vez más la penalización provocará que aquellas soluciones no factibles tengan cada vez menos probabi-
lidad de poder transmitir sus genes a las próximas generaciones. Las penalizaciones consideradas fueron
de 2, 5, 10 y 20. El primero de estos valores fue escogido para analizar el comportamiento cuando la
penalización es baja, mientras que el valor de 10 fue considerado porque está pensado como un valor
lo suficientemente grande para hacer que una solución que presente empalmes despliegue una energı́a
más grande que otras soluciones que no presenten muchas interacciones hidrofóbicas pero que sı́ son
factibles. Los valores de 5 y 20 fueron pensados al dividir y multiplicar por 2 el valor anterior.
CAPÍTULO 4. RESULTADOS 57
Es importante notar que a pesar de que en la tabla 4.4 al considerar una penalización baja no se
muestra, hubo ejecuciones del algoritmo en las que se obtenı́an valores de energı́a por debajo de la energı́a
que desprende el plegado con la mejor solución reportada en la literatura, sin embargo las soluciones
que tenı́an menor energı́a resultaban ser no factibles por presentar empalmes. Con base a los resultados
observados se considera una penalización de 10, pero es importante que en las secuencias con mayor
número de aminoácidos se consideren penalizaciones más grandes para evitar estancarse en soluciones
que además sean no factibles.
Otro parámetro que puede variar es el número de individuos. Los cambios en este parámetro como
es de esperar, pueden afectar a la convergencia del algoritmo, además de que el tamaño de la población
influye en la construcción de la ruleta, ya que es más probable que haya un estancamiento cuando la
población consta de menos individuos. Pero al incrementar el tamaño de la población afectará el tiempo
de ejecución del algoritmo. Los resultados obtenidos se muestran en la tabla 4.5.
probabilidad de recombinación no hay una tendencia clara sobre qué valor usar, pero se considerará una
probabilidad de 0.97. El tamaño de la población incrementará conforme se consideren secuencias más
grandes de aminoácidos al igual que la penalización. Los resultados para las otras secuencias bajo la
elección de parámetros escogidos se muestran en la tabla 4.6.
Tabla 4.7: Resultados de selección universal estocástica para las cinco secuencias.
Como se puede observar en la tabla 4.7, se obtienen mejores resultados en promedio al considerar un
mayor número de apuntadores.
CAPÍTULO 4. RESULTADOS 59
Con base en lo obtenido en la tabla 4.8 el incrementar el número de fases del torneo provoca que en
promedio se obtengan resultados que no son mejores que los obtenidos al realizar torneos con una sola
fase. Para visualizar cómo mejora la energı́a que se obtiene con este algoritmo se muestra la evolución
al considerar la semilla 2,022 para el algoritmo genético con selección por ruleta y al considerar doce
repeticiones con probabilidad de mutación de 1/19 y probabilidad de selección de 0.97. La evolución
para tres de las doce repeticiones se muestra en la figura 4.1. En esta figura se puede apreciar que el
algoritmo siempre mejora, esto se debe a la estrategia elitista que se considera, y aunque en la mayorı́a
de las ejecuciones el algoritmo se estancó antes de las 500 generaciones hay casos en los que aún después
de 2, 000 generaciones el algoritmo puede encontrar valores de energı́a más bajos.
Otro aspecto que es de interés, es analizar la convergencia de la población a lo largo del algoritmo,
para esto se considera la ejecución en la que se logró alcanzar el plegado con el valor mı́nimo de energı́a
reportado para la secuencia S1 , considerando selección por ruleta. El diagrama de caja se muestra en la
figura 4.2; en esta figura se puede apreciar que el algoritmo no suele converger, a pesar de los métodos de
recombinación y mutación propuestos, se suelen conservar individuos que presentan muchos empalmes
lo que provoca que el diagrama de caja y bigotes no tienda a reducir su tamaño. Si bien no se muestra,
es evidente que al implementar selección por torneo con un gran número de fases el diagrama tenderı́a
a reducir el tamaño de los brazos debido a que el mejor individuo tendrı́a una mayor probabilidad de
recombinar su material genético.
CAPÍTULO 4. RESULTADOS 60
Como último método para analizar el comportamiento de este algoritmo, en las figuras 4.3 y 4.4 se
muestra la evolución del plegado para la secuencia S1 , en el caso de este algoritmo, se puede ver cla-
ramente en la figura 4.3 que en las primeras iteraciones el algoritmo salta de una estructura a otra muy
diferente, y aunque no se muestra, en las primeras iteraciones los mejores plegados presentan un gran
CAPÍTULO 4. RESULTADOS 61
número de empalmes por lo que es muy difı́cil representar las interacciones, sin embargo, conforme el
algoritmo encuentra un plegado en donde la energı́a es negativa, cada vez es más evidente que compar-
ten cierta estructura, o que hay partes del plegado que se conservan en los plegados que surgen como
consecuencia de la evolución. Los cambios que favorecen que el plegado despliegue menos energı́a en
iteraciones más avanzadas son provocados por la mutación e incluso no se puede descartar que la recom-
binación influya.
En la figura 4.3 se puede notar en las primeras dos estructuras, contando de arriba hacia abajo y
de izquierda a derecha, que tienen una estructura muy similar, sobre todo en la forma en que están
acomodados los últimos aminoácidos de la secuencia, además, debido a que son las mejores estructuras
encontradas en las iteraciones 8 y 9 es evidente que el operador que llevo a crear una nueva interacción
hidrofóbica fue una mutación en la décima variable. Sin embargo, entre la segunda, la tercera y la cuarta
estructuras no es posible notar semejanza entre ellas, de ello se puede suponer que dichas estructuras
fueron obtenidas al recombinar estructuras que podrı́an tener valores mas altos de energı́a pero que al
recombinar su material genético llevaron a estructuras que resultaron ser mejores que ellas. Entre las
CAPÍTULO 4. RESULTADOS 62
estructuras quinta y sexta es muy notorio que una llegó a la otra al mutar la posición de los últimos dos
aminoácidos.
Al analizar las dos estructuras de la figura 4.4 se puede ver que sólo los primeros tres y los últimos siete
aminoácidos de la secuencia S1 ocupan exactamente la misma posición en R2 en ambas estructuras. La
configuración que forman los aminoácidos que están en la esquina inferior izquierda de ambas estructuras
CAPÍTULO 4. RESULTADOS 63
aunque no ocupan los mismos puntos en R2 , sı́ son configuraciones semejantes, por lo que se puede
inferir que el paso de una estructura a otra fue ocasionado por una serie de mutaciones en el mejor
plegado que habı́a hasta la iteración 94 o porque en algún momento la recombinación ayudó a llegar a
la estructura óptima, además, el hecho de que los últimos aminoácidos ocupen exactamente los mismos
puntos en R2 puede deberse a que la población ha convergido en esas variables.
En estructuras más grandes puede ser muy difı́cil notar a simple vista qué operador ayudó a disminuir
la energı́a del mejor plegado encontrado a lo largo de las generaciones sin embargo por la manera en
que funciona el algoritmo genético los cambios en las mejores estructuras a lo largo de las iteraciones se
puede llevar a cabo por los mismos motivos que en las secuencias más cortas.
Para la implementación de enjambre por partı́culas, solamente pueden variar el número de individuos
que forman el enjambre, los valores de c1 y c2 y por último el factor de inercia w. De nueva cuenta se
realizaron doce ejecuciones y para cada una de ellas se muestra el valor mı́nimo que alcanza el algoritmo
y se calculó el promedio para considerar bajo que elección de valores para los parámetros se obtuvo un
mejor rendimiento. En primera instancia se consideró a la secuencia S1 y en todas las distintas variaciones
se consideró plantar la semilla 2, 022. Los resultados se muestran en la tabla 4.9.
CAPÍTULO 4. RESULTADOS 64
En todas las repeticiones se realizaron 1, 500 iteraciones, para visualizar el estancamiento de este
algoritmo se muestran las gráficas de tres de las doce repeticiones que se obtuvieron al considerar una
población con 40 partı́culas, con los parámetros c1 = 0.7, c2 = 0.1 y w = 0.5. Y como se puede ver en
las gráficas de la figura 4.5 el algoritmo suele estancarse antes de las 1, 500 generaciones.
Se utilizó un diagrama de caja y bigotes para visualizar la convergencia del algoritmo. Los resultados
se muestran en la figura 4.6. Y como se puede observar, el algoritmo de optimización por enjambre de
partı́culas no presenta convergencia en toda la población de partı́culas. Esto se debe a que se consideró
un valor más grande para c1 con respecto a c2 .
Una vez que se han escogido los parámetros, se pondrán a prueba con el resto de secuencias que
están bajo análisis para poder hacer una comparación con los otros dos algoritmos bioinspirados. Los
resultados bajo los parámetros w = 0.5, c1 = 0.7 y c2 = 0.1 usando la semilla 2,022 se muestran en la
tabla 4.10.
A partir de la tabla 4.10 se puede notar que este algoritmo no logra tener un buen rendimiento, además
de que éste disminuye cada vez que las secuencias de aminoácidos son más grandes, sin embargo en
CAPÍTULO 4. RESULTADOS 65
algunas de las secuencias existen repeticiones en las que se logró obtener un plegado que tiene una
energı́a que es muy cercana al mejor plegado reportado en la literatura.
CAPÍTULO 4. RESULTADOS 66
Figura 4.6: Diagrama de caja de optimización por enjambre de partı́culas considerando c1 = 0.7,c2 = 0.1
y w = 0.5 en la primera repetición
Tabla 4.10: Resultados de optimización por enjambre de partı́culas para las cinco secuencias.
Otra forma de poder distinguir la manera en que cambian las mejores soluciones encontradas por
un algoritmo con respecto a otros es analizando cómo cambia la gráfica de los plegados que se logran
obtener. Para ilustrarlo se consideró a la secuencia S1 , fijando la semilla 2, 022 y bajo los parámetros
w = 0.5, c1 = 0.8 y c2 = 0.2 .
CAPÍTULO 4. RESULTADOS 67
En las figuras 4.7 y 4.8 se puede apreciar que este algoritmo presenta soluciones en las que una
variable tiende a repetirse dos o más veces en la mayorı́a de las ocasiones. Esto afecta su rendimiento
ya que como se verá más adelante, bajo el modelo de Dill, los plegados con menores valores de energı́a
tienden a formar estructuras más compactas. En la figura 4.7 se muestra el mejor plegado encontrado
por este algoritmo para la secuencia S4 . Cómo se puede apreciar, las variables veintitrés, veinticuatro,
veinticinco y veintiséis toman el valor de 3. Y esto sumado a que las siguiente variables no toman el
valor de 1 sino hasta después de haber expandido el plegado, se tiene que los últimos aminoácidos de la
secuencia estén muy desplazados hacia la izquierda
Por otra parte, para la secuencia S1 en la figura 4.8, se puede ver que algunas variables consecutivas
tienden a compartir el mismo valor, en este caso son las variables cuatro, cinco, seis y siete, ya que todas
suelen tomar el valor de 3 y esto se presenta en las últimas cinco estructuras. En este algoritmo, al haber
considerado el valor de c1 = 0.7 y c2 = 0.1 es muy probable que las mejores posiciones encontradas se
deban gracias a la exploración de algún miembro del enjambre en particular.
CAPÍTULO 4. RESULTADOS 68
Para la implementación de optimización por colonia de hormigas los parámetros que pueden variar
son α, β , el número de hormigas, y el valor de ∆. De nueva cuenta se valuaron los parámetros para la
secuencia S1 y en todos los casos se usó la semilla 2, 022. De acuerdo a los resultados observados en la
CAPÍTULO 4. RESULTADOS 69
tabla 4.11 los valores de los parámetros en los que se observó que hay un mejor desempeño para este
algoritmo fueron al considerar α = 1, β = 3, ρ = 0.01 y ∆ = 0.002 o ∆ = 0.1.
Con el propósito de ilustrar cómo evoluciona la energı́a desplegada por el plegado con mı́nima energı́a
que es encontrada por este algoritmo en la figura 4.9 se muestra la evolución para tres repeticiones
del algoritmo en una instancia en la que se consideró hacer doce repeticiones con poblaciones de 40
individuos y mil generaciones. Los parámetros toman los valores α = 2, β = 4, ρ = 0.001 y ∆ = 0.0002.
En estas gráficas se puede apreciar que el algoritmo por lo general converge rápidamente además de que
en las últimas generaciones los resultados no suelen ser mejores que en las primeras. Por ello se decidió
acotar cada una de las repeticiones a un total de 200 generaciones, para las secuencias más largas de
aminoácidos.
CAPÍTULO 4. RESULTADOS 70
Además, en la figura 4.10 se muestra un diagrama de caja para la cuarta repetición con los mismos
parámetros mencionados anteriormente, en donde se puede apreciar que el algoritmo empieza a conver-
ger antes de la iteración número 50. El motivo de la convergencia puede deberse a la forma en que se
construyó la información heurı́stica, pues ésta podrı́a favorecer las interacciones hidrofóbicas entre los
primeros aminoácidos hidrofóbicos lo que restringe el espacio de búsqueda, y lo que a lo largo de las
generaciones puede provocar que la matriz de feromona sea sesgada hacia ciertas variables.
Figura 4.10: Diagrama de caja para optimización por colonia de hormigas considerando α = 2, β = 4,
ρ = 0.001 y ∆ = 0.0002
Con el fin de ilustrar como evoluciona el plegado encontrado por la colonia se muestran los resultados
de la tercera repetición, considerando los parámetros α = 1, β = 2, ρ = 0.01 y ∆ = 0.002 en donde se
logró encontrar el mejor valor reportado en la literatura. En este algoritmo bioinspirado no es posible
encontrar semejanza entre los distintos plegados obtenidos, pero se observó que el rastro de feromona
que une a una variable con la variable que la “anula”tiende a ser evaporado con mayor rapidez, por lo
que la información heurı́stica puede tener mayor relevancia conforme transcurren las generaciones.
CAPÍTULO 4. RESULTADOS 72
Por último se muestran por separado los mejores plegados encontrados para las cinco secuencias con-
sideradas. A partir de ellos se pueden realizar algunas observaciones importantes: se logró encontrar el
plegado con el valor mı́nimo reportado para las secuencias S1 , S2 y S3 , los cuales se muestran en las
figuras, 4.12, 4.13 y 4.14 y en donde se puede ver que los aminoácidos hidrofóbicos tienden a encon-
trarse rodeados por aminoácidos polares, dicho de otra forma, las interacciones hidrofóbicas tienen a
permanecer dentro de la estructura definida por el plegado.
Si bien en las estructuras de las secuencias S4 y S5 no son las que desprenden el mejor valor reportado
en otros trabajos es posible notar que en las regiones de la estructura en donde se presenta el mayor
número de interacciones hidrofóbicas comparten la tendencia a conservar a los aminoácidos hidrofóbicos
en el núcleo de la estructura.
Figura 4.15: Plegado con energı́a de −18 para la secuencia S4 (la cual tiene un mejor valor reportado de
−21)
CAPÍTULO 4. RESULTADOS 77
Figura 4.16: Plegado con energı́a de −43 para la secuencia S5 (con un mejor valor reportado de −53)
Conclusiones
El problema de plegado de proteı́nas bajo el enfoque propuesto por Dill tiene un espacio de búsqueda
de 4n−1 , pero este espacio tiene muchas soluciones que no son factibles, este inconveniente fue abordado
con éxito al implementar los operadores de recombinación y mutación propuestos en algoritmos genéti-
cos, esto debido a que al implementar la variante más simple de este algoritmo se encontraron soluciones
que no son mejores que las encontradas con los dos operadores propuestos. El algoritmo genético tuvo
un mejor desempeño al implementar selección por ruleta, sin embargo el rendimiento de las otras dos
variantes fue competitivo al considerar los parámetros adecuados. Con los operadores propuestos de cru-
za y mutación el algoritmo no suele converger a la mejor solución reportada en secuencias grandes de
aminoácidos, pero sı́ a soluciones cercanas.
Lo operadores de mutación y recombinación propuestos tenı́an el propósito de evitar los empalmes de
manera consecutiva, si se modificaran estos operadores para evitar cualquier posibilidad de empalme el
algoritmo genético probablemente tenga mejores resultados, pero el tiempo de ejecución incrementarı́a
al tener que verificar que no haya empalmes, y si además los operadores buscaran crear más interacc-
ciones hidrofóbicas el tiempo de ejecución serı́a aún más alto, por último al considerar estas hipotéticas
alternativas no se garantiza que no haya un estancamiento en un óptimo local.
Por otra parte en la implementación de optimización por enjambre de partı́culas, al aplicar el operador
de velocidad sobre cada variable del vector perteneciente al conjunto {1, 2, 3, 4}n−1 , se obtenı́an plegados
que formaban una lı́nea recta sin importar que se realizaran redondeo o módulo con el fin de que los
valores obtenidos con los operadores de velocidad estuvieran dentro del espacio de búsqueda, pero al
aplicar el operador de velocidad sobre los puntos en R2 que forman el plegado, se logró que el algoritmo
encontrara soluciones factibles, que se acercan a las mejores soluciones reportadas en otros algoritmos en
secuencias que consideran pocos aminoácidos, pero que conforme crecen las secuencias las soluciones
encontradas con este algoritmo no son tan buenas, pues el algoritmo tiende a expandir los plegados, lo
cual en este problema no es bueno ya que se ve cierta tendencia a que el plegado óptimo no abarque
78
CAPÍTULO 4. RESULTADOS 79
demasiado espacio. Pero los resultados no son tan malos si se toma en consideración que este algoritmo
está diseñado para resolver problemas de optimización continua.
Al considerar la implementación de optimización por colonia de hormigas se logró alcanzar valores
con energı́a muy baja en pocas iteraciones, sin embargo debido a que la información heurı́stica se tiene
que calcular conforme se van construyendo las soluciones este algoritmo tiende a estancarse en pocas
iteraciones. Además se observó que la matriz de feromona tiende a tener entradas con concentraciones
muy altas de feromona lo que contribuye a que la población converja muy rápido.
Se pudo comprobar que el modelo propuesto por Dill va de la mano con la hipótesis de Anfinsen al
considerar que el plegado óptimo es aquel que tiene menor energı́a, además de que las estructuras idóneas
tienden a mantener a los aminoácidos hidrofóbicos dentro de la estructura.
Trabajos a futuro
Para mejorar el rendimiento de los algoritmos genéticos es posible hibridizarlos, si se combina con un
algoritmo de búsqueda local, la cual podrı́a estar enfocada en evitar que haya regiones de la estructura
con empalme. Además se podrı́a diseñar la mutación de forma que evite cualquier tipo de empalme o
tratando de generar interacciones hidrofóbicas.
En el caso de optimización por enjambre de partı́culas existe la posibilidad de ir actualizando la
posición de los aminoácidos que ocupan posiciones posteriores dentro de la secuencia de aminoácidos
al mismo tiempo en que se calcula la velocidad de la componente actual. O existe la alternativa de usar
la velocidad para modificar únicamente cierta región del plegado de manera que se asemeje más a esa
región pero considerando la mejor solución encontrada por todo el enjambre o que se apegue más a la
mejor solución encontrada por la partı́cula.
Para mejorar el desempeño de optimización por colonia de hormigas es posible usar el mismo enfoque
pero usando alguna de las demás variantes, ya sea max-min ant system o usando una regla de construcción
pseudo aleatoria. Además se podrı́a evitar la convergencia prematura al considerar la implementación de
búsqueda local.
Bibliografı́a
[1] A NFINSEN C.B, The kinetics of formation of native ribonuclease during oxidation of the reduced
polypeptide chain, Procedings of the National Academy of Sciences. 1961.
[3] C ARDELL Á L. & H ERN ÁNDEZ R., Bioquı́mica Médica, Editorial Ciencias Médicas. 1999.
[4] D ILL K. A. & L AU K.F., A lattice statistical mechanics model of the conformational and
sequence spaces of proteins , Macromolecules, 1989.
[5] D ULAL J. N, DAS S. & S IL J., A Metaheuristic Approach to Protein Structure Prediction ,
Springer, 2018.
[8] G OLDBERG D. E. , Genetic algorithms in Search, Optimization and Machine Learning , Addison-
Wesley Publishing Company, 1989.
[9] H OWELLS J. R. & B UCKIUS R. O., Principios de termodinámica para ingenierı́a., McGraw
Hill, 1990.
[11] K URI A. & G ALAVIZ J. , Algoritmos genéticos , Fondo de Cultura Económica. 2002.
80
BIBLIOGRAFÍA 81
[13] PARSOPOULUS & V RAHATIS M. N., Particle swarm optimization and intelligence: advances
and applications , IGI Global, 2010.
[14] R EEVES C. & ROWE J. E. , Genetic algorithms : principles and perspectives : a guide to GA
theory , Springer, 2003.
[16] S UN J., L AI C.H. & W U X. J. , Particle swarm optimisation: classical and quantum perspec-
tives , CRC press, 2004