Имя: Пароль:
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) есть склады где волна подбора начинается когда только машина прибывает на объект. есть склады где грузят то что успели собрать, остальное догружают позже.. по всякому пипл  работает
AdBlock убивает бесплатный контент. 1Сергей