каков алгоритм оптимальной заливки DVD для записи

Каков оптимальный алгоритм заполнения набора дисков Blu -с учетом многих сотен гигабайт ресурсов разного размера?

Я пытаюсь объединить большое количество старых компакт-дисков, DVD-дисков и небольших жестких дисков и поместить все в базу данных, проиндексированную сигнатурой MD5. Непростая задача, конечно.

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

Обычно это дает мне 95% или более использования, но я уверен, что есть способ использовать другие комбинации для повышения эффективности. С такими огромными элементами, как образы дисков, я могу получить довольно мало использования с помощью этого примитивного метода.

Моя идея состоит в том, чтобы взять все комбинации взятых активов, 1, затем 2, затем 3,... элементы за раз и сохранить текущее значение для максимального количества байтов <25 025 314 816 байтов, указывающих на массив, который суммируется с ним. Когда я дохожу до того, что у меня так много активов, взятых за один раз, что ни одна из комбинаций не подходит, остановитесь и используйте массив, на который указывает самый высокий счетчик.

Это лучший из возможных алгоритмов?

Есть 2 модуля Perl, которые кажутся подходящими для этой задачи: Алгоритм -Комбинаторика и Математика -Комбинаторика. Посоветуйте что быстрее, стабильнее, круче?

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

И,Я не хочу просто заполнять файл за файлом, поскольку мне нужны целые каталоги на одном диске.

6
задан Andrew Barber 27 July 2012 в 01:35
поделиться