Programación de expresiones genéticas

Programación de expresiones genéticas

La programación de expresiones genéticas se inspira en la replicación y expresión de la molécula de ADN, especialmente 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 errores de adaptación), 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 sobre una representación sub-simbó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. Genes) de la evolución.

Una solución candidata está representada por una cadena lineal de símbolos llamada notación de Karva o expresión K, donde cada símbolo corresponde a una función o nodo terminal. La representación lineal se asigna a un árbol de expresión de forma extendida. Una expresión de 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ímbolos terminales, 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 de la pprogramación de expresiones genéticas 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 la n representa la aridad máxima de los nodos funcionales en la expresión (como 2 si el se utilizan funciones aritméticas *; /; -; +).

El operador de mutación de la pprogramación de expresiones genéticas sustituye las expresiones a lo largo del genoma, aunque debe seguir reglas genéticas como la función y los nodos terminales están mutados en la cabeza de los genes, mientras que solo los nodos terminales se sustituyen en la cola de los genes.

El cruzamiento ocurre entre dos padres seleccionados de la población y puede ocurrir sobre la base de un cruce de un punto, un cruce de dos puntos o un enfoque basado en genes donde los genes se seleccionan entre los padres con una probabilidad uniforme.

Se puede utilizar un operador de inversión con baja probabilidad que invierta 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 en varios modos diferentes, que incluyen: duplicar una pequeña secuencia (1-3) de algún lugar en un gen en la cabeza, pequeñas secuencias 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 expresiones genéticas, uno ? puede incluirse en el conjunto terminal y representa una constante numérica de un vector que ha evolucionado 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 relacionadas 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 con genes.

Aquí está el algoritmo de programación de expresión génica:

programación de expresión genética