Имя: Пароль:
IT
Обучение
Теория графов: аналоги задачи коммивояжера
0 andrewalexk
 
23.08.22
20:37
:)
можно ли свести к теории графов задачу об
оптимальном расположении маленьких квадратиков х(i)
на большом квадрате х(0)?
1 БигБаг
 
23.08.22
21:00
Это вроде задача упаковки рюкзака.
2 RomanYS
 
23.08.22
21:10
(0) так задачу озвучь. Как минимум не понятны критерии оптимальности. У квадратиков есть вес?
3 sqr4
 
23.08.22
21:13
брутфорси
4 PR
 
23.08.22
21:52
(1) Причем здесь рюкзак?
Задача оптимального раскроя
5 Йохохо
 
23.08.22
21:55
(4) при чем здесь раскрой если ТС про упаковку?
6 PR
 
23.08.22
21:58
(5) Где ты прочитал слово упаковка?
Я вот в (0) прочитал про маленькие и большие квадратики и это все, квадратики, замечу, а не кубики
7 andrewalexk
 
23.08.22
22:36
:)
если взять квадратик как частный случай прямоугольника и мерность пространства = 2 то может и упаковка и рюкзака
зы
вес неважен
8 Garykom
 
гуру
23.08.22
22:45
(0) Нет это задача раскроя
9 Garykom
 
гуру
23.08.22
22:45
(8)+ Задачи раскроя не относятся к комми или рюкзаку
10 Garykom
 
гуру
23.08.22
22:47
(9)  тьфу задача раскроя не относится к коммивояжеру, это рюкзак/ранец
11 Garykom
 
гуру
23.08.22
22:48
(9)+ хотя должен уточнить что если раскрой производится разными инструментами то получается коммивояжер
12 polosov
 
23.08.22
23:11
13 PR
 
23.08.22
23:12
(7) Задача упаковки двухмерного рюкзак — это задача раскроя, но да, ничего не мешает называть эту задачу как угодно, например, задача поиска смысла во вселенной или задача максимизации изнасилования мозга окружающим
14 БигБаг
 
23.08.22
23:13
(7) Список вариантов задачи об упаковки рюкзака: https://ru.wikipedia.org/wiki/Список_задач_о_рюкзаке
15 PR
 
23.08.22
23:14
(14) Не мешай человеку, у него свой глоссарий и свои инструменты
16 БигБаг
 
23.08.22
23:15
(15) Можно проще назвать: задача о комбинаторной оптимизации. Не ошибетесь.
17 PR
 
23.08.22
23:16
(16) Не усложняй, просто задача
18 БигБаг
 
23.08.22
23:20
Но является ли это теорией графов, я наверняка не знаю. Теория графов это вроде подмножество комбинаторики.
19 Guk
 
24.08.22
00:01
(18) теория графов, это теория графов. при чем тут комбинаторика? комбинаторика вообще другой раздел математики...
20 БигБаг
 
24.08.22
00:42
(19) поиски по графу имеет комбинаторную размерность.
21 andrewalexk
 
24.08.22
07:07
(15) :) не я же начал вводить новые термины
22 andrewalexk
 
24.08.22
07:08
(20) :) тогда можно приплести высшую математику раздел матрицы и нео
23 Йохохо
 
24.08.22
08:53
(17) с ":)" есть только потребность рассказать, что нет просто задач
24 АгентБезопасной Нацио
 
24.08.22
08:55
Так что является критерием оптимальности?
25 mistеr
 
24.08.22
09:05
(24) Это часть задачи. Как обычно в жизни. :)
26 RomanYS
 
24.08.22
09:10
(24) наиболее вероятно критерием является вес пропорциональный площади квадратов, но ТС утверждает, что "вес неважен"
27 Михаил Козлов
 
24.08.22
09:47
(0) Т.к. задача коммивояжера - NP полная задача, то свести можно. Только зачем?
28 andrewalexk
 
24.08.22
10:39
(27) :) намекаешь что через матрицы проще?
29 andrewalexk
 
