powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите с интересным алгоритмом, пжлст
14 сообщений из 14, страница 1 из 1
Помогите с интересным алгоритмом, пжлст
    #38210325
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, славный и доблестный народ, программисты!

Есть две таблицы. Обе нужны для хранения материалов. У материалов есть свойства: цвет, тип и что самое сложное - форма (или размер?). Нужен алгоритм (или движок?), который сможет по-умному помочь конструктору со сборкой проектов (например деталей).
Умность №1 заключается во в чем: для изготовления детали потребуется лист железа размером 2х2 метра квадратной формы. А на складе валяется лист с размером 3х3. Нужно, чтоб программа "обрезала" имеющийся лист на складе (то есть 3х3 - 2х2, вычитание фигур), и запечатлела эти изменения в таблице. Более того, детали же разные, разные формы, поэтому со следующей деталей уже сложнее: она меньше размером и треугольной формы. Умность №2 заключается в следующем: робот ищет подходящий материал в таблице по форме, которую имеют материалы. И прежде всего смотрит те материалы, формы которых уже были изменены ранее. И вот, к примеру, терминатор находит тот тот самый шестигранник, оставшийся с предыдущего раза и примеряет к нему наш треугольник. Видит, что треугольник вмещается и аккуратно с краюшку отрезает квадратную область, из которой потом мастер вырежет треугольник.
Умность №3 похожая, только теперь уже с деталью круглой формы.

Нюанс №1: терминатор должен всегда отрезать квадратную область независимо от того, какой формы ему нужна деталь.
Нюанс №2: терминатор должен всегда отрезать с краюшку имеющегося листа (а не с середины), чтобы можно было потом еще отрезать от этого листа (соблюдать экономичность).

Приму любую помощь и совет, пример кода на любом языке, как вам удобно. Мне самое главное - понять принцип, логику.
И да: желательно с применением ООП, мне так легче понять будет. Ну это только желательно, а не обязательно )))

Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38210397
Rivmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic,

Для экономичности нужно отрезать прямоугольник, а не квадрат.

Если ослабить условия на экономичность:
а) заготовка всегда имеет прямоугольную форму, те терминатор всегда проводит рез только параллельно одной из сторон заготовки и на всю ее длину.

то задача сведется только к задаче определения прямоугольника с минимальными линейными размерами, в который можно вписать требуемую деталь. Найти подходящую заготовку в таблице прямоугольников - проблем не представляет.
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38210473
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivmer, спасибо за идею с всегда прямоугольным отрезом, но ослаблять экономичность недопустимо. А вот то,что экономичней будет отрезать не квадрат, а прямоугольник - это верно, буду иметь ввиду. А как можно хранить изменение формы в бд?
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38210626
Rivmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic,

Из перечисленных фигур единственной фигурой, для которой будет выигрыш при отказе от прямоугольной формы заготовки, является треугольник. Если треугольных деталей немного, то на это вполне можно забить, тк выгода от оптимального раскроя врядли превысит расходы на учет и хранение кучи разноформенных заготовок.

И вообще если набор деталей фиксированный, то проще заранее рассчитать оптимальный раскрой каждого вида заготовок и не париться.
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38211816
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic,

любая форма, в том числе трехмерная, имеет описание в виде системы уравнений

то, что одна форма может быть включена в другую - тоже отношение между системами уравнений
ЗЫ Из всех, которые включают, выбираем ту, с которой минимальная разница по площади (объему)

Также, если сразу много фигур надо вырезать - тоже системы уравнений.

Хитрость тогда - умнее строить приближенные решения.
ЗЫ В этом вроде и соревнуются метода (построения алгоритмы) оптимального раскроя.

Это можно назвать алгебраических подход.
И как думается дальше - если все кривые приближать многочленами, то в БД будут храниться коэффициенты многочленов, сгруппированные в системы уравнений.
...
ну и пошло поехало до товарного вида
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38213806
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic,

В качестве алгоритма предлагаю наполнять рюкзак

Да и незабудьте хранить место где временно положили обрезки.
А то поиск по складу обойдется в бесконечность раз дороже, чем расчет по базе.

