Проект содержит инстументы для решения задачи о бинарном рюкзаке (0-1 Knapsack Problem) с использованием различных алгоритмов. Кроме того, библиотека включает экспериментальную среду, которая позволяет сравнивать алгоритмы по времени выполенения на рандомизированных наборах данных.
Дано N предметов, где
- массу
$w_i$ > 0 - стоимость
$p_i$ > 0
Необходимо выбрать из этих предметов такой набор, чтобы:
- Суммарная масса не превосходила заданной величины W (вместимость рюкзака).
- Суммарная стоимость была максимальна.
- Полный перебор через битовые маски
- Полный перебор через рекурсию
- Meet in the middle (not implemented)
- Динамическое программирование
O(nW)
- Ленивая динамика
- Жадный алгоритм
- FPTAS (Fully Polynomial-Time Approximation Scheme) (not implemented)
- Метод ветвей и границ (not implemented)
- Для сборки библиотеки смотрите
knapsack_library/README.md
- Для сборки тестовой среды смотрите
experimentator/README.md
См. файл CONTRIBUTING.md
для получения дополнительной информации.
Проект распространяется под лицензией MIT. См. файл LICENSE
для получения дополнительной информации.
- Акимов Евгений (lottery7)
- Кравцова Екатерина (bdmpea)
- Шевченко Будимир (BrudLord)