24.08.22
10:40
(26) :) ну квадраты это я неточно выразился - прямоугольники т.е. критерий - периметр и площадь
30 Михаил Козлов
 
24.08.22
10:53
(28) Сформулируйте задачу содержательно. Например, нужно материал размером ШхД нарезать на такие-то прямоугольники.
Или есть набор прямоугольников и полоса материала такой-то ширины. Нужно нарезать, минимизировав отходы. Такие задачи пытались решать с незапамятных времен.
31 RomanYS
 
24.08.22
10:59
(29) >> периметр и площадь
озвучь уже задачу.
32 andrewalexk
 
24.08.22
11:00
:)
a(i) х b(i)-> а(0) х b(0)
оптимизация упаковки/раскроя/...
33 Михаил Козлов
 
24.08.22
11:57
Наверное, прямоугольники можно еще и вращать (т.е. подходит b(i) x a(i))).
Попробуйте поискать в инете.
Делал похожее давно (неявный перебор методом ветвей и границ) для раскроя нестандартных кровельных элементов. Результат был не ахти.
Еще вопрос: размеры прямоугольников совсем свои для каждой задачи или более-менее стандартные?
34 СеменовСемен
 
24.08.22
12:31
(33) такую задачу даже запросом решали
35 andrewalexk
 
24.08.22
14:06
(33) :) скажем так я упрости задачу - высота у всех одна- только вертикальное расположение
размеры в справочнике - могу тупо обработкой подобрать - их всего полтыщи
но хотелось красиво а то блин столько  в универе проходили а в 1с не пригодилось почти
36 Timon1405
 
24.08.22
14:11
(34) да еще и в 3D https://infostart.ru/1c/articles/267268/
37 Михаил Козлов
 
24.08.22
14:12
(35) Верно ли понимаю, что нужно в прямоугольник заданных размеров накидать сколько можно прямоугольников (с одинаковой высотой) из массива, минимизировав отход?
Не понял насчет "...могу тупо обработкой подобрать" - подбирая по какому-то принципу?
38 Михаил Козлов
 
24.08.22
14:17
(35) Статью в (36) имеет смысл глянуть, хотя в ней о сути алгоритма всего одна фраза. Для 2-мерного случая (особенно, если высота у всех одинаковая) жадный алгоритм может оказаться вполне приемлимым.
Попробуйте для своей задачи сформировать критерий упорядочивания.
39 andrewalexk
 
24.08.22
14:21
(37) :)
да перебором
что-то типа пока сумма х(i)<х(0) цикл
потом +минимум по х(i+1)...х(к)
40 Михаил Козлов
 
24.08.22
14:34
(39) Это похоже на жадный алгоритм в одномерном ранце (если сначала упорядочено по x(i) по убыванию).
Еще может быть важно, как будут кроить: может резать можно только на всю ширину (гильотина).
41 andrewalexk
 
24.08.22
14:54
(40) :) можно по убыванию ... но еще есть подгруппы тематические ... прикину если не найду вариант в (12) и (14)
42 Михаил Козлов
 
24.08.22
20:10
(41) (12) - это просто о методах оптимизации. Вряд ли найдете подходящее для Вашей задачи, но не вредно.
В (14) подойдет разве что мультипликативный рюкзак - если раскрой возможен только прямыми сплошными резами. В (14) собственно, только формализация, про методы ничего не сказано.
Вам скорее ближе задача раскроя (https://ru.wikipedia.org/wiki/Задача_раскроя).
43 andrewalexk
 
24.08.22
20:55
(42) :) ну я с самого начала подозревал что хотя задача банальная вряд ли она формализована так как задача К.
зы
кстати а есть средства программной реализации решения?
там всего лишь нужно открыть изображение 0 и вставить туда изображение 1 в позицию [x;y]
44 Михаил Козлов
 
25.08.22
08:42
(43) "... есть средства программной реализации решения" - решения чего? Вы задачу не сформулировали ни содержательно, ни формально.
Следующую фразу совсем не понял.
45 СеменовСемен
 
