вопрос У меня проблема заключается в следующем:Изменение рюкзака (или раздела) алгоритма
Учитывая очередь из N элементов, каждый из которых имеет вес, и очередь контейнеров K. И нам нужно разбить предметы на контейнеры в том порядке, в котором они были. Например, самый первый элемент может перейти только к первому контейнеру, второй - к первому или второму, но не к третьему (в противном случае второй контейнер не будет иметь никаких элементов).
Мне нужно создать и реализовать алгоритм, который делает своеобразное равномерное распределение, поэтому самый тяжелый контейнер должен быть таким же легким, насколько это возможно; чтобы дать количество контейнеров с таким весом.
Я полагаю, что это какая-то вариация проблемы с 3-разделами или рюкзаками. Я уже реализовал одно возможное решение для распространения с помощью динамического программирования и попытался получить счет из используемой в нем таблицы. Но это было недостаточно эффективно (слишком дорогое количество памяти), и алгоритм получения количества контейнеров был неправильным.
Может кто-нибудь объяснить, пожалуйста, какой алгоритм является решением этой проблемы?
Когда 'N> K', могут ли последние элементы' N-K' отправляться в любой контейнер? –
Ваша проблема не имеет больше общего с проблемой [Bin-Packing] (http://en.wikipedia.org/wiki/Bin_packing_problem) или, возможно, более общей проблемой [Cutting Stock] (http: // ru. wikipedia.org/wiki/Cutting_stock_problem)? – amnn
@ Энди Джонс, нет, каждый контейнер должен использоваться и должен использоваться по порядку. Таким образом, мы можем поместить первые 3 элемента в первый контейнер, следующий 5 ко второму, N-K должен быть каким-то образом распределен между другими контейнерами. Или, может быть, я просто не понял вашего вопроса. – TheWalkingDelirium