powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Рассчет доступного товара при многоуровневом BOM.
25 сообщений из 84, страница 2 из 4
Рассчет доступного товара при многоуровневом BOM.
    #39075920
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013,
ну так бы и сказал
ничего там оптимального не будет, вообще ничего кроме фигни не будет
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39075928
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013ViPRos,

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

Например, собираем ПК. По умолчанию, в нем один диск. Но конкретный заказ подразумевает 2 диска. Тогда в документе к материалам по умолчанию добавляем еще один HDD и пересчитываем возможности сборки.

Пока вот изучаю литературу по теме.
Представьте все в виде линейного списка, где каждая строка, образно, знает свой уровень вложенности и последовательность производства внутри уровня. Не увлекайтесь сильно математикой
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39081152
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно так и сделал в итоге. Получаю верхнюю границу остатков из материалов с учетом разложения узлов до простых материалов. И дальше последовательными приближениями с начальными точками в 1 и в ВерхнейГранице ищу количество, которое можно собрать. Думаю, что-то оптимальнее сложно найти.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39082033
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosто что "один материал входит в разные уровни" ни каком цикличности не говоритНу почему же ? Возможна ситуация, когда в завис. от одного параметра меняется значение других. Зависимости могут быть очень сложными.
Например применяя втулку ХХХ нам нужно поменять прокладки/переходники этого типа на другой.

На самом деле много вариантов, в т.ч. более сложных.
Тривиальных/готовых решений по сабжу нет и быть не может.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39082050
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНапример применяя втулку ХХХ нам нужно поменять прокладки/переходники этого типа на другой.
для этого BOM и нужен.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39082056
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVТривиальных/готовых решений по сабжу нет и быть не может.
это просто выбор варианта исполнения какого-либо или узла или изделия в целом. В общем-то типовая для производственной системы задача.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086763
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что ж, оказалось, что задача подсчета еще цветочки.

Теперь надо получить количество материалов и сборок, которые необходимы для N единиц продукта. При двух стратегиях: 1 - используем готовые узлы в первую очередь, 2 - используем сначала материалы.

При этом, мы уже знаем, что требуемое количество N мы можем произвести. Задача в первом варианте решается элементарно. А вот во втором... Попробовал уже пару алгоритмов реализовать, но они дают не оптимальный результат. Единственный гарантированный вариант - это методом итераций определить количество возможных сборок для каждого узла. Думаю, "эффективность" такого метода очевидна. Пытаюсь придумать что получше. Есть ли какие-нибудь идеи?

Вот пример дерева BOM, которое сломало пару моих алгоритмов.

...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086766
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, вот картинка:
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086781
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013Что ж, оказалось, что задача подсчета еще цветочки.
"разложите" все же BOM на обычный линейный список и затем просто каждое количесто умножайте на множитель, которым является требуемое кол-во продукции. "отвяжитесь" от иерархии, она нужна только в самом начале, для получения этого самого списка.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086792
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013,

Это несложный кейс, и с ним разберется относительно простой алгоритм "посчитать стоимость в элементарных материалах, если элементарного материала не хватает - пытаться заменить его узлами, в которые он входит, снизу вверх, т.е. сначала взять сколько есть узлов G, уменьшив потребность в элементарном материала D на "стоимость" взятых G, потом узлов E, потом узлов С".
Но для общего случая, боюсь, придумать что-то эффективнее перебора не получится, потому что практически это задача о многомерном рюкзаке, где измерения - элементарные материалы, а "предметы" - узлы
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086811
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm,

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

В подсчете количества и расхода по первой стратегии проблем нет совсем.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086830
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот МатроскинDrac013,

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

Примерно такой алгоритм и ломается на этом дереве. У нас есть довольно сильное утверждение, что требуемое N мы можем собрать. Я пытался сделать так: иду от корня дерева к его ветвям. Если текущий узел дерева - это сборка, то я пробую собрать его полностью, т.е. иду ниже. Как только я натыкаюсь на материал, то уже проверяю, достаточно ли его в наличии. Если да, то списываю из таблицы остатков. Если нет, то ищу другие узлы по уровню ниже текущего, где могу "позаимствовать" этот материал. Как только нашел такой узел, то иду от этого узла в сторону корня, заменяя родительские сборки на количество из остатков (если они есть, если нет, то иду еще выше). Но этот алгоритм не дает оптимального значения в конце.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086833
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013К сожалению, просто умножать не достаточно.
уточняйте что к вас, к сожалению, просто умножать недостаточно. Потому что в реальности все расчеты элементарные. В зависимости от ситуации список сортируется или по возрастанию или по убыванию уровня вхождения, так называемого Low Level. Все алгоритмы разложены вообще-то десятилетия назад. Не выдумывайте лучше, а множество ссылок по теме MRP посмотрите, все уже давно в различных варианте разложено по полочкам
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086840
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013Кот МатроскинDrac013,

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

Примерно такой алгоритм и ломается на этом дереве. У нас есть довольно сильное утверждение, что требуемое N мы можем собрать. Я пытался сделать так: иду от корня дерева к его ветвям. Если текущий узел дерева - это сборка, то я пробую собрать его полностью, т.е. иду ниже. Как только я натыкаюсь на материал, то уже проверяю, достаточно ли его в наличии. Если да, то списываю из таблицы остатков. Если нет, то ищу другие узлы по уровню ниже текущего, где могу "позаимствовать" этот материал. Как только нашел такой узел, то иду от этого узла в сторону корня, заменяя родительские сборки на количество из остатков (если они есть, если нет, то иду еще выше). Но этот алгоритм не дает оптимального значения в конце.

Ээ, а что такое "оптимальное значение"? Вам важен только минимум остатка элементарных материалов, какого уровня узлы потрачены - не важно?
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086853
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Кот Матроскин]Drac013пропущено...
Ээ, а что такое "оптимальное значение"? Вам важен только минимум остатка элементарных материалов, какого уровня узлы потрачены - не важно?

Да, была идея именно в максимальном использовании элементарных материалов. Ибо параметров оптимальности можно ввести огромное количество: время сборки, стоимость сборки и прочее. Поэтому требование было упрощено.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086881
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013параметров оптимальности можно ввести огромное количество: время сборки, стоимость сборки и прочее.
у одного и того же изделия не может быть различного времени сборки или скорости сборки. Может быть использован вариант BOM в котором применяются уже готовые узлы от стороннего производителя, вместо их самостоятельного изготовления. Но это другой вариант BOM. Т.е. возможен только выбор: сделать самому или купить готовое.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39086945
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot iscrafm]у одного и того же изделия не может быть различного времени сборки или скорости сборки. [quot]

У одного изделия быть не может. А у разных узлов этого изделия может быть. Один узел, где используется материал М, собирается 4 недели, другой - 4 дня. Поэтому, если у нас поджимают сроки, то мы предпочтем взять готовый первый узел. А если заказ не срочный, то лучше этот узел собрать, чтобы запас на срочные заказы конечного продукта остался.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087018
kva6513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Drac013]если у нас поджимают сроки, то мы предпочтем взять готовый первый узел. А если заказ не срочный, то лучше этот узел собрать

IMHO, все опять свелось к тому, что неявно фигурирует больше одного критерия оптимизации. Следовательно, что-бы получить желаемый результат, нужно:
Определиться явно с критериями оптимизации, в т.ч. - со способом подсчета формальной (количественно выраженной) стоимости для каждого критерия;

Определиться со способом хранения этих значений для каждого узла дерева/элемента списка (вспоминаем про дерево отрезков, да);

Определиться со способом выбора критерия оптимизации перед началом расчета;

Как-то так, по моему...
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087063
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kva6513,

мы сейчас отвлеклись на то, что отбросили :)

Критерий один: максимально использовать простые материалы при производстве заданного количества продукта.

Все остальные проблемы решены. Вариант с полным перебором хоть и кажется единственным возможным, категорически не устраивает в связи с его диким ростом ресурсов при увеличении узлов дерева. Может упростим вторую стратегию.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087134
kva6513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013максимально использовать простые материалы при производстве заданного количества продукта.
Т.е. критерием становится выбор по максимизации добавленной стоимости ? Готовый купленный узел и материал, хранящиеся на складе равно имеют добавленную стоимость, равную нулю. Прохождение узла/материала через к/л производственную операцию добавляет какое-то значение к добавленной стоимости. На каждом узле дерева должна быть известна сумма добавленных стоимостей выбираемой ветви, тогда можно будет всегда сворачивать в сторону увеличения. Возможен более простой случай, если все операции примерно равнозначны, тогда вместо добавленной стоимости можно просто подсчитывать количество операций.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087232
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kva6513Drac013максимально использовать простые материалы при производстве заданного количества продукта.
Т.е. критерием становится выбор по максимизации добавленной стоимости ?
Нет. Критерий - максимальное количество простых материалов :) Т.е. сначала тратим их, а когда их не хватает, то начинаем использовать уже узлы. Стратегии упрощены, ибо усложнения могут даже не понадобиться.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087272
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote Drac013][quote iscrafm]у одного и того же изделия не может быть различного времени сборки или скорости сборки.
У одного изделия быть не может. А у разных узлов этого изделия может быть. Один узел, где используется материал М, собирается 4 недели, другой - 4 дня. Поэтому, если у нас поджимают сроки, то мы предпочтем взять готовый первый узел. А если заказ не срочный, то лучше этот узел собрать, чтобы запас на срочные заказы конечного продукта остался.
У вас проблема другого рода. BOM здесь совершенно не при чем. Просто сдвигаете процесс изготовления, последовательность, очередность.... Вопрос просто неправильно озвучен изначально.
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087275
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kva6513выбор по максимизации добавленной стоимости
скоро до килокалорий дело дойдет...
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087393
kva6513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drac013Критерий - максимальное количество простых материалов :)
Ну так определите критерий - что такое "простой материал". Шевеления пальцами в воздухе в алгоритм не превратить никак. :)
...
Рейтинг: 0 / 0
Рассчет доступного товара при многоуровневом BOM.
    #39087625
Drac013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmУ вас проблема другого рода. BOM здесь совершенно не при чем. Просто сдвигаете процесс изготовления, последовательность, очередность.... Вопрос просто неправильно озвучен изначально.

Вопрос озвучен корректно и довольно правильно. Надо либо тратить сперва готовые узлы (ускоряем производства и отгрузку). Либо надо стараться по максимуму использовать материалы, чтобы не уменьшать запасы узлов. Все просто. Другое дело, что в таком виде задача сводится к многомерному рюкзаку, как правильно заметил Кот Матроскин. И при увеличении узлов BOM будет непомерно расти потребность в ресурсах. Думаю, задачу будем слегка изменять.

iscrafm Ну так определите критерий - что такое "простой материал". Шевеления пальцами в воздухе в алгоритм не превратить никак. :) Я думал, уже все поняли, что простой материал - это тот, который не сборный. Если вы все еще не поняли сути задачи, то хотя бы не ехидничайте попусту.
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 2 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Рассчет доступного товара при многоуровневом BOM.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]