PMX (programación evolutiva)

De Wikipedia, la enciclopedia libre

PMX (Partially Mapped Crossover) o cruce por emparejamiento parcial es un operador de cruce utilizado en Computación evolutiva. Consiste en elegir un subsegmento de uno de los progenitores y cruzarlos preservando el orden y la posición de la mayor cantidad de genes posible del otro manteniendo la coherencia.

Algoritmo[editar]

  1. Elegir dos puntos de corte aleatorios
  2. Copiar intercambiadas en los hijos las subcadenas comprendidas entre dos puntos de corte anteriores
  3. Para los valores que faltan en los hijos, se copian los valores de los padres de la siguiente forma:
    1. Si el valor a copiar no está en la subcadena, se copia igual
    2. En caso contrario, se copia por el valor que tenga dicha subcadena en el otro padre