Я только что узнал о базовом (более введении) генетического алгоритма. Для назначения мы должны найти значение x, которое максимизирует f (x) = sin (x * pi/256) в интервале 0 < = x < = 256.Создание популяции для генетического алгоритма в C
Хотя я понимаю, как получить фитнес человека и как нормализовать физическую форму, я немного теряюсь в генерации населения. В тексте, в целях выполнения кроссовера и мутации, каждый пользователь использует 8 бит. Пример:
189 = 10111101
35 = 00100011
Мои вопросы это:
Используя с, что является лучшим способом для создания населения? Я просмотрел его, и все, что я мог найти, это использовать uint8_t. Я собираюсь создать его как массив, а затем найти способ преобразования в его целочисленное представление.
В каких целях нормализует фитнес?
- Как я первый раз при написании программы, использующей генетический алгоритм, есть ли какие-либо советы, которые я должен иметь в виду?
Благодарим вас за внимание.
Начальное население должно быть случайным. –
«интервал 0 <= x <= 256" исключает использование 'uint8_t', так как' 256' выходит за пределы допустимого диапазона. Работайте с натуральным размером 'int' или' unsigned', если только не повод для этого. –
Чтобы создать случайную совокупность, я думал использовать rand() для генерации случайной совокупности, скрывать ее до 8-битного представления и затем хранить в массиве. Проблема заключается в части преобразования. – Mog