Patrice T Ответов: 0

Оптимизация режущего материала


Всем привет,
Я имею дело с проблемой резки запасов с изюминкой.
У меня есть куски, чтобы разрезать луч фиксированной длины, но у кусков есть угловые разрезы, со многими углами.
_____________       ____________      _____________ 
¦            \     /            \    /            /
¯¯¯¯¯¯¯¯¯¯¯¯¯¯     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯    ¯¯¯¯¯¯¯¯¯¯¯¯¯
________________________________________
¦            \            \            /
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Я использую первую подгонку, которая прекрасно работает.
Я уже вращаю части, чтобы вложить углы.

Теперь я занимаюсь проблемой переупорядочения частей, чтобы свести к минимуму потери между частями. Может иметь до 50 штук в одном пучке, но обычно 10-20 штук.

Что я уже пробовал:

Пока ничего не пробовал, просто начал думать о проблеме.

Как бы вы поступили дальше ? Каким будет ваш алгоритм ?

[Обновление]
Я работал над этой проблемой все время.
Так что моя проблема находится на уровне генерации столбцов. Поскольку я использую эвристику FFD, у меня есть частичные столбцы, и мне нужно знать, могу ли я добавить еще один фрагмент в столбец.
Трудность заключается в том, что положение и ориентация каждой части имеет значение.
Мой подход пока более геометрический:
- Я считаю, что каждый кусок-это цепь.
- Я получаю 2 цепи с самым большим углом и заменяю их новой большей цепью, поставив 2 самых больших угла спина к спине. Полученную цепочку кладут обратно в пул цепей.
Я повторяю это до тех пор, пока в пуле не останется 1 последняя цепочка.
Все еще есть случаи, которые работают не так, как ожидалось, но выглядят многообещающе.

0x01AA

На первый взгляд и в случае, если вы можете рассчитать меру качества, я бы предложил "метод спуска симплекса", он же "метод амебы". Может быть, это поможет: Метод нельдера–меда - Википедия[^]

Это очень помогло мне решить нелинейные/переопределенные системы.

Patrice T

Я посмотрю.
Поскольку я просто прошу идеи, вы можете сделать это решением.

0x01AA

Это далеко от решения, это только предположение. И пока нет ответа, надеюсь, вы получите еще несколько полезных советов ;)

Patrice T

ОК

0x01AA

Я только что прочитал французскую версию в wiki; она очень короткая, лучше следовать английской версии. И последнее, но не менее важное: немецкая версия, с моей точки зрения, является лучшим (наиболее интуитивно объясненным) выбором :(

0 Ответов