А также наклейку и сканировку штрихкодов.
Если дядя Вася с похмелья переставит детали местами во время
технического обслуживания робота.
:)
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38215104
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДохтаР,
Звучит заманчиво. Только вот я понять никак не могу, как применить эту задачу к моей? У меня задача скорее из области оптимального раскроя, т.е. как найти выгодное место, чтоб отрезать. Или я не въезжаю в тему, что скорее всего так и есть
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38215126
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic, у тебя только треугольники круги и прямоугольники? Или есть еще фигуры сложной (невыпуклой) полигональной формы?
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38215298
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторCryptic, у тебя только треугольники круги и прямоугольники? Или есть еще фигуры сложной (невыпуклой) полигональной формы?

mayton, у меня форма требуемой вырезки может быть и сложной ненормированной формы (любой, короче, формы). Но вот как мне кажется, нужно хотя бы сделать оптимальный расчет, где и какую отрезать прямоугольную область, чтобы мастер, к примеру мог уже из отрезанного прямоугольника вырезать что-то фигурное, что ему требуется. Конечно, при этом есть процент потери материала, но похоже, лучше этого в реальном производстве еще не придумали.
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38215300
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть идея. Но прокомментируйте ее адекватность, пжлст, ув. программисты.

В таблице хранения материалов хранить двумерный массив булевского типа. Количество его элементов будет совпадать с количеством сантиметров в размерах листов материалов. Например 300x300 см. размер листа ДСП. И пока лист еще ни разу не резали, все элементы его массива будут равны true. Но как только отрезали четвертую часть, та область, которой не стало будет равна false. Тем самым форма, которая будет изменяться - фиксируется в бд.
Да кстати, еще и площади можно отнимать и записывать новое значение, чтобы по площади можно было автоматически проверять, имеет ли смысл вообще тот или иной лист кроить.

Как считаете, внес я новое слово в эту область? :)
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38215372
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CrypticУ меня есть идея. Но прокомментируйте ее адекватность, пжлст, ув. программисты.

В таблице хранения материалов хранить двумерный массив булевского типа. Количество его элементов будет совпадать с количеством сантиметров в размерах листов материалов. Например 300x300 см. размер листа ДСП. И пока лист еще ни разу не резали, все элементы его массива будут равны true. Но как только отрезали четвертую часть, та область, которой не стало будет равна false. Тем самым форма, которая будет изменяться - фиксируется в бд.
Да кстати, еще и площади можно отнимать и записывать новое значение, чтобы по площади можно было автоматически проверять, имеет ли смысл вообще тот или иной лист кроить.

Как считаете, внес я новое слово в эту область? :)
Нет. Это квантование непрерывного пространства листа на никому не нужные отрезки.
У тебя будет погрешность расчётов свободного места. И большое количество мелких
лекал нельзя будет разместить на листе. Алгоритм скажет что места не хватает
хотя фактически место есть за счёт неиспользуемой "сетки" (это гарантированный зазор
1 см между всеми лекалами). Как следствие - расход материалов процентов на 10-20%
и анальные кары разработчика тоесть тебя.
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38215407
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic,

То, что из кривого материала нужно вырезать несколько кусков - это еще не самое сложное. Как уже сказал AlexandrPlus, вопрос "а получается ли эта фиговина из той заготовки" имеет чисто математическое решение в пределах школьного курса геометрии (ну, может, олимпиадного :).

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

Так вот, тут сложность появляется, когда эта фиговина может получиться из той заготовки множеством способов . Практически бесконечным числом способов. И нужно выбрать из них оптимальный (по каким-то критериям), либо указать, что добиться указанных критериев даже миллионом способов невозможно, и какие-то критерии надо смягчить. Эта задача уже из области высшей математики и диссертаций.

На практике, самое интересное в таких задачах - подобрать некие эмпирические алгоритмы для достижения удовлетворительных результатов, вместо попыток перебора всего и вся.
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38221218
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДохтаР, до меня сегодня ночью дошло, как применить задачу рюкзака в моей задаче. Спасибо большое за совет. Сразу и не оценил. Я уже даже нашел алгоритм в сети. Буду продолжать пляски с бубном :)
...
Рейтинг: 0 / 0
Помогите с интересным алгоритмом, пжлст
    #38221695
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тут я поместил свою схему бд, взгляните
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите с интересным алгоритмом, пжлст
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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