Имя: Пароль:
LIFE
Жизнь прекрасна
OFF: Пятничная задачка - как раскроить панели без обрезков?
0 Dotoshin
 
17.08.18
09:07
Добрый день, коллеги.
Помогите решить прикладную задачку. На рисунке изображен потолок балкона.
https://drive.google.com/file/d/1MAmOT1doV1RHlhvXq5rTsxfbti8cstXD/view?usp=sharing

Этот потолок нужно обшить панелями. Размер панели 3000 х 250 (но ширина панели в этой задаче роли не играет). Для обшивки необходимо разрезать панели на части. Эти части, вместе с размерами изображены на картинке. Так как потолок имеет сложную форму, эти части получаются разными по длине. Подскажите пожалуйста, как раскроить панели так, чтобы не было обрезков (это в идеале) или чтобы минимизировать обрезки (более реальный вариант)?
Может кто-то уже решал подобную задачу? В интернете полно методик и алгоритмов оптимизации и минимизации, но нет (или я не нашел) готовых решений для моей задачи. Я конечно же могу написать какой-то алгоритм подбора, но работать он будет ооооочень долго (больше триллиона комбинаций), да и на его написание и отладку потребуется какое-то время. В общем это будет из пушки по воробьям.
То есть интересует какое-то решение, легко применимое на практике.
Ну возможно какой-то не сложный алгоритм, который можно реализовать на коленке в Экселе за 15 минут.
1 1Сергей
 
17.08.18
09:12
У тебя выпуклые грани. Без обрезков не получится
2 Dotoshin
 
17.08.18
09:15
(1) Ну это неизбежные обрезки. Даже если бы они были не выпуклые, то совсем без обрезков вряд-ли получится. Хотелось бы их минимизировать.
3 Dotoshin
 
17.08.18
09:17
+ (2) Для упрощения считаем, что все куски прямоугольные.
4 vova1122
 
17.08.18
09:26
(0) некрасиво будет если делать стык полос по длине. Нужно одну полосу на всю ширину балкона. Поэтому отходов будет больше чем предполагаешь
5 Доктор Манхэттен
 
17.08.18
09:29
Вырежи из бумаги уменьшенную копию, разложи на столе и комбинируй. Найдешь какой-то оптимальный вариант довольно быстро.
6 Вася Теркин
 
17.08.18
09:29
Cutting3
7 Вася Теркин
 
17.08.18
09:30
Сам ищи в гугле, здесь ссылки на варез давать нельзя
8 Вася Теркин
 
17.08.18
09:31
(5) Нет,лучше пусть с пластелина лепит и сюда фотку выложит.
9 Dotoshin
 
17.08.18
09:31
(4) Если делать в длину, такие куски во первых сложней монтировать, во вторых длина балкона больше длины панелей и все равно придется стыковать - будет еще некрасивей.
10 Dotoshin
 
17.08.18
09:32
(7) Я не прошу ссылки. Я прошу методику.
11 dmpl
 
17.08.18
09:33
(0) Делай так, чтобы сумма длины 2 или 3 элементов была максимально близка к 3000 (например, остается обрезок не более 5 см). Убирай эти кусочки из общей кучи. Ну и так пока не расположишь все куски. Далее смотри, сколько лишних панелей требуется. Если ни одной лишней - считай задача решена.
12 vova1122
 
17.08.18
09:33
(9) Под длиной и имел ввиду сторону с размером 1560
13 Dotoshin
 
17.08.18
09:33
(8) Могу фотку выложить, когда потолок сделаю.
14 1Сергей
 
17.08.18
09:35
(11) так это ж рюкзачок :)
15 Dotoshin
 
17.08.18
09:35
(11) Еще бы методику подбора элементов, цены б не было твоему совету. В это все и упирается, что слишком много комбинаций.
16 Вася Теркин
 
17.08.18
09:36
(11) Программа примерно так и делает, не поверишь.
(10) За что ты презираешь программы? Программа и есть методика.
17 vova1122
 
17.08.18
09:37
(0) к тому же тебе не нужно идеально выйти в ноль по остаткам материала. Несколько лишних полос тебя не обанкротят. По рисунку расчитай длинну каждой полосы (с запасом на неровность стены, неровность обреза) И потом комбинируй эти длины. ( у тебя же не будет Миллион полос. Можно и вручную скомбинировать)
18 Вася Теркин
 
