Я всегда думал, что различные этапы генетических алгоритмов будут выполняться на сложных объектах, включающих сложные математические операции, а не просто заменять некоторые биты на одно целое число.
Вы, вероятно, думаете, что используются сложные математические операции, потому что вы думаете, что Генетический алгоритм должен модифицировать сложный объект. Обычно это не так, как работает генетический алгоритм.
Так что же происходит ? Обычно программист (или ученый) идентифицирует различные параметры в конфигурации, а затем отображает эти параметры в целые числа / числа с плавающей запятой . Это ограничивает направления, в которых алгоритм может исследовать, но это единственный реалистичный метод получения каких-либо результатов.
Давайте посмотрим на развитие антенны. Вы можете выполнить сложное моделирование с помощью генетического алгоритма, перестраивающего молекулы меди, но это будет очень сложно и займет вечно. Вместо этого вы бы идентифицировали «параметры» антенны. Большинство антенн построены из проводов определенной длины, согнутых в определенных местах, чтобы максимизировать их зону покрытия. Таким образом, вы можете определить пару параметров: количество пусковых проводов, длина сечения, угол изгиба. Все они легко представляются в виде целых чисел, поэтому Генетическому алгоритму легко манипулировать. Полученные манипуляции можно вводить в «Антенный симулятор», чтобы увидеть, насколько хорошо он принимает сигналы.
Короче говоря, когда вы говорите:
Мне трудно представить, что этого достаточно для работы с простыми типами данных.
Вы должны понимать, что простые типы данных могут быть сопоставлены с гораздо более сложными структурами. Генетический алгоритм не должен ничего знать об этих сложных структурах. Все, что ему нужно знать, это то, как он может манипулировать параметрами, которые создают сложные структуры. В конце концов, так работает ДНК.