Учи Кванты! → Курс → Задача о ранце
Эволюция с квантовым словарём
Прошлый урок держал норму веса битами запаса и штрафом. Здесь рюкзак собирает другой способ: не одиночка на ландшафте, а особь, у которой на каждый предмет записана пара чисел, похожих на амплитуды кубита. В названии алгоритма есть слово «квантовый», и к концу урока вы будете точно знать, что оно здесь значит, а чего не значит.
Другой способ искать
До сих пор решатель был одиночкой: один ходок по ландшафту энергии. Отжиг переворачивал по биту и решал, принять ли шаг. Эволюционные алгоритмы ищут толпой. Есть популяция готовых решений, в нашем случае рюкзаков. Лучшие из них отбирают, скрещивают, то есть собирают новый рюкзак из частей двух родителей, и чуть портят случайной мутацией. Так получается следующее поколение, и всё повторяется. Это генетический алгоритм, ему больше полувека, и он работает почти на любой задаче, где решение можно оценить числом.
В 2002 году Хан и Ким предложили хранить не рюкзаки, а нечто более компактное. На панели сейчас стартовое состояние их особи: шесть полосок, по одной на предмет, и все на половине. Что это за половина, разберём в следующем узле.
Это платный урок курса. Дальше — интерактив: виджеты, схемы и контрольные вопросы. Продолжение — в полном курсе «Учи Кванты!»: открыть полный курс.