나는 우표를 가장 편리한 크기로 스태킹하는 문제를 해결하려고합니다. 개체의 크기와 모양은 다양합니다. 모든 객체의 길이, 너비 및 높이를 알고 있습니다.스태킹 알고리즘 - 가능한 한 가장 작은 영역에 3d 객체를 스택하십시오.
예를 들어 고객은 2 개의 50x50x50cm 개체 (큐브)와 함께 (길이 x 너비 x 높이) 200x100x10cm 개체 (넓고 긴 평면)를 주문할 수 있습니다. 내가 이것을 포장해야한다면, 바닥에 평평한 넓은 물체와 나란히 2 개의 입방체를 놓을 것입니다.
누가 합리적으로 효율적인 알고리즘 솔루션을 가지고 있습니까? 아니면 내가이 문제를 해결하려고 생각하는 방식에 대한 접근법 일 수도 있습니다. 나는 일주일 내내 코딩을하고 있었고, 늦었고 뇌가 튀었습니다. 나는 아직 절망하지 않지만 내일은 쉬고 싶다.
나는 3 차원 공간을 나타내는 배열을 만들 것입니다. 각 배열 요소는 그 공간에서 1 평방/cm를 나타냅니다. 3D 공간 길이와 너비는 가장 긴 오브젝트와 가장 넓은 오브젝트를 기반으로합니다. 그런 다음 가장 큰 개체에서 가장 작은 개체까지 작업하고 충분한 '구멍'을 찾고 이동하면서 채울 수 있습니다.
나는 이것을 훨씬 더 효율적으로하는 수학 공식이있을 것이라고 확신하지만.
아이디어가 있으십니까?
먼저 제약 조건을 정의해야합니다. * 전체 길이, 너비, 높이, 볼륨 또는 모두 4를 최소화하려고합니까? * 둘 이상의 차원을 제한하려는 경우 각 차원과 관련된 상대 비용을 정의해야합니다. 예를 들어, 볼륨이 절반이지만 다른 솔루션의 길이가 3 배인 경우 솔루션이 더 좋습니까? – mbeckish
http://en.wikipedia.org/wiki/Bin_packing_problem –
일반적으로 볼륨을 제한하려고합니다. 나는 궁극적으로 큐브를 만들려고 노력할 것이다. –