Я работаю над генетическим алгоритмом, в котором используется кроссовер BLX-alpha.BLX-альфа-кроссовер: какой подход правильный?
Я нашел 2 алгоритма, которые кажутся мне совершенно отличаются друг от друга
- https://yadi.sk/i/u5nq986GuDoNm - страница 8
Кроссовер производится следующим образом:
а. Выберите 2 родителя: G1, G2
b. генерируют равномерно распределенную случайную гамма-гамма из [-алфа, 1 + альфа], где альфа = 0,5
c. генерировать потомство следующим образом: G = G1 * гамма + (1 - гамма) * G2 http://www.tomaszgwiazda.com/blendX.htm
кроссовер производится следующим образом:
а. выберите двух родителей X (t) и Y (t) из родительского пулаb. создайте двух потомков X (t + 1) и Y (t + 1) следующим образом:
c. для i = 1 до n
d. ди = | XI (т) -yi (т) |
e. выберите равномерное случайное вещественное число u из интервала
f. xi (t + 1) = u
g. выберите единое случайное вещественное число u из интервала
h. yi (t + 1) = u
i. конец сделать
где: а - положительный действительный параметр
Xi, Yi - I-й компонент родителя
ди - расстояние betweet родительские компоненты
Какой из этих 2-х алгоритмов правильно ? Или они равны? В моей задаче я использую второй метод, потому что первый из них дает неудовлетворительные результаты. Я занимался этим вопросом, потому что я работаю над GA, где предполагается использовать первый алгоритм.
Любая помощь будет оценена!
Существует много операторов кроссовера. Нет «правильного». Попробуйте оба и используйте тот, который лучше всего подходит для вашей проблемы. – Ray