1

Может ли кто-нибудь привести пример вероятности кроссовера? Я хотел бы знать, в чем преимущества определения вероятности кроссовера, а также того, какое влияние оно оказывает на генетические алгоритмы или генетическое программирование.Какое влияние имеют вероятности кроссовера в генетических алгоритмах/генетическом программировании?

ответ

5

Вероятность кроссовера не имеет преимуществ по определению. Это просто параметр, который позволяет вам настроить поведение генетического алгоритма. Снижение вероятности кроссовера позволит большему числу людей продолжать в следующем поколении без изменений. Это может иметь или не иметь положительного эффекта при решении определенных проблем. Я создал небольшой эксперимент в HeuristicLab с генетическим алгоритмом, применяемым к TSP. Генетический алгоритм повторялся 10 раз для каждой вероятности на небольшом экземпляре TSPLIB (bays29). Как вы можете видеть на изображении ниже, довольно сложно распознать шаблон. Я также загрузил algorithm и experiment, вы можете открыть и поэкспериментировать с этими файлами для себя в HeuristicLab. Эксперимент включает диаграмму качества для каждого прогона и последующий анализ, чтобы вы могли проверить поведение конвергенции, если хотите.

Variations of crossover probability

Также вероятно, что выбранная стратегия слишком проста и, таким образом, не удалось показать эффект. В эксперименте родители, которые не были подвергнуты кроссоверу, также были выбраны путем пропорционального выбора пригодности. Таким образом, человек высокого качества будет очень быстро доминировать над населением. Другая стратегия может заключаться в том, чтобы выбирать только скрещенных родителей по пропорционально-пропорциональному выбору и оставшимся родителям случайным образом. Результаты можно увидеть здесь (algorithm и experiment);

Variations of crossover probability

Вы можете сделать свои собственные модификации и эксперимент с результатами.

Связанный ответ можно найти здесь: What is Crossover Probability & Mutation Probability in Genetic Algorithm or Genetic Programming?

3

Я не знаю точно, что вы просите. Вероятность кроссовера - это просто вероятность применения оператора кроссовера - пример любого действительного числа в диапазоне [0.0, 1.0].

Не существует ни одной лучшей установки. Это зависит от большого количества факторов и сложных взаимосвязей с другими настройками алгоритма. Например, если у вас есть генерация GA, вы хотите, чтобы была некоторая вероятность того, что родители смогут выжить без изменений. В противном случае вы можете потерять хорошие решения. Таким образом, вы можете установить коэффициент кроссовера на что-то несколько низкое, как 0,7. С другой стороны, такой алгоритм, как CHC, очень сильно элитарный - он всегда держит лучшие решения, которые он нашел, поэтому есть больше стимулов использовать кроссовер для поиска более широко, и поэтому он задает вероятность 1.0. Другие алгоритмы полностью зависят от мутации и устанавливают скорость кроссовера до 0,0. Наиболее типичные значения для генетических алгоритмов довольно высоки - от 0,8 до 1,0. Генетическое программирование имеет тенденцию использовать более низкие значения довольно часто, возможно, 0,3 или 0,4.

Но это все, что связано с точкой. Вы должны разработать алгоритм для поддержки некоторой цели. Выяснить, как часто выполнять кроссовер, должно быть решение, которое вы принимаете по какой-то причине. Если все, что вы делаете, это взять готовый генетический алгоритм и сбросить некоторые случайные параметры там, он вряд ли будет работать так хорошо.