На самом деле это не проблема для функции пригодности, а для шага выбора. Вы также должны использовать окна в пропорциональном выборе, чтобы вы масштабировали значения пригодности. В противном случае оператор будет оказывать слишком небольшое давление выбора: просто представьте, что значения 573 и 579 очень близки и, следовательно, будут иметь примерно одинаковую пропорцию. Как правило, вы масштабируете их по текущей лучшей и худшей пригодности.
Вы можете взглянуть на ProportionalSelector, который мы реализовали в HeuristicLab . Вы даже можете попробовать и поэкспериментировать с этим программным обеспечением и изучить различные методы выбора, кроссоверы, операторы мутаций и т. Д.