Вложение максимального количества фигур на поверхности - PullRequest
19 голосов
/ 20 апреля 2010

В промышленности часто возникает проблема, когда вам нужно рассчитать наиболее эффективное использование материала, будь то ткань, дерево, металл и т. Д. Таким образом, отправной точкой является X количество форм заданных размеров, сделанных из многоугольников и/ или изогнутые линии, и целью является другой многоугольник заданных размеров.

Я предполагаю, что многие из существующих пакетов CAM реализуют это, но не имея опыта использования их или их внутренних компонентов, какой вычислительный алгоритм используется, чтобы найти наиболее эффективное использование пространства?Может кто-нибудь указать мне книгу или другой справочник, в котором обсуждается эта тема?

Ответы [ 2 ]

16 голосов
/ 21 апреля 2010

После того, как Эндрю в своем ответе указал мне верное направление и назвал проблему для меня, я решил представить результаты своих исследований здесь в отдельном ответе.

Это действительно проблема упаковки, а точнее говоря, проблема вложенности. Проблема математически NP-сложна, и поэтому используемые в настоящее время алгоритмы представляют собой эвристические подходы. Кажется, не существует каких-либо решений, которые могли бы решить проблему за линейное время, за исключением тривиальных наборов задач. Решение сложных проблем занимает от нескольких минут до нескольких часов на современном оборудовании, если вы хотите найти решение с хорошим использованием материала. Существуют десятки коммерческих программных решений, которые предлагают вложение фигур, но я не смог найти никаких решений с открытым исходным кодом, поэтому нет реальных примеров, когда можно было бы увидеть реализованные алгоритмы.

Отличное описание проблемы раскроя и раскроя с историческими решениями можно найти в статье, написанной Бенни Кьером Нильсеном из Копенгагенского университета ( Нильсен ).

Общий подход, по-видимому, заключается в том, чтобы смешивать и использовать несколько известных алгоритмов, чтобы найти лучшее решение для вложенности. Эти алгоритмы включают (управляемый / повторный) локальный поиск , Быстрый поиск по соседству , основанный на Нет- Подходит для многоугольника и эвристика Jostling . Я нашел отличную статью на эту тему с фотографиями того, как работают алгоритмы. Он также имел тесты различных программных реализаций. Эта статья была представлена ​​на Международном симпозиуме по планированию 2006 г. С. Уметани и др. ( Уметани ).

Относительно новый и, возможно, лучший на сегодняшний день подход основан на Гибридный генетический алгоритм (HGA), гибрид, состоящий из имитированный отжиг и генетический алгоритм , который был описан У Цинмином и др. Из Уханьского университета ( Quanming ). Они реализовали это с помощью Visual Studio, базы данных SQL и набора инструментов оптимизации генетического алгоритма (GAOT) в MatLab.

5 голосов
/ 20 апреля 2010

Вы имеете в виду хорошо известную в науке область упаковки, для которой определены различные задачи и проведены исследования как для 2-мерного, так и для 3-мерного пространства.

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

Некоторые пакеты вполне могут принять эвристический метод оценки (что, я подозреваю, так и будет), а некоторые могут пойти на все, чтобы рассчитать все возможности, чтобы получить абсолютно правильный ответ.

http://en.wikipedia.org/wiki/Packing_problem

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