Crossover (vc)

組成可変型のcrossoverは,組成固定型のバージョンとほとんど同じであるが,原子数の調整が最小限に抑えられている点が異なる. 組成固定型crossoverのステップ6では,各原子種ごとの原子数の差を直接計算する. 一方,crossover(vc)では,ll_natul_nat で定義された許容範囲に基づいて原子数の差を計算する. 例えば,次のようになる:

ll_nat = [4, 4, 4]
ul_nat = [8, 8, 8]
offspring_nat = [2, 6, 12]
nat_diff = [-2, 0, 4]

上記の例でいう nat_diff にあたる原子数の差が,許容値 nat_diff_tole を超えている場合は,この操作はやり直される. そうでない場合は,原子数が ll_natul_nat で定義された範囲に収まるように調整される.