Эволюция в вашем коде понимание и написание генетического алгоритма с нуля – часть 1

Эволюция в коде генетический алгоритм с нуля - часть 1

Понимание и создание кода с нуля

Введение – Вдохновение за алгоритмом

Фото от Johannes Plenio на Unsplash

Вы когда-нибудь смотрели на природу и удивлялись тому, как организмы эволюционировали, адаптировались и выжили на протяжении миллионов лет? Что, если я скажу вам, что вы, сидя перед компьютером, обладаете способностью смоделировать подобный процесс эволюции, не за миллионы лет, а за считанные секунды? Конечно же, с помощью генетических алгоритмов.

Концепция “генетического алгоритма” (GA) существует с 1960-х годов, когда Джон Холланд в Университете Мичигана ее открыл.

Путешествие Холланда началось не с попытки воспроизвести эволюцию на компьютерах. Вместо этого он стремился понять, почему и как естественные системы могут проявлять такую врожденную адаптивность. Его исследования привели к созданию классификаторных систем, структурированной системы машинного обучения, которая может эволюционировать со временем.

Теперь вы можете спросить: “Не является ли это машинным обучением?” Да и нет. Хотя классификаторные системы проявляют “учебное” поведение, они существенно отличаются от того, что мы обычно связываем с современным машинным обучением. Классификаторные системы работают путем создания, смешивания и тестирования набора правил. С течением времени успешные правила (те, которые помогают системе работать лучше) укрепляются, а менее эффективные отбрасываются. Весь процесс аналогичен процессу эволюции.

В то время как изначально GA использовались для решения абстрактных математических задач, скоро было признано их эффективность в решении сложных проблем, что сделало их одними из основных алгоритмов для решения даже сложных оптимизационных задач.

В этой серии мы будем решать проблему рюкзака с использованием принципов генетических алгоритмов.

Проблема рюкзака: Дилемма путешественника

Проблема рюкзака – это известная комбинаторная задача, которая часто используется в качестве примера оптимизации.

Представьте, что вы готовитесь к отдыху за границей. У вас есть строгий предел веса багажа, и его превышение будет стоить дорого. Ваш чемодан может вместить разнообразные…