Пример кроссовера с имитацией двоичного кроссовера (SBX)

Я работаю в исследовательской группе для решения многоцелевой инженерной задачи и концентрируюсь на алгоритме NSGA-II, но теперь я застрял, мне нужно понять, как кроссовер SBX работает с числовым примером, чтобы я мог реализовать его или даже если есть готовый код Я могу адаптироваться в соответствии с нашей проблемой, но сначала мне нужно увидеть числовой пример, чтобы я мог продолжить, любой ресурс, доступный для этого, я нашел только презентацию на http://www.slideshare.net/, но только уравнения, а не пример.

1 ответ

Решение

В эти дни я также провел больше времени на SBX, потому что это лучший выбор для пересечения в проблеме кодирования чисел. Я проверил оригинал бумаги и слайды, которые вы указали. Хотя я не знал всего процесса SBX, я могу рассказать вам, что я узнал, что может помочь вам узнать SBX на следующем этапе.

1: Идея заключается в бинарном кодировании с кроссовером в одной точке. Например, родительские хромосомы p1 и p2, их дети c1 и c2.

2: В двоичном кодировании он имеет свойство: (p1+p2)/2=(c1+c2)/2. Обозначим |(c1-c2)/(b1-b2)| как бета, и b иногда равняется 1 согласно моделированию.

3: Когда мы используем эту идею с числовым кодированием, это свойство должно быть сохранено, для чего решение для c1 и c2 в числовом кодировании:

c1 = (p1 + p2) / 2 + 0,5* бета (p1-p2) и c2 = (p1+p2)/2-0,5* бета (p1-p2) и p1>p2. Далее, значение бета является нашим Цель.

Все вышеизложенное - это то, что я узнал из SBX Извините за это не завершено!

Это старый вопрос, но я рекомендую прочитать академические статьи:

  • ДЭБ, Калянмой; АГРАВАЛ, Рам Бхушан. Имитация бинарного кроссовера для непрерывного поиска. Сложные системы, т. 9, п. 2, стр. 115-148, 1995.
  • ВАРГАС, Dełnis EC. Um Estudo dos Para‚metros do Algoritmo NSGA-II com o operador SBX em Problemas de Otimização Estrutural Multiobjetivo. Серия материалов Бразильского общества вычислительной и прикладной математики, т. 7, н. 1, 2018.
  • CRUZ, Фредерико Родригес Борхес да и др. Abordagem multiobjetivo para otimizaçà £ o de redes de filas finitas. 2012 г.

Статья, доступная по этой ссылке, также может быть полезна.

Существует также реализация https://github.com/msu-coinlab/pymoo NSGA на github, где есть файл simulated_binary_crossover.py, содержащий реализацию, которую вы можете использовать.

Чтобы рассчитать количество детей, необходимо сформулировать:

АЗЕВЕДО (1) использует разные формулы:

Чтобы вычислить функцию бета (β i), используйте распределение вероятностей:

Чтобы вычислить бета (β i):

Î · - индекс определяемого пользователем распределения (не отрицательный)

Шаги для расчета числа с плавающей запятой, полученного в результате кроссовера:

  1. Установите случайное число µ ~ (0,1);
  2. Рассчитайте βi для совместного использования по формуле выше;
  3. Создайте дочерние элементы, используя приведенные выше формулы, используя βi

Дополнительная ссылка:

(1) АЗЕВЕДО, Карлос Ренато Белу. Geraçà £ o de diversidade na otimizaçà £ o dinà ¢ mica multiobjetivo evolucionária por paisagens de nà £ o-dominà ¢ ncia. 2011. Dissertaçà £ o de Mestrado. Федеральный университет Пернамбуку.

Другие вопросы по тегам