>>487
こんな感じで遺伝子を変換してはどうでしょう。

'言語はVBです
'グループは1〜mの整数で表してます。
Dim g(1 To n) '遺伝子
Dim t(1 To m) '変換テーブル

j = 1
For i = 1 To n
If (t(g(i)) = 0) Then
t(g(i)) = j
j = j + 1
End If
g(i) = t(g(i))
Next

あんまりいい方法じゃないかも。
場合によっては、変換のコストが無視できないほど掛かりそうですし。