Optimized container loading using a package-position solver
To determine the optimal orientation of packages within a container, packages are ranked according to a score defined by an algorithm. A first package position is determined from a first set of package dimensions and is oriented within a container. A second package position is determined from a second set of package dimensions and is oriented within the container. The packages are oriented such that the orientation of the first package position is different from the orientation of the second package position with no overlap, and a threshold portion of the lower face of the packages abuts another package or the container base. Packages are continuously oriented into the container volume until the total package volume reaches a threshold container volume, while minimizing the total package volume. The final orientation of the packages is output as a three-dimensional arrangement of the packages within the container volume.
1 . A computerized method comprising:
accessing, by a processor, container data comprising container dimensions defining a container volume;
accessing, by the processor, package data comprising package dimensions and package requirements corresponding to one or more packages to be arranged within the container volume;
ranking, by the processor, the one or more packages using a package score;
assigning, by the processor, packages of the one or more packages to a sub-list, wherein each package of is assigned to the sub-list according to an order of the ranking and a set of packing criteria;
arranging, by the processor, packages of the sub-list into a position and orientation within the container volume, wherein the position and orientation of the packages are adjusted to avoid package overlap until the coordinates of each package do not overlap with the coordinates of another package positioned within the container; and
generating, by the processor, a three-dimensional illustration or data artifact corresponding to the position and orientation of each package within the container volume, wherein the data artifact includes step-by-step instructions for placing the packages within the container based on the coordinates of each package and the position and orientation of each package inside the container relative to other packages;
packing, by the processor, the container by transmitting machine-executable instructions to an automated system causing the automated system to load the packages into the container based on the data artifact.
2 . The method of claim 1 , wherein the position and orientation of a first package is different from the orientation and position of the second package within the container volume.
3 . The method of claim 2 , wherein a threshold portion of a lower first face of the first package and a second lower face of the second package each abuts a position of a container base or another package.
4 . The method of claim 3 , wherein the position and orientation of the arranged packages of the sub-list maximizes a total package position within the container volume.
5 . The method of claim 1 , wherein the set of packing criteria comprises at least one of:
packaging requirements for each package are compatible with container requirements;
packaging requirements for each package are compatible with package requirements of other packages on the sub-list;
package dimensions are compatible with loading the package into the container;
cumulative packing weight of packages on the sub-list is less than maximum packing weight for the container; and
cumulative packing volume is less than the container volume.
6 . The method of claim 1 , wherein packages are assigned to the sub-list until a total weight of the packages is greater than a threshold portion of a maximum packing weight for the container.
7 . The method of claim 1 , wherein packages are assigned to the sub-list until a total volume of the packages is greater than a threshold portion of a container volume.
8 . The method of claim 1 , further comprising, continuously arranging packages from the sub-list until the total volume is greater than a threshold container volume.
9 . The method of claim 1 , further comprising:
modifying the container dimensions to define a rectangular prism; and
defining a volume of negative space created when modifying the container dimensions.
10 . The method of claim 9 , wherein the rectangular prism is defined based on maximum dimensions for the container.
11 . One or more computer storage media storing computer-readable instructions that when executed by a processor, cause the processor to perform operations, the operations comprising:
accessing container data comprising container dimensions and irregular shapes defining a container volume;
accessing package data comprising package dimensions and package requirements corresponding to one or more packages to be arranged within the container volume;
ranking the one or more packages using a package score;
assigning packages of the one or more packages to a sub-list, wherein each package is assigned to the sub-list according to an order of the ranking and a set of packing criteria, wherein packages are assigned to the sub-list until a total weight of the packages is greater than a threshold portion of a maximum packing weight for the container and a total volume of the packages is greater than a threshold portion of a container volume;
arranging packages of the sub-list into a position and orientation within the container volume, wherein the position and orientation of the packages are adjusted to avoid package overlap until the coordinates of each package do not overlap with the coordinates of another package positioned within the container;
generating a three-dimensional illustration or data artifact corresponding to the position and orientation of each package within the container volume, wherein the data artifact includes step-by-step instructions for placing the packages within the container based on the coordinates of each package and the position and orientation of each package inside the container relative to other packages; and
packing the container by transmitting machine-executable instructions to an automated system causing the automated system to load the packages into the container based on the data artifact.
12 . The media of claim 11 , wherein the position and orientation of a first package is different from the orientation and position of the second package within the container volume.
13 . The media of claim 12 , wherein a threshold portion of a lower first face of the first package and a second lower face of the second package each abuts a position of a container base or another package.
14 . The media of claim 13 , wherein the position and orientation of the arranged packages of the sub-list maximizes a total package position within the container volume.
15 . The media of claim 11 , wherein the set of packing criteria comprises at least one of:
packaging requirements for each package are compatible with container requirements;
packaging requirements for each package are compatible with package requirements of other packages on the sub-list;
package dimensions are less than container door dimensions;
cumulative packing weight of packages on the sub-list is less than maximum packing weight for the container; and
cumulative packing volume is less than a volume of the container.
16 . The media of claim 11 , further comprising:
modifying the container dimensions to define a rectangular prism; and
defining a volume of negative space created when modifying the container dimensions.
17 . The media of claim 16 , wherein the rectangular prism is defined based on maximum dimensions for the container.
18 . A system comprising:
at least one processor; and
one or more computer storage media storing computer-readable instructions that when executed by the at least one processor, cause the at least one processor to perform operations comprising:
accessing container data comprising container dimensions defining a container volume;
modifying the container dimensions to define a rectangular prism;
defining a volume of negative space created when modifying the container dimensions, wherein the rectangular prism is defined based on maximum dimensions for the container;
accessing package data comprising package dimensions and package requirements corresponding to one or more packages to be arranged within the container volume;
ranking the one or more packages using a package score;
assigning packages of the one or more packages to a sub-list, wherein each package is assigned to the sub-list according to an order of the ranking and a set of packing criteria;
arranging each package of the sub-list into a position and orientation within the container volume, wherein the position and orientation of the packages are adjusted to avoid package overlap until the coordinates of each package do not overlap with the coordinates of another package positioned within the container;
generating a three-dimensional illustration or data artifact corresponding to the position and orientation of each package within the container volume, wherein the data artifact includes step-by-step instructions for placing the packages within the container based on the coordinates of each package and the position and orientation of each package inside the container relative to other packages; and
packing the container by transmitting machine-executable instructions to an automated system causing the automated system to load the packages into the container based on the data artifact.
19 . The system of claim 18 , wherein packages are assigned to the sub-list until a total weight of the packages is greater than a threshold portion of a maximum packing weight for the container.
20 . The system of claim 18 , wherein packages are assigned to the sub-list until a total volume of the packages is greater than a threshold portion of a container volume.