Страница 1 из 1

Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 08.07.2009 (Ср) 14:03
Ronin
Доброго времени суток!

Задача такова: Имеется ячейка (коробка, называйте как хотите). Имееются ее габариты. Также имеются коробки поменьше, тоже с габаритами (коробки одинаковые). Коробочки можно крутить как угодно.
Задача - компактно разместить коробочки в ячейку.
Ищу алгоритм, который решает подобную задачу (алгоритм трехмерного размещения).
Я нашел кое-что но очень мало и не понятно. Если кто-нибудь сталкивался с такой задачей, поделитесь пожалуйста.

Заранее спасибо

Re: Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 08.07.2009 (Ср) 14:10
alibek
Насколько я помню, решения такой задачи не существует. Только перебор.
Хотя может и путаю с чем-то.

Re: Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 08.07.2009 (Ср) 14:14
Ronin
Решения существуют. То что коробочки одинаковые сильно упрощают задачу. т.к. всю информацию по проблеме размещения я нашел как раз для случая когда габариты коробочек разные..
А какой алгоритм перебора предложите?

Re: Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 08.07.2009 (Ср) 15:32
alibek
Если коробки одинаковые, тогда да, решение упрощается.
Можно искать НОД и если он будет найден, то соответственно, контейнер можно заполнить полностью.

Re: Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 08.07.2009 (Ср) 16:57
Ronin
Вопрос не в том можно ли заполнить. Вопрос в том как..
В конечном итоге я хочу получить количество коробок которые поместятся в ячейку, при оптимальном заполнении. При этом я сразу получу данные о координатах и повороте коробок. То есть виртуально заполнить смогу и даже визулизировать

Re: Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 08.07.2009 (Ср) 21:27
alibek
Если контейнер может быть заполнен полностью, то совершенно не важно, как именно заполнять, количество коробок будет всегда одинаковым.
Разные результаты могут быть только в том случае, когда полностью заполнить контейнер невозможно, тогда нужно минимизировать незанятый объем. А значит нужно находить НОД и по остатку от деления считать незанятый объем.

Re: Алгоритм оптимального трехмерного заполнения

СообщениеДобавлено: 09.07.2009 (Чт) 15:35
Ronin
Кто нибудь может скомпилить (см. вложение) и сделать импорт в .net? =) А то я не умею =)