25.08.22
09:27
Средств для решения задач раскроя полно
46 Святофор
 
25.08.22
10:44
(0) не думаю. граф это совокупность объектов (вершины) со связями между ними (ребра). а раскрой это комбинаторика или поиск с возвратом
47 cViper
 
25.08.22
11:02
(0) Похоже на Динамическое программирование - Dynamic Programming (DP)
48 andrewalexk
 
25.08.22
11:03
(44) :) формулировок несколько
ты просто не понял
49 andrewalexk
 
25.08.22
11:06
(45) :) программных ... например есть же dll под 1с для работы с изображением?
50 Михаил Козлов
 
25.08.22
12:28
(49) Попросите решение из ссылки в (36). Зададите 3-й размер = 1 и вперед.
51 andrewalexk
 
25.08.22
14:38
(50) :) да не я сам напишу думал может есть формализация алгоритма
52 АгентБезопасной Нацио
 
25.08.22
14:43
(51) пока нет даже формализации задания...
53 andrewalexk
 
25.08.22
14:47
(52) :)
ну если тебе будет проще вместе с (44) то формализации нет - есть примерное описание задачи
ну что мне маткад ставить чтобы создать формулу чтобы не было подобных постов?
54 АгентБезопасной Нацио
 
25.08.22
15:06
(53) ну зачем маткад?
нужно просто нормально описывать. Типа:
Дано: есть заготовка - квадрат треугольной формы диаметром X*Y
Необходимо: разрезать на N кружков размерами V*W оптимальным способом.
резка производится ножом по всей длине заготовки
критерий оптимизации - минимальное количество резов вдоль длинной стороны квадрата...
55 Kassern
 
25.08.22
15:21
" вдоль длинной стороны квадрата" - не подскажите, какая сторона у квадрата самая длинная?)
56 Святофор
 
25.08.22
15:22
любой квадрат всегда можно разделить на три неравные половины
57 АгентБезопасной Нацио
 
25.08.22
15:28
(56) у "квадрата треугольной формы диаметром X*Y" - каждая сторона всегда длиннее любой другой. по определению.
58 bolobol
 
25.08.22
16:34
(54) Это прям надо записать - занимательная задача для ребёнка: квадрат треугольной формы с диаметром... нарезать кружочками... ножом вдоль длинной стороны! Это будет дома шоу!
59 Святофор
 
25.08.22
16:36
(58) нож лучше убрать... будет кровопролитье
60 bolobol
 
25.08.22
16:43
Да. "Квадрат треугольной произвольной формы, диаметром 30 на 60%, нарезали зелёными кружочками вдоль длинной стороны волнистыми линиями. Требуется найти останки квадрата... и выбросить в ведро(?)".. т.к. критерии оптимальности мы ещё не проходили.
Докручиваем задачу, пожалуйста...
61 andrewalexk
 
25.08.22
17:04
(54) :) я согласился с обозначением задача раскроя условно - ничего резать не надо и точного критерия нет
это было общее описание задачи
62 Kassern
 
25.08.22
17:10
Это вопрос из серии: у меня есть таблица с данными, каким алгоритмом мне ее лучше отсортировать? Все так же абстрактно и не понятно для каких целей.
63 andrewalexk
 
25.08.22
17:31
(62) :) неважно для каких целей - в (7) все есть для формализации
64 andrewalexk
 
26.08.22
13:18
:)
по факту технически не было нужды усложнять
простой проход после сортировки по размеру
(с учетом дискретности по одному измерению)
сводит задачу к 1 размерности
и процент брака будет около 5%
а если добавить второй проход
для учета остатков то 3.5%
65 andrewalexk
 
02.09.22
11:03
:)
кстати насчет так сказать программного раскроя по схеме
в питоне есть библиотека pillow для работы с изображениями
и почти нормально отрабатывает скрипт но есть странный глюк
с ней работал кто-нить?