Как правильно распределить товары, когда спрос больше, чем предложение?


4

У меня есть эти 2 проблемы для решения (на картинке).

У меня есть 9 магазинов, которые хотят разного количества товара. Первый магазин попросил 62 единицы, второй 10 единиц и т. Д. И т. Д.

Поставщик отправил в общей сложности 138 единиц (случай 1). Я должен честно распределить эти 138 единиц по всем магазинам. Каждая коробка, отправленная от поставщика, имеет 2 единицы, и лучше использовать кратные 2 единицы для каждого магазина, чтобы не было необходимости демонтировать коробку. Если это невозможно, мы можем разобрать коробку, но только в последнем случае.

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

У меня есть способ сделать это, но он действительно сложен и полон ошибок, поэтому я пытаюсь найти более простой способ, как формула или что-то в этом роде.

Таблица


Что я делаю (я собираюсь привести пример для первой строки и Case2):

  1. Раздача коробки каждому магазину, чтобы не было риска, что один магазин ничего не получит.
  2. Вычислить: NecessityByPriority = Necessity-1box = 62-2 = 60
  3. Рассчитать: PriorityEachStore: 60 / сумма (NecessityByPriority) = 60/72 = 83,3333%
  4. Вычислить: PriorityUnits = PriorityEachStore * (Stock-9box) = 83,3333% * (58-18) = 33,3333 [9-я коробка соответствует количеству единиц, указанному на первом шаге: 9stores * по 2 единицы каждый]
  5. Вычислить: NumberBoxes = round (PriorityUnits / (Unit / box)) = round (33,3333 / 2) = 17
  6. Вычислить: NumberUnits = NumberBoxes * (блок / блок) = 17 * 2 = 34
  7. Рассчитайте окончательное количество: NumberUnits + 1box [задано в шаге 1] = 34 + 2 = 36

В данном случае нет большой ошибки, но я собираюсь показать вам ошибку с ошибкой выше в симуляторе, который я сделал в Excel:

Таблица 2

Здесь осталось 3 единицы. Это связано с округлением. Я могу добавить строку, чтобы проверить, есть ли что-то еще, и если так, чтобы распространять. Но я искал более легкий путь без всех этих формул.

У меня есть другой процесс, который рассчитывает по тем же формулам, все для первого магазина. Затем делает 2-ю итерацию и пересчитывает все, кроме первого хранилища. И дальше, пока нет больше магазина. Проблема в том, что здесь есть только 9 магазинов, но иногда их сотни.


2
Это пахнет как комбинация коммивояжера и рюкзака (оба NP выполнены)
трещотка урод

1
Я голосую, чтобы закрыть этот вопрос, так как он не касается инженерной проблемы. Это математическая проблема, связанная с распределением. Это также выглядит как домашнее задание.
Фред

1
Похоже на проблему оптимизации: найдите распределение, которое минимизирует некоторую штрафную функцию (предложение против спроса + отвращение к разбиванию блоков). Можете ли вы попытаться измерить относительную «стоимость» недопоставок в магазинах и связать это со стоимостью деления коробок?
Дан

3
@Fred Optimization - тема, которая оказывается невероятно полезной в широком спектре современных инженерных приложений. Таким образом, этот вопрос а) полезен для этой аудитории и б) тот, на который могут ответить наши пользователи. Я ссылаюсь на причины, по которым концептуальный вопрос об уравнениях НС считался тематическим.
Дан

1
Без определения того, как вы оцениваете справедливость, это не вопрос. При правильном определении это просто проблема оптимизации с любым количеством распространенных методов, которые могут быть применены для ее решения. Неясно, о каком из них вы действительно спрашиваете.
Олин Латроп

Ответы:


5

Что такое ярмарка ?

Ваше определение справедливости - это количество, которое вы действительно пытаетесь оптимизировать (максимизировать). Для этого может быть несколько способов оптимизации, но сначала вы должны определить, как это будет рассчитываться.

Я собираюсь описать некоторые возможные методы ниже.

Максимизировать количество полных заказов

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

Заказывайте потребителей от наименее запрашиваемых до наиболее запрашиваемых и начинайте заполнять заказы сверху. Это даст вам наиболее полностью заполненные заказы.

Максимизируйте самые большие заказы

Этот метод предполагает, что потребители, которые заказали больше всего, являются наиболее стоящими потребителями, которые продолжают снабжаться. Вы хотите, чтобы эти важные потребители были счастливы, потому что вы не заботитесь о меньших.

Заказывайте потребителей от наиболее запрашиваемых до наименее запрашиваемых и начинайте заполнять заказы сверху. Это сделает самых больших потребителей самыми счастливыми.

Выполнить одинаковый процент от всех заказов

Это выглядит как метод, который вы пытались использовать. Этот более сложный, потому что вы в конечном итоге с частичными единицами.

Суммируйте все заказы и присвойте вес каждому заказу на основе индивидуального заказа, разделенного на сумму всех заказов. Это процент от общего количества, которое получит каждый потребитель.

Это можно считать самым справедливым , но это не обязательно лучший с точки зрения бизнеса.

Выберите, что оптимизировать

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


Я думаю, что больше соответствует моей необходимости, это третье. Чего я не хочу, так это дать 1000 первому магазину, а последний получит только то, что просили (в случае, когда сток> необходимость), или дать первому магазину 500 и последний 0 (в случае, когда запас <необходимость) , И в этом случае все эти магазины принадлежат одной компании, просто расположены в разных местах. А магазин, который находится на первом месте на этой неделе, может последним стать следующим. Каждый магазин спрашивает, сколько предметов нужно на эту неделю, и это может меняться каждую неделю.
Пэт

@Pat вы отслеживаете еженедельный спрос на каждый магазин? Если это так, вы можете опубликовать несколько еженедельных статистических данных о спросе в 2-3 магазинах. Я считаю, что это не очень сложная проблема для решения.
Махендра Гунавардена

2

Во-первых, откажитесь от «один для всех», так как первичные останутся с пустыми запасами, а маргинальные с непроданными.

Распределите в соответствии с вашим методом «Тот же процент всех заказов», округлив его; назначив, может быть, 95% номера, который вы сможете назначить.

Затем отправьте оставшиеся единицы товара в магазины, которые выдают индивидуальные запросы, индивидуально для каждого запроса, в порядке поступления, в первую очередь, в зависимости от их индивидуальных потребностей - фактических заказов от покупателей, а не просто «хотят иметь их в наличии».

Распределение «необходимости» подвержено случайным колебаниям; Вы оптимизируете на основе прогнозируемого спроса, который подвержен случайности, когда речь идет о фактических продажах. Задерживая распределение из «кеша резервов» до тех пор, пока не будет подтвержден спрос, вы восполняете эти пробелы в спросе, следя за тем, чтобы на всех складах фактически заканчивались запасы в один и тот же момент, и на заключительном этапе все они работали на резерве.


0

Фон

На этот вопрос ответили с использованием концепций бережливого производства. Я использовал Toyota Manufacturing в качестве основы для решения. Идея может быть применена к любому другому процессу машиностроения, например, фармацевтике, бытовой электронике, текстильной промышленности или любой другой подобной отрасли. Поскольку это инженерный форум, я попытался ответить на него. На этот вопрос можно ответить и в чисто бизнес-рамках.

отклик

Поставка сырья на завод-изготовитель, такой как сборочный завод Toyota, очень похожа на поставку товаров в магазин. Крайне важно, чтобы все необходимые детали находились на складе на сборочном заводе для производства изделия, аналогично тому, как товары на полке в магазине позволяли потребителю совершить покупку. Говорят, что GM потеряет более полумиллиона долларов США, если завод Covert в Боулинг-Грин, штат Кентукки, не будет работать в течение часа.

введите описание изображения здесь

Продукт / сырье, необходимое для сборки автомобиля Toyota, - это датчик температуры охлаждающей жидкости. Я предположил, что все сборочные заводы, перечисленные ниже, требуют датчика температуры охлаждающей жидкости. Фиктивные объемы в месяц также перечислены.

TоYоTa MaNUеaсTUряNграммMоdеLAvерaграмме SеNsорsреQUяреd пер весееКMяssяssяппяСороLLa7500КеNTUсКYСaмрY750TеИксasTaсомa75яNdяaNaSяеNNa8

Использование инструментов статистической обработки данных или информационной инженерии и диаграмм, таких как индивидуальные диаграммы подвижного диапазона (I-MR)

введите описание изображения здесь

Статистические инструменты, такие как приведенные выше, помогут определить среднюю скорость извлечения (спрос), стандартные отклонения и другую информацию для определения минимального количества продукта / сырья, необходимого для успешной эксплуатации машиностроительного завода. Подобная концепция может быть принята, чтобы понять спрос в магазинах.

Со стороны предложения, средние значения спроса, верхний и нижний контрольный предел (LCL) используются для распределения сырья по проектным производственным площадкам. LCL поможет с некоторой степенью достоверности определить минимальный уровень необходимого сырья, а также стратегию распределения дополнительного сырья.

Резюме
Если к вышеприведенной таблице еженедельных требований к датчику температуры Toyota Manufacturing Plant добавить указанную информацию, такую ​​как стандартное отклонение, UCL, LCL, медиана и диапазон, можно получить представление о том, как лучше распределить расходные материалы. Комбинация Data Engineering, Information Engineering, Process Engineering и статистики может принести большую пользу для оптимизации процесса распределения.


0

Все ответы до сих пор основаны на сознательно спланированном подходе. Способ решения этой проблемы во многих реальных приложениях заключается в использовании распределенных процессов, каждый из которых пытается локально оптимизировать, но конкурирует друг с другом. В результате оптимальное распределение выпадает почти как побочный продукт.

Другими словами, повышайте цену, пока спрос не уменьшится до уровня предложения. Даже эта система может быть более распространена с помощью метода, известного как «аукцион».

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.