Image

Задача о суммировании подмножеств, решенная за линейное время при достаточно высокой плотности входных данных.

Оптимальное решение известной NP-полной задачи, когда входные значения достаточно близки друг к другу.

Делиться

e2b4dcabb6fe53fb551b2fff9a44cb64

В этой статье я представлю решение задачи суммирования подмножеств, имеющее линейную временную сложность O(n), если все 'n' входных значений достаточно близки друг к другу. Вскоре мы увидим, что на самом деле означает это условие, а также почему его часто можно соблюдать (или почти соблюдать) на практике. Для входных данных, которые «почти близки» друг к другу, алгоритм все еще имеет определенную вероятность работать достаточно быстро.

Данная статья построена следующим образом:

  • В главе 1 мы вспомним задачу о сумме подмножеств и покажем, вероятно, наиболее тривиальное решение этой задачи, основанное на методе полного перебора.
  • В главе 2 рассматривается класс NP-полных задач и связь задачи о сумме подмножеств с ним.
  • В главе 3 рассматривается широко используемое решение, основанное на методе динамического программирования, и объясняется, почему это псевдополиномиальный алгоритм.
  • В главе 4 я представлю новый алгоритм, называемый «Решение на основе интервалов».
  • В главе 5 будет показано, что, подобно методу динамического программирования, алгоритм, основанный на интервалах, также может восстановить точное подмножество элементов, формирующих заданную целевую сумму, а не просто ответить, достижима ли целевая сумма или нет.
  • Наконец, в главе 6 мы увидим, почему алгоритм, основанный на интервалах, фактически достигает линейной временной сложности, если все 'n' входных значений достаточно близки друг к другу (а также мы поймем, что на самом деле означает условие «достаточно близки»).

Источник: towardsdatascience.com

✅ Найденные теги: Задача, Линейное Время, новости, Плотность, Подмножества, Суммирование

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Серверный шкаф Qunnect Carina в офисе с чертежами на досках, современный дизайн.
Текст на изображении: "Программисты всё?" на черном фоне.
ideipro logotyp
Диаграмма базы данных для клона Slack с таблицами пользователей, сообщений и каналов.
ideipro logotyp
Человек работает за ноутбуком, презентация платформы GigaChat Enterprise для бизнеса.
ideipro logotyp
График загрузок мобильных приложений Claude и ChatGPT в США за февраль 2026 года.
Папа призывает священников не использовать ИИ для проповедей и лайков в TikTok.
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых