Algoritmos genéticos: como fazer crossover em problemas de "subconjunto"?

Eu tenho um problema que estou tentando resolver com algoritmos genéticos. O problema é selecionar um subconjunto (digamos 4) de 100 números inteiros (esses números inteiros são apenas IDs que representam outra coisa). A ordem não importa, a solução para o problema é um conjunto de números inteiros e não uma lista ordenada. Tenho uma boa função de condicionamento físico, mas estou tendo problemas com a função de crossover.

Quero poder acasalar os dois cromossomos a seguir:

[1 2 3 4] e [3 4 5 6] em algo útil. Claramente, não posso usar a função típica de crossover porque poderia acabar com duplicatas em meus filhos, o que representaria soluções inválidas. Qual é o melhor método de cruzamento neste caso.

questionAnswers(5)

yourAnswerToTheQuestion