US20180260878A1 - Item delivery fulfillment plan determination - Google Patents
Item delivery fulfillment plan determination Download PDFInfo
- Publication number
- US20180260878A1 US20180260878A1 US15/640,267 US201715640267A US2018260878A1 US 20180260878 A1 US20180260878 A1 US 20180260878A1 US 201715640267 A US201715640267 A US 201715640267A US 2018260878 A1 US2018260878 A1 US 2018260878A1
- Authority
- US
- United States
- Prior art keywords
- items
- order
- orders
- random
- valid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Managing shopping lists, e.g. compiling or processing purchase lists
- G06Q30/0635—Managing shopping lists, e.g. compiling or processing purchase lists replenishment orders; recurring orders
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
Definitions
- Computer systems are widely used for many applications in today's digital environment.
- computer applications perform computationally intensive tasks to derive usable results for real-world, practical applications. This may include situations that require analysis of large amounts of data, or situations where the computer application performs computations on a large number of variables, taking into consideration multiple rules and constraints, to derive usable results for a real-world, practical application.
- Routing of items in a network is one such example of a real-world, practical application whereby multiple variables and constraints are to be considered to determine optimal routes of the items from providers to destinations.
- FIG. 1 shows a block diagram of an example network in which features of the present disclosure may be implemented in accordance with an embodiment of the present disclosure
- FIG. 2 shows a block diagram of an apparatus in accordance with an embodiment of the present disclosure
- FIG. 3 depicts a flow diagram of a method for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors pertaining to the delivery of items over a network in accordance with an embodiment of the present disclosure
- FIGS. 4A and 4B collectively, depict a flow diagram of a method for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors pertaining to the delivery of items over a network in accordance with another embodiment of the present disclosure.
- FIG. 5 depicts a flow diagram of a method for generating a candidate fulfillment plan in accordance an embodiment of the present disclosure.
- the terms “a” and “an” are intended to denote at least one of a particular element.
- the term “includes” means includes but not limited to, the term “including” means including but not limited to.
- the term “based on” means based at least in part on.
- the identified fulfillment plan may be the best plan from among a plurality of candidate fulfillment plans. That is, the identified fulfillment plan may be the plan under which the items may be delivered in a manner that results in minimized costs, minimized delivery times, minimized violations of rules, and/or a combination of minimized costs, minimized delivery times, and/or minimized violations of rules among the candidate fulfillment plans.
- the identified fulfillment plan may be defined as a fulfillment plan that results in the items being delivered in a substantially optimized manner as may be determined within a certain amount of time and/or a certain number of iterations.
- the apparatuses disclosed herein may generate a rule-based model of a distributed order fulfillment problem and may solve that problem to identify the fulfillment plan. That is, the apparatuses disclosed herein may model the order fulfillment problem as a network of potential providers, potential intermediaries, and a group of unfilled orders. In addition, the apparatuses may implement a heuristic method to solve the order fulfillment problem in a manner that may result in compliance with a plurality of factors pertaining to the delivery of the items in the orders being maximized among the possible fulfillment plans. Particularly, the apparatuses disclosed herein may generate a plurality of candidate fulfillment plans using respective random decision variables, may calculate evaluation values for the candidate fulfillment plans, and may select the best fulfillment plan based upon the calculated evaluation values.
- Items such as goods, packets of data, etc.
- Items may often be provided by at least one of a plurality of providers and may traverse at least one of a plurality of intermediaries prior to reaching a final destination.
- the items may take any of a plurality of paths from the providers to the destinations through the intermediaries.
- the multiple paths may be associated with different monetary costs, different delivery times, rules, and the like, with respect to each other.
- delivering the items via one of the paths instead of another one of the paths may result in higher costs, longer delivery times, and/or violations of rules. Selection of a path that is associated with higher costs, longer delivery times, and/or that violates a rule may thus result in inefficient delivery of the items.
- selection of a particular path may result in the items being provided by a particular provider and/or traversing a particular intermediary that the items would not have traversed had the path that results in minimized costs, minimized delivery times, and/or minimized violations of rules been utilized instead of the selected particular path. Improper selection of a particular path may thus result in an inefficient use of the providers and/or the intermediaries.
- the apparatuses and methods disclosed herein may determine a plurality of candidate fulfillment plans, may compare the candidate fulfillment plans with respect to each other, and may select one of the candidate fulfillment plans as the fulfillment plan for delivering the items over the network. Particularly, for instance, an evaluation value (or equivalently, an evaluation score) for each of the candidate fulfillment plans may be calculated and may be compared with respect to each other to identify the candidate fulfillment plan corresponding to a highest level of compliance with a plurality of factors in the delivery of the items. In addition, information pertaining to the identified candidate fulfillment plan may be outputted such that the items may be delivered according to the identified candidate fulfillment plan.
- the items may be delivered with fewer violations of sets of rules and constraints.
- the providers and/or the intermediaries may be utilized in a relatively more efficient as well as compliant manner in the delivery of the items.
- a distributed order management problem may be a NP-hard problem that may require a great deal of computational resources and time.
- the apparatuses and methods disclosed herein may decompose the distributed order management problem into subtasks and may solve the subtasks individually, which may increase the computational efficiency of the apparatuses as compared with apparatuses that do not decompose the distributed order management problem. This may result in a reduction in processing time and usage of computational resources in determining the fulfillment plan for the delivery of items.
- FIG. 1 there is shown a block diagram of an example network 100 in which features of the present disclosure may be implemented in accordance with an embodiment of the present disclosure. It should be understood that the network 100 depicted in FIG. 1 may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of the network 100 .
- the network 100 which is also referenced herein as an infrastructure, is depicted as including a plurality of providers 102 - 1 to 102 -N (which are referenced herein collectively as providers 102 ), a plurality of intermediaries 110 - 1 to 110 -M (which are referenced herein collectively as intermediaries 110 ), and a plurality of destinations 120 - 1 to 120 -P (which are referenced herein collectively as destinations 120 ).
- the variables “N,” “M,” and “P” may each represent a value greater than 1.
- connections 104 are depicted between the providers 102 and the intermediaries 110 and connections 106 are depicted between the intermediaries 110 and the destinations 120 .
- the network 100 is a network over which items may be delivered from the providers 102 to the destinations 120 via the intermediaries 110 .
- the items may be packets of data, products that are sold in commerce, and the like.
- the providers 102 may be servers, data storage locations, service providers, or the like that may communicate the packets of data over a communications network, such as the Internet.
- the intermediaries 110 may be network components, such as routers, switches, servers, data centers, or the like, through which the packets of data from the providers 102 may be routed or traversed.
- the destinations 120 may be computing devices that are assigned with respective IP addresses that may be used as destination addresses for the data packets from the providers 102 .
- the providers 102 may be physical stores, warehouses, etc., at which the products may be stored and from which the products may be provided.
- the intermediaries 110 may be distribution centers, product shipping companies, etc., that may facilitate or may otherwise be involved in the delivery of the products to the destinations.
- the same physical store, warehouse, distribution center, etc. may be considered to be both a provider 102 a and an intermediary 110 a.
- the destinations 120 may be businesses, homes, etc., to which the products may be delivered.
- items may traverse any of a number of different paths from the providers 102 , through the intermediaries 110 , and to the destinations 120 via the connections 104 , 106 .
- the different paths may be associated with different delivery costs and/or delivery timeframes with respect to each other. For instance, delivering an item through a first path may result in the incursion of a first monetary cost and a first delivery timeframe, while delivering the item through a second path may result in the incursion of the same monetary cost but may incur a second delivery timeframe.
- restrictions on which of the paths the item may traverse may exist based upon set policies and rules and thus, the item may not be delivered through those paths upon which the restrictions apply.
- candidate fulfillment plans of the possible paths that the item may traverse may be evaluated and the candidate fulfillment plan having the maximum compliance with a set of factors may be selected for delivery of the item. For instance, the candidate fulfillment plan resulting in the incursion of the lowest amount of monetary cost and the shortest delivery timeframe may be selected for delivery of the item.
- an apparatus 130 may receive orders for the items to be delivered to the destinations 120 .
- the apparatus 130 may provide a portal or user interface through which a user may place the orders for the items.
- the apparatus 130 may receive the orders for the items from another apparatus or service.
- delivery of the items may be construed as an order fulfillment problem and the apparatus 130 may include a processor that may build a rule-based model, e.g., a model that may be specified by rules, of the order fulfillment problem. That is, the processor may model the order fulfillment problem as a network of potential providers, potential intermediaries, and a group of unfilled orders.
- the processor may implement a heuristic method to solve the order fulfillment problem in a manner that may result in compliance with a plurality of factors pertaining to the delivery of the items in the orders being maximized among the possible fulfillment plans.
- the apparatus 130 may also output instructions for the items to be delivered over the network 100 according to the fulfillment plan that is determined to maximize compliance with the plurality of factors among the candidate fulfillment plans. For instance, the apparatus 130 may output the instructions to the providers 102 over a data network 140 , which may be the Internet, a cellular network, a telephone network, etc.
- the providers 102 may initiate delivery of the items.
- the providers 102 may insert the appropriate routing and destination IP addresses as well as any other information into the data packets to cause the data packets to be routed through a particular intermediary 110 - 1 and to a particular destination 120 - 1 .
- the providers 102 may mark the products to be delivered to a particular intermediary 110 - 1 and to a particular destination 120 - 1 .
- FIG. 2 there is shown a block diagram of an apparatus 200 in accordance with an embodiment of the present disclosure.
- the apparatus 200 may be equivalent to the apparatus 130 shown and discussed above with respect to FIG. 1 .
- the apparatus 200 may be a computing device, a server computer, etc. It should be understood that the apparatus 200 depicted in FIG. 2 may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of the apparatus 200 .
- the apparatus 200 may include a processor 202 that may control operations of the apparatus 200 .
- the processor 202 may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device.
- CPU central processing unit
- ASIC application specific integrated circuit
- FPGA field-programmable gate array
- the apparatus 200 has been depicted as having a single processor 202 , the apparatus 200 may include multiple processors 202 that may perform multiple processing operations concurrently.
- the apparatus 200 may also include a memory 210 that may have stored thereon machine readable instructions 212 (which may also be termed computer readable instructions) that the processor 202 may execute.
- the memory 210 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions as well as other data.
- the memory 210 may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like.
- RAM Random Access memory
- EEPROM Electrically Erasable Programmable Read-Only Memory
- the memory 210 which may also be referred to as a computer readable storage medium, may be a non-transitory machine-readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals.
- the apparatus 200 has been depicted with a single memory 210 , the apparatus 200 may include multiple memories 210 that may be included in the apparatus 200 and/or may be external to the apparatus 200
- the processor 202 may fetch, decode, and execute the instructions 214 to generate random decision variables.
- a random decision variable may be defined as an artificially defined array with random values ranging between 0 and 1, which may be used to generate a candidate fulfillment plan as discussed herein.
- the processor 202 may fetch, decode, and execute the instructions 216 to initiate or select a candidate group of random decision variables.
- the processor 202 may fetch, decode, and execute the instructions 218 to manage counters, e.g., an outer counter and an inner counter, which are also referenced herein as a first counter and a second counter, respectively.
- the processor 202 may fetch, decode, and execute the instructions 220 to construct a population based upon a selection of decision variables with a probability determined from a candidate group of random decision variables.
- the processor 202 may fetch, decode, and execute the instructions 222 to generate candidate fulfillment plans to fulfill orders for delivery of items through use of the random decision variables.
- a separate random decision variable may be used to generate a separate candidate fulfillment plan.
- the processor 202 may fetch, decode, and execute the instructions 224 to calculate an evaluation value (which is also referenced herein as a score) for each of the generated candidate fulfillment plans.
- the processor 202 may fetch, decode, and execute the instructions 226 to identify the candidate fulfillment plan having the evaluation value that corresponds to a maximized compliance with a plurality of factors pertaining to the delivery of items. For instance, the processor 202 may identify the candidate fulfillment plan having the lowest evaluation value.
- the processor 202 may fetch, decode, and execute the instructions 228 to output instructions to deliver the items over the network 100 according to the identified candidate fulfillment plan.
- the processor 202 may output the instructions through an interface 204 , which may include hardware components, software components, or a combination of hardware and software components to facilitate the communication of data from and to the processor 202 .
- the interface 204 may be an interface to an external network such as the Internet.
- the memory 210 may have stored thereon random decision variables 230 .
- the random decision variables 230 may be the processor 202 generated random decision variables or random decision variables that may have been generated by another device and supplied to the apparatus 200 .
- the processor 202 may use the random decision variables 230 to generate a plurality of candidate fulfillment plans 232 , which may also be stored on the memory 210 .
- the memory 210 may also have stored thereon order data 234 , provider data 236 , and intermediary data 238 .
- the order data 234 may identify orders for items that are to be delivered over the network 100 .
- the order data 234 may identify orders that have been fulfilled and orders that have not yet been fulfilled.
- the order data 234 may also include information associated with the orders, such as a list of items (e.g., data packets, products, etc.) included in the orders, quantities of each of the items in the orders, a delivery address or delivery addresses of the orders (e.g., the IP address of the destination 120 - 1 , the postal address of the destination 120 - 1 , etc.), rules associated with the orders (e.g., all of the ordered items are to arrive together and in a certain sequence, all of the ordered items should arrive within a certain timeframe, the number of items associated with the order being sent to the shipping address should be less than a certain number, etc.), and the like.
- a list of items e.g., data packets, products, etc.
- quantities of each of the items in the orders e.g., a delivery address or delivery addresses of the orders (e.g., the IP address of the destination 120 - 1 , the postal address of the destination 120 - 1 , etc.)
- rules associated with the orders
- the provider data 236 may identify the providers 102 in the network 100 .
- the provider data 236 may also include an identification of the data stored/inventories of the providers 102 and/or access to the data stored/inventories of the providers 102 .
- the provider data 236 may also include information associated with the providers 102 such as, for each of the particular providers 102 :
- the intermediary data 238 may identify the intermediaries 110 in the network 100 .
- the intermediary data 238 may also include information associated with the intermediaries 110 such as, for each of the intermediaries 110 , a delivery address, rules associated with the intermediary 110 (e.g., all items sent from an intermediary 110 to the same destination address should be sent as one package), etc.
- the memory 210 may further have stored thereon a transit parameters table 240 that may provide related parameters of transiting items from the providers 102 to the intermediaries 110 and from the intermediaries 110 to the destinations 120 for the orders.
- the related parameters may include delivery cost, delivery time, etc. Examples of delivery cost may include costs associated with routing packets through an IP network, shipping fees, or the shipping distance, or any other parameters that directly relate to the cost of handling items. In instances in which a provider 102 - 1 is both a provider and an intermediary in a candidate fulfillment plan, the transit cost within such a provider is zero.
- the delivery time may be defined as a parameter that indicates the delivery time of transiting items from a provider to an intermediary and/or from an intermediary to a destination.
- a provider 102 - 1 is both a provider and an intermediary 110 - 1 for the provider 102 - 1 in a candidate fulfillment plan
- the transit time for the provider and the intermediary is zero.
- Information associated with the transit parameters table may include for instance:
- the memory 210 may further have stored thereon a plurality of rules 242 that may specify how the unfilled orders identified in the order data 234 are to be grouped, which providers 102 should be selected as potential providers of the items identified in the orders, etc. Examples of the rules on grouping the orders may include:
- the rules 242 may also specify particular rules that may be enforced on the delivery of the items.
- a user, a provider 102 , and/or an intermediary 110 may specify the rules 242 through, for instance, a user interface, e.g., a website. Examples of the rules on each of the orders may include:
- the rules 242 may further specify particular rules that are applicable to the providers 102 .
- the providers 102 may specify these rules 242 through, for instance, a user interface, e.g., a website. Examples of these rules may include:
- the rules 242 may further specify particular rules that are applicable to the intermediaries 110 . Examples of these rules may include: If a store is chosen as a provider, the store has to ship items directly to the destination. In this case, for example, the transit from the store to the any potential intermediaries may be restricted, e.g., the items may only be allowed to transit within the store.
- the rules 242 may further specify particular rules that are applicable to the shipping methods. Examples of these rules may include: for the same transit connection, multiple intermediaries may be selected to send a package containing items. Shipping method rules may be used to guide which intermediary is to be selected for a particular connection. For instance, the intermediary having the lowest transit cost may always be selected for the same type of shipping. As another example, the intermediary having the fasted delivery time may always be selected.
- the rules 242 may further specify particular rules that are applicable to an overall goal in the fulfillment of the orders. Examples of these rules may include:
- the processor 202 may use the information 230 - 242 stored in the memory 210 in generating the rule-based model used to generate and select the fulfillment plan regarding delivery of the items.
- the process of handling the rules 242 , the process of constructing an order fulfillment network, and generating the rule-based model may not be separable and may thus be operated together.
- the processor 202 may detect and apply active rules to construct the order fulfillment network and generate the rule-based model. It should be noted that the rules 242 may be updated dynamically.
- the processor 202 may detect and handle conflicting rules. For instance, the processor 202 may determine that one type of rule supersedes other types of rules.
- An example of conflicting rules is that, one of the user rules requires minimization of delivery time, but one of the provider rules considers minimizing cost as the highest priority rule. The two different goals defined by the two rules could conflict with each other. In this example, the processor 202 may prioritize the user rule higher than the provider rule or vice versa to avoid the conflicting rules.
- the processor 202 may generate the rule-based model used to identify the fulfillment plan as a linear integer problem, e.g., a distributed order management problem, and may apply a linear programming method to solve the problem.
- a linear integer problem e.g., a distributed order management problem
- the complexity of the rule-based model grows exponentially and leads to a large scale linear integer problem, which is a NP-hard problem (non-deterministic polynomial-time hard).
- the processor 202 may apply a heuristic method to solve this large scale and complex problem.
- the memory 210 may further have stored thereon a plurality of factors 244 pertaining to the delivery of the items. That is, for instance, the processor 202 may determine the factors 244 during generation of the candidate fulfillment plans and may store the factors 244 corresponding to each of the candidate fulfillment plans.
- the factors 244 for a candidate fulfillment plan may include, for instance, a total number of orders that have an infeasible fulfillment plan, a total number of orders that are not fulfilled, a total number of orders that violate a delivery constraint, a total number of orders that violate an item constraint, and the like. Orders that have an infeasible fulfillment plan may be defined as orders that may be fulfilled by violating one or more existing constraints.
- Orders that are not fulfilled may be defined as orders that may not be fulfilled even by relaxing constraints.
- an order for a product may not fulfilled in instances in which the product is not available anywhere.
- the factors 244 may be included in an evaluation function applied to the candidate fulfillment plans to determine evaluation values of the candidate fulfilment plans.
- FIG. 3 depicts a flow diagram of a method 300 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors 244 pertaining to the delivery of items over a network in accordance with an embodiment of the present disclosure.
- FIGS. 4A and 4B collectively, depict a flow diagram of a method 400 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors 244 pertaining to the delivery of items over a network in accordance with another embodiment of the present disclosure.
- FIGS. 4A and 4B depict a flow diagram of a method 400 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors 244 pertaining to the delivery of items over a network in accordance with another embodiment of the present disclosure.
- FIGS. 4A and 4B depict a flow diagram of a method 400 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors 244 pertaining to the delivery of items over a network
- FIG. 3 and 4A-4B depict flow diagrams of methods 300 and 400 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors 244 pertaining to fulfillment of multiple orders for the delivery of items.
- FIG. 5 depicts a flow diagram of a method 500 for generating a candidate fulfillment plan in accordance with an embodiment of the present disclosure.
- the methods 300 , 400 , and 500 depicted in FIGS. 3-5 may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scopes of the methods 300 , 400 , and 500 .
- the descriptions of the methods 300 , 400 , and 500 are made with reference to the features depicted in FIGS. 1 and 2 for purposes of illustration.
- the processor 202 may execute the instructions 222 to generate a plurality of candidate fulfillment plans, in which each of the plurality of candidate fulfillment plans is generated using a respective decision variable 230 .
- the processor 202 may use a plurality of decision variables to generate the candidate fulfillment plans.
- each of the plurality of decision variables may include different sets of values with respect to each other.
- application of the respective decision variables may result in the candidate fulfillment plans having different combinations of providers 102 and intermediaries 110 with respect to each other.
- a decision variable may not be a naturally defined decision variable, but may be an artificially defined array with values between 0 and 1.
- the values in the decision variable may be randomly selected.
- the decision variable may be a random decision variable, which may be represented as (X r ), and may be an array of random numbers or values as indicated in the following equation (1):
- X r ⁇ x r ⁇ ⁇ 1 , ⁇ x r ⁇ ⁇ 2 , ⁇ ... ⁇ , x r ⁇ ( N s ) , ⁇ x r ⁇ ( N s + 1 ) , ⁇ x r ⁇ ( N s + 2 ) , ⁇ ... ⁇ , x r ⁇ ( N s + N s ) , ⁇ x r ⁇ ( 2 ⁇ N s + 1 ) , ⁇ x r ⁇ ( 2 ⁇ N s + 2 ) , ⁇ ... ⁇ , x r ⁇ ( 2 ⁇ N s + K ) ⁇
- x ri is a random value generated by an iteration of a chosen heuristic optimization algorithm, 0 ⁇ x ri ⁇ 1 for all i, N s is a total number of potential providers 102 and K is total number of orders to be fulfilled.
- the “artificial” decision variable such as the random decision variable (X r ) may be constructed to map a complex decision variable of an original problem into a well-defined high dimension decision variable with a [0,1] boundary on each dimension such that the decision variable may fit into a class of well-developed heuristic algorithms, such as the genetic algorithm, the simulated annealing algorithm, and the like.
- X r in equation (1) above may be construed as including three subsets.
- a first subset of the decision variable X r may include the values in the array ⁇ x (2N s +1) , x r(2N s +2) , . . . , x r(2N +K) ⁇
- a second subset of the decision variable X r may include the values in the array ⁇ x r1 , x r2 , . . . , x rN s ⁇
- a third subset of the decision variable X r may include the values in the array ⁇ x r(N s +1) , x r(N s +2) , .
- the processor 202 may use the values in the first subset of the decision variable X r to determine sequence in which orders are processed, the values in the second subset of the decision variable X r to determine which of the providers 102 is to provide the items in the orders, and the values in the third subset of the decision variable X r to determine which of the intermediaries 110 are to handle the items in the orders.
- the processor 202 may execute the instructions 224 to calculate evaluation values for the candidate fulfillment plans.
- the evaluation value (which is equivalently recited herein as a score) for a candidate fulfillment plan may be determined through application of an evaluation function (which is equivalently recited herein as an objective function), on factors 244 of the candidate fulfillment plan.
- the processor 202 may calculate the evaluation value for a candidate fulfillment plan that was generated using a particular decision variable X r through application of the following equation (2):
- a respective evaluation value (or equivalently, score) may be calculated for each of the candidate fulfillment plans.
- a first fulfillment plan for a group of orders to be fulfilled by a first provider 102 - 1 and a first intermediary 110 - 1 may have a first evaluation value
- a second fulfillment plan for a group of order to be filled by a second provider 102 - 2 and a second intermediary 110 - 2 may have a second evaluation value, and so forth.
- the processor 202 may execute the instructions 228 to output instructions to deliver the items over the network 100 according to the candidate fulfillment plan having the evaluation value that corresponds to a maximized compliance with the plurality of factors among the calculated evaluation values to maximize compliance with the plurality of factors in the delivery of the items.
- the plurality of factors may include the factors included in equation (2).
- the processor 202 may output the instructions to the provider or providers 102 identified in the selected candidate fulfillment plan via the interface 204 . In response to receipt of the instructions, the provider(s) 102 may initiate delivery of the items through the selected intermediary or intermediaries 110 .
- the provider(s) 102 may insert appropriate routing and destination address information into the data packets or packages containing the data packets such that the data packets are delivered through the selected intermediary or intermediaries 110 .
- the provider(s) 102 may set up the products to be delivered to the selected intermediary or intermediaries 110 .
- the items may be delivered to the destination or destinations 120 through the network 100 according to the selected fulfillment plan.
- the processor 202 may execute the instructions 214 to initiate a candidate group of R random decision variables, in which the processor 202 may generate the R random decision variables.
- the variable “R” may represent a value greater than one.
- the processor 202 may implement any suitable random value generation scheme to generate each of the random decision variables to include different sets of random values with respect to each other and to have some distribution such as a uniform distribution.
- each of the random decision variables may be an artificially defined array of values between 0 and 1. Particularly, for instance, each random decision variable may be represented as (X r ) in equation (1) as discussed above with respect to FIG. 3 .
- Each of the random decision variables (X r ) may include subsets of random values, which may be used to determine the candidate fulfillment plans.
- the processor 202 may store the generated random decision variables 230 in the memory 210 .
- the processor 202 may execute the instructions 218 to set an outer counter (first counter) to “1” and to set an inner counter (second counter) to “1”.
- the processor 202 may execute blocks 408 - 412 for the random decision variable indicated by the inner counter contained in the candidate group of R random decision variables. Particularly, at block 408 , the processor 202 may execute the instructions 222 to generate a candidate fulfillment plan using the random decision variable.
- a fulfillment plan may be a plan to assign items to be delivered from a chosen provider or providers 102 to a destination or destinations 120 via a chosen intermediary or intermediaries 110 .
- the processor 202 may use the subsets of random values in the random decision variable to determine the sequence in which multiple orders in the candidate fulfillment plan are to be processed, to determine the provider or providers 102 that are to provide the items in the orders, and to determine the intermediary or intermediaries 110 that are to handle the items in the orders.
- the processor 202 may generate a sequence of the orders to be processed. Particularly, for instance, the processor 202 may identify from the order data 234 orders that have not yet been fulfilled and may determine the sequence in which the processor 202 is to process the unfilled orders. For instance, the processor 202 may process the unfilled orders one-by-one according to a sequence determined by the subset of the random decision variable selected at block 406 , e.g., the subset of X r , ⁇ x (2N s +1) , x r(2N s +2) , . . .
- each of the unfilled orders may be assigned to one of the random values in the subset of X r .
- a first unfilled order may be assigned the random value x r(2N s +1)
- a second unfilled order may be assigned the random value x r(2N x +2)
- a third unfilled order may be assigned the random value x r(2N s +3) .
- the processor 202 may determine the first order to be processed from the random values assigned to the orders. That is, for instance, the sequence of the orders may be based upon where the random values lie with respect to particular ranges of values.
- the first order to be processed may be determined by the value of x r(2N s +1) .
- Order A will be processed first; if the value of x r(2N s +1) falls in the range (1 ⁇ 3, 2 ⁇ 3], then Order B will be processed first; and if value of x r(2N s +1) falls in the range (2 ⁇ 3, 1], then Order C will be processed first.
- the value of x r(2N s +1) 0.9, which falls in the range (2 ⁇ 3, 1], and therefore Order C is determined to be processed first.
- the second order to be processed in the sequence may be determined by the value of x r(2N s +2) .
- x r(2N s +2) Considering there are two orders remaining to be processed (i.e., Order A and Order B), if the value of x r(2N s +2) falls in the range (0, 1 ⁇ 2], then Order A will be processed before Order B and if the value of x r(2N s +2) falls in the range (1 ⁇ 2, 1], then Order B will be processed before Order A.
- the value of x r(2N s +2) 0.4, which falls in the range (0, 1 ⁇ 2], and therefore Order A is determined to be processed before Order B.
- the processing sequence of the orders in this example is Order C, Order A, and Order B.
- the processor 202 may process a first order in the sequence of orders generated at block 502 to determine a provider or providers 102 for the items in the first order using a second subset of the random decision variable.
- the processor 202 may assign valid providers 102 for the order that may be able to supply the items in the order satisfy rules and constraints associated with the order. For instance, the processor 202 may construct a list of valid providers 102 that include providers 102 that are able to meet a delivery time constraint, satisfy other rules, such as shipping restriction rules, etc.
- the processor 202 may assign the valid providers 102 one-by-one according to a sequence determined by the second subset of the random decision variable X r , ⁇ x r1 , x r2 , . . . , x rN s ⁇ , until the order is fully fulfilled or all the valid providers 102 have been processed.
- the processor 202 may assign the valid providers 102 in the following manner.
- the processor 202 may have identified a valid provider 102 , multiple valid providers 102 , or no valid providers. In addition, the processor 202 may have stored this information as factors 244 in the memory 210 .
- the processor 202 may determine an intermediary or intermediaries 110 to handle the currently processed order.
- the processor 202 may assign an intermediary 110 to each of the valid providers 102 determined at block 504 .
- the processor 202 may set up a list of valid intermediaries 110 such that the transit from any listed intermediary 110 to the processed order may not be restricted.
- n h represents the total number of intermediaries 110 in the list
- the processor 202 may assign the valid intermediaries in the following manner.
- m min(number of providers assigned to the order, customer specified max number of packages allowed to ship for fulfilling the order)
- the processor 502 may store various information pertaining to the generation of the candidate fulfillment plan using the random decision variable.
- the various information (or factors 244 ) pertaining to the candidate fulfillment plan may include, for instance, a total number of orders that have an infeasible fulfillment plan, a total number of orders that are not fulfilled, a total number of orders that violate a delivery constraint, a total number of orders that violate an item constraint, etc.
- the processor 202 may determine whether another order is to be processed. That is, the processor 202 may determine whether there is another unfilled order to be processed. In response to a determination that another order is to be processed, the processor 202 may select the next order in the sequence of orders generated at block 502 . In addition, the processor 202 may repeat blocks 504 - 508 on the next order in the sequence. The processor 202 may also repeat blocks 504 - 512 for any additional orders in the sequence until the processor 202 determines that all of the orders in the sequence have been processed, at which point the method 500 may end as indicated at block 514 .
- the processor 202 may implement a feasibility improvement process for the orders in the candidate fulfillment plan. That is, the processor 202 may implement the feasibility improvement process to improve the feasibility of the orders that have infeasible fulfillment plans.
- An order having an infeasible fulfillment plan may be defined as an order that is not fully fulfilled, an order for which the fulfillment plan of the order violates a delivery constraint or a maximum package constraint, etc.
- the processor 202 may implement the feasibility improvement process for an order with an infeasible fulfillment plan as follows.
- the processor 202 may execute the following feasibility improvement process:
- the processor 202 may have stored factors 244 pertaining to the orders in a candidate fulfillment plan in the memory 210 .
- the factors 244 may include factors that were obtained with or without implementation of the feasibility improvement process.
- the processor 202 may execute the instructions 224 to calculate an evaluation value for the generated candidate fulfillment plan.
- the evaluation value may be defined as a measure of a compliance of the candidate fulfillment plan with a plurality of factors pertaining to the delivery of items.
- the evaluation value may be determined through application of an evaluation function (which is also referenced herein as an optimization function) that includes the plurality of factors.
- An example of the evaluation function is described above with respect to equation (2).
- the processor 202 may record the candidate fulfillment plan generated at block 408 and the associated evaluation of the candidate fulfillment plan, for instance, in the memory 210 . During a first iteration of blocks 408 - 412 , the processor 202 may simply record the generated fulfillment plan. In further iterations, however, the processor 202 may update the recorded fulfillment plan and the associated evaluation to be the best fulfillment plan, e.g., the fulfillment plan that has the maximized compliance of the fulfillment plans that have been generated during the iterations.
- the processor 202 may execute the instructions 218 to increment the inner counter by 1 .
- the processor 202 may determine whether the inner counter is greater than R, e.g., whether each of the candidate groups of R random decision variables has been processed.
- the processor 202 may repeat blocks 408 - 412 for the decision variable indicated by the inner counter, which has been increased by one since the prior iteration of blocks 408 - 412 .
- the processor 202 may repeat blocks 408 - 416 until a determination is made at block 416 that the inner counter is greater than R.
- the processor 202 may execute the instructions 218 to increment the outer counter by 1.
- the processor 202 may determine whether the outer counter exceeds a certain maximum number of iterations.
- the certain maximum number of iterations may be user-defined and may be set to prevent the method 400 from repeating without stop and/or to generate and evaluate a certain number of candidate fulfillment plans.
- the processor 202 may construct a population by selecting R random decision variables with a probability from the current candidate group of R random decision variables as indicated at block 422 .
- the probability may be provided by a chosen heuristic optimization algorithm, e.g., the genetic algorithm, the simulated annealing algorithm, and the like. The same decision variables contained in the candidate group may be selected multiple times.
- the processor 202 may generate a new candidate group of R random decision variables given the population constructed at block 422 .
- the processor 202 may repeat blocks 406 - 424 using the new candidate group of R random decision variables.
- the currently best candidate fulfillment plan and the associated evaluation may be updated as additional best candidate fulfillment plans are identified.
- the processor 202 may execute the instructions 226 to identify the candidate fulfillment plan having the evaluation value that corresponds to a maximized compliance with the plurality of factors identified in the evaluation function.
- the processor 202 may determine that the candidate fulfillment plan having the lowest evaluation value determined through application of the evaluation function defined by equation (2) may have the maximized compliance.
- the processor 202 may identify the candidate fulfillment plan as the candidate fulfillment plan that was identified as the best candidate fulfillment plan through multiple iterations of block 412 as discussed above.
- the processor 202 may identify the candidate fulfillment plan at block 426 by passing the best candidate fulfillment plan identified at block 412 .
- the processor 202 may record the candidate fulfillment plan as the plan that is to be implemented to deliver the items in the orders.
- the processor 202 may execute the instructions 228 to output instructions to cause implementation of the identified fulfillment plan. That is, for instance, the processor 202 may output instructions via the interface 204 to the provider or providers 102 selected in the identified fulfillment plan and the provider or providers 102 may initiate delivery of the items in the orders according to the instructions.
- Some or all of the operations set forth in the methods 400 and 500 may be contained as utilities, programs, or subprograms, in any desired computer accessible medium.
- the methods 400 and 500 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium.
- non-transitory computer readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Human Resources & Organizations (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- The present application claims the benefit of priority to U.S. Provisional Application Ser. No. 62/469,501 having the title “DECOMPOSITION OF COMPUTATIONAL PROCESSING FOR NETWORK ROUTING AND OTHER COMPUTATIONAL TASKS,” filed on Mar. 9, 2017, the disclosure of which is hereby incorporated by reference in its entirety.
- Computer systems are widely used for many applications in today's digital environment. In many instances, computer applications perform computationally intensive tasks to derive usable results for real-world, practical applications. This may include situations that require analysis of large amounts of data, or situations where the computer application performs computations on a large number of variables, taking into consideration multiple rules and constraints, to derive usable results for a real-world, practical application. Routing of items in a network is one such example of a real-world, practical application whereby multiple variables and constraints are to be considered to determine optimal routes of the items from providers to destinations.
- Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
-
FIG. 1 shows a block diagram of an example network in which features of the present disclosure may be implemented in accordance with an embodiment of the present disclosure; -
FIG. 2 shows a block diagram of an apparatus in accordance with an embodiment of the present disclosure; -
FIG. 3 depicts a flow diagram of a method for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors pertaining to the delivery of items over a network in accordance with an embodiment of the present disclosure; -
FIGS. 4A and 4B , collectively, depict a flow diagram of a method for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality of factors pertaining to the delivery of items over a network in accordance with another embodiment of the present disclosure; and -
FIG. 5 depicts a flow diagram of a method for generating a candidate fulfillment plan in accordance an embodiment of the present disclosure. - For simplicity and illustrative purposes, the present disclosure is described by referring mainly to embodiments. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure.
- Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
- Disclosed herein are apparatuses and methods to identify a fulfillment plan regarding delivery of items in multiple orders to their intended destinations in a manner that maximizes compliance with a plurality of factors pertaining to the delivery of the items. Generally speaking, the identified fulfillment plan may be the best plan from among a plurality of candidate fulfillment plans. That is, the identified fulfillment plan may be the plan under which the items may be delivered in a manner that results in minimized costs, minimized delivery times, minimized violations of rules, and/or a combination of minimized costs, minimized delivery times, and/or minimized violations of rules among the candidate fulfillment plans. In addition or in other examples, the identified fulfillment plan may be defined as a fulfillment plan that results in the items being delivered in a substantially optimized manner as may be determined within a certain amount of time and/or a certain number of iterations.
- The apparatuses disclosed herein may generate a rule-based model of a distributed order fulfillment problem and may solve that problem to identify the fulfillment plan. That is, the apparatuses disclosed herein may model the order fulfillment problem as a network of potential providers, potential intermediaries, and a group of unfilled orders. In addition, the apparatuses may implement a heuristic method to solve the order fulfillment problem in a manner that may result in compliance with a plurality of factors pertaining to the delivery of the items in the orders being maximized among the possible fulfillment plans. Particularly, the apparatuses disclosed herein may generate a plurality of candidate fulfillment plans using respective random decision variables, may calculate evaluation values for the candidate fulfillment plans, and may select the best fulfillment plan based upon the calculated evaluation values.
- Items, such as goods, packets of data, etc., may often be provided by at least one of a plurality of providers and may traverse at least one of a plurality of intermediaries prior to reaching a final destination. As such, the items may take any of a plurality of paths from the providers to the destinations through the intermediaries. The multiple paths may be associated with different monetary costs, different delivery times, rules, and the like, with respect to each other. In this regard, delivering the items via one of the paths instead of another one of the paths may result in higher costs, longer delivery times, and/or violations of rules. Selection of a path that is associated with higher costs, longer delivery times, and/or that violates a rule may thus result in inefficient delivery of the items. That is, for instance, selection of a particular path may result in the items being provided by a particular provider and/or traversing a particular intermediary that the items would not have traversed had the path that results in minimized costs, minimized delivery times, and/or minimized violations of rules been utilized instead of the selected particular path. Improper selection of a particular path may thus result in an inefficient use of the providers and/or the intermediaries.
- The apparatuses and methods disclosed herein may determine a plurality of candidate fulfillment plans, may compare the candidate fulfillment plans with respect to each other, and may select one of the candidate fulfillment plans as the fulfillment plan for delivering the items over the network. Particularly, for instance, an evaluation value (or equivalently, an evaluation score) for each of the candidate fulfillment plans may be calculated and may be compared with respect to each other to identify the candidate fulfillment plan corresponding to a highest level of compliance with a plurality of factors in the delivery of the items. In addition, information pertaining to the identified candidate fulfillment plan may be outputted such that the items may be delivered according to the identified candidate fulfillment plan. By identifying the candidate fulfillment plan having the highest level of compliance with the plurality of factors in the delivery of the items and instructing compliance with the identified candidate fulfillment plan, the items may be delivered with fewer violations of sets of rules and constraints. In this regard, the providers and/or the intermediaries may be utilized in a relatively more efficient as well as compliant manner in the delivery of the items.
- Additionally, a distributed order management problem may be a NP-hard problem that may require a great deal of computational resources and time. The apparatuses and methods disclosed herein may decompose the distributed order management problem into subtasks and may solve the subtasks individually, which may increase the computational efficiency of the apparatuses as compared with apparatuses that do not decompose the distributed order management problem. This may result in a reduction in processing time and usage of computational resources in determining the fulfillment plan for the delivery of items.
- With reference first to
FIG. 1 , there is shown a block diagram of anexample network 100 in which features of the present disclosure may be implemented in accordance with an embodiment of the present disclosure. It should be understood that thenetwork 100 depicted inFIG. 1 may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of thenetwork 100. - The
network 100, which is also referenced herein as an infrastructure, is depicted as including a plurality of providers 102-1 to 102-N (which are referenced herein collectively as providers 102), a plurality of intermediaries 110-1 to 110-M (which are referenced herein collectively as intermediaries 110), and a plurality of destinations 120-1 to 120-P (which are referenced herein collectively as destinations 120). The variables “N,” “M,” and “P” may each represent a value greater than 1. Additionally,connections 104 are depicted between theproviders 102 and theintermediaries 110 andconnections 106 are depicted between theintermediaries 110 and thedestinations 120. - Generally speaking, the
network 100 is a network over which items may be delivered from theproviders 102 to thedestinations 120 via theintermediaries 110. The items may be packets of data, products that are sold in commerce, and the like. In examples in which the items are packets of data, theproviders 102 may be servers, data storage locations, service providers, or the like that may communicate the packets of data over a communications network, such as the Internet. In these examples, theintermediaries 110 may be network components, such as routers, switches, servers, data centers, or the like, through which the packets of data from theproviders 102 may be routed or traversed. In addition, thedestinations 120 may be computing devices that are assigned with respective IP addresses that may be used as destination addresses for the data packets from theproviders 102. - In examples in which the items are products, the
providers 102 may be physical stores, warehouses, etc., at which the products may be stored and from which the products may be provided. In addition, theintermediaries 110 may be distribution centers, product shipping companies, etc., that may facilitate or may otherwise be involved in the delivery of the products to the destinations. In some examples, the same physical store, warehouse, distribution center, etc., may be considered to be both a provider 102 a and an intermediary 110 a. Thedestinations 120 may be businesses, homes, etc., to which the products may be delivered. - As shown in
FIG. 1 , items may traverse any of a number of different paths from theproviders 102, through theintermediaries 110, and to thedestinations 120 via the 104, 106. The different paths may be associated with different delivery costs and/or delivery timeframes with respect to each other. For instance, delivering an item through a first path may result in the incursion of a first monetary cost and a first delivery timeframe, while delivering the item through a second path may result in the incursion of the same monetary cost but may incur a second delivery timeframe. Additionally, restrictions on which of the paths the item may traverse may exist based upon set policies and rules and thus, the item may not be delivered through those paths upon which the restrictions apply. As discussed herein, candidate fulfillment plans of the possible paths that the item may traverse may be evaluated and the candidate fulfillment plan having the maximum compliance with a set of factors may be selected for delivery of the item. For instance, the candidate fulfillment plan resulting in the incursion of the lowest amount of monetary cost and the shortest delivery timeframe may be selected for delivery of the item.connections - According to examples, an apparatus 130 may receive orders for the items to be delivered to the
destinations 120. For instance, the apparatus 130 may provide a portal or user interface through which a user may place the orders for the items. In other examples, the apparatus 130 may receive the orders for the items from another apparatus or service. In any regard, delivery of the items may be construed as an order fulfillment problem and the apparatus 130 may include a processor that may build a rule-based model, e.g., a model that may be specified by rules, of the order fulfillment problem. That is, the processor may model the order fulfillment problem as a network of potential providers, potential intermediaries, and a group of unfilled orders. In addition, the processor may implement a heuristic method to solve the order fulfillment problem in a manner that may result in compliance with a plurality of factors pertaining to the delivery of the items in the orders being maximized among the possible fulfillment plans. - The apparatus 130 may also output instructions for the items to be delivered over the
network 100 according to the fulfillment plan that is determined to maximize compliance with the plurality of factors among the candidate fulfillment plans. For instance, the apparatus 130 may output the instructions to theproviders 102 over adata network 140, which may be the Internet, a cellular network, a telephone network, etc. In response to receipt of the instructions from the apparatus 130, theproviders 102 may initiate delivery of the items. By way of example in which the items are data packets, theproviders 102 may insert the appropriate routing and destination IP addresses as well as any other information into the data packets to cause the data packets to be routed through a particular intermediary 110-1 and to a particular destination 120-1. In another example in which the items are products, theproviders 102 may mark the products to be delivered to a particular intermediary 110-1 and to a particular destination 120-1. - Turning now to
FIG. 2 , there is shown a block diagram of anapparatus 200 in accordance with an embodiment of the present disclosure. Theapparatus 200 may be equivalent to the apparatus 130 shown and discussed above with respect toFIG. 1 . Additionally, theapparatus 200 may be a computing device, a server computer, etc. It should be understood that theapparatus 200 depicted inFIG. 2 may include additional components and that some of the components described herein may be removed and/or modified without departing from a scope of theapparatus 200. - As shown, the
apparatus 200 may include aprocessor 202 that may control operations of theapparatus 200. Theprocessor 202 may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device. Although theapparatus 200 has been depicted as having asingle processor 202, theapparatus 200 may includemultiple processors 202 that may perform multiple processing operations concurrently. - The
apparatus 200 may also include amemory 210 that may have stored thereon machine readable instructions 212 (which may also be termed computer readable instructions) that theprocessor 202 may execute. Thememory 210 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions as well as other data. Thememory 210 may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. Thememory 210, which may also be referred to as a computer readable storage medium, may be a non-transitory machine-readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals. Although theapparatus 200 has been depicted with asingle memory 210, theapparatus 200 may includemultiple memories 210 that may be included in theapparatus 200 and/or may be external to theapparatus 200. - The
processor 202 may fetch, decode, and execute theinstructions 214 to generate random decision variables. A random decision variable may be defined as an artificially defined array with random values ranging between 0 and 1, which may be used to generate a candidate fulfillment plan as discussed herein. In addition, theprocessor 202 may fetch, decode, and execute theinstructions 216 to initiate or select a candidate group of random decision variables. Theprocessor 202 may fetch, decode, and execute theinstructions 218 to manage counters, e.g., an outer counter and an inner counter, which are also referenced herein as a first counter and a second counter, respectively. Theprocessor 202 may fetch, decode, and execute theinstructions 220 to construct a population based upon a selection of decision variables with a probability determined from a candidate group of random decision variables. Theprocessor 202 may fetch, decode, and execute theinstructions 222 to generate candidate fulfillment plans to fulfill orders for delivery of items through use of the random decision variables. Thus, for instance, a separate random decision variable may be used to generate a separate candidate fulfillment plan. - The
processor 202 may fetch, decode, and execute theinstructions 224 to calculate an evaluation value (which is also referenced herein as a score) for each of the generated candidate fulfillment plans. Theprocessor 202 may fetch, decode, and execute theinstructions 226 to identify the candidate fulfillment plan having the evaluation value that corresponds to a maximized compliance with a plurality of factors pertaining to the delivery of items. For instance, theprocessor 202 may identify the candidate fulfillment plan having the lowest evaluation value. Theprocessor 202 may fetch, decode, and execute theinstructions 228 to output instructions to deliver the items over thenetwork 100 according to the identified candidate fulfillment plan. - The
processor 202 may output the instructions through aninterface 204, which may include hardware components, software components, or a combination of hardware and software components to facilitate the communication of data from and to theprocessor 202. According to examples, theinterface 204 may be an interface to an external network such as the Internet. - As also shown in
FIG. 2 , thememory 210 may have stored thereon random decision variables 230. The random decision variables 230 may be theprocessor 202 generated random decision variables or random decision variables that may have been generated by another device and supplied to theapparatus 200. In any regard, and as discussed in greater detail herein, theprocessor 202 may use the random decision variables 230 to generate a plurality of candidate fulfillment plans 232, which may also be stored on thememory 210. - The
memory 210 may also have stored thereonorder data 234,provider data 236, andintermediary data 238. Theorder data 234 may identify orders for items that are to be delivered over thenetwork 100. Theorder data 234 may identify orders that have been fulfilled and orders that have not yet been fulfilled. Theorder data 234 may also include information associated with the orders, such as a list of items (e.g., data packets, products, etc.) included in the orders, quantities of each of the items in the orders, a delivery address or delivery addresses of the orders (e.g., the IP address of the destination 120-1, the postal address of the destination 120-1, etc.), rules associated with the orders (e.g., all of the ordered items are to arrive together and in a certain sequence, all of the ordered items should arrive within a certain timeframe, the number of items associated with the order being sent to the shipping address should be less than a certain number, etc.), and the like. - The
provider data 236 may identify theproviders 102 in thenetwork 100. Theprovider data 236 may also include an identification of the data stored/inventories of theproviders 102 and/or access to the data stored/inventories of theproviders 102. Theprovider data 236 may also include information associated with theproviders 102 such as, for each of the particular providers 102: -
- a list of items associated to the orders;
- available inventory of the items (e.g., stored data packets) listed in the orders;
- a delivery address of the items; and
- rules associated with a destination (e.g., all of the items sent to the same address should be sent as one package, etc.).
- The
intermediary data 238 may identify theintermediaries 110 in thenetwork 100. Theintermediary data 238 may also include information associated with theintermediaries 110 such as, for each of theintermediaries 110, a delivery address, rules associated with the intermediary 110 (e.g., all items sent from an intermediary 110 to the same destination address should be sent as one package), etc. - The
memory 210 may further have stored thereon a transit parameters table 240 that may provide related parameters of transiting items from theproviders 102 to theintermediaries 110 and from theintermediaries 110 to thedestinations 120 for the orders. The related parameters may include delivery cost, delivery time, etc. Examples of delivery cost may include costs associated with routing packets through an IP network, shipping fees, or the shipping distance, or any other parameters that directly relate to the cost of handling items. In instances in which a provider 102-1 is both a provider and an intermediary in a candidate fulfillment plan, the transit cost within such a provider is zero. - The delivery time may be defined as a parameter that indicates the delivery time of transiting items from a provider to an intermediary and/or from an intermediary to a destination. In instances in which a provider 102-1 is both a provider and an intermediary 110-1 for the provider 102-1 in a candidate fulfillment plan, the transit time for the provider and the intermediary is zero. Information associated with the transit parameters table may include for instance:
-
- Delivery cost and delivery time;
- Rules associated with the corresponding transit. For example, an extreme weather rule may be active in which the transit between a provider and an intermediary may temporarily not be allowed (in this case, the delivery costs of all delivery types may be set to infinity in the transit parameters table) or the transit from a provider to an intermediary may always be restricted. As another example, a service disruption rule may be active in which the transmission of data packets is temporarily not possible (in this case, the delivery costs of all delivery types may be set to infinity in the transit parameters table).
- The
memory 210 may further have stored thereon a plurality ofrules 242 that may specify how the unfilled orders identified in theorder data 234 are to be grouped, whichproviders 102 should be selected as potential providers of the items identified in the orders, etc. Examples of the rules on grouping the orders may include: -
- Group the orders by order creation time, as well as the maximum number of order lines allowed in a group. An order line may refer to an individual item included in an order of any quantity and an order may contain multiple order lines.
- Group the orders by shipping method, e.g., packets contained in the same package, overnight shipping, two day shipping, ground shipping, etc.
- The
rules 242 may also specify particular rules that may be enforced on the delivery of the items. A user, aprovider 102, and/or an intermediary 110 may specify therules 242 through, for instance, a user interface, e.g., a website. Examples of the rules on each of the orders may include: -
- A user may indicate that all of the items be received within a particular number of days. This rule may specify a delivery constraint of the rule-based model discussed herein, e.g., the delivery time from
providers 102 todestinations 120 to be less than or equal to the particular number of days. - A user may indicate that the ordered items be delivered in at most a particular number of separate packages, in which the transition cost of the rule-based model is cost per package. This rule may specify a number of
intermediaries 110 constraint of the rule-based model discussed herein, e.g., the number of theintermediaries 110 chosen from thepotential intermediaries 110 should be no more than the particular number of separate packages. - A user may indicate that the ordered items be shipped as a single package, in which the transition cost of the rule-based model is cost per package. This rule may specify the number of
intermediaries 110 constraint of the rule-based model, e.g., the number of theintermediaries 110 chosen among the potential intermediaries to deliver the items should be exactly one. - A user may indicate that the items of all orders be delivered as soon as possible. This rule may specify an objective function of the rule-based model, e.g., the goal of the rule-based model may be to minimize the delivery time of fulfilling the order.
- A user may choose a local store to pick up the items that were ordered online. This rule may specify the location of the user, which may not be the address of the user, but the address of the chosen local store.
- A
provider 102 may set rules to reject orders that have certain features or to reject certain types of orders. - An intermediary 110 may set rules to reject orders that have certain features or to reject certain types of orders.
- A user may indicate that all of the items be received within a particular number of days. This rule may specify a delivery constraint of the rule-based model discussed herein, e.g., the delivery time from
- The
rules 242 may further specify particular rules that are applicable to theproviders 102. Theproviders 102 may specify theserules 242 through, for instance, a user interface, e.g., a website. Examples of these rules may include: -
- Nearest warehouse policy. In this rule, all of the items an order should be sent from providers to an intermediary that is nearest to the destination of the items and the intermediary should send the items together to destination. This rule may specify the potential intermediaries appearing in the network, e.g., according to the rule, the rule-based model should automatically find the intermediary nearest to the destination, and set that intermediary to be the only potential intermediary in the network for the order.
- Available local stores within a certain distance policy. In this rule, if the destination is located in an area in which multiple stores may be chosen as potential providers, then the providers that have the items available and are within a certain distance, e.g., 10 miles, from the destination should be set as potential providers. In response to the total available items being found within the certain distance can only partially fulfill the order, then increase the searching distance by an additional distance, e.g., another 10 miles, each time until enough available items are found.
- Ineligible potential intermediaries policy. In this rule, if the ordered items belong to a certain type, then only certain ones of the intermediaries may be selected as potential intermediaries of the items. Likewise, if the ordered items belong to another certain type, then certain ones of the intermediaries cannot be selected as potential intermediaries of the items. This rule may restrict the choice of potential intermediaries in the network.
- All items should be shipped directly from chosen providers to destinations. This rule may eliminate the potential intermediaries in the network. According to examples, instead of eliminating the potential intermediaries from the
network 100, the destination may be set as the only potential intermediary and the transition cost and the transition time from the potential intermediary to the destination may be set to be zero. - At most a certain number of potential providers may be chosen as the final providers to fulfill the order. This rule may specify a number of provider constraint of the rule-based model, e.g., the number of the providers selected among the potential providers to fulfill an order should be no more than the certain number.
- An on-line retailer may prefer to minimize the number of providers selected among the potential providers to fulfill the order. This rule may specify the objective function of the rule-based model, e.g., the goal of the rule-based model may be to minimize the number of providers to fulfill the customer order.
- The
rules 242 may further specify particular rules that are applicable to theintermediaries 110. Examples of these rules may include: If a store is chosen as a provider, the store has to ship items directly to the destination. In this case, for example, the transit from the store to the any potential intermediaries may be restricted, e.g., the items may only be allowed to transit within the store. - The
rules 242 may further specify particular rules that are applicable to the shipping methods. Examples of these rules may include: for the same transit connection, multiple intermediaries may be selected to send a package containing items. Shipping method rules may be used to guide which intermediary is to be selected for a particular connection. For instance, the intermediary having the lowest transit cost may always be selected for the same type of shipping. As another example, the intermediary having the fasted delivery time may always be selected. - The
rules 242 may further specify particular rules that are applicable to an overall goal in the fulfillment of the orders. Examples of these rules may include: -
- Minimize the total shipping cost of the items in the orders. Under this rule, the delivery cost of each transit connection may be set as the shipping cost.
- Minimize the sum of delivery time of the entire network. Under this rule, the delivery cost of each transit connection may be set as the shipping time.
- Minimize the total number of packages delivered in the entire network. Under this rule, the delivery cost of each transit connection may be set as one.
- Minimize the total number of packages received by all addresses associated with orders. Under this rule, the delivery cost of any valid transit connection between a potential provider and a potential intermediary may be set as zero and the delivery cost of any valid transit connection between a potential intermediary and a destination associated with an order may be set as one.
- As discussed herein, the
processor 202 may use the information 230-242 stored in thememory 210 in generating the rule-based model used to generate and select the fulfillment plan regarding delivery of the items. Generally speaking, the process of handling therules 242, the process of constructing an order fulfillment network, and generating the rule-based model may not be separable and may thus be operated together. In addition, given an order, theprocessor 202 may detect and apply active rules to construct the order fulfillment network and generate the rule-based model. It should be noted that therules 242 may be updated dynamically. - In addition, the
processor 202 may detect and handle conflicting rules. For instance, theprocessor 202 may determine that one type of rule supersedes other types of rules. An example of conflicting rules is that, one of the user rules requires minimization of delivery time, but one of the provider rules considers minimizing cost as the highest priority rule. The two different goals defined by the two rules could conflict with each other. In this example, theprocessor 202 may prioritize the user rule higher than the provider rule or vice versa to avoid the conflicting rules. - The
processor 202 may generate the rule-based model used to identify the fulfillment plan as a linear integer problem, e.g., a distributed order management problem, and may apply a linear programming method to solve the problem. As the number of the components contained in the network grows, the complexity of the rule-based model grows exponentially and leads to a large scale linear integer problem, which is a NP-hard problem (non-deterministic polynomial-time hard). Considering that, the distributed order management problem discussed herein may involve a relatively large number of unfulfilled orders, providers, and intermediaries, as well as complex rules, theprocessor 202 may apply a heuristic method to solve this large scale and complex problem. - The
memory 210 may further have stored thereon a plurality offactors 244 pertaining to the delivery of the items. That is, for instance, theprocessor 202 may determine thefactors 244 during generation of the candidate fulfillment plans and may store thefactors 244 corresponding to each of the candidate fulfillment plans. Thefactors 244 for a candidate fulfillment plan may include, for instance, a total number of orders that have an infeasible fulfillment plan, a total number of orders that are not fulfilled, a total number of orders that violate a delivery constraint, a total number of orders that violate an item constraint, and the like. Orders that have an infeasible fulfillment plan may be defined as orders that may be fulfilled by violating one or more existing constraints. Orders that are not fulfilled may be defined as orders that may not be fulfilled even by relaxing constraints. By way of example, an order for a product may not fulfilled in instances in which the product is not available anywhere. As discussed herein, thefactors 244 may be included in an evaluation function applied to the candidate fulfillment plans to determine evaluation values of the candidate fulfilment plans. - Various manners in which the
apparatus 200, and particularly, theprocessor 202, may operate are discussed in greater detail with respect to the 300, 400, and 500 depicted inmethods FIGS. 3-5 . Particularly,FIG. 3 depicts a flow diagram of amethod 300 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality offactors 244 pertaining to the delivery of items over a network in accordance with an embodiment of the present disclosure.FIGS. 4A and 4B , collectively, depict a flow diagram of amethod 400 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality offactors 244 pertaining to the delivery of items over a network in accordance with another embodiment of the present disclosure. In other words,FIGS. 3 and 4A-4B , respectively, depict flow diagrams of 300 and 400 for identifying a fulfillment plan that corresponds to a maximized compliance with a plurality ofmethods factors 244 pertaining to fulfillment of multiple orders for the delivery of items. In addition,FIG. 5 depicts a flow diagram of amethod 500 for generating a candidate fulfillment plan in accordance with an embodiment of the present disclosure. It should be understood that the 300, 400, and 500 depicted inmethods FIGS. 3-5 may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scopes of the 300, 400, and 500. The descriptions of themethods 300, 400, and 500 are made with reference to the features depicted inmethods FIGS. 1 and 2 for purposes of illustration. - With reference first to
FIG. 3 , at block 302, theprocessor 202 may execute theinstructions 222 to generate a plurality of candidate fulfillment plans, in which each of the plurality of candidate fulfillment plans is generated using a respective decision variable 230. Thus, theprocessor 202 may use a plurality of decision variables to generate the candidate fulfillment plans. In addition, each of the plurality of decision variables may include different sets of values with respect to each other. In this regard, application of the respective decision variables may result in the candidate fulfillment plans having different combinations ofproviders 102 andintermediaries 110 with respect to each other. - A decision variable may not be a naturally defined decision variable, but may be an artificially defined array with values between 0 and 1. The values in the decision variable may be randomly selected. Particularly, for instance, the decision variable may be a random decision variable, which may be represented as (Xr), and may be an array of random numbers or values as indicated in the following equation (1):
-
- In equation (1) above, xri is a random value generated by an iteration of a chosen heuristic optimization algorithm, 0<xri≤1 for all i, Ns is a total number of
potential providers 102 and K is total number of orders to be fulfilled. In some examples, the “artificial” decision variable, such as the random decision variable (Xr), may be constructed to map a complex decision variable of an original problem into a well-defined high dimension decision variable with a [0,1] boundary on each dimension such that the decision variable may fit into a class of well-developed heuristic algorithms, such as the genetic algorithm, the simulated annealing algorithm, and the like. - In addition, Xr in equation (1) above may be construed as including three subsets. A first subset of the decision variable Xr may include the values in the array {x(2N
s +1), xr(2Ns +2), . . . , xr(2N +K)}, a second subset of the decision variable Xr may include the values in the array {xr1, xr2, . . . , xrNs }, and a third subset of the decision variable Xr may include the values in the array {xr(Ns +1), xr(Ns +2), . . . , xr(Ns +Ns )}. As discussed in detail herein, for a particular candidate fulfillment plan, theprocessor 202 may use the values in the first subset of the decision variable Xr to determine sequence in which orders are processed, the values in the second subset of the decision variable Xr to determine which of theproviders 102 is to provide the items in the orders, and the values in the third subset of the decision variable Xr to determine which of theintermediaries 110 are to handle the items in the orders. - At
block 304, theprocessor 202 may execute theinstructions 224 to calculate evaluation values for the candidate fulfillment plans. The evaluation value (which is equivalently recited herein as a score) for a candidate fulfillment plan may be determined through application of an evaluation function (which is equivalently recited herein as an objective function), onfactors 244 of the candidate fulfillment plan. Particularly, for instance, theprocessor 202 may calculate the evaluation value for a candidate fulfillment plan that was generated using a particular decision variable Xr through application of the following equation (2): -
f(X r)=w 1·α1(X r)+w 2·α2(X r)+w 3·α3(X r)+w 4·α4(X r)/n orders +C(X r) - In Equation (2),
-
- Through application of equation (2) on each of the candidate fulfillment plans, a respective evaluation value (or equivalently, score), may be calculated for each of the candidate fulfillment plans. Thus, for instance, a first fulfillment plan for a group of orders to be fulfilled by a first provider 102-1 and a first intermediary 110-1 may have a first evaluation value, a second fulfillment plan for a group of order to be filled by a second provider 102-2 and a second intermediary 110-2 may have a second evaluation value, and so forth.
- At
block 306, theprocessor 202 may execute theinstructions 228 to output instructions to deliver the items over thenetwork 100 according to the candidate fulfillment plan having the evaluation value that corresponds to a maximized compliance with the plurality of factors among the calculated evaluation values to maximize compliance with the plurality of factors in the delivery of the items. As noted above, the plurality of factors may include the factors included in equation (2). In addition, theprocessor 202 may output the instructions to the provider orproviders 102 identified in the selected candidate fulfillment plan via theinterface 204. In response to receipt of the instructions, the provider(s) 102 may initiate delivery of the items through the selected intermediary orintermediaries 110. - By way of example in which the items are data packets, the provider(s) 102 may insert appropriate routing and destination address information into the data packets or packages containing the data packets such that the data packets are delivered through the selected intermediary or
intermediaries 110. In other examples in which the items are products, the provider(s) 102 may set up the products to be delivered to the selected intermediary orintermediaries 110. In any of these examples, the items may be delivered to the destination ordestinations 120 through thenetwork 100 according to the selected fulfillment plan. - With reference now to
FIGS. 4A and 4B , atblock 402, theprocessor 202 may execute theinstructions 214 to initiate a candidate group of R random decision variables, in which theprocessor 202 may generate the R random decision variables. The variable “R” may represent a value greater than one. Theprocessor 202 may implement any suitable random value generation scheme to generate each of the random decision variables to include different sets of random values with respect to each other and to have some distribution such as a uniform distribution. In addition, each of the random decision variables may be an artificially defined array of values between 0 and 1. Particularly, for instance, each random decision variable may be represented as (Xr) in equation (1) as discussed above with respect toFIG. 3 . Each of the random decision variables (Xr) may include subsets of random values, which may be used to determine the candidate fulfillment plans. In addition, theprocessor 202 may store the generated random decision variables 230 in thememory 210. - At
404 and 406, respectively, theblocks processor 202 may execute theinstructions 218 to set an outer counter (first counter) to “1” and to set an inner counter (second counter) to “1”. - The
processor 202 may execute blocks 408-412 for the random decision variable indicated by the inner counter contained in the candidate group of R random decision variables. Particularly, atblock 408, theprocessor 202 may execute theinstructions 222 to generate a candidate fulfillment plan using the random decision variable. Generally speaking, a fulfillment plan may be a plan to assign items to be delivered from a chosen provider orproviders 102 to a destination ordestinations 120 via a chosen intermediary orintermediaries 110. In addition, theprocessor 202 may use the subsets of random values in the random decision variable to determine the sequence in which multiple orders in the candidate fulfillment plan are to be processed, to determine the provider orproviders 102 that are to provide the items in the orders, and to determine the intermediary orintermediaries 110 that are to handle the items in the orders. - With reference now to
method 500 inFIG. 5 , which shows an example manner in which theprocessor 202 may generate the candidate fulfillment plan. Atblock 502, theprocessor 202 may generate a sequence of the orders to be processed. Particularly, for instance, theprocessor 202 may identify from theorder data 234 orders that have not yet been fulfilled and may determine the sequence in which theprocessor 202 is to process the unfilled orders. For instance, theprocessor 202 may process the unfilled orders one-by-one according to a sequence determined by the subset of the random decision variable selected atblock 406, e.g., the subset of Xr, {x(2Ns +1), xr(2Ns +2), . . . , xr(2Ns +K)}, in which K is the total number of unfilled orders. That is, each of the unfilled orders may be assigned to one of the random values in the subset of Xr. Thus, a first unfilled order may be assigned the random value xr(2Ns +1), a second unfilled order may be assigned the random value xr(2Nx +2), a third unfilled order may be assigned the random value xr(2Ns +3). - According to examples, the
processor 202 may determine the first order to be processed from the random values assigned to the orders. That is, for instance, the sequence of the orders may be based upon where the random values lie with respect to particular ranges of values. To illustrate this process, the following example is provided in which there are a total of three unfulfilled orders, Order A, Order B, and Order C, to be processed, i.e., K=3, with {xr(2Ns +1), xr(2Ns +2), xr(2Ns +3)}={0.9, 0.4, 0.1}. In this example, the first order to be processed may be determined by the value of xr(2Ns +1). Considering there are three orders to be processed, if the value of xr(2Ns +1)falls in the range (0, ⅓], then Order A will be processed first; if the value of xr(2Ns +1) falls in the range (⅓, ⅔], then Order B will be processed first; and if value of xr(2Ns +1) falls in the range (⅔, 1], then Order C will be processed first. In this example, the value of xr(2Ns +1)=0.9, which falls in the range (⅔, 1], and therefore Order C is determined to be processed first. - Continuing with the example, the second order to be processed in the sequence may be determined by the value of xr(2N
s +2). Considering there are two orders remaining to be processed (i.e., Order A and Order B), if the value of xr(2Ns +2) falls in the range (0, ½], then Order A will be processed before Order B and if the value of xr(2Ns +2) falls in the range (½, 1], then Order B will be processed before Order A. In this example, the value of xr(2Ns +2)=0.4, which falls in the range (0, ½], and therefore Order A is determined to be processed before Order B. As such, the processing sequence of the orders in this example is Order C, Order A, and Order B. - At
block 504, theprocessor 202 may process a first order in the sequence of orders generated atblock 502 to determine a provider orproviders 102 for the items in the first order using a second subset of the random decision variable. In other words, theprocessor 202 may assignvalid providers 102 for the order that may be able to supply the items in the order satisfy rules and constraints associated with the order. For instance, theprocessor 202 may construct a list ofvalid providers 102 that includeproviders 102 that are able to meet a delivery time constraint, satisfy other rules, such as shipping restriction rules, etc. By way of particular example, in which n represents the total number ofvalid providers 102 in the list; if np=0, theprocessor 202 may mark the order as having none of the items fulfilled. In this event, theprocessor 202 may store an indication that the order has not been fulfilled and theprocessor 202 may process the next order in the sequence of orders. - However, if there is at least one
valid provider 102 for the order, theprocessor 202 may assign thevalid providers 102 one-by-one according to a sequence determined by the second subset of the random decision variable Xr, {xr1, xr2, . . . , xrNs }, until the order is fully fulfilled or all thevalid providers 102 have been processed. Theprocessor 202 may assign thevalid providers 102 in the following manner. -
- Increase ip=ip+1; if ip>Ns, set ip=1;
- Identify a valid provider from the list according to the value of the random value xri
p , e.g., if
-
- then the jth
valid provider 102 in the list is identified. -
- Assign the jth valid provider to fulfill the order as much as possible; record the assignment and fulfillment, and update the inventory of the jth valid provider;
- Decrease np=np−1;
- If the order is fully fulfilled, stop the process of assigning valid providers, and mark the order as fully fulfilled; otherwise, if np=0, stop the process of assigning valid source nodes, and mark the order as partially fulfilled; if none of the above, go back to the first step.
- Following
block 504, theprocessor 202 may have identified avalid provider 102, multiplevalid providers 102, or no valid providers. In addition, theprocessor 202 may have stored this information asfactors 244 in thememory 210. - At
block 506, theprocessor 202 may determine an intermediary orintermediaries 110 to handle the currently processed order. In other words, theprocessor 202 may assign an intermediary 110 to each of thevalid providers 102 determined atblock 504. For instance, theprocessor 202 may set up a list ofvalid intermediaries 110 such that the transit from any listed intermediary 110 to the processed order may not be restricted. By way of particular example, in which nh represents the total number ofintermediaries 110 in the list, theprocessor 202 may assign the valid intermediaries in the following manner. -
- set
-
m=min(number of providers assigned to the order, customer specified max number of packages allowed to ship for fulfilling the order) -
- generate a sequence of
intermediaries 110 with m elements from the list of valid intermediaries as follows:- set k=0;
- increase ih=ih+1; if ih>Ns, set ih=1;
- identify an intermediary from the list of valid intermediaries according to the value of the random number xr(N
s +ih ), e.g., if
- generate a sequence of
-
- then the jth intermediary in the valid intermediary list is picked up;
-
-
- increase k=k+1; if k=m, stop; otherwise, go back to the first step.
- for each provider assigned to fulfill the currently processed order, assign an intermediary from the sequence of intermediaries generated above as follows:
- check the sequence of intermediaries generated above one-by-one until the first feasible intermediary is found such that: the connection from the processed provider to the intermediary is not restricted; the delivery time from the processed provider to the processed order via the chosen intermediary is feasible; and if a feasible intermediary is not found, set the processed provider itself as its intermediary.
- stop if all providers assigned to fulfill the currently processed order are processed.
-
- At
block 508, theprocessor 502 may store various information pertaining to the generation of the candidate fulfillment plan using the random decision variable. The various information (or factors 244) pertaining to the candidate fulfillment plan may include, for instance, a total number of orders that have an infeasible fulfillment plan, a total number of orders that are not fulfilled, a total number of orders that violate a delivery constraint, a total number of orders that violate an item constraint, etc. - At
block 510, theprocessor 202 may determine whether another order is to be processed. That is, theprocessor 202 may determine whether there is another unfilled order to be processed. In response to a determination that another order is to be processed, theprocessor 202 may select the next order in the sequence of orders generated atblock 502. In addition, theprocessor 202 may repeat blocks 504-508 on the next order in the sequence. Theprocessor 202 may also repeat blocks 504-512 for any additional orders in the sequence until theprocessor 202 determines that all of the orders in the sequence have been processed, at which point themethod 500 may end as indicated atblock 514. - According to embodiments, the
processor 202 may implement a feasibility improvement process for the orders in the candidate fulfillment plan. That is, theprocessor 202 may implement the feasibility improvement process to improve the feasibility of the orders that have infeasible fulfillment plans. An order having an infeasible fulfillment plan may be defined as an order that is not fully fulfilled, an order for which the fulfillment plan of the order violates a delivery constraint or a maximum package constraint, etc. Theprocessor 202 may implement the feasibility improvement process for an order with an infeasible fulfillment plan as follows. - If the order is not fully fulfilled, try to fulfill the order by ignoring the delivery time as follows.
-
- (a) Construct a list of providers for the order such that the delivery time from a valid provider to the order violates delivery constraints but still satisfies shipping restriction rules. If the list is empty, stop, otherwise, go to the next step.
- (b) Check the list of providers generated by step (a) one-by-one, if there is any available inventory that may be assigned to fulfill the processed order, assign the provider, and record the assignment and fulfillment, and update the inventory of the assigned provider. In addition, set the assigned provider itself as its intermediary. Stop the process if the order is fully fulfilled or if all of the providers in the list have been processed.
- (c) Update the delivery time and total number of packages of the processed order.
- If the fulfillment plan of the processed order violates the delivery constraint or the maximum packages constraint, the
processor 202 may execute the following feasibility improvement process: -
- (a) Collect all providers assigned to the processed order as a list;
- (b) For each provider identified in the list, find all feasible intermediaries such that: the connection from the processed provider to the intermediary is not restricted and the delivery time from the processed provider to the processed order via the chosen intermediary is feasible;
- (c) Find the intermediary that is feasible for most providers contained in the list, if multiple intermediaries exist, choose the first one; then set the chosen intermediary as the connected intermediary to the providers for which the intermediary is feasible; and remove the providers that have been assigned a feasible intermediary from the list of providers;
- (d) If the list of providers is empty, or if there is no feasible intermediary for all of the providers contained in the list, stop; otherwise, go to step (c).
- Following implementation of the
method 500, theprocessor 202 may have storedfactors 244 pertaining to the orders in a candidate fulfillment plan in thememory 210. Thefactors 244 may include factors that were obtained with or without implementation of the feasibility improvement process. - With reference back to
FIG. 4A , following generation of the candidate fulfillment plan using the selected random decision variable atblock 408, theprocessor 202 may execute theinstructions 224 to calculate an evaluation value for the generated candidate fulfillment plan. The evaluation value may be defined as a measure of a compliance of the candidate fulfillment plan with a plurality of factors pertaining to the delivery of items. In this regard, the evaluation value may be determined through application of an evaluation function (which is also referenced herein as an optimization function) that includes the plurality of factors. An example of the evaluation function is described above with respect to equation (2). - At
block 412, theprocessor 202 may record the candidate fulfillment plan generated atblock 408 and the associated evaluation of the candidate fulfillment plan, for instance, in thememory 210. During a first iteration of blocks 408-412, theprocessor 202 may simply record the generated fulfillment plan. In further iterations, however, theprocessor 202 may update the recorded fulfillment plan and the associated evaluation to be the best fulfillment plan, e.g., the fulfillment plan that has the maximized compliance of the fulfillment plans that have been generated during the iterations. - At
block 414, theprocessor 202 may execute theinstructions 218 to increment the inner counter by 1. In addition, atblock 416, theprocessor 202 may determine whether the inner counter is greater than R, e.g., whether each of the candidate groups of R random decision variables has been processed. In response to a determination that the inner counter is less than R, theprocessor 202 may repeat blocks 408-412 for the decision variable indicated by the inner counter, which has been increased by one since the prior iteration of blocks 408-412. In addition, theprocessor 202 may repeat blocks 408-416 until a determination is made atblock 416 that the inner counter is greater than R. - In response to a determination at
block 416 that the inner counter is greater than R, atblock 418, theprocessor 202 may execute theinstructions 218 to increment the outer counter by 1. In addition, atblock 420, theprocessor 202 may determine whether the outer counter exceeds a certain maximum number of iterations. The certain maximum number of iterations may be user-defined and may be set to prevent themethod 400 from repeating without stop and/or to generate and evaluate a certain number of candidate fulfillment plans. In response to a determination atblock 420 that the maximum number of iterations has not been reached, theprocessor 202 may construct a population by selecting R random decision variables with a probability from the current candidate group of R random decision variables as indicated atblock 422. The probability may be provided by a chosen heuristic optimization algorithm, e.g., the genetic algorithm, the simulated annealing algorithm, and the like. The same decision variables contained in the candidate group may be selected multiple times. - At
block 424, theprocessor 202 may generate a new candidate group of R random decision variables given the population constructed atblock 422. In addition, theprocessor 202 may repeat blocks 406-424 using the new candidate group of R random decision variables. In this regard, atblock 412, the currently best candidate fulfillment plan and the associated evaluation may be updated as additional best candidate fulfillment plans are identified. - With reference back to block 420, in response to a determination that the outer counter exceeds the maximum number of iterations, the
processor 202 may execute theinstructions 226 to identify the candidate fulfillment plan having the evaluation value that corresponds to a maximized compliance with the plurality of factors identified in the evaluation function. By way of example, theprocessor 202 may determine that the candidate fulfillment plan having the lowest evaluation value determined through application of the evaluation function defined by equation (2) may have the maximized compliance. In other words, theprocessor 202 may identify the candidate fulfillment plan as the candidate fulfillment plan that was identified as the best candidate fulfillment plan through multiple iterations ofblock 412 as discussed above. In any regard, theprocessor 202 may identify the candidate fulfillment plan atblock 426 by passing the best candidate fulfillment plan identified atblock 412. - At
block 428, theprocessor 202 may record the candidate fulfillment plan as the plan that is to be implemented to deliver the items in the orders. In addition, atblock 430, theprocessor 202 may execute theinstructions 228 to output instructions to cause implementation of the identified fulfillment plan. That is, for instance, theprocessor 202 may output instructions via theinterface 204 to the provider orproviders 102 selected in the identified fulfillment plan and the provider orproviders 102 may initiate delivery of the items in the orders according to the instructions. - Some or all of the operations set forth in the
400 and 500 may be contained as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, themethods 400 and 500 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium.methods - Examples of non-transitory computer readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
- Although described specifically throughout the entirety of the instant disclosure, representative examples of the present disclosure have utility over a wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure.
- What has been described and illustrated herein is an example of the disclosure along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the spirit and scope of the disclosure, which is intended to be defined by the following claims—and their equivalents—in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/640,267 US20180260878A1 (en) | 2017-03-09 | 2017-06-30 | Item delivery fulfillment plan determination |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762469501P | 2017-03-09 | 2017-03-09 | |
| US15/640,267 US20180260878A1 (en) | 2017-03-09 | 2017-06-30 | Item delivery fulfillment plan determination |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20180260878A1 true US20180260878A1 (en) | 2018-09-13 |
Family
ID=63445390
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/640,267 Abandoned US20180260878A1 (en) | 2017-03-09 | 2017-06-30 | Item delivery fulfillment plan determination |
| US15/917,422 Active 2038-10-31 US10853144B2 (en) | 2017-03-09 | 2018-03-09 | Rules based decomposition of tasks for resource allocation |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/917,422 Active 2038-10-31 US10853144B2 (en) | 2017-03-09 | 2018-03-09 | Rules based decomposition of tasks for resource allocation |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US20180260878A1 (en) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109213667A (en) * | 2018-09-17 | 2019-01-15 | 广东小天才科技有限公司 | Exception handling method of Android system and electronic equipment |
| CN109598443A (en) * | 2018-12-04 | 2019-04-09 | 合肥工业大学 | Mission planning method and machine readable storage medium for vehicle under dynamic environment |
| US20220028022A1 (en) * | 2020-07-27 | 2022-01-27 | Windigo Logistics, Inc. | Optimized logistic planning |
| TWI759823B (en) * | 2019-09-23 | 2022-04-01 | 南韓商韓領有限公司 | Computer-implemented systems and computer-implemented methods for outbound forecasting using inbound stow model |
| CN116483013A (en) * | 2023-06-19 | 2023-07-25 | 成都实时技术股份有限公司 | High-speed signal acquisition system and method based on multichannel collector |
| CN117453308A (en) * | 2023-10-30 | 2024-01-26 | 昆明理工大学 | Mining disaster monitoring and emergency linkage system moving edge calculation data transmission adjacent area task unloading method |
| US20240242168A1 (en) * | 2023-01-13 | 2024-07-18 | Pelican Products | Optimizing Fit of Products in Thermally-Controlled Packages |
| US12314898B2 (en) * | 2019-08-28 | 2025-05-27 | Logisteed, Ltd. | Work planning system and work planning method |
| US20250259136A1 (en) * | 2022-04-15 | 2025-08-14 | Panasonic Intellectual Property Management Co., Ltd. | Delivery plan generation device and delivery plan generation method |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10778599B2 (en) * | 2017-03-30 | 2020-09-15 | Home Box Office, Inc. | Predictive scaling of computing resources |
| US10802880B2 (en) * | 2017-09-19 | 2020-10-13 | Huawei Technologies Co., Ltd. | System and method for distributed resource requirement and allocation |
| CN110968406B (en) * | 2018-09-30 | 2023-04-07 | 北京国双科技有限公司 | Method, device, storage medium and processor for processing task |
| WO2020158421A1 (en) * | 2019-01-31 | 2020-08-06 | 日本電気株式会社 | Communication control device, communication system, communication control method, and non-transitory computer-readable medium |
| CN109947565B (en) * | 2019-03-08 | 2021-10-15 | 北京百度网讯科技有限公司 | Method and apparatus for allocating computing tasks |
| CN110275762A (en) * | 2019-04-30 | 2019-09-24 | 北京媒球信息科技有限公司 | Calculation method, server, mobile terminal and device |
| US10785611B1 (en) * | 2019-06-03 | 2020-09-22 | Motorola Solutions, Inc. | Method and cloud service for updating a cloud component |
| US10678594B2 (en) | 2020-01-09 | 2020-06-09 | Alipay Labs (singapore) Pte. Ltd. | System and method for optimizing resource allocation using GPU |
| US11948010B2 (en) * | 2020-10-12 | 2024-04-02 | International Business Machines Corporation | Tag-driven scheduling of computing resources for function execution |
| US12481962B2 (en) * | 2020-10-19 | 2025-11-25 | ABA Schedules, LLC | Systems and methods for calculating and dynamically reconfiguring resource-constraint scheduling using visual representations on graphical user interface |
| US11900284B2 (en) * | 2021-03-18 | 2024-02-13 | Intuit Inc. | Dynamic scheduling system with performance- based access |
| EP4064156B1 (en) * | 2021-03-22 | 2025-07-16 | Amadeus S.A.S. | Predictive allocation of nodes in a queue |
| CN114169602B (en) * | 2021-12-01 | 2025-03-14 | 丰巢网络技术有限公司 | Combination optimization method, device, computer equipment and storage medium for asset outbound delivery |
| US11948129B2 (en) * | 2021-12-21 | 2024-04-02 | Raytheon Company | Metrics-based planning and scheduling system |
| US20240062137A1 (en) * | 2022-08-16 | 2024-02-22 | Target Brands, Inc. | Import gateway optimization model |
| CN119065818B (en) * | 2024-11-04 | 2025-02-11 | 杭州江荣科技有限公司 | A data communication system and method based on future network |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170344944A1 (en) * | 2016-05-31 | 2017-11-30 | Sap Se | Optimized container management system |
| US20180211201A1 (en) * | 2017-01-24 | 2018-07-26 | Wal-Mart Stores, Inc. | Systems and methods for optimizing outbound shipping capacity |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5450317A (en) | 1993-11-24 | 1995-09-12 | U S West Advanced Technologies, Inc. | Method and system for optimized logistics planning |
| US5838968A (en) * | 1996-03-01 | 1998-11-17 | Chromatic Research, Inc. | System and method for dynamic resource management across tasks in real-time operating systems |
| US7177825B1 (en) | 1999-05-11 | 2007-02-13 | Borders Louis H | Integrated system for ordering, fulfillment, and delivery of consumer products using a data network |
| US7257552B1 (en) | 2000-03-27 | 2007-08-14 | Hector Franco | Consumer products distribution system |
| EP1277101A4 (en) | 2000-04-07 | 2005-07-20 | Movielink Llc | System and process for delivery of content over a network |
| WO2002029608A2 (en) | 2000-10-06 | 2002-04-11 | Optiant, Inc. | System and method for determining the optimum configuration strategy for systems with multiple decision options |
| EP1388073B1 (en) | 2001-03-01 | 2018-01-10 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
| US20030172007A1 (en) | 2002-03-06 | 2003-09-11 | Helmolt Hans-Ulrich Von | Supply chain fulfillment coordination |
| US20030177072A1 (en) | 2002-03-12 | 2003-09-18 | Carlos Bared | Internet-based grocery ordering system and method for providing drive-through customer pickup of grocery orders at multiple locations as selected by customer |
| GB0513045D0 (en) * | 2005-06-27 | 2005-08-03 | Vidus Ltd | Resource scheduling method and system |
| US8131604B2 (en) | 2005-10-14 | 2012-03-06 | Sap Aktiengesellschaft | Internal routing |
| US8284206B2 (en) | 2006-03-14 | 2012-10-09 | Transgaming, Inc. | General purpose software parallel task engine |
| US7584160B2 (en) | 2006-10-27 | 2009-09-01 | International Business Machines Corporation | System and method for optimizing project subdivision using data and requirements focuses subject to multidimensional constraints |
| US7725366B1 (en) | 2007-05-01 | 2010-05-25 | Hector Franco | Supply-chain management system |
| US8392262B2 (en) | 2008-01-22 | 2013-03-05 | Research In Motion Limited | Method and apparatus for selecting a pickup location based on customer location |
| US20110231215A1 (en) * | 2010-03-16 | 2011-09-22 | Santos Cipriano A | Optimization of a resource matching model by mapping a model to a bipartite graph |
| US10289453B1 (en) * | 2010-12-07 | 2019-05-14 | Amazon Technologies, Inc. | Allocating computing resources |
| US20130080206A1 (en) | 2011-01-24 | 2013-03-28 | Steven LaVoie | System and method for logistics optimization constrained by inventory requirements |
| US20140122143A1 (en) * | 2012-10-30 | 2014-05-01 | Trimble Navigation Limited | Optimizing resource assignment |
| US20150120599A1 (en) | 2013-10-31 | 2015-04-30 | International Business Machines Corporation | Partner Marketing and Order Fulfillment Based on Partner Merchant Shipping Efficiencies |
| US9396035B2 (en) * | 2013-12-06 | 2016-07-19 | International Business Machines Corporation | Multi-dimensional computing and communication resource allocation using bin-packing with per-branch combination tries |
| CA2937684A1 (en) | 2014-01-28 | 2015-08-06 | Overstock.Com, Inc. | Supply chain management system |
| US10496964B2 (en) | 2014-04-02 | 2019-12-03 | Facebook, Inc. | Routing payments to payment aggregators |
-
2017
- 2017-06-30 US US15/640,267 patent/US20180260878A1/en not_active Abandoned
-
2018
- 2018-03-09 US US15/917,422 patent/US10853144B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170344944A1 (en) * | 2016-05-31 | 2017-11-30 | Sap Se | Optimized container management system |
| US20180211201A1 (en) * | 2017-01-24 | 2018-07-26 | Wal-Mart Stores, Inc. | Systems and methods for optimizing outbound shipping capacity |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109213667A (en) * | 2018-09-17 | 2019-01-15 | 广东小天才科技有限公司 | Exception handling method of Android system and electronic equipment |
| CN109598443A (en) * | 2018-12-04 | 2019-04-09 | 合肥工业大学 | Mission planning method and machine readable storage medium for vehicle under dynamic environment |
| US12314898B2 (en) * | 2019-08-28 | 2025-05-27 | Logisteed, Ltd. | Work planning system and work planning method |
| TWI759823B (en) * | 2019-09-23 | 2022-04-01 | 南韓商韓領有限公司 | Computer-implemented systems and computer-implemented methods for outbound forecasting using inbound stow model |
| TWI857275B (en) * | 2019-09-23 | 2024-10-01 | 南韓商韓領有限公司 | Computer-implemented methods for outbound forecasting and computer-implemented systems thereof |
| US20220028022A1 (en) * | 2020-07-27 | 2022-01-27 | Windigo Logistics, Inc. | Optimized logistic planning |
| US20250259136A1 (en) * | 2022-04-15 | 2025-08-14 | Panasonic Intellectual Property Management Co., Ltd. | Delivery plan generation device and delivery plan generation method |
| US20240242168A1 (en) * | 2023-01-13 | 2024-07-18 | Pelican Products | Optimizing Fit of Products in Thermally-Controlled Packages |
| CN116483013A (en) * | 2023-06-19 | 2023-07-25 | 成都实时技术股份有限公司 | High-speed signal acquisition system and method based on multichannel collector |
| CN117453308A (en) * | 2023-10-30 | 2024-01-26 | 昆明理工大学 | Mining disaster monitoring and emergency linkage system moving edge calculation data transmission adjacent area task unloading method |
Also Published As
| Publication number | Publication date |
|---|---|
| US20180260253A1 (en) | 2018-09-13 |
| US10853144B2 (en) | 2020-12-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20180260878A1 (en) | Item delivery fulfillment plan determination | |
| Sung et al. | Integrated service network design for a cross-docking supply chain network | |
| US8352382B1 (en) | Heuristic methods for customer order fulfillment planning | |
| JP2023018105A (en) | System and method for optimizing product inventory by intelligent adjustment of inbound purchase order | |
| US10832194B2 (en) | System and method for setting inventory thresholds for offering and fulfillment across retail supply networks | |
| US9495655B2 (en) | Cross-domain multi-attribute hashed and weighted dynamic process prioritization | |
| Merzifonluoğlu et al. | The static stochastic knapsack problem with normally distributed item sizes | |
| Dang et al. | Replenishment policies for empty containers in an inland multi-depot system | |
| CN109978213B (en) | Task path planning method and device | |
| Chen et al. | Same-day delivery with fairness | |
| CN113034076A (en) | Logistics carrying object recommendation method and device, electronic equipment and storage medium | |
| Baron et al. | Decentralized online order fulfillment in omni-channel retailers | |
| Roy et al. | A novel approach for designing rental vehicle repositioning strategies | |
| Deng et al. | Optimal policies and heuristics to match supply with demand for online retailing | |
| US20230259872A1 (en) | Cognitive route planning using metric-based combinatorial evaluation techniques | |
| He et al. | Optimal policies for stochastic clearing systems with time‐dependent delay penalties | |
| Shelke et al. | Multi-agent learning of efficient fulfilment and routing strategies in e-commerce | |
| Dávila de León et al. | Disruption management approaches for berth scheduling in bulk terminals | |
| Bock | Finding optimal tour schedules on transportation paths under extended time window constraints | |
| Ajeena Beegom et al. | Non-dominated sorting based PSO algorithm for workflow task scheduling in cloud computing systems | |
| Li et al. | Integrated production and distribution scheduling problems related to fixed delivery departure dates and weights of late orders | |
| Vecchyo | Alternative Performance Indicators for Optimising Container Assignment in a Synchromodal Transportation Network | |
| Debold et al. | Order routing in sequential zone picking systems | |
| Singh et al. | Shipment in a multi-choice environment: a case study of shipping carriers in US | |
| Ortega del Vecchyo et al. | Alternative performance indicators for optimizing container assignment in a synchromodal transportation network |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NANDA, REKHA;EHRENBERG, MICHAEL V.;SHEN, YANFANG;REEL/FRAME:043011/0179 Effective date: 20170630 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |