Method for assigning items into one or more containers and related electronic device
The method and electronic device optimize item allocation in containers by using mixed-integer formulations and heuristic techniques, addressing multiple constraints to minimize space and cost, thus improving logistics efficiency.
Patent Information
- Application Number
- JP2025114049
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-02-10
- Filing Date
- 2025-07-04
- Publication Date
- 2025-09-04
AI Technical Summary
Existing logistics systems face challenges in efficiently allocating items to containers while adhering to multiple constraints, leading to inefficient use of space and increased costs due to the complexity of handling various item attributes and constraints.
A method and electronic device that utilize compact mixed-integer formulations and heuristic-based techniques to optimize item allocation in containers, considering multiple constraints such as vendor, destination, and item type, while minimizing container usage and computational time.
The solution allows for efficient allocation of items to containers without conflicts, reducing wasted space and total container costs, while providing feasible solutions within a practical timeframe.
Smart Images

Figure 2025129377000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to the field of transportation and cargo.The present disclosure relates to a method and associated electronic device for allocating items to one or more containers. [Background technology]
[0002] According to world trade statistics, millions of loaded containers flow through various shipping lines every year across ports on major maritime trade routes (Trans-Pacific, Asia-Europe-Asia, and Trans-Atlantic). Containers are large, heavy-duty steel boxes of standard size designed for storing and transporting cargo in intermodal supply chains. The smallest twenty-foot equivalent unit (TEU) was 127 million global flows in 2014. The intermodal supply chain, the shipping network through which containerized cargo moves around the world, is considered the backbone of global trade.
[0003] Containerized cargo typically includes everything from automotive machinery spare parts to scrap metal and refrigerated cargo such as frozen meat, seafood, fruit and vegetables.
[0004] Many manufacturers and producers often use logistics service providers (LSPs) for the end-to-end transportation of cargo from the point of origin (manufacturer or producer) to the final distribution point (market or customer), linking their individual supply chains to the shipping company's logistics network, thereby enabling global marketing and sales of their products. Bookings received by LSPs typically come with a list of cargo attributes (e.g., vendor, type, associated bookkeeping number) that need to be packed into containers, a process also known as load planning. Consolidating cargo into available containers is a key task of LSPs that is frequently performed for efficient supply chain management. Once cargo arrives at the warehouse, warehouse managers must physically pack the cargo into containers to execute load planning. Depending on the LSP's configuration, load planning is performed during the planning stage and then executed by the warehouse, or directly by the warehouse. Summary of the Invention
[0005] Consolidation of cargo or items within a container must minimize total cost while adhering to constraints on both the cargo and the container. LSPs may provide one or more constraints imposed on cargo attributes that limit the number of items allowed per container. The process of packing items into containers that satisfy all one or more constraints is also called load planning. In real-world scenarios, customers and warehouse managers can impose multiple constraints. For example, customer-specific constraints may require that cargo from two different vendors cannot be placed in the same container, or that only limited quantities of a particular item can travel together, such as clothing items that cannot travel together with shoes. Additionally, constraints may be imposed to facilitate the reconsolidation process, such as requiring items or cargo destined for different destination ports not to be packed together in the same container.
[0006] There is a need for an electronic device and method that can address multiple constraints imposed on various attributes. Accordingly, there is a need for an electronic device and method for allocating items to one or more containers that reduces, mitigates, or addresses existing drawbacks and provides optimized allocation of items in an efficient manner (e.g., in time, e.g., computational time) while reducing wasted container space.
[0007] Disclosed is a method performed by an electronic device for allocating items to one or more containers. The method includes obtaining a plurality of attributes associated with the corresponding items. The method includes obtaining a set of container parameters associated with the corresponding container. The method includes obtaining one or more constraints, the one or more constraints limiting allocation of items within the same container. The method includes determining an allocation of the items to the one or more containers based on the attributes, the set of container parameters, and the one or more constraints. The method includes outputting an allocation plan for the items to the one or more containers based on the allocation.
[0008] Disclosed is a computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by an electronic device with a display and a touch-sensitive surface, cause the electronic device to perform any of the methods disclosed herein.
[0009] An advantage of the present disclosure is that the disclosed electronic device and method provide an optimized allocation of items in an efficient manner (e.g., in time, such as computation time) while reducing wasted container space. The optimized allocation respects constraints while reducing the total cost of the container.
[0010] These and other features and advantages of the present disclosure will be readily apparent to those skilled in the art from the following detailed description of illustrative embodiments thereof, taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a diagram illustrating a process by which the disclosed technology is performed by an exemplary electronic device according to the present disclosure. [Figure 2] 1 is a flowchart illustrating an example method performed by an electronic device for allocating items to one or more containers according to the present disclosure. [Figure 3] FIG. 1 is a block diagram illustrating an exemplary electronic device according to the present disclosure. [Figure 4] 1 is an illustration of an exemplary method according to the present disclosure presented as a scheme. DETAILED DESCRIPTION OF THE INVENTION
[0012] Various exemplary embodiments and details are described below with reference to the figures where relevant. It should be noted that the drawings may or may not be drawn to scale, and that elements of similar structure or function are represented by like reference numerals throughout the drawings. It should also be noted that the drawings are intended only to facilitate the description of the embodiments. They are not intended as an exhaustive description of the disclosure or as limiting the scope of the disclosure. Moreover, the illustrated embodiment need not have all the aspects or advantages shown. An aspect or advantage described in connection with a particular embodiment is not necessarily limited to that embodiment and may be implemented in any other embodiment, even if not so shown or explicitly described.
[0013] The figures are schematic and simplified for clarity, and other details are omitted, but merely show details that are helpful in understanding the disclosure. The same reference numerals are used throughout for identical or corresponding parts.
[0014] FIG. 1 illustrates an exemplary system 1 including exemplary containers C1 and C2, a supply chain 10 (such as an intermodal supply chain), and an electronic device (such as electronic device 300 of FIG. 3) disclosed herein configured to perform the method 100 disclosed herein, e.g., to provide item allocation according to the present disclosure.
[0015] As discussed in detail herein, the present disclosure relates to techniques for enabling container load planning in intermodal supply chains.
[0016] A container, as disclosed herein, refers to a housing in which an item to be transported is enclosed for transport. For example, a container can be considered a bin. The term container may be used interchangeably with bin in this disclosure.
[0017] As disclosed herein, an item refers to an object to be placed in a container for transportation. For example, an item can be considered an item of cargo, e.g., a cargo item, e.g., an object to be shipped. It should be noted that the term item may be used interchangeably with cargo. For example, an item may comprise goods to be placed in a container, such as consumer goods from a large manufacturing company; general consumer goods such as shoes, clothing, toys, etc.; fast-moving consumer goods such as packaged food, beverages, toiletries, etc.; pharmaceuticals, etc.
[0018] For example, the items disclosed herein can be considered goods that can be shipped in one or more dry containers, e.g., packaged in rectangular stackable cartons having variable weights and volumes.
[0019] The system 1 described herein may, for example, comprise one or more containers C1, C2 that are filled according to the method 100.
[0020] This disclosure may be viewed as addressing technical challenges faced by logistics service providers (LSPs) during cargo consolidation. Cargo consolidation refers to the process of consolidating a group of "less than container load (LCL)" cargo into a standard available container. This process may support the management of end-to-end transportation of cargo from origin to destination, e.g., final distribution point, as shown in FIG. 1.
[0021] A Container Freight Station (CFS) is a warehouse specifically used for consolidating and reconsolidating cargo into containers for transportation in the intermodal supply chain. The filled containers from the CFS are then transported by truck to a Container Yard (CY) and then loaded onto ships for ocean travel. Figure 1 shows the consolidation process at the origin CFS and the corresponding reconsolidation process at the destination CFS.
[0022] Packing items into the best possible available containers is the task of the consolidation process. For example, the objective of an LSP may be to pack cargo taking into account multiple constraints on the attributes of the items so that the cost of the containers used for shipping is minimized.
[0023] The consolidation process may handle both item and container constraints. For example, in a real-world shipping scenario, both the customer and the LSP may impose multiple constraints on item attributes. Customer-specific constraints include, for example, that shipments from two different vendors cannot be placed in the same container; that items of the same type from four or more different purchase orders cannot be placed together in the same container; and that two different types of items cannot be placed together, such as clothing items cannot be placed together with shoes. Similarly, some of the constraints on cargo placed by an LSP to facilitate reconsolidation include the following types: items destined for different destination ports cannot be packed together in the same container; and items with the same plant code attribute can be grouped together. For example, a high-priority item must immediately fill an available shipping slot or arrive at its destination before its scheduled arrival time; and the container being shipped must be packed with predetermined minimum and maximum container fill rates. Item allocation under conflict (e.g., cargo allocation) can be used as a prerequisite for the load planning process.
[0024] Allocating items to containers (e.g., bin packing) with constraints on the items packed in the containers (e.g., to avoid conflicts) is a hard NP problem. The fact that items have multiple attributes that allow for constraints makes an already difficult problem more complex and challenging. This disclosure presents techniques that allow for finding feasible and / or optimal solutions within a practical timeframe.
[0025] This disclosure presents, for example, techniques based on compact mixed-integer formulations and proposes heuristic-based techniques to address identified shortcomings.
[0026] Such techniques (e.g., graph coloring problems, conflicted bin packing) focus on the frequent, constant conflicts between pairs or sets of items. For example, mixed integer methods are symmetrical because the containers are identical, and require a long turnaround time in practice. The disclosed technique can be viewed as being based on a heuristic method for addressing load planning problems. The present disclosure can be viewed as addressing scenarios requiring container packing (e.g., bin packing) with constraints on multiple item attributes. The present disclosure can be viewed as a container packing technique (e.g., bin packing technique) with multiple attribute constraints on item attributes (not addressed in the prior art).
[0027] In real-world scenarios, several freight forwarders and supply chain network managers frequently face the problem of optimally packing items into containers / trucks for transportation in regular ocean / intermodal supply chains. Certain load planning engines try to maximize the fill amount in a container using standard greedy, heuristic methods or specific methods that can handle constraints on a single attribute. There is a need for a solution(s) to the problem that goes beyond the scope of greedy, heuristic methods / exact solutions for load planning problems with constraints on a single attribute.
[0028] FIG. 2 illustrates a flow diagram of an exemplary method performed by an electronic device for allocating items to one or more containers according to the present disclosure.
[0029] The method 100 includes obtaining (S102) a plurality of attributes associated with the corresponding items. For example, the set of items may include item I_1, item I_2, ..., item I_N, where N is an integer, and each item may have attributes, e.g., item I_1 may have attributes including attribute A_1_1, attribute A_1_2, ..., attribute A_1_M, where M is an integer. In one or more exemplary methods, the attributes may include one or more of a shipping order, a purchase order, an arrival date at an origin warehouse, a port of origin, a port of destination, a plant code, and an expected time of arrival. In one or more exemplary methods, the attributes may include one or more of a cargo type, a stock keeping unit, a vendor attribute, a cargo volume, and a cargo weight. For example, a reservation for an item (e.g., a cargo reservation) may include a list of attributes associated with the item. For example, attributes may include specific information about an item (e.g., cargo) such as shipping order (SO) number, purchase order (PO) number, arrival date at origin warehouse, port of origin, port of destination, plant code, estimated time of arrival (ETA), cargo category and type, stock keeping unit (SKU), vendor name or code, cargo volume and weight, etc. For example, an item or cargo may have, for example, 34-36 fields of information stored as attributes when the item reaches a CFS where it is subject to the consolidation process.
[0030] The method 100 includes obtaining (S104) a set of container parameters associated with the corresponding container. The set of container parameters may include one or more container parameters. In one or more example methods, the set of container parameters includes one or more of a volume of the container, a remaining capacity of the container, and a maximum capacity of the container.
[0031] The method 100 includes obtaining one or more constraints (S106), such as one or more constraints on two or more attributes of the plurality of attributes (e.g., at least two attributes of the plurality of attributes). Optionally, multiple constraints, including a first constraint and a second constraint, can be obtained. The one or more constraints limit the allocation of one or more items within the same container. Constraints may also be associated with items and / or containers that contain items (e.g., when items are placed in a container). In other words, constraints may be on multiple attributes in the present disclosure. For example, constraints may be considered as allowable limits on item attributes within a container.
[0032] In an illustrative example in which the disclosed technology is applied to demonstrate the use of constraints (e.g., conflict sets), the number of different stock-keeping units (SKUs) per container is limited. Assume there are six items P={p1, p2, p3, p4, p5, p6} belonging to three SKU types in the following order: SKU1={p1, p2, p3}, SKU2={p4, p5}, SKU3={p6}. A packing constraint is considered that restricts the container to hold items belonging to only two SKU types (dsKU=2). For example, the attribute under consideration is a={'SKU'} and the unique attribute label set is Ca={SKU1, SKU2, SKU3}. The item sets are as follows, where the SKUs are called groups: [Table 1]
[0033] For example, the set Csku consists of three groups whose items belong to subset Pc. The column |Pc| represents the number of items in each group. In this example, the constraints shown in equation (6) of the mathematical model for any j belonging to T can be expressed as follows: X 1,j +X 2,j +X 3,j ≦3.W c1,j X 4,j +X 5,j ≦2.Wc2,j (1) X 6,j ≦1.W c3,j
[0034] The constraint in equation (7) that sets an upper limit on the number of groups allowed in a bin can be expressed as follows: W c1,j +W c2,j +W c3,j ≦d SKU ,∀j∈T (2)
[0035] For example, the model considers three constraints per container, along with the allocation of specific SKUs within a container, and an additional constraint limiting the maximum number of distinct SKUs that can be placed in the container (by an upper limit, in this example dsKU-2).
[0036] In the disclosed equations, T denotes a set of containers, R denotes a resource type, P denotes a set of items, A denotes a set of attributes of items, Ca denotes a set of unique attribute labels for selected attributes belonging to A, and Pc ⊆ P denotes a set of items that share a value c ∈ Ca for attribute a. In the disclosed equations, the parameters are as follows: Qi denotes the cost in currency of container j, Vj,r denotes the capacity of container j of resource type r, and v i,r denotes the utilization of resource type r through item i, and da denotes an upper bound on the number of different values of attribute a that can be assigned to a single container. In the disclosed equation, the variables are: y j ∈{0,1} denotes a variable that indicates whether container j is in use, and x i,j ∈{0,1} denotes a variable that indicates whether item i is assigned to container j, and w c,j ∈{0,1} denotes a variable that indicates whether the value c∈Ca of attribute a exists in container j.
[0037] As an example of the application of this technology, let P be a set of items with a corresponding item volume (in cubic meters) and a list of attributes associated with the corresponding items, and let T be the set of containers available for packing the items, each with a cost Q (in dollars) and a maximum capacity V (in cubic meters). Constraints may provide conflict sets (limiting the number of different values of items) for attributes within a single container.
[0038] Let A be the set of relevant item attributes and C_a be the set of unique values of attribute a.
[0039] An itemset P is partitioned into disjoint subsets {p_c} such that each partition contains items that share the same attribute value c. {P_c} may represent a non-overlapping partition of P into subsets such that each subset contains items that belong to a uniquely selected attribute a in attribute set A. |P_c| denotes the number of items that share an attribute value. The parameter d_a defines the number of different attribute values that can occur simultaneously in a single container. The objective of the optimization problem is to assign all items to one or more containers while minimizing the total bin cost, without conflicts between items, and without violating constraints.
[0040] The binary variable x_{i,j} is used to assign item i\in P to container(s) j\in T and y_j, indicating whether bin j is used in the solution.
[0041] The binary variable w_{g,j} indicates whether an item with an attribute value in conflict group g exists in container j. The model can be formulated, for example, as follows:
number
[0042] The objective function (3) minimizes the total cost of used containers after allocating all items in set P. For example, the disclosed technique can be viewed as a compact formulation of the optimization problem as a mixed integer program.
[0043] The constraint shown in equation (4) ensures that each item is assigned to exactly one container.
[0044] The constraint shown in equation (5) ensures that the capacity of container j with respect to resource type r is respected by summing the total resource utilization of the items assigned to the container.
[0045] The constraints shown in equations (6) and (7) restrict the combinations of items within the same container. The constraints shown in equations (6) and (7) can be considered to be in conflict with the constraints shown in equations (4) and / or (5).
[0046] Specifically, if any item with attribute value c is assigned to container j due to the constraint shown in equation (6), then the indicator variable w_{c,j} is set to 1. The indicator variable w_{c,j} can take on values of 0 or 1, for example, to indicate whether an item with the constrained attribute is assigned to bin j.
[0047] The constraint shown in equation (7) places an upper bound on the number of distinct attribute values that can be aggregated into a single container. Finally, 8, 9, and 10 can be considered to define the variable domain.
[0048] The method 100 includes determining (S108) an assignment of the items to one or more containers based on attributes (eg, corresponding to the items), a set of container parameters, and one or more constraints.
[0049] In one or more example methods, one or more constraints are associated with multiple attributes (e.g., attributes of one or more items already placed in a given container). For example, the one or more constraints relate to attributes of the items to be placed in the container. For example, the one or more constraints may be imposed on the attributes by a customer. It can be seen that many constraints are associated with containers in a load plan based on attributes of items placed in the container.
[0050] In one or more exemplary methods, determining an allocation of items to one or more containers (S108) includes determining whether an attribute associated with the first item violates one or more constraints (S108A). For example, determining (S108A) may include determining whether the allocation of the items violates a set of constraints associated with allowable limits for the attribute in a container, such as the first container.
[0051] In one or more example methods, determining an assignment of items to one or more containers (S108) includes assigning the first item to a first container (e.g., a first available container) upon determining that an attribute associated with the first item (e.g., denoted as a first attribute associated with the first item) does not violate one or more constraints (S108B). For example, the method includes repeating process S108 until all items have been assigned.
[0052] For example, a constraint can be considered a condition that must be respected (e.g., not violated) by the load planning process. There can be many constraints that must be respected (e.g., not violated). For example, when considering the allocation of items that have the same destination as an attribute (e.g., items going to the same destination, such as a city), the following two constraints can be imposed with the same vendor in one container as an attribute. For example, the first constraint may limit to one vendor per container, and the second constraint may limit to one destination per container. For example, a constraint violation can occur when it is determined that items with different destinations as an attribute are assigned to the same container. For example, a constraint violation can occur when it is determined that items with different vendors as an attribute are assigned to the same container. For example, the constraints (e.g., one vendor per container, one destination per container) can be considered conditions that must be met for items to be assigned to a container.
[0053] The method 100 includes outputting (S110) an allocation plan for the items to one or more containers based on the allocation. For example, the allocation plan can be considered a loading plan.
[0054] Advantageously, the disclosed method allows all items to be allocated to containers without conflicts between items and without violating capacity constraints, while minimizing total container costs. The disclosed technique is easy to implement and configure, providing output, for example, in seconds. The disclosed technique can be implemented in production to generate viable solutions in a reasonable time (e.g., 30 minutes) for all practical scenarios of current shipping and logistics freight transport processes.
[0055] In one or more example methods, determining an allocation of items to one or more containers (S108) includes optimizing a set of performance parameters indicative of shipping performance based on the attributes, the set of container parameters, and the constraints (S108C). For example, shipping performance may include container cost. For example, optimizing the set of performance parameters (S108C) may include reducing container cost.
[0056] In one or more exemplary methods, optimizing the set of performance parameters (S108C) includes applying an allocation scheme to the item set and the container set (S108CA) with a plurality of counters indicating corresponding constraints imposed on attributes of the corresponding items. For example, the item set includes items, and the container set includes one or more containers. For example, the allocation scheme may include a scheme based on an approximation algorithm (e.g., a fit reduction scheme) and / or a strategy. For example, the allocation scheme may include a scheme based on a first fit reduction scheme, a next fit reduction scheme, or a best fit reduction scheme. For example, with respect to a heuristic algorithm of the model, an allocation scheme (e.g., a first fit reduction scheme, FFD, strategy) can be replaced with an alternative scheme of a best fit reduction scheme (which is computationally intensive and increases execution time) or a next fit reduction scheme (which does not order items and provides an inferior solution compared to FFD). The FFD scheme may include ordering items based on volume and ordering containers based on cost per volume. It can be seen that the FFD scheme involves repeatedly assigning the largest volume items to the lowest cost containers until all items have been assigned to containers.
[0057] For example, the allocation scheme may be based on a generalization of the Next Fit Decrease (NFD) algorithm using multiple counters to respect constraints imposed on item attributes (e.g., FFD, FFDC with conflicts).
[0058] In one or more example methods, the set of performance parameters includes one or more performance parameters indicative of a cost associated with one or more containers and / or a capacity associated with one or more containers, e.g., a maximum capacity associated with one or more containers, such as each container.
[0059] In one or more example methods, determining the allocation of items to one or more containers (S108) includes, for each item, determining whether the item fits into the remaining container capacity of one or more containers (e.g., the current container) without violating constraints based on attributes associated with the item (e.g., the item) (S108D).
[0060] In one or more example methods, determining an allocation of items to one or more containers (S108) includes allocating an item to a container (e.g., a first container) when it is determined that the item fits into the remaining capacity of the container without violating any constraints (S108E). For example, when it is determined that the item fits into the remaining capacity of the container without violating any constraints, the item is added to the set of items allocated to the current container.
[0061] In one or more example methods, determining an allocation of items to one or more containers (S108) includes aborting the allocation of the item to a container (e.g., a first container) (S108F) (e.g., not allocating the item to the container, e.g., not assigning the item to the container) when it is determined that the item does not fit into the remaining capacity of the container without violating constraints. For example, when it is determined that the item does not fit into the remaining capacity of the container without violating constraints, the item is not added to the set of items allocated to the current container.
[0062] In one or more exemplary methods, determining the allocation of items to one or more containers (S108) includes resolving any conflicts within the containers (S108G).
[0063] In one or more exemplary methods, determining the allocation of items to one or more containers (S108) includes determining whether the determined number of conflicts satisfies a criterion (S108H). For example, the criterion can be considered a condition set on a buffer of items for repeated allocation. For example, S108H can be expressed as Equation (11), where the second line of Equation 11 verifies that an upper bound da for all attributes holds by summing the number of unique values Ca for attribute a. The criterion may be based on a threshold, such as an upper bound da. For example, determining whether the determined number of conflicts satisfies the criterion (S108H) includes determining whether the determined number of conflicts is less than a predefined threshold. In other words, the criterion is met when the determined number of conflicts is less than a predefined threshold. For example, the conflicts are related to violations of constraints. For example, when it is determined that the determined number of conflicts does not satisfy the criterion, the method includes terminating the process. For example, when it is determined that the number of resolved conflicts meets the criteria, the method includes continuing to assign the items.
[0064] For example, the allocation process S108 can be described by initializing a set of container-item tuples that will hold the solutions. For example, the container T and itemset P are sorted and indexed in descending order of volumetric parameters v (utilization) and V (capacity), respectively, so that items with the lowest indexes have the highest values. For example, a set of counters is set depending on the number of conflicts that need to be respected during item allocation.
[0065] A Boolean function may be defined that returns true if the item fits into the remaining capacity of the current container without violating any conflict rules. If no constraints are violated, the container and item assignment is added to the solution, the remaining capacity vector is updated, and the assigned item is removed from the set of items to be processed. This process is repeated until all items in P are assigned to bins. Post-processing can be performed to further refine the loading plan, for example, so that there may be less free space in the container. If the nearest smaller bin can accommodate the already assigned item volume in the container (if a smaller container is still available), a re-evaluation of the loading plan is performed. Otherwise, the FFDC scheme may return the current solution.
[0066] In one or more example methods, determining an assignment of the item to one or more containers (S108) includes assigning the first item to a container other than the first container (S108I) upon determining that an attribute associated with the first item violates the first constraint and / or the second constraint.
[0067] Figure 3 is a block diagram illustrating an example electronic device 300 according to the present disclosure. The electronic device 300 includes a memory circuit 301, a processor circuit 302, and an interface 303. The electronic device 300 is configured to perform any of the methods disclosed in Figure 2. In other words, the electronic device 300 is configured to provide an allocation of items to one or more containers (e.g., a load plan).
[0068] The electronic device 300 is configured to obtain, via the interface 303 and / or the processor circuitry 302, a number of attributes associated with the corresponding item.
[0069] The electronic device 300 is configured to obtain, via the interface 303 and / or the processor circuitry 302, a set of container parameters associated with a corresponding container.
[0070] The electronic device 300 is configured to obtain one or more constraints via the interface 303 and / or the processor circuitry 302. The one or more constraints limit the allocation of items within the same container.
[0071] The electronic device 300, via the processor circuitry 302, is configured to determine an allocation of items to one or more containers based on the attributes, a set of container parameters, and constraints.
[0072] The electronic device 300 is configured to output, via the interface 303 and / or the processor circuitry 302, an allocation plan of the items to one or more containers based on the allocation.
[0073] 2 (e.g., any one or more of S108A, S108B, S108C, S108CA, S108D, S108E, S108F, S108G, S108H, S108I). The operations of the electronic device 300 may be embodied in executable logic routines (e.g., lines of instructions, software programs, etc.) stored in a non-transitory computer-readable medium (e.g., the storage circuitry 301) and executed by the processor circuitry 302.
[0074] Furthermore, the operations of electronic device 300 can be viewed as methods that electronic device 300 is configured to perform. Also, while the functions and operations described may be implemented in software, such functions may also be performed via dedicated hardware or firmware, or some combination of hardware, firmware, and / or software.
[0075] The storage circuit 301 may be one or more of a buffer, flash memory, a hard drive, removable media, volatile memory, nonvolatile memory, random access memory (RAM), or other suitable device. In a typical configuration, the storage circuit 301 may include nonvolatile memory for long-term data storage and volatile memory that serves as system memory for the processor circuit 302. The storage circuit 301 can exchange data with the processor circuit 302 via a data bus. Control lines and an address bus may also exist between the storage circuit 301 and the processor circuit 302 (not shown in FIG. 3 ). The storage circuit 301 is considered a non-transitory computer-readable medium.
[0076] The memory circuitry 301 may be configured to store an allocation plan or a loading plan in a portion of the memory.
[0077] 4 is an illustration of an exemplary method according to the present disclosure presented as a scheme. The scheme shown is based on a mixed integer programming model and the heuristic method FFDC, for example, using pseudocode for practical implementation.
[0078] The container T and itemset P are sorted and indexed in descending order of the volume parameters v (usage) and V (capacity), respectively, so that the items with the lowest index have the highest value.
[0079] The while loop in line 4 loops while there are still items to be assigned to the container. Starting with the largest container, line 6 initializes the remaining capacity to its total capacity and the selected items P* that fit into the container. If |P*| is empty, which means |P'|>0, no items fit into the largest container. Therefore, the algorithm returns an infeasible state (line 17). Next, the loop in line 9 attempts to assign an item when the constraints are not verified. Given container j, item i, solution R, and remaining capacity vector VR, we calculate the function constr(j,i,R,V R) → {true, false} is defined as follows:
number
[0080] where P'' = {i':(j',i')∈R:j'=j}∪{i}. Boolean function 11 returns true if item i conforms to the remaining capacity VrR of all resource types r and does not violate the conflict set. Thus, P'' defines the set of items currently assigned to container j. The second line of Equation 11 verifies that the upper bound da on all attributes holds by summing the number of unique values Ca of attribute a. An attribute value c∈Ca appears in container j if the intersection of items already associated with container P'' and items with that property PC is non-empty.
[0081] If no constraints are violated, line 12 adds the container-item assignment to the solution, updates the remaining capacity vector, and removes i from the items being processed. Note that we assume that pop operates to remove items from the list. This process is repeated until all items in P' are assigned to containers. After all items have been assigned to containers, line 19 performs post-processing. The function to reduce container size (R) refines the loading plan to reduce the free space in the container. If the nearest smaller container can accommodate the already allocated item volume in the container (if a smaller container is still available), the loading plan is re-evaluated. Otherwise, the FFDC algorithm returns the current loading plan.
[0082] Embodiments of the method and product (electronic device) according to the present invention are described in the following items. Item 1. A method performed by an electronic device for assigning items to one or more containers, comprising: Obtaining a plurality of attributes associated with the corresponding item (S102); Obtaining a set of container parameters associated with the corresponding container (S104); Obtaining one or more constraints (S106), wherein the one or more constraints limit allocation of items within the same container; determining (S108) an allocation of the items to the one or more containers based on the attributes, the set of container parameters, and the one or more constraints; outputting (S110) an allocation plan for the items to the one or more containers based on the allocation; A method comprising:
[0083] Item 2. The method of item 1, wherein the one or more constraints are associated with the plurality of attributes.
[0084] Item 3. Determining the allocation of the items to the one or more containers (S108) includes: Determining whether an attribute associated with the first item violates the one or more constraints (S108A); and assigning the first item to a first container (S108B) upon determining that the attributes associated with the first item do not violate the one or more constraints.
[0085] Item 4. Determining the allocation of the items to the one or more containers (S108) includes: The method of any of the preceding items, comprising optimizing (S108C) a set of performance parameters indicative of shipping performance based on the attributes, the set of container parameters, and the constraints.
[0086] Item 5. The method according to Item 4, wherein optimizing the set of performance parameters (S108C) includes applying an allocation scheme to an item set and a container set (S108CA) comprising a plurality of counters indicating the corresponding constraints imposed on the attributes of the corresponding items.
[0087] Item 6. The method of any of the preceding items, wherein the set of performance parameters includes one or more performance parameters indicative of a cost associated with the one or more containers and / or a capacity associated with the one or more containers.
[0088] Item 7. A method according to any of the preceding items, wherein the attributes include one or more of a shipping order, a purchase order, an arrival date at an origin warehouse, a port of origin, a port of destination, a plant code, an estimated time of arrival, a cargo type, a stock keeping unit, a vendor attribute, a volume of the cargo, and a weight of the cargo.
[0089] Item 8. The method according to any one of Items 1 to 7, wherein the set of container parameters includes one or more of the volume of the container, the remaining capacity of the container, and the maximum capacity of the container.
[0090] Item 9. Determining the allocation of the items to the one or more containers (S108) includes: The method of any of the preceding items, including: for each item, determining (S108D) whether the item fits into the remaining container capacity of the one or more containers without violating the constraints based on the attributes associated with the item.
[0091] Item 10. Determining the allocation of the items to the one or more containers (S108) includes: Item 10. The method according to item 9, further comprising: allocating the item to the container when it is determined that the item fits into the remaining capacity of the container without violating the constraint (S108E).
[0092] Item 11. Determining the allocation of the items to the one or more containers (S108) includes: 11. The method according to item 9 or 10, comprising: canceling the allocation of the item to the container when it is determined that the item does not fit into the remaining capacity of the container without violating the constraint (S108F).
[0093] Item 12. Determining the allocation of the items to the one or more containers (S108) includes: Determining the number of conflicts in the container (S108G); and determining whether the determined number of conflicts meets a criterion (S108H).
[0094] Item 13. Determining the allocation of the items to the one or more containers (S108) includes: The method according to any one of items 3 to 12, comprising, when it is determined that an attribute associated with the first item violates the one or more constraints, assigning the first item to a container other than the first container (S108I).
[0095] Item 14. An electronic device comprising a memory circuit, a processor circuit, and an interface, the electronic device configured to perform any of the methods described in any of Items 1 to 13.
[0096] Item 15. A computer-readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by an electronic device having a display and a touch-sensitive surface, cause the electronic device to perform any of the methods of any of items 1 to 13.
[0097] The use of terms such as "first," "second," "third," "fourth," "primary," "secondary," and "tertiary" does not imply a particular order, but is included to identify individual elements. Furthermore, the use of terms such as "first," "second," "third," "fourth," "primary," "secondary," and "tertiary" does not imply any order or importance; rather, terms such as "first," "second," "third," "fourth," "primary," "secondary," and "tertiary" are used to distinguish one element from another. Note that, as used throughout this specification and elsewhere, terms such as "first," "second," "third," "fourth," "primary," "secondary," and "tertiary" are used merely for labeling purposes and do not imply any particular spatial or temporal order. Furthermore, in one or more embodiments, the labeling of a first element may not imply the presence of a second element, or vice versa.
[0098] It can be understood that Figures 1-4 include some circuits or operations shown with solid lines and some circuits or operations shown with dashed lines. Circuits or operations configured with solid lines are circuits or operations included in the broadest exemplary embodiment. Circuits or operations included with dashed lines are exemplary embodiments that may be taken in addition to, included as part of, or are additional circuits or operations of the circuits or operations of the exemplary embodiment with solid lines. It should be understood that these operations do not have to be performed in the order presented. Furthermore, it should be understood that not all operations need be performed. The exemplary operations can be performed in any order and in any combination.
[0099] It should be noted that the term "including" does not necessarily exclude the existence of elements or steps other than the exemplified elements or steps.
[0100] It should be noted that the word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements.
[0101] Furthermore, it should be noted that any reference numerals do not limit the scope of the claims, and that the exemplary embodiments may be implemented at least in part by both hardware and software, and that several "means," "units," or "devices" may be implemented by one and the same item of hardware.
[0102] Additionally, the various example methods, devices, nodes, and systems described herein represent general method steps or processes, and may be implemented in one aspect by a computer program product embodied in a computer-readable medium including computer-executable instructions, such as program code, executed by a computer in a network environment. Computer-readable media may include removable and non-removable storage devices, including, but not limited to, read-only memory (ROM), random-access memory (RAM), compact discs (CDs), digital versatile discs (DVDs), and the like. Generally, program circuitry may include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program circuitry represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.
[0103] While functions have been shown and described, it will be understood that no limitation on the claimed disclosure is intended, and it will be apparent to those skilled in the art that various changes and modifications can be made without departing from the scope of the claimed disclosure. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The claimed disclosure is intended to cover all alternatives, modifications, and equivalents.
Claims
1. 1. A method performed by an electronic device for allocating items to one or more containers, comprising: Obtaining a plurality of attributes associated with the corresponding item (S102); Obtaining a set of container parameters associated with the corresponding container (S104); Obtaining one or more constraints (S106), wherein the one or more constraints limit allocation of items within the same container; determining (S108) an allocation of the items to the one or more containers based on the attributes, the set of container parameters, and the one or more constraints; outputting (S110) an allocation plan for the items to the one or more containers based on the allocation; A method comprising:
2. The method of claim 1 , wherein the one or more constraints are associated with the plurality of attributes.
3. Determining the allocation of the items to the one or more containers (S108) includes: Determining whether an attribute associated with the first item violates the one or more constraints (S108A); and assigning (S108B) the first item to a first container upon determining that the attributes associated with the first item do not violate the one or more constraints.
4. Determining the allocation of the items to the one or more containers (S108) includes: The method according to any one of claims 1 to 3, further comprising optimizing (S108C) a set of performance parameters indicative of shipping performance based on the attributes, the set of container parameters, and the constraints.
5. 5. The method of claim 4, wherein optimizing the set of performance parameters (S108C) comprises applying an allocation scheme to item sets and container sets (S108CA) comprising a plurality of counters indicating the corresponding constraints imposed on the attributes of the corresponding items.
6. 6. The method of claim 1, wherein the set of performance parameters comprises one or more performance parameters indicative of a cost associated with the one or more containers and / or a capacity associated with the one or more containers.
7. 7. The method of claim 1, wherein the attributes include one or more of a shipping order, a purchase order, an arrival date at an origin warehouse, a port of origin, a port of destination, a plant code, an estimated time of arrival, a cargo type, a stock keeping unit, a vendor attribute, a volume of the cargo, and a weight of the cargo.
8. The method according to any one of claims 1 to 7, wherein the set of container parameters comprises one or more of the volume of the container, the remaining capacity of the container, and the maximum capacity of the container.
9. Determining the allocation of the items to the one or more containers (S108) includes: The method of any of claims 1 to 8, comprising: for each item, determining (S108D) based on the attributes associated with the item whether the item fits into the remaining container capacity of the one or more containers without violating the constraints.
10. Determining the allocation of the items to the one or more containers (S108) includes:
10. The method of claim 9, comprising allocating the item to the container when it is determined that the item fits into the remaining capacity of the container without violating the constraints (S108E).
11. Determining the allocation of the items to the one or more containers (S108) includes:
11. The method of claim 9 or 10, comprising: aborting (S108F) the allocation of the item to the container when it is not determined that the item can fit into the remaining capacity of the container without violating the constraints.
12. Determining the allocation of the items to the one or more containers (S108) includes: Determining the number of conflicts in the container (S108G); Determining whether the determined number of conflicts satisfies a criterion (S108H).
13. Determining the allocation of the items to the one or more containers (S108) includes:
13. The method of claim 3, further comprising: upon determining that an attribute associated with the first item violates the one or more constraints, assigning the first item to a container other than the first container (S108I).
14. An electronic device comprising a memory circuit, a processor circuit and an interface, said electronic device being configured to perform any of the methods according to any of claims 1 to 13.
15. 14. A computer-readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by an electronic device with a display and a touch-sensitive surface, cause the electronic device to perform any of the methods of any of claims 1 to 13.