Страницы: 1
RSS
Комбинаторика. Раскрой арматуры, Как оптимально разрезать хлысты арматуры заданного размера на заданное количество кусков заданной длины
 
Доброго времени суток, Планетяне!

Чёт туплю и никак не могу составить схему для "поиска решения"…
1. Есть 4 типа арматуры (по диаметру)
2. Каждый тип имеет один или несколько вариантов длин отрезков с заданным количеством штук
3. Для каждого типа арматуры одинаковая длина разрезаемого хлыста - 11,7 пм. Хлыстов может быть сколько угодно
4. Каждый хлыст должен быть разрезан максимально эффективно, при этом нужно получить всё заданное количество кусков заданного размера

Придумал, как посмотреть раскрой 1 хлыста по всем заданным размерам (лист "модель для восьмёрки"), но при таком раскрое один из типов "выберется" полностью раньше остальных (перекос)…
Помогите кто чем может)))

P.S.: нашёл свою старую тему (почти один-в-один)
Изменено: Jack Famous - 07.06.2019 08:47:04
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, вот уж от кого не ожидал! Введите "оптимальный раскрой" в поиске форума, тема пережёвывалась уже тыщу раз.
Можно еще про рюкзаки поискать. Смысл тот же.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Можно еще про рюкзаки поискать. Смысл тот же.
не совсем, не учитывается толщина реза :-)
По вопросам из тем форума, личку не читаю.
 
ExcelWorld, готовые решения, МСН
 
Цитата
Jack Famous написал:
Чёт туплю и никак не могу составить схему для "поиска решения"…
не поможет....
поиск решений готов найти оптимальный вариант среди 200 переменных
а пруток длинной 11.7м на куски 1.14, 1.08, 0.9 и 0.5м можна разрезать 350-ю разными способами, начиная с:
1.141099988888877777777777666666666666666665
1.08010021100032211100000433222111110000005
0.9001001021001021043210010210432105432100
0.5001201213501313502357113135023570246791
и заканчивая:
00000000000000000000000000000000000000000000000
43333333333222222222221111111111110000000000000
09876543210109876543210111098765432101211109876543210
1402467911131516124681011131517191356810121415171921135781012141617192123
поиск решений - в ауте(((
осталось только решить сколько прутков и каким из 350-и способов раскроя режеи, чтобы
а) нарезать все, что нужно
б) использовать минимум прутков

а для диаметра 10, где 5 разных размеров заготовок, вариантов будет еще по-больше(((
Изменено: Ігор Гончаренко - 07.06.2019 03:39:01
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Доброго утра, Планетяне!
Прошу прощения, что вчера не отреагировал - спасал планету (прилетело оверсрочное и архиважное для босса дело)…
Цитата
PooHkrd: от кого не ожидал
я вам больше скажу — меня, походу, вчера солнце припекло, т.к. я даже не удосужился свою старую тему поднять (в стартовом сообщении ссылка)  :D

RAN, в курсе, но над покупкой пока думаю .т.к. хотелось что-то самому придумать. Не так круто, но сам  :oops:

Цитата
Ігор Гончаренко: не поможет
скорее всего, вы правы, но я ещё немного помучаю его))

В общем, пока что не буду попусту тратить ваше время и хорошенько разберусь. До чего дойду - напишу, если не забуду. Что не будет получаться уточню тут)))
Изменено: Jack Famous - 07.06.2019 08:55:54
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Сделал раскрой двух видов: 8мм и 10мм
размер исходного прутка - 11700, ширина реза - 5мм
 
MCH, как раз искал вашу программу (демку). У меня "LinRaskrLP_Demo" не работает (скрин) другого не нашёл…
Через поиск решения не вариант, да?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Через поиск решения не вариант, да?
во вложение генератор схем раскроя, может пригодится для реализации

"Поиск решения" может использовать не более 200 изменяемых ячеек, поэтому для указанных данных он вряд ли применим
но его всегда можно заменить на OpenSolver или LPSolve, где нет таких ограничений
 
Цитата
MCH: генератор схем раскроя
О!  8-0  вот это однозначно крутая штука! Спасибо большое!  :idea:

Есть вопросы… По прядку:
1. 5 - это Ø/2?
2. 11700 - длина отрезка в мм
3. 0 - ?
4. Малая рамка - длины отрезков в мм и их количество
5. Большая рамка - варианты разрезания хлыста, где [№ позиции "длина"] * КОЛ-ВО

Я так понимаю, что это варианты разрезания заданного хлыста не выходя за пределы прописанного количества. То есть что-то вроде "Поиска решения для 8ки", как в моём примере, только много-много-раз, быстрее и круче?
Изменено: Jack Famous - 07.06.2019 10:03:58
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Есть вопросы… По прядку
1. 5 - это количество разных деталей, перечисление которых идет с 4й строки
2. 11700 - размер заготовки, которая должна быть разрезана
3. 0 - минимальный требуемый размер, если укажите 11600, то получите все раскрои (оптимальные по Парето) от 11600 до 11700
4. перечень деталей и их количество (в каждый раскрой попадет не более указанного количества)
5. Все возможные варианты раскроя (оптимальных по Парето) из имеющихся деталей с заданной минимальной и максимальной границей
 
MCH, спасибо большое за объяснение - пока что этого вполне хватит)) а также благодарю за ссылки на альтернативные инструменты  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
[USER=35]MCH, Jack Famous[/USER], это файл по моему неправильно подбирает длины. Проверьте количество, например в пост#10 на картинке количество заготовок длиной 2090 всего три штуки, а в результате в каждом столбце
Изменено: msi2102 - 07.06.2019 10:32:50
 
Или здесь идет просто перебор общих вариантов, а выбирать какие и сколько это делаем сами  
 
Цитата
msi2102: в пост#10 на картинке количество заготовок длиной 2090 всего три штуки, а в результате в каждом столбце
Цитата
MCH: в каждый раскрой попадет не более указанного количества
это не комплексное решение по получению всех отрезков нужного количества и длины, а просто несколько более качественных "Поисков решений" с более тонкой и удобной настройкой, поэтому
Цитата
msi2102: здесь идет просто перебор общих вариантов, а выбирать какие и сколько это делаем сами
Лично я планирую "резать" в несколько этапов, постепенно "исчерпывая" заданные типоразмеры. Комплексное решение для меня сложно (хочу разобраться, а не просто готовыми пользоваться), а это предельно просто наглядно и понятно + проконтролировать несколько "этапов" не составляет труда…
Изменено: Jack Famous - 07.06.2019 10:48:31
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Лично я планирую "резать" в несколько этапов, постепенно "исчерпывая" заданные типоразмеры.
При таком подходе не всегда будет найдено оптимальное решение
 
Цитата
MCH написал:
При таком подходе не всегда будет найдено оптимальное решение
На практике обычно оптимизируют сваривая встык длинные куски, и дальше кроят. Смысл так заморачиваться с арматурой? Хотя чисто теоретически интересно.
 
Цитата
MCH: При таком подходе
а какой у меня выбор, если генератор не решает задачу целиком?)) или я что-то не понимаю…
К тому же, разница между "самым оптимальным" и 2ым, 3им номером, думаю, будет невелика (не тестил ещё) - всё лучше, чем совсем без оптимизации  :idea:
Цитата
Nik108: На практике обычно оптимизируют сваривая встык длинные куски
на стройке за такую арматуру в ответственных конструкциях можно надолго "присесть"…
Изменено: Jack Famous - 07.06.2019 16:47:43
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Доброго времени суток!
Немного разобрался с "Генератором" и изменил под свои нужды. Может кому-то тоже будет удобнее.

Итак, что имеем:
1. Всего 2 столбца для ввода данных: Лист "Start", поля (первые два) — РАЗМЕР и КОЛ-ВО. Остальные (в том числе "КОЛ-ВО (подбор)") — рабочие.
2. При запуске макроса (кнопка "START" в 1ом столбце) запросит РАЗМЕР, который будет "резаться" на заданные куски. Длина РАЗМЕРА для разрезания не может быть меньше длины ни одного из заданных РАЗМЕРОВ. Может быть меньше СУММЫ этих размеров
3. COUNT - количество участвующих в подборе типоразмеров. Типоразмеры в строке подбора отсортированы по возрастанию.
4.
Цитата
MCH:3. 0 - минимальный требуемый размер
— убран (то же самое, что =0), т.к. результаты подбора заносятся в таблицу и сортируются по остатку (разница между заданным РАЗМЕРОМ и полученным подбором). На скрине результат с фильтром по остатку (0 - точное попадание. Остатков нет).

Все числа - целые и положительные. Критерий РАЗМЕР введён для обезличивания (вместо ДЛИНЫ/ПЛОЩАДИ/ОБЪЁМА), т.к. это не имеет значения.
КОД
можно много, чего добавить, но я пока не разобрался в алгоритме. Замечания и предложения приветствуются  :)
Изменено: Jack Famous - 09.06.2019 12:27:13
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
UPD 10/06/2019

Что нового:
1. Теперь в схеме отображается (и сортируется) сам размер, а не его порядковый номер. Также изменены разделители: убран "", а вместо ": " теперь "" (символ 150, а не 45, как у обычного тире/минуса).
2. Если есть схемы, остаток по которым нулевой (идеальная выборка), то после расчёта они будут отфильтрованы (оставлены, а остальное скрыто).
3. Добавлена возможность подбора по схемам. На листе «tbl» в последнем столбце указываем, сколько раз мы хотим "применить" ту или иную схему и нажимаем кнопку «ВЫБРАТЬ». Произойдёт расчёт (результат вставится в столбец «КОЛ-ВО (подбор)» на листе «START» и произойдёт расчёт), итоги которого можно увидеть на связанном рисунке или непосредственно на источнике - строке итогов на листе «START»
Модуль «CombineGet»
Модуль «CombineChoose»
Модуль «Privates»
Модуль «Publics»
Изменено: Jack Famous - 10.06.2019 10:05:01
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всем привет!
В моем случае ситуация немного сложнее я имею изначально не одну трубу в заготовке а множество при том разной длинны и мне их необходимо раскроить на заданную длину, аналогично данному решению https://smartcut.pro/ru/, в принципе можно пользоваться и онлайн, но хотелось бы решение в экселе.
 
Цитата
Adamm написал:
но хотелось бы решение в экселе
Есть реализация в Excel (демо-версия полностью функциональна): http://www.excelworld.ru/forum/3-21304-1
Результат работы во вложении
Изменено: MCH - 19.04.2021 14:41:05 (исправлена ссылка)
 
MCH,ок, спасибо посмотрю
Страницы: 1
Наверх