Individuos, cromosomas y genes: Representación de soluciones evolutivas en algoritmos genéticos

Una vez que entiendes qué es la computación evolutiva, la siguiente pregunta es inevitable: ¿cómo “vive” una solución dentro de un algoritmo?
La respuesta no es trivial, porque en computación evolutiva una solución no es solo un dato, es un individuo. Tiene estructura, componentes internos y una forma específica de interactuar con el entorno del problema.
Comprender cómo se representan las soluciones es clave para el éxito o fracaso de cualquier algoritmo evolutivo. Un mal diseño en esta etapa puede hacer que incluso el mejor algoritmo converja a resultados mediocres.
Este artículo explica, de forma clara y rigurosa, qué son los individuos, los cromosomas y los genes, y por qué su representación es una decisión de ingeniería, no un detalle técnico menor.
¿Qué es un individuo en computación evolutiva?
En computación evolutiva, un individuo es una solución candidata a un problema.
No es todavía la solución óptima. Es una posibilidad entre muchas, que compite, se evalúa y evoluciona dentro de una población.
Desde un punto de vista formal:
Un individuo es una instancia concreta de una solución codificada, susceptible de evaluación, selección y variación.
Cada individuo existe dentro de un entorno competitivo, donde su “supervivencia” depende de qué tan bien resuelve el problema planteado.
Cromosoma: la estructura interna del individuo
El cromosoma es la representación completa del individuo. Es la forma en que el algoritmo “ve” la solución. En términos computacionales, puede ser:
- Una cadena de bits
- Un vector de números reales
- Una permutación
- Una estructura más compleja (árboles, grafos)
Aquí aparece un principio fundamental:
El algoritmo evolutivo no trabaja sobre el problema real, sino sobre su representación.
Por eso, la representación de soluciones evolutivas es una de las decisiones más importantes del diseño.
Genes: las unidades mínimas de información
Un gen es cada componente individual del cromosoma. Si el cromosoma es una solución completa, los genes son las piezas que la componen.
Ejemplos:
- En una cadena binaria, cada bit es un gen
- En un vector numérico, cada valor es un gen
- En una ruta entre ciudades, cada ciudad es un gen
Los genes son los elementos que se modifican durante la evolución, ya sea por mutación o recombinación.
Ejemplo 1
Imagina un problema clásico: Encontrar la ruta más corta entre varias ciudades (TSP).
- Individuo: una ruta completa
- Cromosoma: la lista ordenada de ciudades
- Genes: cada ciudad dentro de la lista
Ejemplo 2
[A, D, C, B, E]- Cambiar el orden de dos ciudades implica cambiar genes.
- Comparar dos rutas implica evaluar individuos completos.
Este ejemplo muestra algo clave: la estructura del cromosoma debe respetar la lógica del problema.
Tipos de representación evolutiva más usados
No existe una representación universal. Cada problema exige una estructura adecuada.
- Representación binaria
Fue la primera históricamente.
- Cromosoma: cadena de 0 y 1
- Fácil de implementar
- Adecuada para problemas discretos
📌 Usada ampliamente en los primeros algoritmos genéticos (Holland).
Limitación: no siempre es intuitiva para problemas reales.
- Representación real (numérica)
- Cromosoma: vector de números reales
- Ideal para optimización continua
- Muy usada en ingeniería y control
Ejemplo:
[2.5, 0.87, -1.3]Permite mayor precisión y evita conversiones innecesarias.
- Representación por permutaciones
- El orden importa
- No se repiten elementos
- Fundamental en problemas de ruteo y planificación
Ejemplos:
- TSP
- Secuenciación de tareas
- Horarios
Aquí, una mutación mal diseñada puede generar soluciones inválidas, lo que refuerza la importancia de un buen diseño.
- Representaciones estructurales (avanzadas)
En problemas más complejos:
- Árboles (programación genética)
- Grafos
- Estructuras híbridas
Estas representaciones permiten evolucionar programas completos, no solo parámetros.
¿Por qué la representación define el éxito del algoritmo?
Un principio ampliamente aceptado en la literatura es:
Una mala representación puede hacer irresoluble un problema bien planteado.
La representación de soluciones evolutivas determina:
- Qué tan fácil es explorar el espacio de búsqueda
- Qué tan eficiente es la variación
- Qué tan rápido converge el algoritmo.
Estudios comparativos (Springer, IEEE) muestran que dos algoritmos idénticos, con distinta representación, pueden producir resultados radicalmente diferentes.
Relación con la función de evaluación (fitness)
La representación no existe aislada.
Debe ser coherente con la función de evaluación, que mide la calidad del individuo.
Si el cromosoma no refleja correctamente el problema real:
- La evaluación será engañosa
- La evolución avanzará en la dirección equivocada
👉 Por eso, representación y fitness se diseñan juntas, no por separado.
Enfoque de ingeniería: no es una decisión técnica menor
Desde la ingeniería de sistemas, la representación es:
- Un modelo del sistema real
- Una abstracción con supuestos
- Un compromiso entre precisión y eficiencia
Diseñar una buena representación implica:
- Entender el dominio del problema
- Identificar restricciones
- Prever cómo evolucionarán las soluciones
Este es uno de los puntos donde el criterio del ingeniero es más importante que el algoritmo en sí.
La literatura en computación evolutiva coincide en que la representación influye más en el rendimiento que la elección específica del operador evolutivo.
Esta afirmación aparece de forma recurrente en textos clásicos como Introduction to Evolutionary Computing (Eiben & Smith).
Resumen final
En computación evolutiva:
- Un individuo es una solución candidata
- El cromosoma es su representación completa
- Los genes son sus componentes básicos
La representación de soluciones evolutivas es una decisión central de diseño que condiciona la eficacia del algoritmo, la calidad de los resultados y la velocidad de convergencia.
No es un detalle técnico: es ingeniería aplicada.
Ahora que sabes cómo se representa una solución, el siguiente paso es entender por qué una sola solución no basta.
0 Comentarios