WO2019231637A1 - Inventory control of resources - Google Patents

Inventory control of resources Download PDF

Info

Publication number
WO2019231637A1
WO2019231637A1 PCT/US2019/031911 US2019031911W WO2019231637A1 WO 2019231637 A1 WO2019231637 A1 WO 2019231637A1 US 2019031911 W US2019031911 W US 2019031911W WO 2019231637 A1 WO2019231637 A1 WO 2019231637A1
Authority
WO
WIPO (PCT)
Prior art keywords
determining
amount
constraint
location
resources
Prior art date
Application number
PCT/US2019/031911
Other languages
French (fr)
Inventor
Jia Zhang
Weidong MA
Jiang Bian
Tie-Yan Liu
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of WO2019231637A1 publication Critical patent/WO2019231637A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • G06Q10/0835Relationships between shipper or supplier and carriers
    • G06Q10/08355Routing methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Definitions

  • Inventory control is one of the most important issues in the logistics service industry. Taking shipping container transportation as an example, shipping companies need to keep a certain number of empty containers at each port for shipping goods so as to meet customers’ needs. However, due to the limited total number of empty containers and severe imbalance in global trade, how to determine the number of empty containers to be retained at each port becomes a grave challenge.
  • a solution for inventory control of resources is provided.
  • path information about a plurality of locations is obtained, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point.
  • at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint are determined.
  • the first amount is associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path.
  • a sum of penalties associated with the plurality of locations at the plurality of time points is determined.
  • the second amount and the third amount are determined by minimizing the sum of penalties.
  • FIG. 1 illustrates a block diagram of a computing device 100 in which multiple implementations of the subject matter described herein can be implemented;
  • FIG. 2 illustrates a flowchart of a process 200 for inventory control of resources in accordance with some implementations of the subject matter described herein;
  • FIG. 3 illustrates a schematic diagram of an example time-space network 300 representing path information among a plurality of locations in accordance with some implementations of the subject matter described herein;
  • FIG. 4 illustrates a flowchart of a process 400 for determining a safe inventory of resources for a node in accordance with some implementations of the subject matter described herein;
  • FIG. 5 illustrates a schematic diagram of a second estimate of deviation existing in a first estimate for safe inventory in accordance with some implementations of the subject matter described herein.
  • the term“includes” and its variants are to be read as open terms that mean“includes, but is not limited to.”
  • the term“based on” is to be read as“based at least in part on.”
  • the term“one implementation” and“an implementation” are to be read as“at least one implementation.”
  • the term“another implementation” is to be read as“at least one other implementation.”
  • the terms“first,”“second,” and the like may refer to different or same objects. Other definitions, explicit and implicit, may be included below.
  • FIG. 1 illustrates a block diagram of a computing device 100 in which implementations of the subject matter described herein can be implemented. It would be appreciated that the computing device 100 described in FIG. 1 is merely for illustration and not limit the function and scope of implementations of the subject matter described herein in any manners.
  • the computing environment 100 includes a computing device 100 in form of a general computer device. Components of the computing device 100 may include, but are not limited to, one or more processors or processing units 110, a memory 120, a storage device 130, one or more communication units 140, one or more input devices 150, and one or more output devices 160.
  • the computing device 100 may be implemented as various user terminals or service terminals having computing capability.
  • the service terminals may be servers, large-scale computing devices and the like provided by various service providers.
  • the user terminals are, for instance, any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, television receiver, radio broadcast receiver, electronic book device, game device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof.
  • the computing device 101 can support any type of interface to the user (such as "wearable" circuitry, etc.).
  • the processing unit 110 may be a physical or virtual processor and can execute various processes based on the programs stored in the memory 120. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capacity of the computing device 100.
  • the processing unit 110 is also referred to as central processing unit (CPU), microprocessor, controller and microcontroller.
  • the computing device 100 typically includes a plurality of computer storage media, which can be any available media accessible by the computing device 100, including but not limited to volatile and non-volatile media, and removable and non-removable media.
  • the memory 120 can be a volatile memory (for example, a register, high-speed cache, random access memory (RAM)), non-volatile memory (for example, a read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or any combination thereof.
  • the memory 120 may include a prediction module 122 configured to perform the functions of various implementations described herein. The prediction module 122 may be accessed and operated by the processing unit 110 to achieve the corresponding functions.
  • the storage device 130 may be removable and non-removable media and may include machine readable media capable of storing information and/or data and accessible in the computing device 100.
  • the computing device 100 may further include other removable/ non-removable and volatile/non-volatile storage media.
  • FIG. 1 it is possible to provide disk drive for reading from and writing into removable and non-volatile disks and disc drive for reading from and writing into removable and non volatile discs. In such cases, each drive can be connected to the bus (not shown) via one or more data medium interfaces.
  • the communication unit 140 communicates with a further computing device via communication media. Additionally, functions of components of the computing device 100 may be implemented by a single computing cluster or multiple computing machines that are communicatively connectable for communication. Therefore, the computing device 100 may be operated in a networking environment using a logical link with one or more other servers, personal computers (PCs) or another general network node.
  • PCs personal computers
  • the input device 150 may include one or more input devices, such as a mouse, keyboard, touch screen, tracking ball, voice-input device and the like.
  • the output device 160 may be one or more output devices, such as a display, loudspeaker, printer and the like.
  • the computing device 100 may also communicate with one or more external devices (not shown) via the communication unit 140 as required.
  • the external devices such as storage devices and display devices and so on, communicate with one or more devices that enable the user to interact with the computing device 100, or any device (such as a network card, modem, and the like) that enables the computing device 100 to communicate with one or more other computing devices. Such communication is performed via an input/output (I/O) interface (not shown).
  • I/O input/output
  • cloud computing apart from being integrated into a single device, some or all the components of the computing device 100 may be configured in a form of a cloud computing architecture in which these components may be arranged remotely and may work together to accomplish the functions described herein.
  • cloud computing provides computing, software, data access and storage services which do not require the end users to know the physical location or configuration of the system or hardware that provides these services.
  • cloud computing uses appropriate protocols to provide service through a Wide Area Network (such as Internet).
  • cloud computing providers provide applications through Wide Area Network which are accessible through web browser or any other computing components.
  • Software or components of the cloud computing architecture and the corresponding data may be stored in a server at a remote location.
  • the computing resources in a cloud computing environment may be merged at a remote data center position or scattered.
  • Cloud computing infrastructure may provide services through a shared data center, even if they are represented by a single access point for the user. Therefore, it is possible to provide the components and functions described herein using a cloud computing architecture from a service provider at a remote location. Alternatively, they may be provided from a conventional server, or be mounted on a client device directly or in other manners.
  • the computing device 100 may be used to implement the solution for inventory control of resources in accordance with the subject matter described herein.
  • the computing device 100 may receive path information 170 at a plurality of locations through the input device 150.
  • the path information 170 may be input by a user and indicate paths (for instance, shipping lines) between different locations (such as, ports) at different time points.
  • paths for instance, shipping lines
  • the path information 170 may be represented by a time-space network including a plurality of nodes and a plurality of edges connecting the plurality of nodes, where one node in the time-space network represents a location at a particular time point, and a first edge starting from the node in the time-space network represents a first path departing from the location at the particular time point, while the second edge reaching the node in the time- space network represents the second path arriving at the location at the particular time point.
  • the processing unit 110 of the computing device 100 may determine an inventory control result 180 for the path information 170 through the inventory control module 122 and output the inventory control result through the output device 160.
  • the inventory control result 180 determined by the inventory control module 122 may indicate an amount of resources shipped to the location via the second path and an amount of resources shipped from the location via the first path.
  • path information 170 and the inventory control result 180 involved in FIG. 1 are provided merely as examples.
  • the path information 170 and/or inventory control result 180 may represent different contents or be presented in various manners (such as, text, graph and/or table). Implementations of the subject matter described herein are not limited in this regard.
  • a solution for inventory control of resources is provided.
  • path information about a plurality of locations is obtained, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point.
  • at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint are determined.
  • the first amount is associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path.
  • a sum of penalties associated with the plurality of locations at the plurality of time points is determined.
  • the second amount and the third amount are determined by minimizing the sum of penalties.
  • FIG. 2 is a flowchart illustrating a process 200 for inventory control of resources in accordance with some implementations of the subject matter described herein.
  • the process 200 may be implemented by the computing device 100 shown in FIG. 1, for example, at the inventory control module 122.
  • FIG. 1 For ease of depiction, reference is made to FIG. 1 to depict this process. It is to be understood that the process 200 may further include additional acts not shown and/or omit the shown acts, and the scope of the subject matter described herein is not limited in this regard.
  • the computing device 100 obtains the path information 170 about a plurality of locations.
  • the path information 170 may be input by the user to the computing device 100 via a particular input device 150.
  • the path information may be represented by a time-space network including a plurality of nodes and a plurality of edges connecting the plurality of nodes, where one node in the time-space network represents a location at a particular time point, and a first edge starting from the node in the time-space network represents a first path departing from the location at the particular time point, while the second edge reaching the node in the time- space network represents the second path arriving at the location at the particular time point.
  • FIG. 3 illustrates a schematic diagram of an example time-space network 300 representing path information among a plurality of locations in accordance with some implementations of the subject matter described herein.
  • the time-space network 300 represents path information among a plurality of locations Pi, P 2 , P3 and P 4 .
  • the vertical axis in the time-space network 300 represents different locations Pl, P2, P3 and P3, while the horizontal axis represents different time points Ti, T 2 , . . . , TN (where N is a natural number).
  • the time-space network 300 may include a plurality of nodes 3 l0-xy (where x e [1, 4] and y e [1, N]), where the nodes 3 l0-xy represent a location P x at a time point T y .
  • the time-space network 300 further includes a plurality of edges connecting the plurality of nodes 3 l0-xy, where an edge starting from the node 310- xy may represent a path departing from the location P x at the time point T y , while an edge reaching the node 3 l0-xy represents a path arriving at the location P x at the time point T y .
  • the node 310-22 represents the location P 2 at the time point T 2 .
  • An edge 320 starting from the node 310-22 represents a path (also referred to as“first path”) departing from the location P 2 at the time point T 2
  • an edge 330 reaching the node 310-22 represents a path (also referred to as“second path”) arriving at the location P 2 at the time point T 2 .
  • time- space network 300 Although only four locations (namely, Pi, P 2 , P 3 and P 4 ) are shown in the time- space network 300 illustrated in FIG. 3, it is to be understood that this is merely for the purpose of illustration, without suggesting any limitation to the scope of the subject matter described herein.
  • the time- space network representing path information may indicate the path information among any number of locations.
  • the computing device 100 determines at least one constraint for a first amount of resources at a node (that is, a certain location at a particular time point) in the time-space network 300 and a corresponding penalty associated with the at least one constraint.
  • the“resource” described herein may refer to an empty container (also referred to as“empty container”).
  • empty container also referred to as“empty container”.
  • a group of constraints may be applied to each node in the time-space network 300 shown in FIG. 3, and then the corresponding number of empty containers shipping to and out of each node may be determined automatically with a linear programming model.
  • INi represents the number (also referred to as“second number” herein) of empty containers shipped to the node i
  • OUTi represents the number (also referred to as“third number” herein) of empty containers shipped from the node
  • INVi represents the original number (for example, it may be a predetermined value) of empty containers at the node
  • the number (also referred to as“first number” herein) of empty containers remaining at the node i may be represented as IN, + INVi OUTi.
  • IN 3 10-22 represents the number of empty containers shipped to the location P 2 via the second path 330
  • OUT310-22 represents the number of empty containers shipped from the location P2 via the first path 320
  • INV310-22 represents the original number (for example, it may be a pre-determined value) of empty containers at the node 310-22
  • the number of empty containers remaining at location P2 at the time point T2 may be represented as IN310-22 + INV310-22 - OUT310-22 .
  • the computing device 100 may determine at least one constraint for a first amount of resources remaining at node i in the time-space network 300.
  • the at least one constraint for the node i may indicate the relation between the first amount and one or more thresholds.
  • the at least one constraint for the node i may include one or more of the following constraints: a first constraint requiring the first amount to exceed zero; a second constraint requiring the first amount to exceed the required minimum amount of resources (also referred to as“first threshold”) at the node; and a third threshold requiring the first amount to be below the maximum amount of resources (also referred to as “second threshold”) that can be accommodated at the node.
  • respective slack variables may be applied to the above set of constraints.
  • the“slack variable” refers to the portion of a constraint that exceeds the minimum of the constraint.
  • the set of constraints namely, the first constraint, the second constraint and the third constraint
  • the set of constraints for the first amount of resources remaining at the node i may be represented respectively as follows:
  • the first threshold LDi represents a minimum amount of resources required at the node i, for instance, LDi > 0.
  • the second threshold HDi represents a maximum amount of resources that can be accommodated at node i, for example, HDi > LDi.
  • SLKi.i represents a slack variable for the first constraint and it measures the extent to which the first amount of resources remaining at node i fails to satisfy“>0.”
  • SLKi, 2 represents a slack variable for the second constraint and measures the extent to which the first amount of resources remaining at the node i fails to satisfy“>ZZl.”
  • SLKi denotes a slack variable for the third constraint and measures the extent to which the first amount of resources remaining at node i fails to satisfy
  • the first threshold LDi and the second threshold HDi may be predetermined fixed values.
  • the first threshold LDi may represent a safe inventory of resources at the time point and location corresponding to the node i, which is also referred to as“net supply value” for resources of the node i.
  • the amount of resources required at the time point and location corresponding to the node may be determined based on history information, and the predicted amount may be taken as the safe inventory of resources for the node i.
  • this predicted amount may be of great uncertainty. For example, in actual applications, the amount of resources required at the node i may exceed the predetermined amount. In order to overcome such uncertainty, the safe inventory of resources for the node i may be greater than the predicted amount. However, the safe inventory of resources for the node i should not be too large, otherwise it will lead to unnecessary costs. Therefore, in some implementations, when the safe inventory of resources for the node i is determined, in addition to considering the predicted amount, confidence information (that is, the deviation in the predicted amount) may be also considered.
  • FIG. 4 illustrates a flowchart of a process 400 for determining a safe inventory (namely, LDi ) of resources for a node i in accordance with some implementations of the subject matter described herein.
  • the process 400 may be implemented by the computing device 100 shown in FIG. 1 , for instance, at the inventory control module 122. For ease of depiction, this process is described with reference to FIG. 1. It is to be understood that the process 400 may further include additional acts not shown and/or omit the shown acts and the scope of the subject matter described herein is not limited in this regard.
  • the computing device 100 determines a first estimate of the safe inventory LDi (that is, the first threshold) of resources for a node i.
  • the amount of resources required at the time point and location corresponding to the node i may be predicted based on history information. It is assumed here that the time point corresponding to the node i in the time-space network 300 is t (where / e [Ti, T N ]), and the location corresponding to the node i is p (where p e [Pi, P 4 ]), and the first estimate for the predicted first threshold is b p .
  • the computing device 100 determines a second estimate of a deviation in the first estimate.
  • the computing device 100 may first obtain a maximum absolute error k p related to the amount of resources required by the location p.
  • the maximum absolute error k p indicates the maximum value of deviation existing in the first estimate, which may be a value predefined for the location p.
  • the computing device 100 may further obtain a historical deviation existing in a historical estimate of the amount of resources required for location p before the time point t. Then, the computing device 100 may determine the second estimate of the deviation existing in the first estimate at least based on the maximum absolute error k p and the history deviation.
  • the second estimate b p may be determined with the following equation (4): equation (4) where b p represents the deviation existing in the estimate of the amount of resources required for the location p at the time point q before the time point t, and a represents a coefficient applied to a sum of history deviations (that is, For example, FIG. 5 illustrates a schematic diagram of the second estimate of the deviation existing in a first estimate of the safe inventory of resources in accordance with some implementations of the subject matter described herein. As illustrated in FIG. 5, for a location p , before the critical time point to , the second estimate b p increases gradually with time. At the critical time point to , the second estimate b p increases to be equal to the maximum absolute error k p and after the critical time point to , the second estimate b p remains to be equal to the maximum absolute error/c p
  • the computing device 100 determines the safe inventory LDi (namely, first threshold) of resources for the node i based on the first estimate and the second estimate.
  • the first threshold LDi may be determined from the range [b p — b p , b p + b p ].
  • the first threshold LDi may be determined as the maximum value in the range [b p — b p , b p + b p ], that is, b p + b p , to overcome uncertainty in the prediction for b p .
  • the computing device 100 may determine the second threshold HDi in a similar way as that for determining the first threshold LDi, which will not be depicted here in detail for purpose of simplicity.
  • the computing device 100 may further determine respective penalties (also referred to as“costs”) associated with the set of constraints. For example, taking the set of constraints shown in equations (l) ⁇ (3) as an example, the computing device 100 may determine that the first penalty associated with the first constraint shown in equation (1) as COSTi, the second penalty associated with the second constraint shown in equation (2) as COST 2 , and the third penalty associated with the third constraint shown in equation (3) is COST3.
  • the first penalty COSTi to be imposed for not satisfying the first constraint may be made no less than the second penalty COST2 to be imposed for not satisfying the second constraint. That is, COSTi > COST 2 .
  • implementations of the subject matter described herein can configure a higher priority to an under-resourced node than a resource-balanced node so as to allow resources to be delivered preferentially to under-resourced nodes.
  • the computing device 100 determines a sum of penalties associated with a plurality of nodes (namely, the plurality of locations at the plurality of time points) based on the at least one constraint and the corresponding penalty.
  • the computing device 100 may create an objective function to represent a sum of penalties associated with multiple nodes in the time-space network 300.
  • the objective function may be shown as follows: equation ( 5 ) where i represents an index of a node, and j represents an index of a constraint for the node i.
  • the computing device 100 determines the second amount and the third amount by minimizing the sum of penalties associated with the plurality of nodes (that is, the plurality of locations at multiple time points). For example, by minimizing the objective function shown in equation (4), the computing device 100 may determine the second amount IN, of resources shipped to the node i and the third number OUTi of resources shipped from the node i. In this way, implementations of the subject matter described herein can determine a value associated with each edge in the time-space network 300 shown in FIG. 3, where the value may indicate the amount of resources shipped via the path represented by the edge. Therefore, without predicting the role of each node in the time-space network beforehand, implementations of the subject matter described herein can determine the solution for resource shipping among different nodes by applying a set of uncomplicated constraints to each node.
  • implementations of the subject matter described herein provide a solution for inventory control of resources.
  • the solution applies a set of constraints for each node in the time-space network representing path information among a plurality of locations, and determines an amount of resources shipped to each node and an amount of resources shipped from each node with a linear programming model.
  • uncertainty during the prediction process can be overcome effectively.
  • it is possible to maintain a proper inventory level of resources at each location without applying complicated constraints to different locations so as to spare unnecessary costs while meeting the customers’ requirements.
  • it can be applied to various fields including but not limited to empty container shipping.
  • the subject matter described herein provides a device.
  • the device comprises: a processing unit; a memory coupled to the processing unit and storing instructions for execution by the processing unit which, when executed by the processing unit, cause the device to perform acts comprising: obtaining path information about a plurality of locations, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point; determining at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint, the first amount being associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path; determining, based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points; and determining the second amount and the third amount by minimizing the
  • determining the at least one constraint comprises: determining a first constraint for the first amount, the first constraint requiring the first amount to exceed zero.
  • determining the at least one constraint further comprises: determining a second constraint for the first amount, the second constraint requiring the first amount to exceed a first threshold, wherein the first threshold indicates a minimum amount of resources required by the location at the particular time point.
  • determining the corresponding penalty comprises: determining a first penalty to be imposed for failing to satisfy the first constraint; and determining a second penalty to be imposed for failing to satisfy the second constraint, wherein the first penalty exceeds the second penalty.
  • the first threshold is a predetermined fixed value.
  • determining the second constraint comprises: determining a first estimate of the first threshold; determining a second estimate of a deviation in the first estimate; determining the first threshold based on the first estimate and the second estimate; and determining the second constraint based on the first threshold.
  • determining the second estimate comprises: obtaining a maximum absolute error related to an amount of resources required by the location; obtaining a historical deviation in a historical estimate for an amount of resources required by the location before the particular time point; and determining the second estimate at least based on the maximum absolute error and the history deviation.
  • determining the at least one constraint comprises: determining a third constraint for the first amount, the third constraint requiring the first amount to be below a second threshold, wherein the second threshold indicates a maximum amount of resources that can be accommodated by the location at the particular time point.
  • the subject matter described herein provides a computer- implemented method.
  • the method comprises: obtaining path information about a plurality of locations, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point; determining at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint, the first amount being associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path; determining, based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points; and determining the second amount and the third amount by minimizing the sum of penalties.
  • determining the at least one constraint comprises: determining a first constraint for the first amount, the first constraint requiring the first amount to exceed zero.
  • determining the at least one constraint further comprises: determining a second constraint for the first amount, the second constraint requiring the first amount to exceed a first threshold, wherein the first threshold indicates a minimum amount of resources required by the location at the particular time point.
  • determining the corresponding penalty comprises: determining a first penalty to be imposed for failing to satisfy the first constraint; and determining a second penalty to be imposed for failing to satisfy the second constraint, wherein the first penalty exceeds the second penalty.
  • the first threshold is a predetermined fixed value.
  • determining the second constraint comprises: determining a first estimate of the first threshold; determining a second estimate of a deviation in the first estimate; determining the first threshold based on the first estimate and the second estimate; and determining the second constraint based on the first threshold.
  • determining the second estimate comprises: obtaining a maximum absolute error related to an amount of resources required by the location; obtaining a historical deviation in a historical estimate for an amount of resources required by the location before the particular time point; and determining the second estimate at least based on the maximum absolute error and the history deviation.
  • determining the at least one constraint comprises: determining a third constraint for the first amount, the third constraint requiring the first amount to be below a second threshold, wherein the second threshold indicates a maximum amount of resources that can be accommodated by the location at the particular time point.
  • the subject matter described herein provides a computer program product.
  • the computer program product is tangibly stored on a non-transient computer storage medium and comprises computer executable instructions that, when executed by a device, cause the device to perform the method according to the second aspect of the subject matter described herein.
  • the subject matter described herein provides a computer readable medium having computer executable instructions stored thereon, the computer executable instructions, when executed by a device, cause the device to perform the method according to the second aspect of the subject matter described herein.
  • the functionally described herein can be performed, at least in part, by one or more hardware logic components.
  • illustrative types of hardware logic components include Field-Programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
  • Program code for carrying out methods of the subject matter described herein may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented.
  • the program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
  • a machine readable medium may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • the machine readable medium may be a machine readable signal medium or a machine readable storage medium.
  • a machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • machine readable storage medium More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • CD-ROM portable compact disc read-only memory
  • magnetic storage device or any suitable combination of the foregoing.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Educational Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

In accordance with implementations of the subject matter described herein, a solution for inventory control of resources is provided. In this solution, path information about a plurality of locations is obtained, the path information indicating a first path departing from a location at a particular time point and a second path arriving at the location at the particular time point. Then, at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty are determined. A sum of penalties associated with a plurality of locations at the plurality of time points is determined based on the at least one constraint and the corresponding penalty. A second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path are determined by minimizing the sum of penalties.

Description

INVENTORY CONTROL OF RESOURCES
BACKGROUND
[0001] Inventory control is one of the most important issues in the logistics service industry. Taking shipping container transportation as an example, shipping companies need to keep a certain number of empty containers at each port for shipping goods so as to meet customers’ needs. However, due to the limited total number of empty containers and severe imbalance in global trade, how to determine the number of empty containers to be retained at each port becomes a grave challenge.
SUMMARY
[0002] In accordance with implementations of the subject matter described herein, a solution for inventory control of resources is provided. In this solution, path information about a plurality of locations is obtained, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point. Then, at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint are determined. The first amount is associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path. Based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points is determined. The second amount and the third amount are determined by minimizing the sum of penalties. With this solution, it is possible to maintain a proper inventory level of resources at each location so as to spare unnecessary costs while meeting the customers’ requirements.
[0003] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 illustrates a block diagram of a computing device 100 in which multiple implementations of the subject matter described herein can be implemented;
[0005] FIG. 2 illustrates a flowchart of a process 200 for inventory control of resources in accordance with some implementations of the subject matter described herein; [0006] FIG. 3 illustrates a schematic diagram of an example time-space network 300 representing path information among a plurality of locations in accordance with some implementations of the subject matter described herein;
[0007] FIG. 4 illustrates a flowchart of a process 400 for determining a safe inventory of resources for a node in accordance with some implementations of the subject matter described herein; and
[0008] FIG. 5 illustrates a schematic diagram of a second estimate of deviation existing in a first estimate for safe inventory in accordance with some implementations of the subject matter described herein.
[0009] Throughout the drawings, the same or similar reference symbols refer to the same or similar elements.
DETAILED DESCRIPTION
[0010] The subject matter described herein will now be discussed with reference to several example implementations. It is to be understood that these implementations are discussed only for the purpose of enabling those skilled persons in the art to better understand and thus implement the subject matter described herein, rather than suggesting any limitations on the scope of the subject matter.
[0011] As used herein, the term“includes” and its variants are to be read as open terms that mean“includes, but is not limited to.” The term“based on” is to be read as“based at least in part on.” The term“one implementation” and“an implementation” are to be read as“at least one implementation.” The term“another implementation” is to be read as“at least one other implementation.” The terms“first,”“second,” and the like may refer to different or same objects. Other definitions, explicit and implicit, may be included below.
[0012] FIG. 1 illustrates a block diagram of a computing device 100 in which implementations of the subject matter described herein can be implemented. It would be appreciated that the computing device 100 described in FIG. 1 is merely for illustration and not limit the function and scope of implementations of the subject matter described herein in any manners. As shown in FIG. 1, the computing environment 100 includes a computing device 100 in form of a general computer device. Components of the computing device 100 may include, but are not limited to, one or more processors or processing units 110, a memory 120, a storage device 130, one or more communication units 140, one or more input devices 150, and one or more output devices 160.
[0013] In some implementations, the computing device 100 may be implemented as various user terminals or service terminals having computing capability. The service terminals may be servers, large-scale computing devices and the like provided by various service providers. The user terminals are, for instance, any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, television receiver, radio broadcast receiver, electronic book device, game device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. It is also contemplated that the computing device 101 can support any type of interface to the user (such as "wearable" circuitry, etc.).
[0014] The processing unit 110 may be a physical or virtual processor and can execute various processes based on the programs stored in the memory 120. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capacity of the computing device 100. The processing unit 110 is also referred to as central processing unit (CPU), microprocessor, controller and microcontroller.
[0015] The computing device 100 typically includes a plurality of computer storage media, which can be any available media accessible by the computing device 100, including but not limited to volatile and non-volatile media, and removable and non-removable media. The memory 120 can be a volatile memory (for example, a register, high-speed cache, random access memory (RAM)), non-volatile memory (for example, a read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or any combination thereof. The memory 120 may include a prediction module 122 configured to perform the functions of various implementations described herein. The prediction module 122 may be accessed and operated by the processing unit 110 to achieve the corresponding functions.
[0016] The storage device 130 may be removable and non-removable media and may include machine readable media capable of storing information and/or data and accessible in the computing device 100. The computing device 100 may further include other removable/ non-removable and volatile/non-volatile storage media. Although not shown in FIG. 1, it is possible to provide disk drive for reading from and writing into removable and non-volatile disks and disc drive for reading from and writing into removable and non volatile discs. In such cases, each drive can be connected to the bus (not shown) via one or more data medium interfaces.
[0017] The communication unit 140 communicates with a further computing device via communication media. Additionally, functions of components of the computing device 100 may be implemented by a single computing cluster or multiple computing machines that are communicatively connectable for communication. Therefore, the computing device 100 may be operated in a networking environment using a logical link with one or more other servers, personal computers (PCs) or another general network node.
[0018] The input device 150 may include one or more input devices, such as a mouse, keyboard, touch screen, tracking ball, voice-input device and the like. The output device 160 may be one or more output devices, such as a display, loudspeaker, printer and the like. The computing device 100 may also communicate with one or more external devices (not shown) via the communication unit 140 as required. The external devices, such as storage devices and display devices and so on, communicate with one or more devices that enable the user to interact with the computing device 100, or any device (such as a network card, modem, and the like) that enables the computing device 100 to communicate with one or more other computing devices. Such communication is performed via an input/output (I/O) interface (not shown).
[0019] In some implementations, apart from being integrated into a single device, some or all the components of the computing device 100 may be configured in a form of a cloud computing architecture in which these components may be arranged remotely and may work together to accomplish the functions described herein. In some implementations, cloud computing provides computing, software, data access and storage services which do not require the end users to know the physical location or configuration of the system or hardware that provides these services. In various embodiments, cloud computing uses appropriate protocols to provide service through a Wide Area Network (such as Internet). For example, cloud computing providers provide applications through Wide Area Network which are accessible through web browser or any other computing components. Software or components of the cloud computing architecture and the corresponding data may be stored in a server at a remote location. The computing resources in a cloud computing environment may be merged at a remote data center position or scattered. Cloud computing infrastructure may provide services through a shared data center, even if they are represented by a single access point for the user. Therefore, it is possible to provide the components and functions described herein using a cloud computing architecture from a service provider at a remote location. Alternatively, they may be provided from a conventional server, or be mounted on a client device directly or in other manners.
[0020] The computing device 100 may be used to implement the solution for inventory control of resources in accordance with the subject matter described herein. When the solution is implemented, the computing device 100 may receive path information 170 at a plurality of locations through the input device 150. The path information 170, for instance, may be input by a user and indicate paths (for instance, shipping lines) between different locations (such as, ports) at different time points. In the example shown in FIG. 1, the path information 170, for instance, may be represented by a time-space network including a plurality of nodes and a plurality of edges connecting the plurality of nodes, where one node in the time-space network represents a location at a particular time point, and a first edge starting from the node in the time-space network represents a first path departing from the location at the particular time point, while the second edge reaching the node in the time- space network represents the second path arriving at the location at the particular time point. The processing unit 110 of the computing device 100 may determine an inventory control result 180 for the path information 170 through the inventory control module 122 and output the inventory control result through the output device 160. For example, the inventory control result 180 determined by the inventory control module 122 may indicate an amount of resources shipped to the location via the second path and an amount of resources shipped from the location via the first path.
[0021] It is to be understood that the path information 170 and the inventory control result 180 involved in FIG. 1 are provided merely as examples. In other implementations, the path information 170 and/or inventory control result 180 may represent different contents or be presented in various manners (such as, text, graph and/or table). Implementations of the subject matter described herein are not limited in this regard.
[0022] In some traditional schemes relating to inventory control, it is common to predict whether the role of the location is under-resourced, resource-balanced or resource surplus by predicting the amount of future output and recycling of a particular resource at each location. The traditional solutions typically determine the amount of resources to be shipped to and from the location based on such predetermined role for each location. However, such pre-determined roles for the locations are often inaccurate. For example, the role for each location is generally changing, while the role predetermined for the location in the traditional schemes is generally not flexible enough. Therefore, this schemes may result in applying an erroneous inventory strategy to locations with different roles, or an overly complex constraint imposed on different locations due to different roles of different locations when determining the amount of resource shipping.
[0023] In accordance with implementations of the subject matter described herein, a solution for inventory control of resources is provided. In this solution, path information about a plurality of locations is obtained, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point. Then, at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint are determined. The first amount is associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path. Based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points is determined. The second amount and the third amount are determined by minimizing the sum of penalties. With this solution, it is possible to maintain a proper inventory level of resources at each location so as to spare unnecessary costs while meeting the customers’ requirements.
[0024] Reference will be made to the drawings below to depict example implementations of the subject matter described herein. For ease of depiction, shipping container transportation will be taken as an example to depict example implementations of the subject matter described herein in details. However, it is to be understood that this is for the purpose of illustration, without suggesting any limitation to the scope of the subject matter described herein. Implementations of the subject matter described herein may also be applicable to other fields than shipping container transportation, and the scope of the subject matter described herein is not limited in this regard.
[0025] FIG. 2 is a flowchart illustrating a process 200 for inventory control of resources in accordance with some implementations of the subject matter described herein. The process 200 may be implemented by the computing device 100 shown in FIG. 1, for example, at the inventory control module 122. For ease of depiction, reference is made to FIG. 1 to depict this process. It is to be understood that the process 200 may further include additional acts not shown and/or omit the shown acts, and the scope of the subject matter described herein is not limited in this regard.
[0026] At block 210, the computing device 100 obtains the path information 170 about a plurality of locations. For example, the path information 170 may be input by the user to the computing device 100 via a particular input device 150. In some implementations, the path information, for instance, may be represented by a time-space network including a plurality of nodes and a plurality of edges connecting the plurality of nodes, where one node in the time-space network represents a location at a particular time point, and a first edge starting from the node in the time-space network represents a first path departing from the location at the particular time point, while the second edge reaching the node in the time- space network represents the second path arriving at the location at the particular time point.
[0027] FIG. 3 illustrates a schematic diagram of an example time-space network 300 representing path information among a plurality of locations in accordance with some implementations of the subject matter described herein. For example, the time-space network 300 represents path information among a plurality of locations Pi, P2, P3 and P4. As shown in FIG. 3, the vertical axis in the time-space network 300 represents different locations Pl, P2, P3 and P3, while the horizontal axis represents different time points Ti, T2, . . . , TN (where N is a natural number).
[0028] As shown in FIG. 3, the time-space network 300 may include a plurality of nodes 3 l0-xy (where x e [1, 4] and y e [1, N]), where the nodes 3 l0-xy represent a location Px at a time point Ty. Besides, the time-space network 300 further includes a plurality of edges connecting the plurality of nodes 3 l0-xy, where an edge starting from the node 310- xy may represent a path departing from the location Px at the time point Ty, while an edge reaching the node 3 l0-xy represents a path arriving at the location Px at the time point Ty. Taking the node 310-22 as an example, the node 310-22 represents the location P2 at the time point T2. An edge 320 starting from the node 310-22 represents a path (also referred to as“first path”) departing from the location P2 at the time point T2, while an edge 330 reaching the node 310-22 represents a path (also referred to as“second path”) arriving at the location P2 at the time point T2.
[0029] Although only four locations (namely, Pi, P2, P3 and P4) are shown in the time- space network 300 illustrated in FIG. 3, it is to be understood that this is merely for the purpose of illustration, without suggesting any limitation to the scope of the subject matter described herein. In implementations of the subject matter described herein, the time- space network representing path information may indicate the path information among any number of locations. For ease of illustration, reference will be made to the example time- space network 300 shown in FIG. 3 to depict the process 200 shown in FIG. 2.
[0030] Returning to FIG. 2, at block 220, the computing device 100 determines at least one constraint for a first amount of resources at a node (that is, a certain location at a particular time point) in the time-space network 300 and a corresponding penalty associated with the at least one constraint.
[0031] Taking shipping container transportation as an example, the“resource” described herein, for instance, may refer to an empty container (also referred to as“empty container”). Different from the traditional solution which predicts the number of empty containers to be shipped from and to the location, in some implementations, to determine the number of empty containers to be retained at each location, a group of constraints may be applied to each node in the time-space network 300 shown in FIG. 3, and then the corresponding number of empty containers shipping to and out of each node may be determined automatically with a linear programming model.
[0032] For example, for a node i in the time-space network 300, assuming that INi represents the number (also referred to as“second number” herein) of empty containers shipped to the node i, OUTi represents the number (also referred to as“third number” herein) of empty containers shipped from the node and INVi represents the original number (for example, it may be a predetermined value) of empty containers at the node then the number (also referred to as“first number” herein) of empty containers remaining at the node i may be represented as IN, + INVi OUTi. Taking the node 310-22 shown in FIG. 3 as an example, assuming that IN310-22 represents the number of empty containers shipped to the location P2 via the second path 330, OUT310-22 represents the number of empty containers shipped from the location P2 via the first path 320, and INV310-22 represents the original number (for example, it may be a pre-determined value) of empty containers at the node 310-22, then the number of empty containers remaining at location P2 at the time point T2 may be represented as IN310-22 + INV310-22 - OUT310-22.
[0033] In some implementations, the computing device 100 may determine at least one constraint for a first amount of resources remaining at node i in the time-space network 300. For example, the at least one constraint for the node i may indicate the relation between the first amount and one or more thresholds. In some implementations, the at least one constraint for the node i may include one or more of the following constraints: a first constraint requiring the first amount to exceed zero; a second constraint requiring the first amount to exceed the required minimum amount of resources (also referred to as“first threshold”) at the node; and a third threshold requiring the first amount to be below the maximum amount of resources (also referred to as “second threshold”) that can be accommodated at the node. It is to be understood that the number of constraints of the at least one constraint for the node i described herein and the relationship to be satisfied between the first amount and one or more thresholds required in the at least one constraint are merely exemplary, without suggesting any limitation to the scope of the subject matter described herein. In other implementations, it is also possible to apply another group of constraints different from the above constraints to the node i in the time-space network 300, and the scope of the subject matter described herein is not limited in this regard.
[0034] In some implementations, in order to solve the problem at a larger feasible domain (for example, to ensure the existence of a feasible solution), respective slack variables may be applied to the above set of constraints. As used herein, the“slack variable” refers to the portion of a constraint that exceeds the minimum of the constraint. For example, by applying the respective slack variables, the set of constraints (namely, the first constraint, the second constraint and the third constraint) for the first amount of resources remaining at the node i may be represented respectively as follows:
INi + INVi OUTi + SLKi,i>0 equation ( l )
INi + INVi OUT, + SLKi,2³LDi equation (2)
INi + INV, OUT SLKi,3<HDi equation ( 3 ) where the first threshold LDi represents a minimum amount of resources required at the node i, for instance, LDi > 0. The second threshold HDi represents a maximum amount of resources that can be accommodated at node i, for example, HDi > LDi. SLKi.i represents a slack variable for the first constraint and it measures the extent to which the first amount of resources remaining at node i fails to satisfy“>0.” SLKi, 2 represents a slack variable for the second constraint and measures the extent to which the first amount of resources remaining at the node i fails to satisfy“>ZZl.” SLKi denotes a slack variable for the third constraint and measures the extent to which the first amount of resources remaining at node i fails to satisfy
Figure imgf000011_0001
[0035] In some implementations, for the node i in the time-space network, the first threshold LDi and the second threshold HDi may be predetermined fixed values. Particularly, the first threshold LDi may represent a safe inventory of resources at the time point and location corresponding to the node i, which is also referred to as“net supply value” for resources of the node i. In some implementations, for example, the amount of resources required at the time point and location corresponding to the node may be determined based on history information, and the predicted amount may be taken as the safe inventory of resources for the node i.
[0036] In some cases, this predicted amount may be of great uncertainty. For example, in actual applications, the amount of resources required at the node i may exceed the predetermined amount. In order to overcome such uncertainty, the safe inventory of resources for the node i may be greater than the predicted amount. However, the safe inventory of resources for the node i should not be too large, otherwise it will lead to unnecessary costs. Therefore, in some implementations, when the safe inventory of resources for the node i is determined, in addition to considering the predicted amount, confidence information (that is, the deviation in the predicted amount) may be also considered.
[0037] FIG. 4 illustrates a flowchart of a process 400 for determining a safe inventory (namely, LDi ) of resources for a node i in accordance with some implementations of the subject matter described herein. The process 400 may be implemented by the computing device 100 shown in FIG. 1 , for instance, at the inventory control module 122. For ease of depiction, this process is described with reference to FIG. 1. It is to be understood that the process 400 may further include additional acts not shown and/or omit the shown acts and the scope of the subject matter described herein is not limited in this regard.
[0038] At block 410, the computing device 100 determines a first estimate of the safe inventory LDi (that is, the first threshold) of resources for a node i. For example, the amount of resources required at the time point and location corresponding to the node i may be predicted based on history information. It is assumed here that the time point corresponding to the node i in the time-space network 300 is t (where / e [Ti, TN]), and the location corresponding to the node i is p (where p e [Pi, P4]), and the first estimate for the predicted first threshold is bp.
[0039] At block 420, the computing device 100 determines a second estimate of a deviation in the first estimate. In some implementations, to determine the deviation existing in the first estimate, the computing device 100 may first obtain a maximum absolute error kp related to the amount of resources required by the location p. For example, the maximum absolute error kp indicates the maximum value of deviation existing in the first estimate, which may be a value predefined for the location p. The computing device 100 may further obtain a historical deviation existing in a historical estimate of the amount of resources required for location p before the time point t. Then, the computing device 100 may determine the second estimate of the deviation existing in the first estimate at least based on the maximum absolute error kp and the history deviation. Assuming that the second estimate is represented as bp , then the second estimate bp may be determined with the following equation (4):
Figure imgf000013_0001
equation (4) where bp represents the deviation existing in the estimate of the amount of resources required for the location p at the time point q before the time point t, and a represents a coefficient applied to a sum of history deviations (that is,
Figure imgf000013_0002
For example, FIG. 5 illustrates a schematic diagram of the second estimate of the deviation existing in a first estimate of the safe inventory of resources in accordance with some implementations of the subject matter described herein. As illustrated in FIG. 5, for a location p , before the critical time point to , the second estimate bp increases gradually with time. At the critical time point to , the second estimate bp increases to be equal to the maximum absolute error kp and after the critical time point to , the second estimate bp remains to be equal to the maximum absolute error/cp
[0040] Returning to FIG. 4, at block 430, the computing device 100 determines the safe inventory LDi (namely, first threshold) of resources for the node i based on the first estimate and the second estimate. In some implementations, the first threshold LDi may be determined from the range [bp— bp, bp + bp]. Particularly, in some implementations, the first threshold LDi may be determined as the maximum value in the range [bp— bp, bp + bp], that is, bp + bp, to overcome uncertainty in the prediction for bp .
[0041] In some implementations, the computing device 100 may determine the second threshold HDi in a similar way as that for determining the first threshold LDi, which will not be depicted here in detail for purpose of simplicity.
[0042] Returning to FIG. 2, at block 220, in addition to determining the set of constraints for the node i in the time-space network, the computing device 100 may further determine respective penalties (also referred to as“costs”) associated with the set of constraints. For example, taking the set of constraints shown in equations (l)~(3) as an example, the computing device 100 may determine that the first penalty associated with the first constraint shown in equation (1) as COSTi, the second penalty associated with the second constraint shown in equation (2) as COST2, and the third penalty associated with the third constraint shown in equation (3) is COST3. In some implementations, in order to deliver resources preferentially to under-resourced nodes, the first penalty COSTi to be imposed for not satisfying the first constraint may be made no less than the second penalty COST2 to be imposed for not satisfying the second constraint. That is, COSTi > COST2. In this way, implementations of the subject matter described herein can configure a higher priority to an under-resourced node than a resource-balanced node so as to allow resources to be delivered preferentially to under-resourced nodes.
[0043] At block 230, the computing device 100 determines a sum of penalties associated with a plurality of nodes (namely, the plurality of locations at the plurality of time points) based on the at least one constraint and the corresponding penalty. In some implementations, for the time-space network 300 shown in FIG. 3, the computing device 100 may create an objective function to represent a sum of penalties associated with multiple nodes in the time-space network 300. For example, the objective function may be shown as follows:
Figure imgf000014_0001
equation ( 5 ) where i represents an index of a node, and j represents an index of a constraint for the node i. For example, taking the set of constraints shown by equations (l)~(3) as an example, ye[l, 3] COSTj represents the penalty associated with the jth constraint, and SLKi represents the extent to which the first amount of resources remaining at the node i fails to satisfy the jth constraint. In this way, implementations of the subject matter described herein can create an objective function to represent the sum of penalties associated with multiple nodes in the time-space network 300.
[0044] At block 240, the computing device 100 determines the second amount and the third amount by minimizing the sum of penalties associated with the plurality of nodes (that is, the plurality of locations at multiple time points). For example, by minimizing the objective function shown in equation (4), the computing device 100 may determine the second amount IN, of resources shipped to the node i and the third number OUTi of resources shipped from the node i. In this way, implementations of the subject matter described herein can determine a value associated with each edge in the time-space network 300 shown in FIG. 3, where the value may indicate the amount of resources shipped via the path represented by the edge. Therefore, without predicting the role of each node in the time-space network beforehand, implementations of the subject matter described herein can determine the solution for resource shipping among different nodes by applying a set of uncomplicated constraints to each node.
[0045] From the above depiction, it can be seen that implementations of the subject matter described herein provide a solution for inventory control of resources. The solution applies a set of constraints for each node in the time-space network representing path information among a plurality of locations, and determines an amount of resources shipped to each node and an amount of resources shipped from each node with a linear programming model. By determining the amount of resource shipping without predicting the role of each location beforehand, uncertainty during the prediction process can be overcome effectively. With this solution, it is possible to maintain a proper inventory level of resources at each location without applying complicated constraints to different locations so as to spare unnecessary costs while meeting the customers’ requirements. In view of various benefits of the present solution, it can be applied to various fields including but not limited to empty container shipping.
[0046] Some exemplary implementations of the subject matter described herein are listed below.
[0047] In a first aspect, the subject matter described herein provides a device. The device comprises: a processing unit; a memory coupled to the processing unit and storing instructions for execution by the processing unit which, when executed by the processing unit, cause the device to perform acts comprising: obtaining path information about a plurality of locations, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point; determining at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint, the first amount being associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path; determining, based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points; and determining the second amount and the third amount by minimizing the sum of penalties.
[0048] In some implementations, determining the at least one constraint comprises: determining a first constraint for the first amount, the first constraint requiring the first amount to exceed zero.
[0049] In some implementations, determining the at least one constraint further comprises: determining a second constraint for the first amount, the second constraint requiring the first amount to exceed a first threshold, wherein the first threshold indicates a minimum amount of resources required by the location at the particular time point.
[0050] In some implementations, determining the corresponding penalty comprises: determining a first penalty to be imposed for failing to satisfy the first constraint; and determining a second penalty to be imposed for failing to satisfy the second constraint, wherein the first penalty exceeds the second penalty.
[0051] In some implementations, the first threshold is a predetermined fixed value.
[0052] In some implementations, determining the second constraint comprises: determining a first estimate of the first threshold; determining a second estimate of a deviation in the first estimate; determining the first threshold based on the first estimate and the second estimate; and determining the second constraint based on the first threshold.
[0053] In some implementations, determining the second estimate comprises: obtaining a maximum absolute error related to an amount of resources required by the location; obtaining a historical deviation in a historical estimate for an amount of resources required by the location before the particular time point; and determining the second estimate at least based on the maximum absolute error and the history deviation.
[0054] In some implementations, determining the at least one constraint comprises: determining a third constraint for the first amount, the third constraint requiring the first amount to be below a second threshold, wherein the second threshold indicates a maximum amount of resources that can be accommodated by the location at the particular time point.
[0055] In a second aspect, the subject matter described herein provides a computer- implemented method. The method comprises: obtaining path information about a plurality of locations, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point; determining at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint, the first amount being associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path; determining, based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points; and determining the second amount and the third amount by minimizing the sum of penalties.
[0056] In some implementations, determining the at least one constraint comprises: determining a first constraint for the first amount, the first constraint requiring the first amount to exceed zero.
[0057] In some implementations, determining the at least one constraint further comprises: determining a second constraint for the first amount, the second constraint requiring the first amount to exceed a first threshold, wherein the first threshold indicates a minimum amount of resources required by the location at the particular time point.
[0058] In some implementations, determining the corresponding penalty comprises: determining a first penalty to be imposed for failing to satisfy the first constraint; and determining a second penalty to be imposed for failing to satisfy the second constraint, wherein the first penalty exceeds the second penalty.
[0059] In some implementations, the first threshold is a predetermined fixed value.
[0060] In some implementations, determining the second constraint comprises: determining a first estimate of the first threshold; determining a second estimate of a deviation in the first estimate; determining the first threshold based on the first estimate and the second estimate; and determining the second constraint based on the first threshold.
[0061] In some implementations, determining the second estimate comprises: obtaining a maximum absolute error related to an amount of resources required by the location; obtaining a historical deviation in a historical estimate for an amount of resources required by the location before the particular time point; and determining the second estimate at least based on the maximum absolute error and the history deviation.
[0062] In some implementations, determining the at least one constraint comprises: determining a third constraint for the first amount, the third constraint requiring the first amount to be below a second threshold, wherein the second threshold indicates a maximum amount of resources that can be accommodated by the location at the particular time point.
[0063] In a third aspect, the subject matter described herein provides a computer program product. The computer program product is tangibly stored on a non-transient computer storage medium and comprises computer executable instructions that, when executed by a device, cause the device to perform the method according to the second aspect of the subject matter described herein.
[0064] In a fourth aspect, the subject matter described herein provides a computer readable medium having computer executable instructions stored thereon, the computer executable instructions, when executed by a device, cause the device to perform the method according to the second aspect of the subject matter described herein.
[0065] The functionally described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-Programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
[0066] Program code for carrying out methods of the subject matter described herein may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented. The program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
[0067] In the context of this disclosure, a machine readable medium may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0068] Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the subject matter described herein, but rather as descriptions of features that may be specific to particular implementations. Certain features that are described in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation may also be implemented in multiple implementations separately or in any suitable sub- combination. [0069] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter specified in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims

1. A device comprising:
a processing unit;
a memory coupled to the processing unit and storing instructions for execution by the processing unit which, when executed by the processing unit, cause the device to perform acts comprising:
obtaining path information about a plurality of locations, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point;
determining at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint, the first amount being associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path;
determining, based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points; and
determining the second amount and the third amount by minimizing the sum of penalties.
2. The device according to Claim 1, wherein determining the at least one constraint comprises:
determining a first constraint for the first amount, the first constraint requiring the first amount to exceed zero.
3. The device according to Claim 2, wherein determining the at least one constraint further comprises:
determining a second constraint for the first amount, the second constraint requiring the first amount to exceed a first threshold, wherein the first threshold indicates a minimum amount of resources required by the location at the particular time point.
4. The device according to Claim 3, wherein determining the corresponding penalty comprises:
determining a first penalty to be imposed for failing to satisfy the first constraint; and
determining a second penalty to be imposed for failing to satisfy the second constraint, wherein the first penalty exceeds the second penalty.
5. The device according to Claim 3, wherein the first threshold is a predetermined value.
6. The device according to Claim 3, wherein determining the second constraint comprises:
determining a first estimate of the first threshold;
determining a second estimate of a deviation in the first estimate;
determining the first threshold based on the first estimate and the second estimate; and
determining the second constraint based on the first threshold.
7. The device according to Claim 6, wherein determining the second estimate comprises:
obtaining a maximum absolute error related to an amount of resources required by the location;
obtaining a historical deviation in a historical estimate for an amount of resources required by the location before the particular time point; and
determining the second estimate at least based on the maximum absolute error and the history deviation.
8. The device according to Claim 1, wherein determining the at least one constraint comprises:
determining a third constraint for the first amount, the third constraint requiring the first amount to be below a second threshold, wherein the second threshold indicates a maximum amount of resources that can be accommodated by the location at the particular time point.
9. A computer-implemented method, comprising:
obtaining path information about a plurality of locations, the path information indicating a first path departing from one location in a plurality of locations at a particular time point among a plurality of time points and a second path arriving at the location at the particular time point;
determining at least one constraint for a first amount of resources at the location at the particular time point and a corresponding penalty associated with the at least one constraint, the first amount being associated with at least a second amount of resources shipped to the location via the second path and a third amount of resources shipped from the location via the first path; determining, based on the at least one constraint and the corresponding penalty, a sum of penalties associated with the plurality of locations at the plurality of time points; and determining the second amount and the third amount by minimizing the sum of penalties.
10. The method according to Claim 9, wherein determining the at least one constraint comprises:
determining a first constraint for the first amount, the first constraint requiring the first amount to exceed zero.
11. The method according to Claim 10, wherein determining the at least one constraint further comprises:
determining a second constraint for the first amount, the second constraint requiring the first amount to exceed a first threshold, wherein the first threshold indicates a minimum amount of resources required by the location at the particular time point.
12. The method according to Claim 11, wherein determining the corresponding penalty comprises:
determining a first penalty to be imposed for failing to satisfy the first constraint; and
determining a second penalty to be imposed for failing to satisfy the second constraint, wherein the first penalty exceeds the second penalty.
13. The method according to Claim 10, wherein the first threshold is a predetermined value.
14. The method according to Claim 10, wherein determining the second constraint comprises:
determining a first estimate of the first threshold;
determining a second estimate of a deviation in the first estimate;
determining the first threshold based on the first estimate and the second estimate; and
determining the second constraint based on the first threshold.
15. The method according to Claim 14, wherein determining the second estimate comprises:
obtaining a maximum absolute error related to an amount of resources required by the location;
obtaining a historical deviation in a historical estimate for an amount of resources required by the location before the particular time point; and determining the second estimate at least based on the maximum absolute error and the history deviation.
PCT/US2019/031911 2018-05-31 2019-05-13 Inventory control of resources WO2019231637A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810552780.9A CN110555542B (en) 2018-05-31 2018-05-31 Inventory control of resources
CN201810552780.9 2018-05-31

Publications (1)

Publication Number Publication Date
WO2019231637A1 true WO2019231637A1 (en) 2019-12-05

Family

ID=66669105

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/031911 WO2019231637A1 (en) 2018-05-31 2019-05-13 Inventory control of resources

Country Status (2)

Country Link
CN (1) CN110555542B (en)
WO (1) WO2019231637A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113035340B (en) * 2021-03-26 2023-11-24 贵州和瑞医疗科技有限公司 Automatic replenishment system for medical consumable

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055438A1 (en) * 2014-08-19 2016-02-25 Yuanyuan CEN System and method for empty container reposition resistant to disruptions

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433596B2 (en) * 2004-07-20 2013-04-30 Sap Aktiengesellschaft System and method for service parts planning
US20060085299A1 (en) * 2004-10-15 2006-04-20 Goll Michael H Methods and systems for managing inventory by optimizing order quantity and safety stock
JP4410167B2 (en) * 2005-07-14 2010-02-03 株式会社日立製作所 Container management method and container management system
JP2010086055A (en) * 2008-09-29 2010-04-15 Canon Marketing Japan Inc Inventory management device, inventory management method, and program
KR101053200B1 (en) * 2009-08-05 2011-08-01 부산대학교 산학협력단 Container Management System and Method
US20110238537A1 (en) * 2010-03-23 2011-09-29 Gm Global Technology Operations, Inc. Work in process inventory analysis tool
US20170178073A1 (en) * 2015-12-17 2017-06-22 Sap Se Reducing complexity of determining routes for shipping containers by reducing paths based on user selection
US9818082B1 (en) * 2016-01-28 2017-11-14 Amazon Technologies, Inc Managing a removal channel based on inventory capacity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055438A1 (en) * 2014-08-19 2016-02-25 Yuanyuan CEN System and method for empty container reposition resistant to disruptions

Also Published As

Publication number Publication date
CN110555542A (en) 2019-12-10
CN110555542B (en) 2023-06-02

Similar Documents

Publication Publication Date Title
US9063772B2 (en) Automated caching and mirroring of immutable data in distributed virtual machines via native interface components
CN104781795A (en) Dynamic selection of storage tiers
US10585718B2 (en) Hybrid acceleration in a processing environment
US20200322442A1 (en) Multi-dimensional tagging namespace for cloud resource management
US9245030B2 (en) Analytics based on pipes programming model
US20130024573A1 (en) Scalable and efficient management of virtual appliance in a cloud
US11275561B2 (en) Mixed precision floating-point multiply-add operation
US9853866B2 (en) Efficient parallel processing of a network with conflict constraints between nodes
CN110908707A (en) Resource packaging method, device, server and storage medium
US20120159515A1 (en) Sharing object representations
CN110659850A (en) Planning for cargo deployment
US11354573B2 (en) Dynamically resizing minibatch in neural network execution
CN112149863A (en) Method, apparatus, and computer storage medium for determining resource consumption
US20220164163A1 (en) Floating-point computation with threshold prediction for artificial intelligence system
WO2019231637A1 (en) Inventory control of resources
US9953263B2 (en) Performance comparison for determining a travel path for a robot
US11977957B2 (en) Quantum computing program compilation using cached compiled quantum circuit files
US11321106B2 (en) Using binaries of container images as operating system commands
US20180101419A1 (en) Modifying a device based on an annotated time series of sensor readings
US20180060886A1 (en) Market share prediction with shifting consumer preference
US20170371771A1 (en) Adaptive testing using dynamically determined system resources of a computer system
CN109614386B (en) Data processing method, device, server and computer readable storage medium
US20230244685A1 (en) Automatic estimation of computing resources for auto-discovery
US20230396686A1 (en) Configurable and adaptive resiliency in microservice architectures
US11693779B2 (en) Prefetch of random data using application tags

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19727220

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19727220

Country of ref document: EP

Kind code of ref document: A1