Срыв покровов с эволюции
Наткнулся я на пользователя, который не верит в эволюцию. Сейчсас я вам расскажу что такое эволюция. Так вот, это один из методов оптимизации. Задачи оптимизации вообще могут быть довольно сложными. К некоторым не подберешься иначе как полным перебором вариантов. Поэтому есть различные методы последовательного приближения к решению. Про один из таких методов — градиентный спуск — я уже рассказывал. Эволюция — это тоже один из таких методов.
Чтобы эволюция заработала, нам надо три вещи: 1. Репликатор. Штука, которую вы хотите улучшить, должна уметь размножаться. Если она размножаться не умеет, вам придется создать такую среду, чтобы она смогла там размножаться. И размножаться она должна не просто так, а передавать свои признаки по наследству. Лучше конечно замутить половое размножение, чтоб признаки наследовались от нескольких родителей сразу. 2. Мутации. Каждый раз как ваща штука приносит потомство, его нужно слегка портить. 3. Отбор. Слабых и некрасивых особей нужно сбрасывать со скалы. Вот через этот механизм, определяя кому жить, вы и управляте направлением эволюции. Вот и все. Если где-то создаются такие условия, то ваша штука попадает в заботливые руки эволюции и у нее остается два выхода: стать совершенной или вымереть.
Ну довольно слов, теория суха, а древо жизни зеленеет. Я тут навайбкодил небольшой примерчик. Будем с помощью эволюции решать простое линейное уравнение A * X + B = C. Особями у нас будут различные X, которые мы будем спаривать и сбрасывать со скалы. На первом скриншоте определим параметры эволюции, я возьму популяцию всего в 20 особей на протяжении всего 5 поколений. Так же определим пару полезных функций: evaluate, чтобы не писать каждый раз уравнение и print_report, которая печатает отчет на каждом шаге. На втором скриншоте запилим сам механизм эволюции, функции для скрещивания, мутаций и отбора и создадим популяцию. Вроде там несложно и должно быть все понятно. На третьем скриншоте Запускаем эволюцию и печатаем итоговый результат, который и показан на четвертом скриншоте. Ну и как можно не верить в эволюцию после такого? Теперь вы знаете как она работает и можете применять ее для оптимизации в своих проектах, будь то геном или простое уравнение.
· 19.09.2025
К "эволюции"! Или её доказательству... Или к тому, что по моему это совсем про другое
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 19.09.2025
А чего ее доказывать? Я показываю как она работает и как ей пользоваться.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён