Этот ответ требует практического примера того, как его можно использовать, и я постараюсь привести его в дополнение к другим ответам. Кажется, они очень хорошо объясняют, что такое генетический алгоритм. Итак, это даст пример.
Допустим, у вас есть нейронная сеть (хотя они не единственные ее применения), которая, исходя из некоторых данных, даст некоторые результаты. Генетический алгоритм может создать популяцию из них, и, увидев, какой результат является лучшим, вырастить и убить представителей населения. В конце концов, это должно оптимизировать нейронную сеть, если она достаточно сложна.
Вот демонстрация, которую я сделал, которая, несмотря на то, что она плохо закодирована, может помочь вам понять. http://khrabanas.github.io/projects/evo/evo.html
Нажмите кнопку эволюции и возитесь с целями.
Он использует простой генетический алгоритм для селекции, мутации и выбора между выживанием популяции. В зависимости от того, как установлены входные переменные, сеть сможет достичь некоторого уровня близости с ними. Таким образом, популяция, вероятно, в конечном итоге станет однородной группой, результаты которой будут напоминать цели.
Генетический алгоритм пытается создать своего рода «нейронную сеть», которая, принимая RGB, даст выходной цвет. Сначала это генерирует случайную популяцию. Затем берется 3 случайных члена из популяции, выбирается один с наименьшей пригодностью и удаляется из популяции. Пригодность равна разнице в квадрате верхней цели + разница в квадрате нижней цели. Затем он объединяет два оставшихся и добавляет ребенка в то же место в популяции, что и мертвый член. Когда происходит спаривание, есть вероятность мутации. Эта мутация изменит одно из значений случайным образом.
Как примечание, из-за того, как это настроено, во многих случаях невозможно быть полностью корректным, хотя это достигнет относительной близости.