Вы ищете для реализации генетического алгоритма. Ваша реализация должна быть такой, чтобы она работала для любой общей проблемы минимизации (или максимизации), а не только для функции Rastrigin . Вы можете решить реализовать GA с двоичным кодом или GA с реальным кодом. Оба имеют свои собственные применения и нишевые приложения. Но для вас, я бы предложил реализовать реальный кодированный GA. По вашему вопросу относительно того, что делать, если сгенерированные значения переменных находятся за пределами [-5.12: 5.12], GA с реальным кодом и GA с двоичным кодом будут обрабатывать их по-разному.
Наличие ссылочного кода всегда хорошо, прежде чем приступить к реализации собственной версии. Если вы ищете реализацию C, в разделе исходного кода лабораторной работы есть реализация Real Coded GA, которая широко используется нами и другими для нашей исследовательской работы. Я бы посоветовал вам поиграть с ним и попробовать некоторые из простых задач оптимизации, приведенных там.
Pyevolve - это библиотека Python для генетических алгоритмов и генетического программирования.
Теперь, когда мы поговорили о реализации, ясно ли ваше понимание ГА? Если нет, обратитесь к этому учебному пособию , в котором вводится GA с точки зрения оптимизации. Обратите внимание, что объяснение кроссовера и мутации для бинарно-кодированного GA не переносится автоматически в реальный кодированный GA. Реальный кодированный GA имеет свои тонкости, и вам понадобится время, чтобы прочитать некоторые статьи и понять их. Не спешите, но с полной занятостью вы сможете легко начать движение.