Страницы: 1
RSS
Равномерное распределение товара, Поиск способа равномерного распределение товара между по столбцам
 
Есть 3 секции, в каждой 10 ячеек из которых товар вкладывается в заказы. Товар вкладывается в заказы неравномерно, какой товар вкладывают чаще чем другой. В примере, "вкладываемость" товаров в заказы между секциями почти равна, однако Секция 1 вкладывает больше товаров, чем другие.

Необходимо уравнять показатель с остальными секциями путем перемещения товара из ячейки одной секции в ячейку другой секции. В примере мы можем переместить товар только один раз и у нас есть пустые ячейки, куда мы можем переместить. Есть ли какой-либо алгоритм, позволяющий найти оптимальный вариант перемещения? Формула, VBA, надстройка "Поиск решения" и т.д.?

В примере привожу оптимальные варианты решения (перенесены товары вручную)

+ есть ограничение на перемещения, за раз можем совершить не более 1-10 перемещений, в рамках которых нужно найти наиболее оптимальный вариант, при котором нагрузка на секции будет наиболее равномерной. Если 2 товара меняются местами - считается за 2 перемещения.

Товарищи, очень надеюсь на Вашу помощь, т.к. наш IT отдел не шибко расторопный (на эту задачу у них в лучшем случае, без преувеличений, уйдет 6-7 месяцев) и загружен кучей других задач, подобные вещи приходится делать на коленках в Excel'е. Спасибо всем, кто сможет помочь.
Изменено: Delta-Dude - 30.11.2016 17:57:29
 
Указано недостаточно ограничений для подбора оптимального варианта. Есть ли условия для количества занятых ячеек по секциям? Есть ли ограничения на одну ячейку? Нужно ли перемещать только заданные значения в ячейках? Должны ли соблюдаться условия приблизительной равномерности в одной ячейке по разным секциям? В общем, задача пока слишком расплывчата.
Изменено: Влад - 30.11.2016 17:28:02
 
Цитата
Влад написал: Есть ли условия для количества занятых ячеек по секциям?
Условий нет, в любой ячейке может размещаться любой товар, можно занять хоть все ячейки секции.

Цитата
Влад написал: Есть ли ограничения на одну ячейку?
Одна ячейка - один товар, не более. (имеется ввиду артикул товара)

Цитата
Влад написал: Нужно ли перемещать только заданные значения в ячейках?
Да, нужно перемещать значения (значения - это уходимость товара, лежащего в ячейке. Уходимость - число раз, которое этот товар вкладывают в заказ за 1 час)

Цитата
Влад написал: Должны ли соблюдаться условия приблизительной равномерности в одной ячейке по разным секциям?
Не совсем понял вопрос, но постараюсь ответить: товар может лежать в любой ячейке на секции.

Поясню, т.к. криво объяснил:
Если визуально - в каждой секции есть стеллаж, на стеллаже есть ячейки, в каждой ячейке лежит один вид товара (если он заканчивается - его пополняют). Сотрудник секции получает заказ, берет коробку и вкладывает туда товар, который относится к его секции и передает коробку дальше на другую секцию.
Значения в ячейках таблицы Excel - это то, как часто мы вкладываем этот товар в заказ. (какой-то товар мы будем вкладывать в 1 из 1000 заказов, а другой товар мы можем вкладывать в каждый заказ, т.е. 1000 из 1000)
Соответственно, если в первой секции в ячейках лежат товары, которые вкладываются часто, а во второй секции редко, то сотрудник, который работает на первой секции будет впахивать, пока сотрудник второй секции - отдыхать. Чтобы все было по честному, мы можем переместить часть товаров таким образом, чтобы среднее число вложений товара в заказ на каждой из секций было более-менее одинаковым. В реальности на секции более 100 артикулов и перемещать их все мы просто не можем, но каждый час мы можем перемещать по 1-10 артикулов и понемногу выравнивать нагрузку.

Такая несправедливость между секциями не выгодна ни нам, ни сотрудникам, т.к. тот, кто больше работает - быстрее устает и чаще косячит, а тот кто отдыхает - получает меньшую премию за выполненные заказы (рассчитывается по кол-ву вложений в заказ с его секции)
Изменено: Delta-Dude - 30.11.2016 18:42:53
 
Вы объясняете задачу с точки зрения функциональной целесообразности, а вот как с математическим принципом... Из всех имеющихся индивидуальных значений по товарам (кол-во вложений) необходимо подобрать сумму, близкую к средней по секциям - такова задача? Какие-то математические ограничения по секциям, рядам, ячейкам имеются?
 
Да, верно.

Цитата
Влад написал: Какие-то математические ограничения по секциям, рядам, ячейкам имеются?
В одной секции не может быть больше 10 ячеек. Необходимо предоставить вариант перемещения значений при заданном максимальном количестве перемещений так, чтобы разница между суммой по каждой секции была минимально возможной.
 
А формировать наборы по ячейкам до 10 можно всегда произвольно? Или получается, есть привязка к предыдущему распределению, от которого нельзя отступить более чем на заданное максимальное кол-во перемещений?
 
Описал процесс, теперь вопрос в том, как это сделать в VBA..

Сижу, читаю мануалы.. пример и описание в файле, который прикрепил.
 
Влад, нельзя отступить более, чем на заданное кол-во перемещений.
 
Да, по Вашему алгоритму можно сделать, не проблема. Вопрос насколько точным будет такой алгоритм... Есть другой готовый код для поиска суммы, но если у Вас наборы уже заданы вручную, то подбор под сумму с ограничениями по слагаемым сложновато будет из него сделать. Поэтому наверно попробуем сначала Ваш способ...
 
Каков масштаб реальной задачи? сколько секций и сколько ячеек?
От этого зависит какой алгоритм можно/нужно применять

Есть ли разумные ограничения на "равномерность" и количество перемещений.
Например можно сделать не более 10 перемещений и какова будет наилучшее распределение по ячейкам.
Либо нужно сделать самое оптимальное распределение (наиболее равномерное) и сколько для этого перемещений нужно сделать.
Либо какой то средний вариант.
 
MCH, добрый день.

Ситуация такова, что без остановки процесса, мы зачастую не можем перераспределить более 5-20 позиций. Делаем это в 15-минутные перерывы, которые бывают каждые 2 часа, т.е. 12 раз в сутки. Какой-то склад может позволить себе успеть в перерыв перераспределить 20 артикулов между секциями, какой-то успеет только 5 артикулов. Поэтому необходимо ограничить кол-во перемещений.

Количество секций разнится, на нашем основном складе 20 секций, на самых малых - 5-6 секций.
Количество артикулов в каждой секции может быть 500-1500.
Количество вложений одного артикула может быть от 1-500 в час. (сколько раз товар заданного артикула вкладывается в заказ)

Поэтому необходимо найти вариант, при котором бригадир сможет каждые 2 часа проверять нагрузку и делать перераспределение товара в пределах установленных ограничений. Делать он это, скорее всего, будет задавая кол-во перемещений от большего к меньшему методом перебора и выбирать подходящий вариант.
Изменено: Delta-Dude - 02.12.2016 11:44:28
Страницы: 1
Наверх