CN113807714B - Method, apparatus, device, storage medium and program product for resource allocation - Google Patents

Method, apparatus, device, storage medium and program product for resource allocation Download PDF

Info

Publication number
CN113807714B
CN113807714B CN202111109554.1A CN202111109554A CN113807714B CN 113807714 B CN113807714 B CN 113807714B CN 202111109554 A CN202111109554 A CN 202111109554A CN 113807714 B CN113807714 B CN 113807714B
Authority
CN
China
Prior art keywords
resources
inventory
demand
box
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111109554.1A
Other languages
Chinese (zh)
Other versions
CN113807714A (en
Inventor
艾鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hai Robotics Co Ltd
Original Assignee
Hai Robotics Co Ltd
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 Hai Robotics Co Ltd filed Critical Hai Robotics Co Ltd
Priority to CN202111109554.1A priority Critical patent/CN113807714B/en
Publication of CN113807714A publication Critical patent/CN113807714A/en
Application granted granted Critical
Publication of CN113807714B publication Critical patent/CN113807714B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • 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/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling

Abstract

The application provides a method, a device, equipment, a storage medium and a program product for resource allocation. According to the method, after the resources are allocated to each demand according to the data of the demands at the first moment and the inventory data of the resources, the first allocation result of each demand is obtained, the demands and the resources which change in the period from the first moment to the second moment are determined according to the data of the demands at the second moment and the inventory data of the resources, the first allocation result corresponding to the changed demands and/or the first allocation result corresponding to the changed resources are released, and the resources are reallocated for the changed demands, so that the repair of the first allocation result which is disturbed in the resource allocation period is realized, the infeasible allocation result in the resource allocation results is greatly reduced, and the feasibility of the resource allocation result in actual execution is improved.

Description

Method, apparatus, device, storage medium and program product for resource allocation
The present application is a divisional application of the invention patent application with the name of "method, apparatus, device, storage medium and program product for resource allocation" filed to the chinese patent office with the application number 202110554687.3 and the application date 2021, 05 and 21.
Technical Field
The present disclosure relates to smart storage technologies, and in particular, to a method, an apparatus, a device, a storage medium, and a program product for resource allocation.
Background
In the intelligent warehousing system, when an order enters the warehousing system and is distributed to the operation stations, SKUs (Storage Keeping Unit, stock units) and picking numbers stored in the stock boxes need to be matched for the order to meet the requirements of each operation station for the SKUs. The resulting matches may be considered a set of tasks that may be issued to a robot or pickers for picking. For the same batch of orders, a more rational task of generating may result in less time resources being consumed by the overall picking process.
Currently, the calculation process of allocating inventory SKUs for an operation console determines a resource allocation result based on initial input environmental data such as order requirements, SKU inventory, and the like, so as to realize resource allocation. The resource allocation process requires a long time, and if environmental data changes during the resource allocation process, the feasibility of the resource allocation result in actual execution is affected, and the feasibility of the resource allocation result is poor.
Disclosure of Invention
The application provides a method, a device, equipment, a storage medium and a program product for resource allocation, which are used for improving the feasibility of the result of allocating inventory for an operation platform.
In one aspect, the present application provides a resource allocation method, including:
after allocating resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, obtaining a first allocation result of each demand, and determining the demand and the resources which change from the first moment to the second moment according to the data of the demand at the second moment and the inventory data of the resources, wherein the first allocation result comprises the resources allocated for the demand; releasing a first allocation result corresponding to the changed demand and/or a first allocation result corresponding to the changed resource; and reallocating the resources for the changed demand according to the data of the demand at the current moment and the inventory data of the resources to obtain a second allocation result.
In an alternative embodiment, the allocating resources for each demand according to the data of the demand at the first moment and the inventory data of the resources to obtain a first allocation result of each demand includes: responding to a resource allocation request, wherein the resource allocation request comprises data of demands at a first moment and inventory data of resources, and allocating the resources for each demand according to the data of the demands at the first moment and the inventory data of the resources to obtain a first allocation result of each demand.
In an alternative embodiment, the determining the demand and the resource that change from the data of the demand and the inventory data of the resource at the second time includes: and in response to a resource allocation result request, the resource allocation result request comprising the data of the demand at the second moment and the inventory data of the resource, determining the demand and the resource which change from the first moment to the second moment according to the data of the demand at the second moment and the inventory data of the resource.
In an alternative embodiment, allocating resources for each demand according to the data of the demand and the inventory data of the resources at the first moment to obtain a first allocation result of each demand, including: according to the data of the demands at the first moment and the inventory data of the resources, the following resource allocation processing is carried out on each demand by utilizing a heuristic construction algorithm: allocating the unallocated resources in a first inventory box for a current demand according to the unallocated resources in the first inventory box, wherein the first inventory box is an inventory box associated with a first operation console corresponding to the current demand; if the unallocated resources in the first inventory box do not meet the current demand, allocating resources in a second inventory box for the current demand, the second inventory box being an inventory box not associated with any console; if the resources in the second inventory box do not meet the current demand, allocating the unallocated resources in the third inventory box for the current demand according to the unallocated resources in the third inventory box associated with a second operation table, wherein the second operation table is any operation table except the first operation table; wherein, the stock box associated with any operation platform refers to the stock box of which at least one resource in the box is allocated to the operation platform.
In an alternative embodiment, the allocating the unallocated resources in the first inventory box for the current demand according to the unallocated resources in the first inventory box includes: if at least one fourth inventory box exists in the first inventory box, allocating resources for the current demand according to the unallocated resources in any fourth inventory box if the unallocated resources in any fourth inventory box meet the current demand; and if the fourth stock box does not exist in the first stock box, allocating the unallocated resources in the first stock box with the largest unallocated resources to the current demand.
In an alternative embodiment, the allocating the resource for the current demand according to the unallocated resource in any of the fourth inventory boxes includes: and allocating resources for the current demand according to the unallocated resources in the fourth inventory box with the smallest unallocated resources.
In an alternative embodiment, the allocating the resources in the second inventory box for the current demand includes: if at least one fifth inventory box exists in the second inventory boxes, allocating resources for the current demand according to the unallocated resources in any fifth inventory box if the unallocated resources in any fifth inventory box meet the current demand; and if the fifth inventory box does not exist in the second inventory box, allocating the unallocated resources in the second inventory box with the largest unallocated resources to the current demand.
In an alternative embodiment, the allocating the resource for the current demand according to the unallocated resource in any of the fifth inventory boxes includes: and allocating resources for the current demand according to unallocated resources in a fifth inventory box closest to the first operating table.
In an alternative embodiment, the allocating the unallocated resources in the third inventory box for the current demand according to the unallocated resources in the third inventory box associated with the second console includes: if at least one sixth inventory box exists in the third inventory boxes, allocating resources for the current demand according to the unallocated resources in any sixth inventory box if the unallocated resources in any sixth inventory box meet the current demand; and if the sixth inventory box does not exist in the third inventory box, allocating the unallocated resources in the third inventory box with the largest unallocated resources to the current demand.
In an alternative embodiment, the allocating the resource for the current demand according to the unallocated resource in any of the sixth inventory boxes includes: determining a number of stations associated with each of the sixth inventory boxes; and allocating resources for the current demand according to unallocated resources in a sixth inventory box with the least number of associated operating stations.
In an alternative embodiment, the data according to the requirements at the first moment and the inventory data of the resources utilize a heuristic construction algorithm to perform the following resource allocation process on each requirement, including: screening the demands according to the data of the demands at the first moment and the inventory data of the resources to obtain a first demand set, wherein the first demand set comprises: a demand with a minimum difference between a corresponding number of first resources and an unallocated demand number of target resources, wherein the first resources are unallocated target resources in an inventory box associated with an operation panel corresponding to the demand; performing the resource allocation process for each demand in the first set of demands; if the unsatisfied demand exists, screening the unsatisfied demand to obtain a new first demand set, and carrying out the resource allocation processing on each demand in the new first demand set until all the demands are satisfied.
In an alternative embodiment, before the following resource allocation process is performed on each requirement by using a heuristic construction algorithm, the method further includes: according to the data of the demands at the first moment and the inventory data of the resources, an initial demand set and an initial resource set are determined, wherein the initial demand set contains all demands, each demand comprises the demand quantity of any operation station on any resource, the initial resource set contains a plurality of resource inventory information, and each resource inventory information is used for recording the inventory quantity of any resource in any storage box.
In an alternative embodiment, after determining the initial demand set and the initial resource set according to the data of the demand at the first moment and the inventory data of the resources, the method further includes: according to the initial demand set and the initial resource set, determining a candidate resource set corresponding to each demand, wherein the candidate resource set comprises resource inventory information corresponding to resources required by the demand; and when resources are allocated for any demand, determining the resources allocated for the demand from the candidate resource set corresponding to the demand.
In an alternative embodiment, the data according to the requirements at the first moment and the inventory data of the resources utilize a heuristic construction algorithm to perform the following resource allocation process on each requirement, and the method further includes: and storing and updating the association information of each operation table and the inventory box.
In an alternative embodiment, the data according to the requirements at the first moment and the inventory data of the resources utilize a heuristic construction algorithm to perform the following resource allocation process on each requirement, and the method further includes: the amount of unallocated resources within each console associated inventory bin is stored and updated.
In an alternative embodiment, after allocating resources for each demand according to the data of the demand and the inventory data of the resources at the first moment, obtaining a first allocation result of each demand, the method further includes: and carrying out at least one optimization treatment on the first distribution result.
In an alternative embodiment, the performing at least one optimization on the first allocation result includes: and performing first optimization processing on the first distribution result by using a hill climbing algorithm, and performing second optimization processing on the first distribution result after the first optimization processing by using a simulated annealing algorithm.
In an alternative embodiment, the optimization processing is performed on the current allocation result by using a neighborhood search algorithm, including: at least one of the following iterative optimization processes is performed on the current allocation result: releasing an allocation result corresponding to the allocated resources in any inventory box associated with any operation table; according to the stored tabu information, randomly distributing resources for unmet demands to obtain a neighborhood feasible solution; and carrying out optimization processing again on the current distribution result according to the neighborhood feasible solution.
In an alternative embodiment, the method further comprises: and when the number of times of the iterative optimization processing on the allocation result is greater than or equal to the threshold value of the iterative number, clearing the stored tabu information.
In an optional implementation manner, the method randomly allocates resources for the unmet demand according to the stored tabu information, and before obtaining the neighborhood feasible solution, the method further includes: and generating and storing tabu information corresponding to the operation desk and the inventory box, wherein the tabu information is used for prohibiting the requirement of distributing resources in the inventory box to the operation desk.
In an optional implementation manner, the method randomly allocates resources for the unmet demand according to the stored tabu information, and before obtaining the neighborhood feasible solution, the method further includes: and according to the stored tabu information, if the fact that at least one requirement cannot be met is determined, deleting at least one piece of tabu information according to the timestamp corresponding to the tabu information.
In another aspect, the present application provides a resource allocation apparatus, including:
the system comprises a data acquisition module, a first distribution module and a second distribution module, wherein the data acquisition module is used for distributing resources for each demand according to data of the demand at a first moment and inventory data of the resources, and determining the demand and the resources which change from the first moment to the second moment according to the data of the demand at a second moment and the inventory data of the resources after obtaining a first distribution result of each demand, wherein the first distribution result comprises the resources distributed for the demand; the disturbance correction module is used for releasing a first distribution result corresponding to the changed demand and/or a first distribution result corresponding to the changed resource; and reallocating the resources for the changed demand according to the data of the demand at the current moment and the inventory data of the resources to obtain a second allocation result.
In another aspect, the present application provides a resource allocation apparatus, including:
a processor, a memory, and a computer program stored on the memory and executable on the processor; wherein the processor, when running the computer program, implements the method of any one of the above.
In another aspect, the present application provides a computer-readable storage medium having stored therein computer-executable instructions that, when executed by a processor, are configured to implement the method of any one of the above.
In another aspect, the present application provides a computer program product comprising a computer program which, when executed by a processor, implements the method of any of the above.
According to the method, the device, the equipment, the storage medium and the program product for resource allocation, resources are allocated for each demand according to the data of the demand at the first moment and the inventory data of the resources, after a first allocation result of each demand is obtained, the demand and the resources which change in the period from the first moment to the second moment are determined according to the data of the demand at the second moment and the inventory data of the resources, the first allocation result corresponding to the changed demand and/or the first allocation result corresponding to the changed resources are released, and the resources are reallocated for the changed demand, so that the repair of the first allocation result which is disturbed in the resource allocation period is realized, the infeasible allocation result in the resource allocation result is greatly reduced, and the feasibility of the resource allocation result in actual execution is improved.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the application and together with the description, serve to explain the principles of the application.
Fig. 1 is a flowchart of a resource allocation method according to a first embodiment of the present application;
fig. 2 is a flowchart of a resource allocation method provided in a second embodiment of the present application;
fig. 3 is a flowchart of a resource allocation method provided in the third embodiment of the present application;
FIG. 4 is a schematic diagram of a first memory according to a third embodiment of the present disclosure;
FIG. 5 is a schematic diagram of a second memory according to a third embodiment of the present disclosure;
FIG. 6 is a frame diagram of a domain operator provided in a third embodiment of the present application;
fig. 7 is a schematic structural diagram of a resource allocation device according to a fourth embodiment of the present application;
fig. 8 is a schematic structural diagram of a resource allocation device according to a fifth embodiment of the present application;
fig. 9 is a schematic structural diagram of a resource allocation device according to a sixth embodiment of the present invention.
Specific embodiments thereof have been shown by way of example in the drawings and will herein be described in more detail. These drawings and the written description are not intended to limit the scope of the inventive concepts in any way, but to illustrate the concepts of the present application to those skilled in the art by reference to specific embodiments.
Detailed Description
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary examples are not representative of all implementations consistent with the present application. Rather, they are merely examples of apparatus and methods consistent with some aspects of the present application as detailed in the accompanying claims.
First, terms related to the embodiments of the present application will be explained:
SKU (Storage Keeping Unit, stock unit) is a basic unit of inventory access metering, also known as inventory basic metering unit, and may be in units of pieces, boxes, trays, and the like. The goods can be represented by SKUs, and the types of goods can refer to SKU types, with different SKUs corresponding to different types.
Furthermore, the terms "first," "second," and the like, are used for descriptive purposes only and are not to be construed as indicating or implying a relative importance or implicitly indicating the number of technical features indicated. In the following description of the embodiments, the meaning of "a plurality" is two or more, unless explicitly defined otherwise.
The resource allocation method provided by the application can be particularly applied to the following scenes: when an order enters the system and is distributed to the corresponding console, the SKUs and picking numbers stored in the inventory boxes need to be matched based on the order requirements of the console to meet the requirements of the console for the SKUs. The resulting matching results may be considered a set of tasks that may be issued to a robot or pickers for picking.
The problem of resource allocation is a combinatorial optimization problem, and the optimal matching problem of the order-stock box is NP-Hard. As a combination optimization problem, the solving method thereof includes the following 4 classes:
1) The accurate solving method comprises the following steps: by modeling the problem as an integer linear programming problem (ILP) or Constraint Satisfaction Problem (CSP), and performing calculations using corresponding accurate methods, including, but not limited to, simplex methods, column generation methods, interior point methods, and the like. The method has the advantage that the optimal solution of the current problem can be accurately found. However, with the rapid development of business models such as electronic commerce, the scale of the problem is continuously increased, and therefore, the accurate solving method cannot complete the solving process in a reasonable time. Therefore, the method is rarely applied in solving the matching problem of the order, the operation table and the inventory box in the actual application scene.
2) The machine learning method comprises the following steps: the method mainly uses machine learning related technologies including but not limited to supervised/unsupervised learning, reinforcement learning and the like. The method firstly trains an integral model (comprising a strategy model) by using a large amount of time and calculation resources according to the existing massive data (data is not needed in reinforcement learning), and applies the model to problem solving. A feasible solution is constructed from the trained model. Such algorithms can quickly construct solutions of relatively good quality in large-scale problems. However, the following problems are faced in practical applications: 1. if the problem needs change, the model needs to be re-built and trained. The process of retraining the model requires a complete data cleansing, feature screening, etc. And a large amount of development investment is increased. 2. Even for the same problem, if the problem scale or environment changes, the model trained by the original data is not applicable any more. For reinforcement learning, as understood using a Markov decision process model, as the environment changes, so does the rewards and rewards model, thus requiring model retraining. 3. Model training accuracy is strongly related to the quality and quantity of data. Many projects are not trained initially with massive amounts of data. 4. The existing machine learning solving method for solving the combined optimization problem is still in the exploration stage, the overall performance is not outstanding, and the method cannot be compared with iterative optimization algorithms such as meta-heuristic or hyper-heuristic and the like.
3) Heuristic construction method: the algorithm is the earliest application of artificial intelligence in solving a large-scale combination optimization problem. The main idea is to simulate strategies used by humans in solving a combinatorial optimization problem to solve the problem. For the match optimization problem, it can be understood that a set of resources is used to better meet a set of requirements. The heuristic construction algorithms are iterative algorithms. In each cycle, a demand is selected from the unresolved demands using a demand selection heuristic, and a resource selection heuristic is used to select from the satisfied resources for matching. The method can generate an intuitively better solution in extremely short time, and the algorithm is easier to understand and realize. In addition, the relevance between the solving process and the problem scale is small, and the complete solution generating time cannot be greatly increased along with the increase of the problem scale. Therefore, it is widely used in industry. However, this type of algorithm suffers from the following drawbacks: 1. heuristic strategies are strongly related to problems. When the dimension or (strong/weak) constraint of the problem changes. The original heuristic strategy is not applicable any more, and the resource and the needed heuristic strategy need to be redeveloped. However, the development of heuristic strategies needs to be based on industry experience and mathematical models, and the development cost is high. More trial and error processes are required. 2. The behavior pattern of the construction algorithm determines that the construction algorithm cannot explore within the range of feasible solutions. When solving the large-scale NP-Hard problem, the heuristic strategy cannot perfectly decouple it. There will be a large number of potential optimization solutions not found, with shallow optimization depths.
4) The two-step optimization method comprises the following steps: the three types of algorithms 1) to 3) can be classified into one-step optimization methods. The other method is a two-step optimization method, and the algorithm is mainly divided into two steps: the first step: an initial feasible solution is constructed. Construction may generally be performed using a random construction algorithm or a heuristic construction algorithm. And a second step of: and (5) iteratively optimizing a feasible solution and searching an optimized solution. The meta-heuristic and hyper-heuristic modes are generally used for iterative search optimization from a feasible solution, and the meta-heuristic search strategy is used for searching the optimal solution in the feasible solution domain.
The algorithm is widely applied to large-scale combination optimization solution. There are three main advantages: (1) The construction process of the feasible solution is short in time consumption, and whether the input data can generate the feasible solution can be judged in the early stage of algorithm execution. (2) The optimization process is to search within the range of feasible solutions, progressively searching for better solutions. Whenever stopped, an optimal solution obtained at the time of stopping can be returned and made feasible. (3) The optimization process, such as using meta-heuristics, may deviate from the problem model in terms of the optimization algorithm design. The modification of the problem model does not need to be carried out on the optimization algorithm. Only the random search mode needs to be changed, and the process only needs to consider whether the solution is feasible or not, and generally does not need to consider quality. Moreover, because the optimization algorithm can optimize the quality of the solution, the optimization capability of the construction algorithm of the initial solution is weak, and the construction algorithm usually only pays attention to whether the solution is feasible and complete or not, and does not consider the solution quality. Therefore, the two-step optimization is lower in development cost under the condition that the problem model is changed, and an optimized solution is obtained according to input data within an acceptable time range.
However, despite the advantages of the two-step optimization model, the best performance is achieved among many of the standard combinatorial optimization problem models that are simplified based on assumptions. But in practical applications, especially in scenes where the environment changes dynamically, is relatively limited. Mainly caused by the following reasons: 1. the two-step optimization class algorithm has a longer solving process, usually in the order of ten seconds or minutes. And in order to ensure the exploratory capability of the algorithm and to decouple the algorithm from the solution problem model, a random mechanism is introduced. The convergence speed of the solving process is low, and more calculation time and resources are needed. 2. Because more time is used for the optimization calculation and the calculation process is always solved based on the initial input data. If the environment (problem) is disturbed during the optimization solution, the feasibility of the output result after the calculation is completed in actual execution is affected. In some scenarios, the "order-console-inventory" matching problem will be modeled as a dynamic optimization problem. Each time the environment is disturbed, the algorithm is informed to change the problem data, and the problem model and the result are repaired according to the disturbance. However, for the scene with more disturbance, the problem is adjusted every disturbance, and the solution is repaired, so that a large amount of calculation resources are occupied. In addition, a design mode of an inventory system such as a conventional Warehouse Management System (WMS) uses a responsive interaction mode. The compatibility with dynamic problem models is poor. If the environment change detection module is developed, the environment change detection module is issued to the solver in real time, and the development cost is high.
The process of matching SKUs and picking numbers in inventory boxes for the needs of the console is referred to as a resource allocation process, and the matching result is a resource allocation result.
The following describes the technical solutions of the present application and how the technical solutions of the present application solve the above technical problems in detail with specific embodiments. The following embodiments may be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments. Embodiments of the present application will be described below with reference to the accompanying drawings.
Example 1
Fig. 1 is a flowchart of a resource allocation method according to an embodiment of the present application. The execution main body of the resource allocation method provided by the application is a resource allocation device, and the resource allocation device may be a warehouse management system in an intelligent warehouse system or other electronic devices for performing resource allocation, which is not specifically limited herein. As shown in fig. 1, the method specifically comprises the following steps:
step S101, after allocating resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, obtaining a first allocation result of each demand, determining the demand and the resources which change from the first moment to the second moment according to the data of the demand at the second moment and the inventory data of the resources, wherein the first allocation result comprises the resources allocated for the demand.
Wherein the first time is earlier than the second time. The data of the requirement at the first moment can comprise the requirement of any operation platform on any SKU at the first moment, and the inventory data of the resource at the first moment comprises the SKU in each inventory box at the first moment, the inventory quantity of the SKU and other information.
The data of the demand and the inventory data of the resources at the first moment can be determined according to the order information and the operation table information at the first moment, and the inventory data of the resources at the first moment can be determined according to the inventory information of the warehousing system at the first moment.
The resource allocation device obtains the data of the demand at the first moment and the inventory data of the resources, allocates the resources according to the data of the demand at the first moment and the inventory data of the resources, and obtains a first allocation result, wherein the first allocation result comprises the resources allocated for any demand.
In practical application, it is considered that during resource allocation according to the data of the requirement at the first moment and the inventory data of the resources, both the requirement and the resources in the system may change, which affects the feasibility of the first allocation result in practical implementation.
In this embodiment, after allocating resources for each demand according to the data of the demand and the inventory data of the resources at the first time and obtaining the first allocation result of each demand, the resource allocation device may acquire the data of the demand and the inventory data of the resources at the second time, and determine the demand and the resources that change during the period from the first time to the second time.
Step S102, releasing the first allocation result corresponding to the changed demand and/or the first allocation result corresponding to the changed resource.
And if the requirement which changes in the period from the first moment to the second moment is determined to exist, determining a first distribution result corresponding to the changed requirement, and releasing the first distribution result corresponding to the changed requirement. The first allocation result corresponding to any one demand is an allocation result of allocating any resource for the demand.
And if the resources which change from the first moment to the second moment exist, determining a first allocation result corresponding to the changed resources, and releasing the first allocation result corresponding to the changed resources. The allocation result corresponding to any resource refers to an allocation result of the resource to any requirement.
Step S103, reallocating the resources for the changed demands according to the data of the demands at the current moment and the inventory data of the resources to obtain a second allocation result.
After releasing the first allocation result corresponding to the changed demand and/or the first allocation result corresponding to the changed resource, reallocating the resource for the changed demand according to the data of the demand at the current moment and the inventory data of the resource, so as to realize local matching restoration of the first allocation result disturbed during the resource allocation, and obtain a second allocation result. So far, the resource allocation result meeting all the requirements at the first moment is obtained.
According to the method and the device, after the resources are allocated to each demand according to the data of the demands at the first moment and the inventory data of the resources, the first allocation result of each demand is obtained, the demands and the resources which change in the period from the first moment to the second moment are determined according to the data of the demands at the second moment and the inventory data of the resources, the first allocation result corresponding to the demands which change and/or the first allocation result corresponding to the resources which change are released, and the resources are reallocated for the demands which change, so that the first allocation result which is disturbed in the resource allocation period is repaired, the infeasible allocation result in the resource allocation result is greatly reduced, and the feasibility of the resource allocation result in actual execution is improved.
Example two
Fig. 2 is a flowchart of a resource allocation method according to a second embodiment of the present application. In the first embodiment, the secondary request mode is adopted, the first request occurs at time t0, and the system sends the first request including the input data d0 at time t0, so as to request the resource allocation device to start resource allocation. And the resource allocation equipment allocates the resources according to d0 to obtain a first allocation result. At time t1, the system sends a second request containing input data d1 at time t1, and requests the resource allocation device to perform local matching repair on the resource allocation result. The resource allocation device has found an optimal solution (i.e., a first allocation result) in the period of t1-t0, the resource allocation device automatically calculates disturbance generated by the system in the period of t1-t0 according to the difference between d0 and d1, detects which demands are not feasible to match in the first allocation result, deletes the matching result from the first allocation result, and performs local matching repair on the demands (i.e., reallocates resources for the unsatisfied demands), thereby obtaining a second allocation result. Since the process of partial match repair based on the second request only reconstructs a very small portion of the allocation results, the repair time is very short. By the mode of the secondary request, the possibility that the resource allocation result cannot be executed due to the environmental disturbance during the execution of the resource allocation is greatly reduced.
As shown in fig. 2, the method specifically comprises the following steps:
step S201, in response to a resource allocation request, the resource allocation request includes data of a demand at a first moment and inventory data of a resource, and allocates the resource for each demand according to the data of the demand at the first moment and the inventory data of the resource, so as to obtain a first allocation result of each demand.
In this embodiment, the resource allocation request is the first request sent by the system to the resource allocation device. The resource allocation request comprises input data at a first time, and is used for requesting the resource allocation equipment to allocate resources according to the input data at the first time.
The input data at the first time may include data of the demand at the first time and inventory data of the resource.
For example, the resource allocation request sent by the system may include input data such as order information, console information, inventory information, etc. at the first time. The resource allocation device performs data preprocessing on the input data at the first moment, so that the data of the requirement at the first moment and the inventory data of the resource can be obtained.
The resource allocation device allocates resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, so as to obtain a first allocation result of each demand, and the first allocation result can be implemented by adopting an algorithm capable of realizing resource allocation with similar functions, and the embodiment is not particularly limited herein.
The resource allocation device allocates resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, so as to obtain a first allocation result of each demand, which may include a process of constructing an initial solution and optimizing the initial solution until reaching a termination moment (such as a second moment), so as to obtain an optimized feasible solution, that is, a first allocation result.
For example, a method of accurate solution, a machine learning method, a heuristic construction method, a two-step optimization method, etc. may be used to implement resource allocation, so as to obtain the first allocation result, which is not described herein.
In an alternative implementation manner, the resource allocation device allocates the resource for each requirement according to the data of the requirement at the first moment and the inventory data of the resource, so as to obtain the first allocation result of each requirement, and the specific implementation manner of this process can be realized by a method provided in the third embodiment, and details of the third embodiment are described in the third embodiment.
Optionally, after the resource allocation device allocates the resource for each demand according to the data of the demand at the first moment and the inventory data of the resource, and obtains the first allocation result of each demand, the resource allocation device may send a notification message to the system. The notification message is used to notify that the resource allocation is completed. The system, after receiving the notification message, sends a resource allocation result request to the resource allocation device.
Step S202, responding to a resource allocation result request, wherein the resource allocation result request comprises data of a requirement at a second moment and inventory data of resources, and the requirement and the resources which change from the first moment to the second moment are determined according to the data of the requirement at the second moment and the inventory data of the resources.
Wherein the resource allocation result request is a second request sent by the system to the resource allocation device. The resource allocation request comprises input data at a second moment and is used for requesting the resource allocation equipment to carry out local matching repair on the resource allocation result according to the input data at the second moment. The input data at the second time may include data of the demand at the second time and inventory data of the resource.
For example, the resource allocation result request sent by the system may include input data such as order information, console information, inventory information, etc. at the second time. The resource allocation device performs data preprocessing on the input data at the second moment, so that the data of the requirement at the second moment and the inventory data of the resource can be obtained.
The interval duration between the second time and the first time may be set and adjusted according to the needs of the actual application scenario, which is not specifically limited herein. During the period from the first time to the second time, some related disturbances may occur in the external environment of the system, and these disturbances may cause part of the requirements and/or resources to be changed, which may affect the feasibility of the first allocation result in actual execution.
The resource allocation device may determine the demand and the resource that change during the first time to the second time based on the data of the demand and the inventory data of the resource at the first time and the data of the demand and the inventory data of the resource at the second time.
Step S203, releasing the first allocation result corresponding to the changed demand, and/or the first allocation result corresponding to the changed resource.
And if the requirement which changes in the period from the first moment to the second moment is determined to exist, determining a first distribution result corresponding to the changed requirement, and releasing the first distribution result corresponding to the changed requirement. The first allocation result corresponding to any one demand is an allocation result of allocating any resource for the demand.
And if the resources which change from the first moment to the second moment exist, determining a first allocation result corresponding to the changed resources, and releasing the first allocation result corresponding to the changed resources. The allocation result corresponding to any resource refers to an allocation result of the resource to any requirement.
Step S204, reallocating the resources for the changed demands according to the data of the demands at the current moment and the inventory data of the resources to obtain a second allocation result.
After releasing the first allocation results corresponding to the changed demands and/or the first allocation results corresponding to the changed resources, the changed demands are not satisfied, and the resources are reallocated for the changed demands according to the data of the demands at the current moment and the inventory data of the resources, so that the first allocation results disturbed during the resource allocation are locally matched and repaired, and a second allocation result is obtained. So far, the resource allocation result meeting all the requirements at the first moment is obtained.
In this step, the implementation manner of reallocating the resources for the changed demands is identical to the manner of allocating the resources for each demand in step S201, and will not be described here again.
After the resources are redistributed for the changed demands, the distribution results of all the demands are fed back to the system, so that the system generates corresponding task sets according to the resource distribution results and sends the task sets to a robot or a pickers for picking.
According to the embodiment, through the secondary request mode, the transformation difficulty of a traditional system (such as a Warehouse Management System (WMS)) is reduced, and the time limit for resource allocation is reduced. After the resource allocation is completed to obtain an allocation result, only the feasibility of partial solutions is restored after the second request is received, so that the feasibility of the resource allocation result in actual execution is improved.
According to the method and the device for allocating the resources, the secondary request mode is used for dividing the transmitted resource allocation request and the resource allocation result request into two steps, after the resource allocation is completed according to the data of the first moment, the changing requirements and resources in the period from the first moment to the second moment can be determined according to the data of the second moment, the changing requirements and/or the first allocation results corresponding to the resources are released, the resources are reallocated for the changing requirements, and therefore the first allocation results disturbed in the resource allocation period are restored, the infeasible allocation results in the resource allocation results are greatly reduced, and the feasibility of the resource allocation results in actual execution is improved.
Example III
Fig. 3 is a flowchart of a resource allocation method according to a third embodiment of the present application. In this embodiment, a specific implementation manner of resource allocation performed by the resource allocation device is described in detail on the basis of the first embodiment or the second embodiment.
In this embodiment, the resource allocation problem is a constrained binary matching problem. In the modeling process, the model of the problem is decomposed into a resource set { Resources }, a requirements set { Requests }, and a matching set { assignments }.
Wherein the definition of a resource (denoted res) is: inventory boxes (indicated by bin) store the number of resources (indicated by sku) (indicated by amt) res Representation), here denoted as<bin,sku,amt res >Is a combination of (a) and (b).
The definition of demand (expressed in req) is: the number of resources required for an operation station (denoted by station) (denoted by amt) req Representation), here denoted as<station,sku,amt req >Is a combination of (a) and (b).
The match set { Assignments } defines the expression of the problem solution (i.e., the resource allocation result), where each match (assignment) is defined as: the requirement req is satisfied with the amt in the resource res asg Units, herein denoted as<req,res,amt asg >Is a combination of (a) and (b).
The present resource allocation problem is defined as: the Resources { Resources } are used to satisfy each requirement in { Requests } to generate a corresponding { Assignment } matching set, and an objective function is defined as follows, and the following constraints are satisfied:
objective function 1: the sum of the distances (shown by distance) of the assigned inventory box from its assigned operator station is minimal. Each time the total distance is increased by a certain distance, the penalty function effect on the solution is to increase the corresponding value. For example, every 1 meter increase in total distance, the penalty function impact on the solution is an increase of 1.
Objective function 2: number of operation tables (NumStation) b Representation) is least likely to be greater than one. The number of operations (NumStation) to which a certain stock box b is assigned b ) If it is greater than 1, its penalty function impact on the solution is (NumStation) which is a constant greater than 1 (expressed in factor_Multi_Station) b -1) to the power, i.e
Constraint 1: each requirement must be met.
Constraint 2: the number of resources that each demand matches and the number of resources that are occupied must be equal to the number that is required in the demand.
Constraint 3: each requirement can only be matched with resources having the same SKU.
Constraint 4: the total amount of each resource occupied by each demand may not exceed the total number of SKUs in demand.
Constraint 5: in each match, the amount of resources occupied by the demand is a natural number.
Based on the modeling of the problem, as shown in fig. 3, the method specifically comprises the following steps:
step S301, acquire data of a demand at a first time and inventory data of a resource.
In this step, the resource allocation device may determine, based on the input data provided by the system at the first time, the data of the demand at the first time and the inventory data of the resource.
For example, the input data at the first time may include console information, order information, and inventory information at the first time.
Wherein the console information includes: each station location information has been assigned to inventory boxes for each station. The inventory boxes that have been assigned to each station may be the inventory boxes that have been assigned to the station that are upcoming and that are already at the station.
The order information includes: SKUs for each order and the quantity thereof, each order being assigned to the console.
The inventory information includes: SKUs and the number thereof placed in each inventory bin, the location of each bin. Where the location of the inventory box may be the location coordinates (e.g., latitude and longitude) where the inventory box is located.
The resource allocation device can determine the data of the requirement of any operation console at the first moment according to the operation console information and the order information at the first moment, wherein the data comprise the SKU, the quantity and the like required by any operation console.
The resource allocation device can determine the inventory data of the resource at the first moment according to the inventory information at the first moment, wherein the inventory data comprises an inventory box where any SKU is located, the number of SKUs in the inventory box and the like.
For example, in practical applications, the allocation of resources may be performed for an order within a period of time every time to meet all the requirements within the period of time.
Step S302, an initial demand set and an initial resource set are determined according to the data of the demand at the first moment and the inventory data of the resources.
The initial demand set includes all demands, and each demand includes a demand number of any resources of any operation platform.
The initial resource set contains a plurality of resource inventory information, each of which is used to record the inventory quantity of any resource in any storage box.
In the step, an initial demand set Requests is generated according to the data of the demand at the first moment and the inventory data of the resources:
first, SKUs required for all orders are collected, and a demand set reqsku= { SKU of SKUs is generated 1 ,sku 2 ,...,sku s }. The ReqSku set includes SKUs required for all orders.
Meanwhile, according to the order distributed to the operation desk, the following initial demand set Requests are generated:
Requests={{station 1 ,sku 1 ,amt 1 },{station 1 ,sku 2 ,amt 2 },{station 2 ,sku 1 ,amt 3 },…,{station m ,sku m ,amt m }}。
wherein,<station i ,sku i ,amt i >for the ith element in the collection Requests, representing the console station i The need of sku i The total amount of this SKU is amt i Is the station of the operation table i Of (1), wherein amt i >0。
Further, an initial resource set resource is generated from the SKU's demand set ReqSku and the inventory data of the resources:
sorting out resource sets according to SKU required by each order in the input data and inventory information of inventory boxes all . The ith element in the set is<bin i ,sku i ,amt i >Defined as a resource res i Representing inventory bin i Middle store sku i The number of pieces of (a) is amt i
Traversing resources all Aggregate and delete resources all The following elements: the SKU of the element is not in any requirement of the console. The obtained set is resource set resource, and the i-th element res in the set i Is that<bin i ,sku i ,amt i >Is a resource representing inventory bin i Middle store sku i The number of pieces of (a) is amt i
To this end, the inventory allocation problem is sorted into the above two sets: the requirements set Requests and the resource sets, and the inventory allocation problem is planned as a resource allocation problem, namely, the corresponding inventory boxes are required to meet the requirements of SKUs in each operation console.
Step S303, according to the initial demand set and the initial resource set, determining a candidate resource set corresponding to each demand, wherein the candidate resource set comprises resource inventory information corresponding to resources required by the demands.
In this embodiment, after determining the initial set of requirements and the initial set of resources, a set of candidate resources corresponding to the requirements (e.g., candidateRes, for example) may be generated for each requirement (req) req Representation). In the sense ofWhen any demand allocates resources, the resources allocated for the demand are determined from the candidate resource sets corresponding to the demand, so that the efficiency of resource allocation can be improved.
For example, algorithm 1 may be used to generate a candidate resource set corresponding to each requirement, and the flow of generating the candidate resource set corresponding to each requirement by algorithm 1 is as follows:
where ζ represents a valuation and Φ represents an empty set.
In algorithm 1 above, the set CandidateReqAll for recording the candidate resource set for each demand is first initialized to null (line 1). Then iterate each demand req (line 2), and extract the sku for that demand req . At the same time, initializing candidate resource set Candida of requirement req req (rows 3-4). Then, each resource res in the resource set is searched (line 5), if the SKU and SKU of that resource req If the same, then consider resource res as a candidate resource for demand req, and add res to candidate resource set Candida for demand rea req In (row 8). For each requirement req in each request, after traversing each resource in resources, obtaining a candidate resource set corresponding to the requirement, namely obtaining a new 'requirement-candidate resource set' mapping < req, candidateRes req >Will < req, candida req >Added to the collection CandidateReqAl (line 11). Finally, the CandidateReqAll set holds a candidate resource set corresponding to each requirement.
In an alternative embodiment, the resource allocation device may also store and update information associated with each console and inventory boxes.
For example, the resource allocation device may maintain a first memory for storing information associated with the console and the inventory boxes for storing the set of inventory boxes allocated by the console. For example, as shown in "console-stock box storage" of fig. 4, console s1 allocates stock boxes b1 and b2, console s2 does not allocate any stock boxes, and console s3 allocates stock boxes b4, b2 and b5. The station s4 allocates the stock box b3. The stock box b2 is allocated to both of the stations s1 and s3 at the same time, that is, the case of crossing the stations occurs. b1 B3, b4, b5 are assigned to one console.
In this embodiment, the stock information in the input data includes information of stock boxes already assigned to the operation panel, that is, information that a part of the stock boxes are known to be going to a certain operation panel. In the data preprocessing stage, the resource allocation apparatus records the association information of the stock box and the console, which have been allocated to the console in the input data, in the first memory for storing the association information of the console and the stock box.
Illustratively, it may be in the AssignedBins station = assigned (station) denotes a collection of inventory boxes that have been assigned to an operation station.
The resource allocation apparatus may also update information in the memory for storing the information of the association of the console with the inventory box in real time when the information of the association of the console with the inventory box changes during the resource allocation.
In an alternative embodiment, the resource allocation device may also store and update the amount of unallocated resources within each console associated inventory box.
For example, the resource allocation device may maintain a second memory for storing the amount of unallocated resources within the inventory boxes associated with the consoles to store the SKUs stored in the inventory boxes currently already allocated to each console and the amount of unallocated resources thereof (i.e., unoccupied by demand, or the remaining SKUs). For example, as shown in "console-SKU-remaining inventory storage" of fig. 5, the number of unassigned SKUs 1 in the console s1 is 32, and the number of unassigned SKUs 2 is 1. The number of unallocated skus 3 in the console s3 is 2, the number of unallocated skus 4 is 23, and the number of unallocated skus 5 is 2. The number of unassigned sku3 values in console s4 is 4.
In the data preprocessing stage, the resource allocation device records the SKU and the residual quantity thereof stored in each inventory box in the second memory according to the association information of the operation console and the inventory boxes in the first memory, so as to initialize the second memory.
In this embodiment, according to the data of the demands at the first moment and the inventory data of the resources, the resource allocation process is performed on each demand through steps S304-S306 by using a heuristic construction algorithm.
Step S304, according to the unallocated resources in the first stock box, allocating the unallocated resources in the first stock box for the current demand, where the first stock box is the stock box associated with the first console corresponding to the current demand.
Specifically, this step may be implemented as follows:
if at least one fourth stock box exists in the first stock boxes, the unallocated resources in any fourth stock box meet the current demand, and resources are allocated for the current demand according to the unallocated resources in any fourth stock box. And if the fourth stock box does not exist in the first stock box, distributing the unallocated resources in the first stock box with the largest unallocated resources to the current demand.
Further, when allocating resources for the current demand according to the unallocated resources in any fourth inventory box, allocating resources for the current demand according to the unallocated resources in the fourth inventory box with the smallest unallocated resources.
In this step, for each requirement Req, the unallocated resources (i.e., static resources) in the inventory box that have been allocated to the corresponding console for that requirement are first used to satisfy the Req (lines 9-25 in algorithm 2.2), which can be improved.
If none of the res in the inventory boxes allocated to the demand-corresponding stations is able to satisfy this Req alone, then res is selected where the amount of unallocated resources (i.e., amt (res)) is greatest. If at least one res of the inventory boxes allocated to the demand-corresponding operation panel can satisfy the Req alone, the inventory box having the smallest amount of unallocated resources (i.e., amt (res)) among the resources res capable of satisfying the Req is selected.
According to the embodiment, the unallocated resources in the inventory boxes which are already associated with the operation platform corresponding to the requirement can be preferentially allocated to the requirement, the inventory boxes which are already allocated to the operation platform can be effectively utilized, and therefore a better resource allocation result is obtained, and the picking efficiency of the warehousing system can be improved.
In step S305, if the unallocated resources in the first inventory box do not meet the current demand, allocating resources in a second inventory box for the current demand, where the second inventory box is an inventory box not associated with any console.
In this embodiment, this step may be specifically implemented as follows:
if at least one fifth inventory box exists in the second inventory boxes, the unallocated resources in any fifth inventory box meet the current demand, and then the resources are allocated for the current demand according to the unallocated resources in any fifth inventory box. And if the fifth stock box does not exist in the second stock boxes, distributing the unallocated resources in the second stock boxes with the largest unallocated resources to the current demands.
Further, when allocating resources for the current demand according to the unallocated resources in any fifth inventory box, allocating resources for the current demand according to the unallocated resources in the fifth inventory box closest to the first console.
In this step, if req is still not satisfied using all static resources, then req is satisfied using free resources (line 26-line 46 in algorithm 2.2). Whether a resource is free depends on whether the inventory box in which the resource is located is allocated to other consoles. If the inventory box in which the resource is located is not allocated to other consoles, the resource is a free resource.
For idle resources, it is first detected if there is a certain res that can alone meet the remaining required number of req. If so, selecting the res closest to the console corresponding to the req from the inventory box where the resource is located from res capable of meeting req alone to meet res. Where distance (res, req) in line 31 in algorithm 2.2 refers to the distance between the console station of req and the inventory box in which res is located. If there is no remaining number of requirements that a certain res can satisfy req alone, then the res with the largest unallocated number is selected to match req.
According to the embodiment, the idle resources can be preferentially allocated for the requirement, and the resources allocated to the stock boxes of other operation tables can be avoided as much as possible, so that the transportation of the stock boxes crossing the operation tables can be avoided, and the picking efficiency of the warehouse system can be improved.
In step S306, if the resources in the second inventory box do not meet the current requirement, allocating the unallocated resources in the third inventory box for the current requirement according to the unallocated resources in the third inventory box associated with the second operation console, where the second operation console is any operation console other than the first operation console.
Wherein, the stock box associated with any operation platform refers to the stock box of which at least one resource in the box is allocated to the operation platform.
In this embodiment, this step may be specifically implemented as follows:
if at least one sixth inventory box exists in the third inventory boxes, the unallocated resources in any sixth inventory box meet the current demand, and then the resources are allocated for the current demand according to the unallocated resources in any sixth inventory box. And if the sixth inventory box does not exist in the third inventory box, allocating the unallocated resources in the third inventory box with the largest unallocated resources to the current demand.
Further, according to the unallocated resources in any sixth inventory box, when allocating resources for the current demand, determining the number of operation stations associated with each sixth inventory box; and allocating resources for the current demand according to unallocated resources in a sixth inventory box with the least number of associated operating stations.
If all of the free resources still fail to satisfy req, then the set DislikeRes (lines 48-68 in Algorithm 2.2) of resources that have been allocated to other consoles is used.
Firstly checking whether res capable of independently meeting the residual demand quantity of req exists in DislikeRes, if so, selecting res with the minimum quantity of operation platforms associated with the inventory box where the res exists from the res capable of independently meeting the residual demand quantity of req, and if so, randomly selecting one of the res with the minimum quantity of operation platforms associated with the inventory box. If no resource in disikeRes can independently meet the residual demand quantity of req, selecting res with the largest unallocated quantity from the residual resources to meet req.
In an alternative implementation manner of this embodiment, when the following resource allocation process is performed on each demand by using a heuristic construction algorithm according to the data of the demand at the first moment and the inventory data of the resource, the demands with the least number that can not be met statically may be screened out in advance, and the inventory may be allocated to the demands first.
Specifically, according to the data of the demand at the first moment and the inventory data of the resource, screening the demand to obtain a first demand set, wherein the first demand set comprises: the method comprises the steps of providing a demand with the smallest difference between the number of corresponding first resources and the unallocated demand number of target resources, wherein the first resources are unallocated target resources in an inventory box associated with an operation platform corresponding to the demand; performing resource allocation processing on each demand in the first demand set; if the unsatisfied demand exists, screening the unsatisfied demand to obtain a new first demand set, and carrying out resource allocation processing on each demand in the new first demand set until all the demands are satisfied.
Illustratively, the candidate demand selection algorithm provided by the algorithm 2.1 may be used to filter the demands to obtain the first demand set.
To facilitate an understanding of algorithm 2.1 and algorithm 2.2, the functions shown in Table 1 below are defined:
TABLE 1
Based on the functions provided in table 1, the specific flow of algorithm 2.1 is as follows:
the algorithm 2.1 is used for selecting a minimum or less than or equal to 0 (i.e. all of the demand sets can be statically allocated) from the unallocated demand unassignedReq according to the number remAmount which can not be statically satisfied, storing the minimum or less than or equal to 0 in the Candida ateReq, and returning to the finally obtained Candida ateReq.
For a demand that can be satisfied statically, the required number of target resources in the demand can be satisfied by unallocated target resources in an inventory box associated with an operation console corresponding to the demand. That is, the unallocated number of target resources in the inventory box associated with the console corresponding to the demand is greater than or equal to the demand number of target resources in the demand.
For a demand which cannot be met statically, the required quantity of target resources in the demand cannot be met by unallocated target resources in an inventory box associated with an operation console corresponding to the demand. That is, the unallocated number of unallocated target resources in the inventory box associated with the console corresponding to the demand is less than the demanded number of target resources in the demand.
The demand that is not statically satisfied has an amount that is not statically satisfied, which refers to a required amount of target resources in the demand, and a difference in unallocated amounts of unallocated target resources in an inventory box associated with an operation panel corresponding to the demand.
In this embodiment, before each round of resource allocation, a demand set with the minimum quantity that cannot be statically met or less than or equal to 0 (i.e. can be statically allocated) is screened out, and resources are preferentially allocated to the demands in the demand set, so that the inventory box allocated to the operation console can be effectively utilized, a better resource allocation result is obtained, and the picking efficiency of the warehousing system can be improved.
Illustratively, resource allocation may be performed using a heuristic construction algorithm as shown in algorithm 2.2. Based on the functions defined in table 1, the specific flow of algorithm 2.2 is as follows:
/>
/>
the heuristic construction algorithm (algorithm 2.2) above allocates each resource to be allocated in the resource pool one by one. For each demand Req, it is first satisfied (lines 9-25 in algorithm 2.2) using unallocated resources (i.e., static resources) in the inventory box that have been allocated to the corresponding console for that demand. If none of the res in the inventory boxes allocated to the demand-corresponding stations is able to satisfy this Req alone, then res is selected where the amount of unallocated resources (i.e., amt (res)) is greatest. If at least one res of the inventory boxes allocated to the demand-corresponding operation panel can satisfy the Req alone, the inventory box having the smallest amount of unallocated resources (i.e., amt (res)) among the resources res capable of satisfying the Req is selected.
If req is still not satisfied using all static resources, then req is satisfied using free resources (line 26-line 46 in algorithm 2.2). Whether a resource is free depends on whether the inventory box in which the resource is located is allocated to other consoles. If the inventory box in which the resource is located is not allocated to other consoles, the resource is a free resource. For idle resources, it is first detected if there is a certain res that can alone meet the remaining required number of req. If so, selecting the res closest to the console corresponding to the req from the inventory box where the resource is located from res capable of meeting req alone to meet res. Where distance (res, req) in line 31 in algorithm 2.2 refers to the distance between the console station of req and the inventory box in which res is located. If there is no remaining number of requirements that a certain res can satisfy req alone, then the res with the largest unallocated number is selected to match req.
If all of the free resources still fail to satisfy req, then the set DislikeRes (lines 48-68 in Algorithm 2.2) of resources that have been allocated to other consoles is used. Firstly checking whether res capable of independently meeting the residual demand quantity of req exists in DislikeRes, if so, selecting res with the minimum quantity of operation platforms associated with the inventory box where the res exists from the res capable of independently meeting the residual demand quantity of req, and if so, randomly selecting one of the res with the minimum quantity of operation platforms associated with the inventory box. If no resource in disikeRes can independently meet the residual demand quantity of req, selecting res with the largest unallocated quantity from the residual resources to meet req.
The result of each match is recorded in the Solution. In which is recorded which re(s) each req uses for matching, and the number of matches amt. Each match result may be represented as a set of < req, res, amt >. The algorithm gradually constructs solutions until all req is satisfied, resulting in a first allocation result.
Compared with the traditional heuristic construction algorithm, the algorithm for determining the first allocation result through the resource allocation provided by the embodiment can better ensure the quality of the first resource allocation result while generating a feasible first resource allocation result. In addition, the heuristic construction algorithm for resource allocation provided in this embodiment is separated from the problem model, and when the problem is changed, only the objective function and the corresponding random neighborhood operator (weakly related to the problem) need to be modified to adapt. Compared with the traditional algorithm, the method has little development investment and little dependence on domain knowledge and mathematical knowledge.
Step S307, at least one optimization process is performed on the first distribution result.
In this embodiment, after allocating resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, and obtaining a first allocation result of each demand, at least one optimization process is performed on the first allocation result, and through two-step optimization, an initial resource allocation result determined based on a heuristic construction algorithm is optimized, so that a better resource allocation result is obtained, and the availability of the resource allocation result is improved.
In this step, the first allocation result may be optimized by using a neighborhood search algorithm.
In order to optimize the first allocation result using a neighborhood search algorithm, a neighborhood operator Nb (sol) is designed to generate its neighborhood feasible solution sol' from the feasible solution sol (first allocation result):
selecting any operation table, selecting any stock box associated with the operation table, deleting all matching results (Assignments) related to the stock box in a first distribution result (Solution output by algorithm 2.2), and releasing resources and requirements related to the matching results; for each unallocated demand, matching the resource for the demand by randomly selecting candidate resources thereof, thereby obtaining a neighborhood feasible solution.
Considering that the neighborhood operator Nb (sol) has randomness, for the released matching result, it is possible to be re-matched, i.e. the stock bin that has been unmatched with the console is possible to be re-allocated to the console. In this embodiment, a taboo Memory mechanism (Tabu Memory) is introduced to reduce the occurrence of the situation and improve the exploration efficiency of the algorithm.
Illustratively, the tabu memory mechanism may be implemented by setting tabu information for prohibiting the need to allocate resources within the inventory box to the console.
Optionally, resources are randomly allocated for unmet demands according to stored tabu information, and before neighborhood feasible solutions are obtained, tabu information corresponding to the operation console and the inventory box is generated and stored, wherein the tabu information is used for prohibiting the resources in the inventory box from being allocated to the demands of the operation console.
Illustratively, the optimization of the first allocation result by using the neighborhood search algorithm may be implemented in the following manner:
at least one of the following iterative optimization processes is performed on the current allocation result: releasing an allocation result corresponding to the allocated resources in any inventory box associated with any operation table; according to the stored tabu information, randomly distributing resources for unmet demands to obtain a neighborhood feasible solution; and (5) carrying out optimization processing again on the current distribution result according to the neighborhood feasible solution.
Illustratively, as shown in fig. 6, a framework of a neighborhood operator Nb (sol) based on a tabu memory mechanism selects any operation console and selects any stock box associated with the operation console, deletes all matching results (Assignments) related to the stock box in a feasible Solution sol (Solution output by algorithm 2.2), and releases resources and requirements related to the matching results; based on the stored tabu information (e.g., < bin1, station1>, < bin2, station2>, < bin3, station3 >) shown in fig. 6, the sol is repaired to obtain a neighborhood feasible solution.
In addition, if the neighborhood operator is fully followed by the above tabu information, it may result in that part req may not be satisfied, as the remaining resources may not be able to satisfy the amount it needs. The present embodiment thus provides a privilege mechanism (Aspiration Criteria) that is a contraindicated memory mechanism. And when the number of times of iterative optimization processing on the allocation result is greater than or equal to the threshold value of the iterative number, clearing the stored tabu information. That is, if the resources which are not contraindicated are completely used and still cannot meet a certain requirement, when the requirement is matched, part of contraindication information can be ignored, so that a feasible solution can be generated in each iteration.
Optionally, according to the stored tabu information, if it is determined that at least one requirement cannot be met, deleting at least one piece of tabu information according to a timestamp corresponding to the tabu information. And preferentially deleting the tabu information with the earliest time stamp according to the time stamp corresponding to the tabu information. The timestamp corresponding to the tabu information may be a time when the tabu information is inserted into the queue.
Illustratively, the tabu information may be stored in a queue, and the elements in the queue may be a combination of < bin, station > forms defined as bin may not be allocated at the console station at the current iteration. The length of the queue (tab technology) is an input parameter of the algorithm that defines how many iterations later the Tabu is about to be released.
In an alternative embodiment, in this step, a hill climbing algorithm may be used to perform a first optimization process on the first distribution result, and a simulated annealing algorithm may be used to perform a second optimization process on the first distribution result after the first optimization process.
In this embodiment, in order to enable the first allocation result to converge more quickly when being optimized, and to maintain the exploratory ability of the algorithm for the feasible solution space, the hill climbing algorithm and the simulated annealing algorithm are sequentially mixed. The first step, the initial solution is quickly converged by using a hill climbing algorithm, and the second step is further optimized searching by using a simulated annealing algorithm.
The simulated annealing algorithm is a meta-heuristic algorithm, and when the meta-heuristic algorithm is used for optimization, the definition of an objective function is detailed in an objective function 1 and an objective function 2 in the beginning part of the embodiment, the objective function is used for evaluating the quality of a feasible solution (resource allocation result), the problem of resource allocation is a minimization problem, and the smaller the objective function value of the feasible solution (resource allocation result), the better the quality of the feasible solution is represented.
The hill climbing algorithm is an exemplary neighborhood searching algorithm with a relatively high convergence rate, and in this embodiment, the first allocation result is used as an initial feasible solution, and the method for optimizing the initial feasible solution by using the hill climbing algorithm is as follows:
input:
maxiter_non impr: the iteration number of not finding the better solution can be preset
Termination time: the algorithm stopping time can be preset
sol_init: initial feasible solution (first allocation result)
And (3) outputting: sol_best optimized solution
The algorithm flow is as follows:
where Nb () is a neighborhood operator, which can be implemented using the neighborhood operator provided in the first alternative embodiment of this step, obj () is an objective function.
The simulated annealing algorithm has better performance in the process of jumping out the local optimal solution, and the first distribution result after the first optimization processing output by the hill climbing algorithm is used as the initial feasible solution of the simulated annealing algorithm, and the optimization method by using the simulated annealing algorithm is as follows:
Input:
termination time: algorithm stop time
T_init: the initial temperature can be set and adjusted according to the actual application scene and the experience value
sol_init: initial feasible solution (calculation of the knot of the input)
coolingRate: the cooling rate can be set and adjusted according to actual application scenes and experience values
And (3) outputting: sol_best optimized solution
The flow of the simulated annealing algorithm:
where Nb () is a neighborhood operator, which can be implemented using the neighborhood operator provided in the first alternative embodiment of this step, obj () is an objective function.
In this embodiment, through three processes of constructing an initial feasible solution (a first allocation result), optimizing a hill climbing algorithm, and optimizing a simulated annealing algorithm, an optimized feasible solution can be found. The stop time of the whole process depends on the setting of termination time. Meanwhile, other parameters to be set include: the iteration number maxiter_non impr of the better solution is not found, the initial temperature t_init, and the cooling rate. The parameters to be set can be set according to the actual application scene and the experience value.
The two-step neighborhood search algorithm proposed in this embodiment can search for a better solution to the NP-Complete problem, such as the resource allocation problem. And the mechanism of the hill climbing algorithm and the simulated annealing algorithm is used simultaneously, so that the rapid convergence can be achieved in the early stage in the resource allocation process, and the exploration capability of an unknown region (a neighborhood feasible solution) can be maintained.
Illustratively, since meta-heuristics are weakly related to problems, the modification problem requires only a minimal amount of development. The simulated annealing algorithm in the embodiment can be replaced by other meta heuristic algorithms such as a flood algorithm and the like, and similar optimization effects can be achieved.
Compared with the traditional heuristic construction algorithm, the algorithm for determining the first allocation result through the resource allocation provided by the embodiment can better ensure the quality of the first resource allocation result while generating a feasible first resource allocation result. In addition, the heuristic construction algorithm for resource allocation provided in this embodiment is separated from the problem model, and when the problem is changed, only the objective function and the corresponding random neighborhood operator (weakly related to the problem) need to be modified to adapt. Compared with the traditional algorithm, the method has little development investment and little dependence on domain knowledge and mathematical knowledge.
Example IV
Fig. 7 is a schematic structural diagram of a resource allocation device according to a fourth embodiment of the present application. The resource allocation device provided by the embodiment of the application can execute the processing flow provided by the embodiment of the resource allocation method. As shown in fig. 7, the resource allocation device 40 includes: a data acquisition module 401 and a disturbance correction module 402.
Specifically, the data obtaining module 401 is configured to determine, after allocating a resource for each demand according to the data of the demand at the first time and the inventory data of the resource, the demand and the resource that change during the period from the first time to the second time according to the data of the demand at the second time and the inventory data of the resource after obtaining the first allocation result of each demand, where the first allocation result includes the resource allocated for the demand.
The disturbance correction module 402 is configured to release a first allocation result corresponding to the changed demand and/or a first allocation result corresponding to the changed resource; and reallocating the resources for the changed demand according to the data of the demand at the current moment and the inventory data of the resources to obtain a second allocation result.
The apparatus provided in this embodiment of the present application may be specifically configured to perform the method embodiment provided in the first embodiment, and specific functions are not described herein.
According to the method and the device, after the resources are allocated to each demand according to the data of the demands at the first moment and the inventory data of the resources, the first allocation result of each demand is obtained, the demands and the resources which change in the period from the first moment to the second moment are determined according to the data of the demands at the second moment and the inventory data of the resources, the first allocation result corresponding to the demands which change and/or the first allocation result corresponding to the resources which change are released, and the resources are reallocated for the demands which change, so that the first allocation result which is disturbed in the resource allocation period is repaired, the infeasible allocation result in the resource allocation result is greatly reduced, and the feasibility of the resource allocation result in actual execution is improved.
Example five
Fig. 8 is a schematic structural diagram of a resource allocation device according to a fifth embodiment of the present application. In this embodiment, as shown in fig. 8, the resource allocation device 40 further includes: a resource allocation module 403, configured to: and responding to the resource allocation request, wherein the resource allocation request comprises the data of the requirement at the first moment and the inventory data of the resource, and allocating the resource for each requirement according to the data of the requirement at the first moment and the inventory data of the resource to obtain a first allocation result of each requirement.
Optionally, the disturbance correction module is further configured to: in response to the resource allocation result request, the resource allocation result request includes data of a demand at a second time and inventory data of the resource, and the demand and the resource that change during the first time to the second time are determined from the data of the demand at the second time and the inventory data of the resource.
Optionally, the resource allocation module is further configured to: according to the data of the demands at the first moment and the inventory data of the resources, the following resource allocation processing is carried out on each demand by utilizing a heuristic construction algorithm: according to the unallocated resources in the first inventory box, allocating the unallocated resources in the first inventory box for the current demand, wherein the first inventory box is an inventory box associated with a first operation console corresponding to the current demand; if the unallocated resources in the first inventory box do not meet the current demand, allocating resources in a second inventory box for the current demand, wherein the second inventory box is an inventory box which is not associated with any operation desk; if the resources in the second stock box do not meet the current demand, allocating the unallocated resources in the third stock box for the current demand according to the unallocated resources in the third stock box associated with the second operation table, wherein the second operation table is any operation table except the first operation table; wherein, the stock box associated with any operation platform refers to the stock box of which at least one resource in the box is allocated to the operation platform.
Optionally, the resource allocation module is further configured to: if at least one fourth inventory box exists in the first inventory box, the unallocated resources in any fourth inventory box meet the current demand, and then the resources are allocated for the current demand according to the unallocated resources in any fourth inventory box; and if the fourth stock box does not exist in the first stock box, distributing the unallocated resources in the first stock box with the largest unallocated resources to the current demand.
Optionally, the resource allocation module is further configured to: and allocating the resources for the current demand according to the unallocated resources in the fourth inventory box with the smallest unallocated resources.
Optionally, the resource allocation module is further configured to: if at least one fifth inventory box exists in the second inventory box, the unallocated resources in any fifth inventory box meet the current demand, and then the resources are allocated for the current demand according to the unallocated resources in any fifth inventory box; and if the fifth stock box does not exist in the second stock boxes, distributing the unallocated resources in the second stock boxes with the largest unallocated resources to the current demands.
Optionally, the resource allocation module is further configured to: and allocating resources for the current demand according to unallocated resources in a fifth inventory box closest to the first operating table.
Optionally, the resource allocation module is further configured to: if at least one sixth inventory box exists in the third inventory boxes, the unallocated resources in any sixth inventory box meet the current demand, and then the resources are allocated for the current demand according to the unallocated resources in any sixth inventory box; and if the sixth inventory box does not exist in the third inventory box, allocating the unallocated resources in the third inventory box with the largest unallocated resources to the current demand.
Optionally, the resource allocation module is further configured to: determining a number of stations associated with each sixth inventory bin; and allocating resources for the current demand according to unallocated resources in a sixth inventory box with the least number of associated operating stations.
Optionally, the resource allocation module is further configured to: screening the demands according to the data of the demands at the first moment and the inventory data of the resources to obtain a first demand set, wherein the first demand set comprises: the method comprises the steps of providing a demand with the smallest difference between the number of corresponding first resources and the unallocated demand number of target resources, wherein the first resources are unallocated target resources in an inventory box associated with an operation platform corresponding to the demand; performing resource allocation processing on each demand in the first demand set; if the unsatisfied demand exists, screening the unsatisfied demand to obtain a new first demand set, and carrying out resource allocation processing on each demand in the new first demand set until all the demands are satisfied.
Optionally, the resource allocation module is further configured to: before the following resource allocation processing is performed on each demand by using a heuristic construction algorithm, an initial demand set and an initial resource set are determined according to the data of the demand at the first moment and the inventory data of the resources, wherein the initial demand set comprises all demands, each demand comprises the demand quantity of any one operation platform for any one resource, the initial resource set comprises a plurality of resource inventory information, and each resource inventory information is used for recording the inventory quantity of any one resource in any storage box.
Optionally, the resource allocation module is further configured to: after an initial demand set and an initial resource set are determined according to the data of the demands at the first moment and the inventory data of the resources, a candidate resource set corresponding to each demand is determined according to the initial demand set and the initial resource set, and the candidate resource set comprises resource inventory information corresponding to the resources required by the demands; and when resources are allocated for any demand, determining the resources allocated for the demand from the candidate resource set corresponding to the demand.
Optionally, the resource allocation module is further configured to: and storing and updating the association information of each operation table and the inventory box.
Optionally, the resource allocation module is further configured to: the amount of unallocated resources within each console associated inventory bin is stored and updated.
Optionally, the resource allocation module is further configured to: and allocating resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, and performing at least one optimization treatment on the first allocation result after obtaining the first allocation result of each demand.
Optionally, the resource allocation module is further configured to: and performing first optimization processing on the first distribution result by using a hill climbing algorithm, and performing second optimization processing on the first distribution result after the first optimization processing by using a simulated annealing algorithm.
Optionally, the resource allocation module is further configured to: at least one of the following iterative optimization processes is performed on the current allocation result: releasing an allocation result corresponding to the allocated resources in any inventory box associated with any operation table; according to the stored tabu information, randomly distributing resources for unmet demands to obtain a neighborhood feasible solution; and (5) carrying out optimization processing again on the current distribution result according to the neighborhood feasible solution.
Optionally, the resource allocation module is further configured to: and when the number of times of iterative optimization processing on the allocation result is greater than or equal to the threshold value of the iterative number, clearing the stored tabu information.
Optionally, the resource allocation module is further configured to: and randomly distributing resources for unmet demands according to the stored tabu information, and generating and storing tabu information corresponding to the operation console and the inventory box before obtaining a neighborhood feasible solution, wherein the tabu information is used for prohibiting the resources in the inventory box from being distributed to the demands of the operation console.
Optionally, the resource allocation module is further configured to: and randomly distributing resources for unmet demands according to the stored tabu information, and deleting at least one piece of tabu information according to a timestamp corresponding to the tabu information if the stored tabu information is determined to be incapable of meeting at least one demand before obtaining a neighborhood feasible solution.
The apparatus provided in this embodiment of the present application may be specifically configured to perform the method embodiment provided in the second embodiment or the third embodiment, and specific functions are not described herein.
Compared with the traditional heuristic construction algorithm, the algorithm for determining the first allocation result through the resource allocation provided by the embodiment can better ensure the quality of the first resource allocation result while generating a feasible first resource allocation result. In addition, the heuristic construction algorithm for resource allocation provided in this embodiment is separated from the problem model, and when the problem is changed, only the objective function and the corresponding random neighborhood operator (weakly related to the problem) need to be modified to adapt. Compared with the traditional algorithm, the method has little development investment and little dependence on domain knowledge and mathematical knowledge.
The two-step neighborhood search algorithm proposed in this embodiment can search for a better solution to the NP-Complete problem, such as the resource allocation problem. And the mechanism of the hill climbing algorithm and the simulated annealing algorithm is used simultaneously, so that the rapid convergence can be achieved in the early stage in the resource allocation process, and the exploration capability of an unknown region (a neighborhood feasible solution) can be maintained.
Example six
Fig. 9 is a schematic structural diagram of a resource allocation device according to a sixth embodiment of the present invention. As shown in fig. 9, the resource allocation apparatus 100 includes: a processor 1001, a memory 1002, and a computer program stored on the memory 1002 and executable on the processor 1001. Wherein the processor 1001 implements the method provided by any of the method embodiments described above when running a computer program.
According to the method and the device, after the resources are allocated to each demand according to the data of the demands at the first moment and the inventory data of the resources, the first allocation result of each demand is obtained, the demands and the resources which change in the period from the first moment to the second moment are determined according to the data of the demands at the second moment and the inventory data of the resources, the first allocation result corresponding to the demands which change and/or the first allocation result corresponding to the resources which change are released, and the resources are reallocated for the demands which change, so that the first allocation result which is disturbed in the resource allocation period is repaired, the infeasible allocation result in the resource allocation result is greatly reduced, and the feasibility of the resource allocation result in actual execution is improved.
The embodiment of the invention also provides a computer readable storage medium, wherein a computer program is stored in the computer readable storage medium, and the computer program is executed by a processor to perform the method provided by any one of the method embodiments.
The embodiment of the invention also provides a computer program product, which comprises: a computer program stored in a readable storage medium, from which at least one processor of the warehouse management system can read, the at least one processor executing the computer program causing the warehouse management system to perform the method provided by any of the method embodiments described above.
Other embodiments of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the application following, in general, the principles of the application and including such departures from the present disclosure as come within known or customary practice within the art to which the application pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the application being indicated by the following claims.
It is to be understood that the present application is not limited to the precise arrangements and instrumentalities shown in the drawings, which have been described above, and that various modifications and changes may be effected without departing from the scope thereof. The scope of the application is limited only by the appended claims.

