Я занимаюсь изучением использования генетических алгоритмов в архитектуре, где мы используем эволюционный подход для создания тесселяции Voronoi в 3d. Это делается с помощью xVoro ++ для openFrameworks (C++).Нужно ли бинарное кодирование в генетических алгоритмах?
Наши хромосомы для геномов - это вектор (список) точек в 3D. Мы реализовали одно- и двухточечный кроссовер и мутацию, которая с определенной вероятностью рандомизирует эти точки. В большинстве примеров, которые я видел, геном кодируется двояко, что, я полагаю, вызовет мутацию и кроссовер, чтобы действовать по-другому.
Итак, мой вопрос заключается в следующем: существуют ли другие преимущества для двоичного кодирования (кроме скорости) и как вы будете обрабатывать такое кодирование/декодирование в C++? Переход от двоичного к списку трехмерных точек.
С наилучшими пожеланиями, Фред
Учитывая, что все закодировано в двоичном виде на компьютере, вы уже это сделали. Обработка хромосом, сделанная из 3d-точек, означает, что все операции дают последовательность бит, которые являются законными представлениями чисел с плавающей точкой/фиксированной точкой. – StoryTeller
Нужна помощь в искусственном интеллекте? https://area51.stackexchange.com/proposals/93481/artificial-intelligence – 6119
Нет. Вам не нужно использовать двоичную кодировку. Используйте НИЧЕГО, что хотите. Просто убедитесь, что у вас есть соответствующие операторы мутации и кроссовера. – Ray