17.08.18
09:38
(13) Выложи фотку когда программу Cutting установишь, блин, сейчас сам твои размеры забью и ответ тебе покажу
19 Dotoshin
 
17.08.18
09:39
(18) Ок, давай. такой вариант тоже подойдет.
20 s03
 
17.08.18
09:40
(10) самая оптимальная методика - разрезаешь свои панели на мааааааленькие кусочки и собираешь аки из мозаики
21 Dotoshin
 
17.08.18
09:40
(17) 15 кусков - это больше триллиона комбинаций.
22 zenik
 
17.08.18
09:42
625+710 + длинная - одна панель
795+880 + длинная - вторая панель
1050+965 + 700 - еще панель.
700+700 + длинный кусок
остальное пополам.
Просто на практике идеально вымеренное не сделаешь - запутаешься быстрее.
23 dmpl
 
17.08.18
09:43
(15) У тебя общая длина 15,21 м. Соответственно, ты купишь 6 панелей длиной 18 м. Далее чисто интуитивно складывай. Найдешь какое-то решение. Узнаешь, какие обрезки остаются - и решишь, устраивает тебя это, либо надо перекомбинировать панели, чтобы получить обрезок большей длины (т.е. который может куда-то еще пригодиться).
24 Михаил Козлов
 
17.08.18
09:43
Делайте жадным алгоритмом: упорядочив по убыванию длины, подбираете, пока влезает. Если получатся большие остатки - попробовать улучшить.
25 Вася Теркин
 
17.08.18
09:44
Херня, 6 полос
880+625+700+700
1305+965+710
1050++1220+700
1560+1390
1135+1475
700
26 Вася Теркин
 
17.08.18
09:45
1 обрезок 390 и 1 обрезок 2300
27 Вася Теркин
 
17.08.18
09:45
Лучше не получится.
28 Вася Теркин
 
17.08.18
09:45
Только один оптимальный вариант
29 1Сергей
 
17.08.18
09:45
ширину распила не учитываем?
30 Вася Теркин
 
17.08.18
09:45
4 мм
31 Dotoshin
 
17.08.18
09:46
(29) Можно не учитывать - пластик можно ножом разрезать.
32 1Сергей
 
17.08.18
09:48
(25) Похоже на правду. Проверять я, конечно же, не буду :)
33 Dotoshin
 
17.08.18
09:48
+ (31) Даже если пилить ножовкой, то края-то все равно уголком закрывать, так что плюс/минус миллиметр роли не играет.
34 Dotoshin
 
17.08.18
09:48
(25) Спасибо. Все примерно так и есть.
35 helg66
 
17.08.18
09:49
1560+ 1390
1470+700+700
1305+710+965
1220+8/80+700
1135+1050+795
625
36 Вася Теркин
 
17.08.18
09:49
(32) Каттинг лучший в мире для всяких ДСП
37 vova1122
 
17.08.18
09:50
(21) Сколько там у тебя полос будет? 50 полос максимум. Вручную можно перебрать длинны, интуитивно
38 Вася Теркин
 
17.08.18
09:50
(35) 1220+880+700 - не оптимально.
39 Dotoshin
 
17.08.18
09:52
(37) Полос будет 15. Интуитивно не интересно, интересно минимизировать обрезки.
40 vova1122
 
17.08.18
09:53
(39) тебе предложили 2 варианта. Всеравно в любом случае нужно 6 полос как не крути
41 dmpl
 
17.08.18
09:54
(25) [режим зануды] Где 795?
42 helg66
 
17.08.18
09:55
остатки в мм
1-50
2-130
3-20
4-200
5-20

самое что ни есть оптимальное. : доска запасная а то вдруг после пивасика не так померяещь:)
43 dmpl
 
17.08.18
09:55
(38) Зато остается обрезок 2375, а не 2300.
44 Вася Теркин
 
17.08.18
09:56
(41) В первом неправильно перепечатал:
880+625+795+700
1305+965+710
1050++1220+700
1560+1390
1135+1475
700
45 helg66
 
17.08.18
09:57
на стройку один хрен надо с запасом брать, а то потом цвет хрен подберешь из другой партии. я в 2013 ламинат у себя стелил так на гардеробе 3 пачки до сих пор лежит
46 dmpl
 
17.08.18
09:58
(39) Эти задачи за приемлемое время решаются именно что интуитивно. Т.е. с нечеткой логикой.

(44) Первая панель ровно 3000, на распил нет запаса.
47 Вася Теркин
 
17.08.18
10:00
Да, Супер оптимизация.
48 helg66
 
17.08.18
10:02
в (44) отходов 490 мм - 5 досок
у меня 420 мм - 5 досок
49 Вася Теркин
 
17.08.18
10:03
Экологичненько...
50 Вася Теркин
 
17.08.18
10:05
Если сантиметрами меряться то у меня длиннее. Я выиграл
51 helg66
 
17.08.18
10:08
В старые добрые времена, когда компьютеры еще кушали перфокарты, а я занимался остеклением балконов такие задачи решались каждый день на рынке(на свои вагонку покупал), причем без мозга...как то само и так складывалось
52 ink-nsk
 
17.08.18
10:20
(0) В задаче не хватает длины минимального куска
Данное условие уменьшит количество решений и обрезков
53 ink-nsk
 
17.08.18
10:22
+(52) плюс ограничение по количеству стыков по длине, ещё урежет количество решений.

Короче когда полностью поставишь задачу, там уже не будет триллион вариантов.
54 ink-nsk
 
17.08.18
10:36
(0) помню ложил в квартире доску паркетную, два цвета.
рассчитал в Екселе с учетом коробки 227 см и 115 см. Точные размеры уже не помню ну короче в длинной и короткой упаковке Таркет. По подсчетам покупка длинной упаковки с условием полных коробок давало преимущество.
Купил, привез, начал укладку. Первую коробку вскрыл - всё нормально, вторую вскрыл, а там вместо двух длинных - 4 коротких. Упс.....
Пришлось пересчитывать с учетом вновь открывшихся обстоятельств. :)
55 Dotoshin
 
17.08.18
10:40
(52) Там на картинке все куски есть, как минимальные, так и максимальные. А триллион вариантов - это количество всех перестановок для 15-ти кусков, если решать задачу тупым перебором.
56 ink-nsk
 
17.08.18
10:41
2(45)Запасливый. :)
Мне плитку в ванну считали с запасом - две коробки до сих пор в гараже валяется, всё везде пересчитывал сам.
57 ink-nsk
 
17.08.18
10:45
(55) Ты не понял. Почитай рекомендацию например по укладки ламината. Там ты поймешь про минимальный кусок.
Про количество стыков - это минимально или максимально (а панели стыкуются по длине?)
И начать укладку можно с трёх точек - лево, право и с произвольной в две стороны (третий вариант может быть технически не возможен) Старт определяет дальнейшую логику.
58 ink-nsk
 
17.08.18
10:49
2(55) В реале не поверю про триллион вариантов.
По опыту выкладки плитки, паркета, ПВХ плитки, обоев - оптимальное решение - одно.
59 Dotoshin
 
17.08.18
10:49
(56) У меня с плиткой тоже прикол получился. В магазине все посчитали с небольшим запасом. Должно было остаться несколько плиток. Пришел мастер, выложил плитку, осталась лишняя коробка. Вот так вот он соптимизировал, без потери качества :)
(57) Да все я понял. Панели по длине не стыкуются - смотри рисунок. У меня укладывать либо слева направо, либо справа налево, других вариантов нет.
60 Dotoshin
 
17.08.18
10:51
(58) В реале триллион вариантов никто и не собирался перебирать :)
61 ink-nsk
 
17.08.18
10:54
2(59) Если панели по длине не стыкуются то решение то одно
Сначала режутся длинные более 1/2 длины панели и понеслось в низ.
Или ты хочешь получить СЛУ по данной задаче?
62 Dotoshin
 
17.08.18
10:56
(61) Я хочу сэкономить :)
63 ink-nsk
 
17.08.18
10:58
2(62) Если не стыкуются, то врятли.
Просто если стыкуются, там немного другая логика, плюс левый/правый кусок для стыка
64 Dotoshin
 
17.08.18
10:58
+ (62) в (44) и (35) уже все посчитали. Похоже у меня лишняя панель останется.
65 ink-nsk
 
17.08.18
10:59
(62) Сейчас подумал что может есть какое то СЛУ плюс решение к нему по оптимизации, но там ширина важна будет.
66 ink-nsk
 
17.08.18
11:03
(64) есть же ещё нюанс по укладке, т.е. первая 250 а последняя 50, Этетичнее положить 2 по 150.
67 Dotoshin
 
17.08.18
11:05
(66) Нету там никаких нюансов, от слова совсем. Посмотри на картинку.
68 dmpl
 
17.08.18
11:06
(62) Тогда сократи панели на 1 см с каждой стороны и режь 5 панелей :)
69 Dotoshin
 
17.08.18
11:08
(68) Это как? В чем магический смысл?
70 Dotoshin
 
17.08.18
11:10
+ (69) А, наверно понял твою мысль...
Экономия не получится. Нужно целую панель сэконмить, чтобы обратно в магазин сдать.
71 dmpl
 
17.08.18
11:13
(69) Тогда общая длина получится меньше 15 м, и, теоретически, будет существовать решение как разрезать 5 панелей.
72 ink-nsk
 
17.08.18
11:14
(67) по ширине, потому что всегда прикидывают с какой ширины начать, чтобы в конце не закончить 5см шириной
73 Dotoshin
 
17.08.18
11:20
(72) Ну я высчитаю ширину крайних панелей и обрежу их. Спасибо за подсказку, что-то я упустил этот момент из виду, но в любом случае количество кусков не изменится, так как их общая длина больше длины балкона. Просто надо будет резать не только последний, но и первый кусок. Еще раз спасибо за подсказку :)
74 Dotoshin
 
17.08.18
11:22
+ (73) А обрезать я могу только крайние куски, так что даже если получится 5 см, то никуда не денешься, придется оставлять как получилось.
75 dmpl
 
17.08.18
11:26
(74) Если останется 5 см - кривизна стены даже на 1 см будет очень видна. Поэтому стараются оставлять куски максимальной ширины.
76 ink-nsk
 
17.08.18
11:27
(73) Да по количеству не изменится, но если выступ учтешь без хвоста, то тут можно сэкономить. Т.е. манипулируешь первым и последним так чтобы выступ был без хвоста, и не нарушить какой-нибудь эстетический/технический мин
77 Dotoshin
 
17.08.18
11:29
(75) Там по краям будет стартовый профиль, он ляжет на стену со всеми ее изгибами, так что ничего страшного. Кроме этого крайние куски будут короткие.
78 ink-nsk
 
17.08.18
11:31
(77) Я не понял мы один тип балкона рассматриваем, или задачка гипотетическая с произвольным примером?
79 Dotoshin
 
17.08.18
11:32
(78) Задача вполне конкретная, с конкретным балконом. Все же нарисовано на картинке...
80 ink-nsk
 
17.08.18
11:36
2(79) ну тогда я то решил что балкон может быть другой.
Так тебе просто эту задачу рассчитать?
Тогда размеры давай точные
81 Dotoshin
 
17.08.18
11:37
(80) Так уже посчитали (44) и (35)
82 ink-nsk
 
17.08.18
12:25
(81) Теперь то я понял, что пример конкретный и количество полос указано.
Я думал ты для конторы ваяешь, под любой балкон.
Тут то и вспомнился опыт раскладки в Эксели всего ремонта
83 Обработка
 
17.08.18
12:58
Вот что значить иногда ум мешает работе.
Если искать алгоритм будешь долго искать.
Мой брат делает мебель он без всякого там алгоритма быстро все и без отходов (или минимальными) делает разрезы.
Он в математике не силен.
Правда архитектурный заканчивал, но был троечником.
Самый верный самому быстро подобрать оптимальные разрезы
84 Dotoshin
 
03.09.18
08:52
(8) Вот фотка того, что получилось.
https://drive.google.com/open?id=1MoeatMGi6ih-9DsC6r9q4x20azialEYv
Спасибо всем за помощь.