Claims (21)

1. A method for resource allocation, comprising:
responding to a resource allocation request at a first moment, allocating resources for each demand according to the data of the demand at the first moment and the inventory data of the resources, and obtaining a first allocation result of each demand, wherein the demand is the resource allocation demand of an operation platform, the resources are inventory units in an inventory box, the resource allocation request comprises the data of the demand at the first moment and the inventory data of the resources, and the resource allocation request is used for requesting resource allocation equipment to start resource allocation;
sending a notification message to a warehousing system, wherein the notification message is used for notifying that the resource allocation is completed, and the notification message is also used for indicating the warehousing system to send a resource allocation result request after receiving the notification message;
determining the demand and the resource which change from the first time to the second time according to the data of the demand at the second time and the inventory data of the resource in response to a resource allocation result request at the second time, wherein the first allocation result comprises the resource allocated for the demand, the resource allocation result request comprises the data of the demand at the second time and the inventory data of the resource, and the resource allocation result request is used for requesting a resource allocation device to carry out local matching repair of the resource allocation result;
Releasing an unexecutable allocation result in the first allocation result according to the changed demand and resource, wherein the unexecutable allocation result comprises: a first allocation result corresponding to the changed demand and/or a first allocation result corresponding to the changed resource;
reallocating resources for the unmet demands according to the data of the demands and the inventory data of the resources after releasing the non-executable allocation results to obtain second allocation results;
returning the second distribution result;
according to the data of the demands at the first moment and the inventory data of the resources, allocating the resources for each demand to obtain a first allocation result of each demand, wherein the first allocation result comprises:
according to the data of the demands at the first moment and the inventory data of the resources, carrying out the following resource allocation processing on each demand by utilizing a heuristic construction algorithm to obtain a first allocation result of each demand:
allocating the unallocated resources in a first inventory box for a current demand according to the unallocated resources in the first inventory box, wherein the first inventory box is an inventory box associated with a first operation console corresponding to the current demand;
if the unallocated resources in the first inventory box do not meet the current demand, allocating resources in a second inventory box for the current demand, the second inventory box being an inventory box not associated with any console;
If the resources in the second inventory box do not meet the current demand, allocating the unallocated resources in the third inventory box for the current demand according to the unallocated resources in the third inventory box associated with a second operation table, wherein the second operation table is any operation table except the first operation table; wherein, the stock box associated with any operation platform refers to the stock box of which at least one resource in the box is allocated to the operation platform.
2. The method of claim 1, wherein said allocating unallocated resources in a first inventory box for a current demand based on unallocated resources in the first inventory box comprises:
if at least one fourth inventory box exists in the first inventory box, allocating resources for the current demand according to the unallocated resources in any fourth inventory box if the unallocated resources in any fourth inventory box meet the current demand;
and if the fourth stock box does not exist in the first stock box, allocating the unallocated resources in the first stock box with the largest unallocated resources to the current demand.
3. The method of claim 2, wherein said allocating resources for said current demand based on unallocated resources within any of said fourth inventory boxes comprises:
And allocating resources for the current demand according to the unallocated resources in the fourth inventory box with the smallest unallocated resources.
4. The method of claim 1, wherein said allocating resources in a second inventory box for said current demand comprises:
if at least one fifth inventory box exists in the second inventory boxes, allocating resources for the current demand according to the unallocated resources in any fifth inventory box if the unallocated resources in any fifth inventory box meet the current demand;
and if the fifth inventory box does not exist in the second inventory box, allocating the unallocated resources in the second inventory box with the largest unallocated resources to the current demand.
5. The method of claim 4, wherein said allocating resources for said current demand based on unallocated resources in any of said fifth inventory boxes comprises:
and allocating resources for the current demand according to unallocated resources in a fifth inventory box closest to the first operating table.
6. The method of claim 1, wherein said allocating unallocated resources in a third inventory box associated with a second operator station for the current demand based on unallocated resources in the third inventory box comprises:
If at least one sixth inventory box exists in the third inventory boxes, allocating resources for the current demand according to the unallocated resources in any sixth inventory box if the unallocated resources in any sixth inventory box meet the current demand;
and if the sixth inventory box does not exist in the third inventory box, allocating the unallocated resources in the third inventory box with the largest unallocated resources to the current demand.
7. The method of claim 6, wherein said allocating resources for said current demand based on unallocated resources in any of said sixth inventory boxes comprises:
determining a number of stations associated with each of the sixth inventory boxes;
and allocating resources for the current demand according to unallocated resources in a sixth inventory box with the least number of associated operating stations.
8. The method of claim 1, wherein said data based on demand at said first time and inventory data of resources, using a heuristic construction algorithm, performs the following resource allocation process for each of said demands, comprising:
screening the demands according to the data of the demands at the first moment and the inventory data of the resources to obtain a first demand set, wherein the first demand set comprises: a demand with a minimum difference between a corresponding number of first resources and an unallocated demand number of target resources, wherein the first resources are unallocated target resources in an inventory box associated with an operation panel corresponding to the demand;
Performing the resource allocation process for each demand in the first set of demands;
if the unsatisfied demand exists, screening the unsatisfied demand to obtain a new first demand set, and carrying out the resource allocation processing on each demand in the new first demand set until all the demands are satisfied.
9. The method according to any one of claims 1-8, wherein said utilizing a heuristic construction algorithm, prior to said performing the following resource allocation process for each of said demands, further comprises:
according to the data of the demands at the first moment and the inventory data of the resources, an initial demand set and an initial resource set are determined, wherein the initial demand set contains all demands, each demand comprises the demand quantity of any operation station on any resource, the initial resource set contains a plurality of resource inventory information, and each resource inventory information is used for recording the inventory quantity of any resource in any storage box.
10. The method of claim 9, wherein after determining the initial set of requirements and the initial set of resources based on the data of requirements at the first time and the inventory data of resources, further comprising:
According to the initial demand set and the initial resource set, determining a candidate resource set corresponding to each demand, wherein the candidate resource set comprises resource inventory information corresponding to resources required by the demand;
and when resources are allocated for any demand, determining the resources allocated for the demand from the candidate resource set corresponding to the demand.
11. The method according to any one of claims 1-8, wherein the data according to the demands at the first time and the inventory data of the resources, using a heuristic construction algorithm, performs the following resource allocation process for each of the demands, further comprising:
and storing and updating the association information of each operation table and the inventory box.
12. The method according to any one of claims 1-8, wherein the data according to the demands at the first time and the inventory data of the resources, using a heuristic construction algorithm, performs the following resource allocation process for each of the demands, further comprising:
the amount of unallocated resources within each console associated inventory bin is stored and updated.
13. The method according to any one of claims 1-8, further comprising, after allocating resources for each demand based on the data of the demand and the inventory data of the resources at the first time, obtaining a first allocation result for each demand:
And carrying out at least one optimization treatment on the first distribution result.
14. The method of claim 13, wherein said performing at least one optimization process on said first allocation result comprises:
and performing first optimization processing on the first distribution result by using a hill climbing algorithm, and performing second optimization processing on the first distribution result after the first optimization processing by using a simulated annealing algorithm.
15. The method of claim 14, wherein optimizing the current allocation result using a neighborhood search algorithm comprises:
at least one of the following iterative optimization processes is performed on the current allocation result:
releasing an allocation result corresponding to the allocated resources in any inventory box associated with any operation table;
according to the stored tabu information, randomly distributing resources for unmet demands to obtain a neighborhood feasible solution;
and carrying out optimization processing again on the current distribution result according to the neighborhood feasible solution.
16. The method as recited in claim 15, further comprising:
and when the number of times of the iterative optimization processing on the allocation result is greater than or equal to the threshold value of the iterative number, clearing the stored tabu information.
17. The method of claim 15, wherein the randomly allocating resources for unmet needs based on the stored tabu information, before obtaining the neighborhood feasible solution, further comprises:
and generating and storing tabu information corresponding to the operation desk and the inventory box, wherein the tabu information is used for prohibiting the requirement of distributing resources in the inventory box to the operation desk.
18. The method of claim 15, wherein the randomly allocating resources for unmet needs based on the stored tabu information, before obtaining the neighborhood feasible solution, further comprises:
and according to the stored tabu information, if the fact that at least one requirement cannot be met is determined, deleting at least one piece of tabu information according to the timestamp corresponding to the tabu information.
19. A resource allocation apparatus, comprising:
the data acquisition module is used for responding to a resource allocation request at a first moment, allocating resources for each requirement according to the data of the requirement at the first moment and the inventory data of the resources, and obtaining a first allocation result of each requirement, wherein the requirement is the resource allocation requirement of an operation platform, the resources are inventory units in an inventory box, the resource allocation request comprises the data of the requirement at the first moment and the inventory data of the resources, and the resource allocation request is used for requesting resource allocation equipment to start resource allocation; sending a notification message to a warehousing system, wherein the notification message is used for notifying that the resource allocation is completed, and the notification message is also used for indicating the warehousing system to send a resource allocation result request after receiving the notification message;
The disturbance correction module is used for responding to a resource allocation result request at a second moment, determining the requirement and the resource which change during the period from the first moment to the second moment according to the requirement data at the second moment and the inventory data of the resource, wherein the first allocation result comprises the resource allocated for the requirement, the resource allocation result request comprises the requirement data at the second moment and the inventory data of the resource, and the resource allocation result request is used for requesting resource allocation equipment to carry out local matching repair of the resource allocation result; releasing an unexecutable allocation result in the first allocation result according to the changed demand and resource, wherein the unexecutable allocation result comprises: a first allocation result corresponding to the changed demand and/or a first allocation result corresponding to the changed resource; reallocating resources for the unmet demands according to the data of the demands and the inventory data of the resources after releasing the non-executable allocation results to obtain second allocation results; returning the second distribution result;
according to the data of the demands at the first moment and the inventory data of the resources, allocating the resources for each demand to obtain a first allocation result of each demand, wherein the first allocation result comprises:
According to the data of the demands at the first moment and the inventory data of the resources, carrying out the following resource allocation processing on each demand by utilizing a heuristic construction algorithm to obtain a first allocation result of each demand:
allocating the unallocated resources in a first inventory box for a current demand according to the unallocated resources in the first inventory box, wherein the first inventory box is an inventory box associated with a first operation console corresponding to the current demand;
if the unallocated resources in the first inventory box do not meet the current demand, allocating resources in a second inventory box for the current demand, the second inventory box being an inventory box not associated with any console;
if the resources in the second inventory box do not meet the current demand, allocating the unallocated resources in the third inventory box for the current demand according to the unallocated resources in the third inventory box associated with a second operation table, wherein the second operation table is any operation table except the first operation table; wherein, the stock box associated with any operation platform refers to the stock box of which at least one resource in the box is allocated to the operation platform.
20. A resource allocation apparatus, comprising:
A processor, a memory, and a computer program stored on the memory and executable on the processor;
wherein the processor, when running the computer program, implements the method according to any of claims 1-18.
21. A computer readable storage medium having stored therein computer executable instructions which when executed by a processor are adapted to carry out the method of any one of claims 1-18.
CN202111109554.1A 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation Active CN113807714B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111109554.1A CN113807714B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110554687.3A CN113052514B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation
CN202111109554.1A CN113807714B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202110554687.3A Division CN113052514B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation

Publications (2)

Publication Number Publication Date
CN113807714A CN113807714A (en) 2021-12-17
CN113807714B true CN113807714B (en) 2024-02-06

Family

ID=76518478

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202110554687.3A Active CN113052514B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation
CN202111109554.1A Active CN113807714B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation
CN202111108127.1A Pending CN113807711A (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110554687.3A Active CN113052514B (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202111108127.1A Pending CN113807711A (en) 2021-05-21 2021-05-21 Method, apparatus, device, storage medium and program product for resource allocation

Country Status (1)

Country Link
CN (3) CN113052514B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113052514B (en) * 2021-05-21 2021-10-29 深圳市海柔创新科技有限公司 Method, apparatus, device, storage medium and program product for resource allocation
CN113780831A (en) * 2021-09-14 2021-12-10 北京沃东天骏信息技术有限公司 Resource allocation method and device, electronic equipment and storage medium
CN114548611B (en) * 2022-04-27 2022-07-19 东方电气风电股份有限公司 Method for searching optimal gain parameter of wind generating set

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142255B1 (en) * 2016-09-08 2018-11-27 Amazon Technologies, Inc. Allocating dynamic resources to service clusters
CN109472511A (en) * 2018-11-23 2019-03-15 吴孟辉 A kind of resource allocation method, device, computer equipment and storage medium
CN111181770A (en) * 2019-12-12 2020-05-19 北京淇瑀信息科技有限公司 Resource allocation method, system, electronic equipment and storage medium
CN111930514A (en) * 2020-09-14 2020-11-13 北京英迈琪科技有限公司 Resource optimization allocation method and system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009410A1 (en) * 2001-06-26 2003-01-09 Padman Ramankutty Collaboration bill of material
US20040162753A1 (en) * 2003-02-14 2004-08-19 Vogel Eric S. Resource allocation management and planning
US8386342B2 (en) * 2005-05-13 2013-02-26 International Business Machines Corporation Method, system, and computer program product for performing inventory management
CN109600414B (en) * 2018-08-13 2020-04-10 北京字节跳动网络技术有限公司 Resource allocation method, device, equipment and storage medium
CN110245890B (en) * 2019-05-28 2022-04-12 深圳市海柔创新科技有限公司 Goods sorting method and goods sorting system
CN111582781B (en) * 2020-04-24 2023-04-28 清华大学深圳国际研究生院 Method for distributing goods shelves according to replenishment orders and computer readable storage medium
CN111917818B (en) * 2020-06-09 2023-07-25 东南大学 Dynamic matching method for personalized service demands
CN111695806B (en) * 2020-06-11 2023-05-12 湖南大学 Resource allocation method, device equipment and storage medium
CN112328378B (en) * 2020-11-05 2023-03-24 南京星环智能科技有限公司 Task scheduling method, computer device and storage medium
CN112527506B (en) * 2020-12-18 2022-09-23 北京百度网讯科技有限公司 Device resource processing method and device, electronic device and storage medium
CN113052514B (en) * 2021-05-21 2021-10-29 深圳市海柔创新科技有限公司 Method, apparatus, device, storage medium and program product for resource allocation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142255B1 (en) * 2016-09-08 2018-11-27 Amazon Technologies, Inc. Allocating dynamic resources to service clusters
CN109472511A (en) * 2018-11-23 2019-03-15 吴孟辉 A kind of resource allocation method, device, computer equipment and storage medium
CN111181770A (en) * 2019-12-12 2020-05-19 北京淇瑀信息科技有限公司 Resource allocation method, system, electronic equipment and storage medium
CN111930514A (en) * 2020-09-14 2020-11-13 北京英迈琪科技有限公司 Resource optimization allocation method and system

Also Published As

Publication number Publication date
CN113807714A (en) 2021-12-17
CN113052514A (en) 2021-06-29
CN113052514B (en) 2021-10-29
CN113723867A (en) 2021-11-30
CN113807711A (en) 2021-12-17

Similar Documents

Publication Publication Date Title
CN113807714B (en) Method, apparatus, device, storage medium and program product for resource allocation
JP6376865B2 (en) Computer-implemented method, storage medium, and computer system for parallel tree-based prediction
CN110837410A (en) Task scheduling method and device, electronic equipment and computer readable storage medium
Menendez et al. Parallel variable neighborhood search for the min–max order batching problem
Digalakis et al. A multipopulation cultural algorithm for the electrical generator scheduling problem
CN110275876A (en) The method and device extending transversely for database
Zhen et al. Capacitated closed-loop supply chain network design under uncertainty
Atli et al. Fuzzy resource‐constrained project scheduling using taboo search algorithm
CN115934344A (en) Heterogeneous distributed reinforcement learning calculation method, system and storage medium
CN110119399B (en) Business process optimization method based on machine learning
Zavadskas et al. Evaluation of buildings’ redevelopment alternatives with an emphasis on the multipartite sustainability
CN105190537B (en) Modify the method and product of the operation stream that will be executed in multiple performing environments
CN113342418B (en) Distributed machine learning task unloading method based on block chain
CN113723867B (en) Method, apparatus, device, storage medium and program product for resource allocation
Lu et al. Two-level Tabu-predatory search for schedule risk control of IT outsourcing projects
Brown et al. Uncertainty and change
US10313457B2 (en) Collaborative filtering in directed graph
CN114581220B (en) Data processing method and device and distributed computing system
JP2023029604A (en) Apparatus and method for processing patent information, and program
Ni et al. An ant colony optimization for the composite SaaS placement problem in the cloud
You et al. A two‐layer approach for solving robust decentralized multiproject scheduling problem with multi‐skilled staff
Jiang Analysis and Discussion of Radar Construction Problems with Greedy Algorithm
CN105844110A (en) Method for solving software and hardware partitioning through self-adaptive domain tabu search on basis of GPU (graphics processing unit)
US7805326B2 (en) System to resolve scheduling constraints
CN105988907A (en) Business monitoring method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant