Contenido
PalancaProgramación de expresión génica
La programación de la expresión génica se inspira en la replicación y expresión de la molécula de ADN, particularmente a nivel genético. La expresión de un gen implica la transcripción de su ADN en ARN que a su vez forma aminoácidos que constituyen proteínas en el fenotipo de un organismo. Los componentes básicos del ADN están sujetos a mecanismos de variación (mutaciones, como desajustes), así como a la recombinación durante la reproducción sexual.
La programación de la expresión génica utiliza un genoma lineal como base para operadores genéticos como mutación, recombinación, inversión y transposición. El genoma está formado por cromosomas y cada cromosoma está formado por genes que se traducen en un árbol de expresión para resolver un problema dado. Una definición robusta de genes significa que los operadores genéticos se pueden aplicar a la representación de subsímbolos sin tener en cuenta la estructura de la expresión génica resultante, asegurando la separación de genotipo y fenotipo.
El objetivo del algoritmo de programación de expresión génica es mejorar el ajuste adaptativo de un programa expresado en el contexto de una función de costo específica del problema. Esto se logra mediante el uso de un proceso evolutivo que opera en una representación subsimbólica de soluciones candidatas utilizando sustitutos para procesos (descendencia con modificación) y mecanismos (recombinación genética, mutación, inversión, transposición y expresión de genes) de evolución.
Una solución candidata se representa mediante una cadena lineal de símbolos llamada notación Karva o expresión K, donde cada símbolo corresponde a una función terminal o nodo. La representación lineal se asigna a un árbol de expresión de forma ampliada. Una expresión K tiene una longitud fija e incluye una o más subexpresiones (genes), que también se definen con una longitud fija.
Un gen se compone de dos secciones, una cabeza que puede contener cualquier función o símbolo terminal y una sección de cola que solo puede contener símbolos terminales. Cada gen siempre dará como resultado un árbol de expresión sintácticamente correcto, donde la parte de la cola del gen proporciona un amortiguador genético que asegura el cierre de la expresión.
La longitud de un cromosoma desde la pprogramación de la expresión génica se define por el número de genes, donde la longitud de un gen se define por h + t. La h es un parámetro definido por el usuario (como 10) y t se define como t = h(n-1)+1, donde n representa la aridad máxima de nodos funcionales en la expresión (como 2 si la aritmética se utilizan las funciones *; /; -; +).
El operador de mutación de pprogramación de la expresión génica sustituye expresiones a lo largo del genoma, aunque debe seguir reglas genéticas como la función y los nodos terminales se mutan en la cabeza de los genes, mientras que solo los nodos terminales se sustituyen en la cola de los genes.
El cruce ocurre entre dos padres seleccionados de la población y puede ocurrir en base a un cruce de un punto, un cruce de dos puntos o un enfoque basado en genes donde los genes se seleccionan de los padres con probabilidad uniforme.
Se puede usar un operador de inversión con baja probabilidad que invierte una pequeña secuencia de símbolos (1-3) en una sección de un gen (cola o cabeza). Un operador de transposición se puede usar con varios modos diferentes, que incluyen: duplicar una secuencia pequeña (1-3) de algún lugar en un gen en la cabeza, secuencias pequeñas en un gen en la raíz del gen y mover un gen en el cromosoma En el caso de transposiciones intragénicas, la secuencia en la cabeza del gen se desplaza hacia abajo para acomodar la secuencia copiada y la longitud de la cabeza se trunca para mantener tamaños de genes consistentes.
En el pprogramación de expresión génica, uno ? se puede incluir en el conjunto terminal y representa una constante numérica de un vector que evolucionó al final del genoma. Las constantes se leen desde el final del genoma y reemplazan el ? cuando se crea el árbol de expresión (en el primer orden de ancho).
Se pueden usar varias subexpresiones interrelacionadas en problemas difíciles cuando un solo gen no es suficiente para resolver el problema. Las subexpresiones se vinculan mediante expresiones de enlace que son nodos de función que se definen estáticamente (como una conjunción) o evolucionan en el genoma junto con los genes.
Aquí está el algoritmo de programación de expresión génica:
