(я изменил детали этого вопроса, чтобы избежать проблем с NDA. Я знаю, что если понимать буквально, есть более эффективные способы управления этой теоретической компанией.)
Существует группа складов, каждый из которых способен хранить и распределять 200 различных продуктов из 1000 возможных продуктов, которые производит Компания А.Каждый склад снабжен 200 товарами и назначенными заказами, которые они затем должны выполнить из своих запасов в наличии.
Проблема заключается в том, что каждый склад должен быть самодостаточным.Будет заказ на произвольное количество товаров (обычно 5-10), которое назначается на склад.Затем склад пакует необходимые для заказа продукты и отправляет их вместе.Для любого товара, которого нет на складе, товар должен быть доставлен на склад отдельно, прежде чем заказ может быть отправлен.
Итак, проблема заключается в определении наилучших конфигураций склада / продукта, чтобымаксимально возможное количество заказов может быть упаковано без необходимости заказывать и ждать отдельные позиции.
Например (с использованием продуктов, каждый из которых представлен буквой, и складов, способных хранить 5 линий продуктов):
Warehouse 1: [A, B, C, D, E]
Warehouse 2: [A, D, F, G, H]
Order: [A, C, D] -> Warehouse 1
Order: [A, D, H] -> Warehouse 2
Order: [A, B, E, F] -> Warehouse 1 (+1 separately ordered)
Order: [A, D, E, F] -> Warehouse 2 (+1 separately ordered)
Цель состоит в том, чтобы использовать исторические данные, чтобы минимизировать количество индивидуально заказанных продуктов в будущем.Как только склады будут настроены определенным образом, программа просто определит, какой склад сможет обработать заказ с минимальными накладными расходами.
Это сразу вызывает у меня проблему стиля машинного обучения.Это также выглядит как комбинация некоторых известных проблем NP-Complete, хотя ни одна из них, похоже, не подходит должным образом.
Существует ли модель, которая представляет проблему такого типа?