Имя: Пароль:
1C
1С v8
Математический алгоритм подбора товара
0 Solitar
 
18.07.17
18:09
Необходимо реализовать автоматический подбор товара в документы.

Менеджер должен вводить только необходимо кол-во, а все остальное должна делать система.

Входные данные:
- ведется учет по характеристикам

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

- вывод характеристик во всех печатных формах отключен

На складе могут хранится следующие характеристики:
- Короб 20*200. 1000 штук (не коробов, а именно штук продукции)
- Короб 10*100 2000 штук
- Короб 100*200 - 1000 штук


Когда менеджер вводит кол-во, то система должна подбирать характеристики по оптимальному пути.

Рассмотрим следующую ситуацию.

Клиент заказал 500 единиц продукции. Мы можем эти 500 единиц собрать из "Короб100*200" (2 короба, итого 400 штук)" + "Короб 100*200" 100 штук. Итого у нас останется один неполный короб и 2 полных. И у нас по факту будет 3 короба (2 больших, один малеьнкий)

А можем взять "10*500" (5 коробов) 500 штук. Но этот вариант нам не подходит, т.к. наша задача минимизировать кол-во коробов при подборе.

Другая ситуация:


И из этих двух вариантов система должна выбрать первый.
- Короб 20*200. 200 штук (один большой короб, внутри которого 10 маленьких)
- Короб 50*200 - 100 штук (т.е. по факту в одном большом коробе осталось 2 маленьких)

Клиент заказал 100 штук. В этом случае система должна сказать, что бери 2ой короб.

Другая ситуация:
- короб 40*200 - 80 штук
- короб 20*200 - 1000 штук

Клиент заказал 200 штук. В этом случае система должна взять 80 штук из первого и потом донабрать из второй.

Скорее всего, похожие алгоритмы есть в каких либо WMS или же можно его  описать математически. Буду благодарен за помощь.
1 PiotrLoginov
 
18.07.17
18:13
Тут и математика, и логика. одними уравнениями не обойдешься, имхо.

Решений подсказать не могу. Сам тупо перебирал бы короба, начиная с самого большого. Сначала задействовал бы его. Затем добирал недостающее по тому же принципу.
2 Волшебник
 
модератор
18.07.17
18:13
Предлагаю загрузить менеджера работой.
3 Garykom
 
гуру
18.07.17
18:23
Менеджера на фриланс-сайте
4 Garykom
 
гуру
18.07.17
18:34
(0) Писал бы сразу "пачки", "блоки" и "коробки"
5 Злопчинский
 
18.07.17
18:38
Задача рюкзака с ограничением по выбранному условию
?
6 Злопчинский
 
18.07.17
18:42
У меня такая задача решена без всякой математики и с высоким качеством.

Задача минимизации колва коробов при отборе товара - это очень частный случай.

Обычно минимизируют путь сборщика, так как на передвижение от ячейки а2 к ячейке а45 уходит гораздо больше времени, чем на отбор товара из ячейки (пофиг какими упаковками)
7 Solitar
 
18.07.17
18:46
(5) спасибо огромное ! буду изучать. вроде похоже на то, что мне нужно.

(6) нам все равно как будет ходить кладовщик. главное минимизировать кол-во взятых коробов, и чтобы меньше было вскрытых коробов.
8 Garykom
 
гуру
18.07.17
18:46
(5) Тут очень не классический рюкзак, очень мало вариантов и очень просто их перебрать.

Скорее сложность в написании универсального алгоритма для блоков и коробок разной вместимости.

И в способе задания вариантов которые надо выбирать.

К примеру добавляем в алгоритм "срок годности" и сразу задачка усложняется на порядки.
9 Ildarovich
 
19.07.17
00:34
Интересная задача.
Кажется, нужно разложить всеми возможными способами заказанное количество на маленькие коробки (простая комбинаторика), а затем каждый вариант разложения расписать по коробам.
10 Ildarovich
 
19.07.17
00:40
+(9) Если использовать рекурсию (для полного перебора), то довольно компактное решение получится. Еще и параллельно по коробам расписывать.
11 Злопчинский
 
19.07.17
12:13
(10) в принципе задача достаточно типовая для складской лтгистики
12 Вафель
 
19.07.17
12:20
вроде тут обычный жадный алгоритм, тк коробки упорядочены по кол-ву
13 Serg_1960
 
19.07.17
12:25
Обычная рядовая складская задача: когда, сколько, какие нужны коробки, чтобы упаковать заказы покупателей.
(офф)
Вот только иногда неожиданный облом насчет логистики, в смысле логики: заказчик может приехать на грузовой газели или на раздолбанной шестёрке :))
И вся логистика - побоку. Упаковываем в большие короба и погрузчиком в грузовую машину или по мелким коробочкам, чтобы водитель сам разложил куда что ему там залезет.
14 Вафель
 
19.07.17
12:28
(13) вы заказ начинаете собирать только после того как водитель приедет?
15 Злопчинский
 
19.07.17
16:01
(14) мир складской логистики разнообразен... ;-)
16 VS-1976
 
19.07.17
16:30
Сортировать по номенклатуре,
количеству в упаковке убыв,
Ячейке

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

В дальнейшем созданный массив сортируем по ячейкам вот и план подбора
17 Вафель
 
19.07.17
16:42
Расходный ордер на товары в УТ11 так и делает
18 Serg_1960
 
19.07.17
20:31
(14) Нет, мы его переупаковываем. Ок?
19 Злопчинский
 
19.07.17
20:54
(14) есть склады где волна подбора начинается когда только машина прибывает на объект. есть склады где грузят то что успели собрать, остальное догружают позже.. по всякому пипл  работает