Cómo ejecutar cruces en algoritmos genéticos con cromosomas codificados por gráficos

¿Podría por favor ampliar cómo se ve su cromosoma?

¿Está utilizando 1s y 0s como medio para codificar la existencia / ausencia de enlaces entre los nodos del gráfico?

Podrías probar un enfoque muy simple.

Por ejemplo, el Padre 1 (suponiendo que no hay auto-conexiones) representa conexiones entre los nodos 0–2, 0–3, 1–2, 1–3, 1–4, 3–4. Este es un ejemplo realmente tosco, verifique si hay algún error.

Padre 1: 0 1 1 0 1 1 1 0 0 1

Padre 2: 1 0 0 1 0 1 0 1 1 0

De modo que cuando apliquemos un cruce de dos puntos entre los puntos finales 3 a 5 obtendríamos (nuevamente, verifique que he hecho esto correctamente)

Niño 1: 0 1 0 1 0 1 1 0 0 1

Niño 2: 1 0 1 0 1 1 0 1 1 0

Puede ser que el gráfico resultante no satisfaga ciertos requisitos de conectividad que pueda tener, o incluso puede estar completamente desconectado. En este caso, puede ser deseable ‘reparar’ el cromosoma agregando enlaces faltantes en puntos elegidos al azar.

More Interesting

¿Cómo se usa la programación dinámica para resolver la pregunta Problema TRT (Trato para las vacas) en Sphere Online Judge (SPOJ)?

¿Cómo se comparten de forma segura las claves de los algoritmos de cifrado y descifrado entre el emisor y el receptor sin ser interrumpidos por intrusos?

Se dan N nodos idénticos. ¿Cuántos árboles binarios son posibles?

¿Cuál es el número total de rompecabezas de sudoku posibles?

¿Qué temas básicos hay que saber en C ++ antes de aprender estructuras de datos y algoritmos?

¿Cómo se puede averiguar el número de veces que se repite una palabra en una cadena usando Java?

¿Cuál crees que es el algoritmo de aprendizaje automático más inteligente?

Cómo hacer un proyecto de chatbot

¿Deep Blue fue un algoritmo o una IA o ambos?

¿Cuál es la estructura de algoritmo / datos utilizada por Lucene para calcular el término frecuencia de los documentos?

¿Cuál es el mejor algoritmo para encontrar el número más pequeño (mínimo 40 dígitos) cuyo último dígito se mueve al frente y es nueve veces el número original?

¿Tenemos que implementar estructuras de datos?

¿Cuáles son los algoritmos necesarios para resolver todos los problemas (usando C ++) en cualquier concurso de codificación competitivo?

Quiero escribir un código que reproduzca 10 segundos de audio, luego pause durante 15 segundos y luego reproduzca los siguientes 10 segundos, etc. ¿Cómo lo haría?

Dados N cajas grandes y M cajas pequeñas de diferentes tamaños, ¿cómo elegir una caja grande óptima para empacar todas las cajas más pequeñas?