Patent ID: 8352382

Claim:
A computer-implemented method, comprising: receiving, by one or more computers, an order specifying a plurality of items for delivery to a given customer; iteratively partitioning, by one or more computers, said plurality of items to assign each of said plurality of items into one of one or more shipment groups, wherein prior to said partitioning, a working set (W) of items in said order remaining to be assigned to a shipment group includes each of said plurality of items; and outputting, by one or more computers, an instruction that said one or more shipment groups be shipped to said given customer; wherein each of said one or more shipment groups is respectively designated to be shipped from a respective one of a plurality of nodes within a fulfillment network, wherein each iteration of said partitioning comprises: for the working set W of items in said order remaining to be assigned to a shipment group, determining a subset (S) of said working set W that optimizes: a fulfillment cost function for said subset S, divided by a number of items of said subset S; assigning said subset S to a respective shipment group; and removing said subset S from said working set W; wherein determining said subset S comprises iterating over multiple combinations of values for one or more decision variables, wherein each combination of said multiple combinations includes one or more values indicative of a particular node of said plurality of nodes, and wherein performing each iteration for a given combination of values of said multiple combinations of values comprises: generating a list (L) of items of working set W that can permissibly be shipped according to conditions represented by said given combination of values; determining a subset (L opt ) of list L that optimizes, under the conditions represented by said given combination of values: a cost of shipping a shipment group of the subset L opt , divided by the number of items in the subset L opt ; if the cost of shipping said shipment group of said subset L opt is more optimal than a current best cost C best , assigning said items of said subset L opt as the items of said subset S and assigning said cost of shipping said shipment group as said current best cost C best , and if the cost of shipping said shipment group of said subset L opt is not more optimal than the current best cost C best , leaving said subset S and said current best cost C best unchanged; wherein prior to iterating over said multiple combinations of values, said subset S is empty and said current best cost C best is a default value.