Задать вопрос

Алгоритм эффективного размещения?

Задача похожа на задачу о рюкзаке, но немного отличается.
Имеется большое количество файлов (допустим, 500) - все разного объема, от 10мб до 5гб (но файлов до 100мб намного меньше). Количество файлов и их объемы заранее известны. Также имеется неограниченное (неограниченное, потому что количество не важно) количество флешек объемом 8Gb. Задача - как можно компактнее разместить все файлы на как можно меньшем количестве флешек. Не важно, как будут мешаться между собой файлы. Главное - чтобы на каждую флешку файлы записывались таким образом, чтобы на ней оставалось как можно меньше свободного (неэффективно используемого) места.
И, заполняя одну флешку, нужно учитывать, что далее будут заполняться и другие флешки. И, возможно, какой-то из файлов будет лучше записать на другой носитель, чтобы эффективнее его заполнить.
Вот такой алгоритм мне нужно реализовать. У вас прошу только подсказать уже существующий алгоритм (если что-то подобное уже существует) или слегка направить на правильный путь, указав, на что следует обратить внимание при написании своего алгоритма с нуля
  • Вопрос задан
  • 344 просмотра
Подписаться 5 Простой Комментировать
Ответ пользователя d'Ivan К ответам на вопрос (3)
2ord
@2ord
Если задача практическая, то Multi-Part Zip поможет разбить файлы на множество томов.
Можно даже само-распаковывающийся архив создать.

Ну а если академическая, тогда гуглить Bin packing problem.
Ответ написан
Комментировать