Method and System for Optimizing Logistics Scheduling
By applying ant colony algorithm in the logistics scheduling system to optimize the allocation of warehouse locations, the problems of low warehouse location utilization and logistics chaos are solved, and more efficient warehouse location resource utilization and logistics scheduling are achieved.
Patent Information
- Application Number
- CN202110216478.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-02-26
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2041-02-26
AI Technical Summary
The lack of unified early allocation in the existing logistics dispatching system has led to low utilization rate of warehouse locations, chaotic logistics, and affecting production plans.
The ant colony algorithm is adopted to construct input data including order data, available library location data and logistics efficiency data, and initialize the ant colony algorithm parameters, such as the number of ants, iterative stop conditions and pheromone matrix, and iteratively execute the ant colony algorithm to find the optimal solution to ensure the maximum library location utilization rate.
It has achieved the improvement of warehouse location utilization, avoid logistics chaos, optimize warehouse resource utilization, and improve the feasibility of production plans while meeting order delivery time.
Smart Images

Figure CN114970925B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to logistics scheduling, and in particular to a method and system for optimizing logistics scheduling. Background Art
[0002] In the past, each production department formulated its own procurement plan and generated a purchase order according to its own production needs, and agreed with the supplier on the delivery time, delivery time, transportation method, etc. After the various orders arrived, the warehouse allocated storage locations and stored the materials received.
[0003] However, due to the lack of unified deployment in advance, various problems may arise. For example, after the order materials arrive, they are randomly allocated to available but not necessarily the most suitable storage locations, which makes the warehouse storage locations not effectively utilized, that is, the warehouse storage location utilization rate is low. In some cases, due to the lack of advance deployment, when the materials of various orders arrive, the warehouse may not have available storage locations to store these materials, resulting in logistics chaos and affecting production plans. Sometimes the warehouse has a lot of idle storage locations that are not fully utilized, and sometimes it cannot provide enough available storage locations because of the large number of orders arriving. Summary of the invention
[0004] According to one aspect, a method implemented by a computer is provided, comprising: constructing an input of an ant colony algorithm, the input comprising order data, available storage location data and logistics efficiency data related to materials of orders to be delivered within a predetermined period; initializing parameters of the ant colony algorithm, the parameters comprising the number of ants, an iteration stop condition and a pheromone matrix, wherein the number of ants is based on the number of materials contained in the order data, and the elements of the pheromone matrix indicate the corresponding pheromone concentrations on all possible paths from each material in each order to each storage location; iteratively executing the ant colony algorithm when the iteration stop condition is not met; and stopping the iteration and outputting the optimal solution at that time when the iteration stop condition is met. The iterative execution of the ant colony algorithm comprises: for each iteration, generating a solution corresponding to each ant, the solution corresponding to each ant being a set of paths from each material in each order to each storage location selected by the ant; and determining the optimal solution for each iteration based on an objective function, wherein the objective function indicates the storage location utilization rate of the storage locations occupied by all materials.
[0005] According to some embodiments, the input for constructing the ant colony algorithm further includes: constructing a task array associated with the order data, the task array including at least one task object, each task object characterizing the material type of a material in an order, its storage capacity requirement, and its delivery time; constructing a two-dimensional matrix associated with the available storage location data, the two-dimensional matrix including at least one available storage location object, each available storage location object characterizing the available storage capacity and suitable loaded product categories of a certain storage location at a certain time point; constructing a two-dimensional matrix associated with the logistics efficiency data, the two-dimensional matrix including at least one logistics efficiency object, each logistics efficiency object characterizing the logistics duration when a certain supplier transports in a certain transportation mode.
[0006] According to some embodiments, determining the optimal solution for each iteration based on the objective function further includes: for each iteration, calculating the value of the corresponding objective function for the solution corresponding to each ant; selecting the solution that maximizes the value of the objective function as the optimal solution for this iteration.
[0007] According to some embodiments, iteratively executing the ant colony algorithm further includes: at the end of each iteration, for each ant, updating the pheromone matrix according to the following formula:
[0008]
[0009] where τ ij represents the pheromone concentration value on the path from task object i to storage location j, i is a natural number less than or equal to the total number of materials, and j is a natural number less than or equal to the total number of storage locations;
[0010] represents the increased pheromone concentration value on the path from task object i to storage location j by the k-th ant, k is a natural number less than or equal to the number of ants;
[0011] where, if the k-th ant uses the path from task object i to storage location j, then for the path from task object i to storage location j, the corresponding increased pheromone concentration value is Q / C k where C k represents the difference obtained by subtracting the storage location utilization rate corresponding to the k-th ant from 100%, and Q is an empirical value;
[0012] if the k-th ant does not use the path from task object i to storage location j, then for the path from task object i to storage location j, the corresponding increased pheromone concentration value is 0.
[0013] According to some embodiments, iteratively executing the ant colony algorithm further includes: at the end of each iteration, performing pheromone evaporation on each element of the pheromone matrix according to the following formula:
[0014] pheromoneMatrix[i][j] = pheromoneMatrix[i][j] - ρ
[0015] Among them, ρ is a pheromone evaporation factor greater than 0 and less than 1.
[0016] According to some embodiments, the iteration stop condition is: the number of iterations is greater than a preset number; or the objective function value corresponding to the optimal solution is greater than or equal to a preset storage location utilization rate.
[0017] According to some embodiments, the method further includes, for a task object, performing the following steps until a path for the task object is constructed: randomly select a storage location, determine whether the storage location can provide available storage capacity that meets the delivery time of the task object, in response to determining that the storage location object can provide available storage capacity that meets the delivery time of the task object, construct a path from the task object to the storage location, in response to determining that the storage location cannot provide available storage capacity that meets the delivery time of the task object, randomly select another storage location and determine whether to construct a path from the task object to the other storage location based on whether the other storage location can provide available storage capacity that meets the delivery time of the task object.
[0018] According to some embodiments, the method further includes: locking the inventory based on the output optimal solution; and sending an order shipping notice to the supplier.
[0019] According to some embodiments, the available storage location data is determined based on the current real-time storage location utilization and the historical storage location turnover rate of the materials.
[0020] According to some embodiments, the order data contains information reflecting the order priority.
[0021] According to one aspect, there is provided a computer system, including: one or more processors, and a memory coupled to the one or more processors, the memory storing computer-readable program instructions, the instructions, when executed by the one or more processors, causing the one or more processors to execute the method as described above.
[0022] According to one aspect, there is provided a computer-readable storage medium, on which computer-readable program instructions are stored, the instructions, when executed by a processor, causing the processor to execute the method as described above.
[0023] According to one aspect, there is provided a computer program product, including computer-readable program instructions, the instructions, when executed by a processor, causing the processor to execute the method as described above. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 is a schematic diagram for illustrating an overview of a logistics intelligent scheduling system according to an embodiment of the present disclosure.
[0025] Figure 2 is a flowchart showing a logistics intelligent scheduling method according to an embodiment of the present disclosure.
[0026] Figure 3 is a flowchart showing a logistics intelligent scheduling method according to an embodiment of the present disclosure.
[0027] Figure 4 is a schematic diagram showing a path construction according to an embodiment of the present disclosure.
[0028] Figure 5 is a schematic diagram showing the effect of iterative execution of the method according to an embodiment of the present disclosure.
[0029] Figure 6 is a schematic diagram showing a general hardware environment of a device that can implement the embodiment according to the present disclosure. Detailed Implementation Manner
[0030] The following description is provided to enable those skilled in the art to implement and use the embodiments, and the following description is provided in the context of a specific application program and its requirements. Various modifications will be obvious to those skilled in the art, and the general principles defined herein can be applied to other embodiments and application programs without departing from the essence and scope of the embodiments. Therefore, the embodiments are not limited to the embodiments shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein.
[0031] Figure 1 - Overview of the Logistics Intelligent Scheduling System
[0032] Figure 1 is a schematic diagram for illustrating an overview of the logistics intelligent scheduling system according to an embodiment of the present disclosure.
[0033] The logistics intelligent scheduling system of the embodiments of the present disclosure aims to uniformly allocate the orders to be delivered. It adopts the ant colony algorithm to allocate the most suitable available storage locations for the materials involved in the order (i.e., reserve available storage locations for the order) before notifying the supplier to ship, and while allocating, it can both meet the delivery time of the order as much as possible and improve the utilization rate of the storage locations. Improving the utilization rate of the storage locations can enable a warehouse of the same capacity to provide material storage and turnover capabilities for more orders, overall improving the utilization efficiency of the warehouse, which can both meet the production plan and make the logistics process efficient and orderly.
[0034] The logistics intelligent scheduling system of the embodiments of the present disclosure can notify the supplier of the ideal shipping time, enabling the supplier to ship according to the planned shipping time, which can make the order delivery more flexible, the warehouse utilization more efficient, improve resource utilization, and make the logistics scheduling efficient and orderly.
[0035] The logistics intelligent scheduling system can involve functions in the following aspects.
[0036] 1. Collection
[0037] As shown in the figure, the logistics intelligent scheduling system can collect various data related to logistics, purchase orders, and warehouse locations.
[0038] These data are collected from multiple subsystems, for example.
[0039] These subsystems can include, for example:
[0040] ◆ Master data subsystem, which can provide core configuration data such as logistics lists, suppliers, products, channels, and organizational structures.
[0041] ◆ Purchase order subsystem, which can provide current order data and historical order data. Among them, after refining and analyzing the historical data, data such as logistics efficiency by material and by supplier, and average delivery duration can be provided.
[0042] ◆ Warehouse management subsystem, which can provide real-time data and historical data related to warehousing. Among them, by analyzing the historical data, data such as the average turnover time of materials and the average occupancy rate of warehouse locations can be provided. The real-time data can reflect the currently available warehouse locations and the available capacity of the warehouse locations.
[0043] The collection of data can be achieved through methods such as active scraping or message subscription. Active scraping can be further divided into methods such as direct database connection and HTTP interface. Message subscription requires providing corresponding interfaces to call the interfaces for push processing when data changes occur in the data provider.
[0044] The collection of various data is described in detail below.
[0045] ◆ Logistics data
[0046] Historical logistics data related to delivery orders within a predetermined period can be actively scraped. For example, the historical logistics data of purchase orders delivered in the past year can be actively scraped. Logistics data can include, for example, data related to suppliers, transportation methods, shipping locations, receiving locations, order issuance time, shipping time, arrival time, etc.
[0047] These historical logistics data can be used to analyze logistics efficiency. The analysis of logistics efficiency can be carried out for suppliers, for materials, for transportation modes, or for any combination of the above. For example, the average logistics efficiency of a certain supplier, that is, the average supply duration, can be analyzed, which is the average duration from receiving an order from the supplier to the arrival of the order. The average logistics efficiency of a certain material of a certain supplier can also be analyzed. The logistics efficiency of a certain supplier under different transportation modes can also be analyzed. The logistics efficiency of different materials of different suppliers under different transportation modes can also be analyzed. Logistics efficiency can also consider the supplier's preparation time.
[0048] Logistics efficiency can be used to estimate the duration from sending a shipment notice of an order to a supplier to the arrival of the order.
[0049] Logistics efficiency data can help determine the earliest allowable arrival time, so that, based on the utilization of storage locations, the ordered materials can arrive at the most suitable time on the premise of meeting the delivery time. This makes logistics scheduling more flexible and can be supported by available storage locations.
[0050] ◆ Purchase order data
[0051] The message subscription method can be used to receive purchase orders. They can be received in real time or in batches at predetermined time intervals.
[0052] Purchase orders contain various data, such as material types, material quantities, suppliers, shipping locations, receiving locations, transportation modes, latest delivery times, expected delivery times, etc.
[0053] Order data can include priority information of the order or materials. The priority can reflect whether the order or the materials involved in the order need to be processed preferentially. The priority can depend on, for example, the importance of the order, the urgency, the sequence of delivery times, etc. In the case where the available storage locations are limited or cannot meet the needs of all orders, high-priority orders and their materials can be processed preferentially (for example, available storage locations are preferentially allocated), while low-priority orders may not be processed (for example, no available storage locations are allocated), and information such as the shipping time needs to be changed.
[0054] ◆ Storage location data
[0055] Storage location data includes historical data and real-time data.
[0056] Historical data: The historical transfer data of materials within a predetermined period (for example, in the recent year) can be actively captured. The historical transfer data of materials reflects, for example, material types, quantities, occupied storage locations, occupied capacities, supply seasons, storage times, outbound times, production volumes of associated vehicle models, etc.
[0057] These historical material transfer data can be used to predict the average residence time of various materials in storage locations, and thus can be used to predict the storage location emptying plan for a future period of time.
[0058] Real-time storage location data: The latest storage location situation can be obtained from the warehousing system through message subscription. The real-time storage location data can reflect the currently used storage locations, the materials stored in the used storage locations respectively, the quantity of materials, the warehousing time, etc., and can also reflect the currently unused storage locations, available capacity, etc.
[0059] Based on the real-time storage location data and historical material transfer data, the storage location emptying plan for a future period of time can be predicted, that is, which storage locations will be available at a certain future time point.
[0060] 2. Preprocessing
[0061] After the logistics intelligent scheduling system collects data from each subsystem, it needs to preprocess it.
[0062] For example, cleaning is performed using means such as aggregation, deduplication, and noise reduction. The cleaned data can be stored in the cache for use as calculation data for the algorithm.
[0063] 3. Solving
[0064] The logistics intelligent scheduling system then uses the preprocessed data mentioned above to iteratively execute the ant algorithm for solving.
[0065] In some embodiments, a batch of orders with a processing delivery time within 15 days can be assumed. The orders can be sorted according to the delivery time sequence and / or priority.
[0066] The logistics intelligent scheduling system can use relevant data to construct the input and parameters of the ant colony algorithm. Through the execution of the algorithm, the ant colony can find the most suitable available storage locations for all the materials involved in the orders and at the same time maximize the utilization rate of the storage locations. The set of optimal paths from all materials to available storage locations (i.e., the path set that maximizes the utilization rate of the storage locations) obtained through this algorithm is output as the optimal solution.
[0067] 4. Tuning
[0068] The logistics intelligent scheduling system can also perform tuning by adjusting the relevant parameters of the ant colony algorithm based on the quality of the solution results.
[0069] 5. Locking
[0070] When the logistics intelligent scheduling system obtains the optimal solution, it can lock the storage locations based on the optimal solution and send an order shipping notice to the supplier.
[0071] Figure 2 - Logistics intelligent scheduling method
[0072] Figure 2 It is a flowchart 200 showing a logistics intelligent scheduling method according to an embodiment of the present disclosure.
[0073] As Figure 2 shown, method 200 includes step 201, in which the input of the ant colony algorithm is constructed, and the input includes order data, available storage location data, and logistics efficiency data related to the materials of the orders to be delivered within a predetermined time period.
[0074] The order data can reflect the types of materials involved in the order, the quantity of materials, the material attributes (such as whether it is fragile, whether it can be stacked), the delivery time, the shipping place, the receiving place, the supplier, etc. The delivery time defines the deadline for the arrival of the materials, and the materials of the order only need to arrive before the delivery time.
[0075] In some embodiments, the orders are sorted in the order of the delivery time and processed according to the sorting. In one iteration, when an ant searches for available storage locations for the materials of all orders, the ant will give priority to processing the orders with earlier delivery times.
[0076] In some embodiments, the order data may contain information reflecting the processing priority of the order. In one iteration, when an ant searches for available storage locations for the materials of all orders, the ant will give priority to processing the orders with higher priorities. In other words, the orders with higher priorities are preferentially allocated available storage locations. In the case of limited available storage locations, the orders with lower priorities may not be allocated available storage locations.
[0077] The sorting of the orders can also be based on both the delivery time and the priority. For example, first sort by priority, and for multiple orders with the same priority, sort them in the order of time. It can also be sorted by delivery time, and for multiple orders with the same delivery time, sort them in the order of priority.
[0078] Those skilled in the art can set various sorts for order processing according to needs.
[0079] The available storage location data can reflect the availability of storage locations after the current time, which can reflect both the currently actually available storage locations and the available storage locations generated after the currently occupied storage locations are released after a certain period of time.
[0080] In some embodiments, the available storage location data may also only reflect the availability of storage locations from the current time to before the delivery time.
[0081] The method 200 further includes step 203, in which the parameters of the ant colony algorithm are initialized. The parameters include the number of ants, the iteration stop condition, and the pheromone matrix. The number of ants is based on the number of materials included in the order data. The elements of the pheromone matrix indicate the corresponding pheromone concentrations on all possible paths from each material to each storage location.
[0082] The number of ants can be greater than a certain multiple of the total number of materials included in the order data. For example, it is 1.5 times the total number of materials. Those skilled in the art can set the number of ants according to needs.
[0083] The iteration stop condition can be set based on a fixed maximum number of iterations, can be set based on a fixed maximum storage location utilization rate, or can be set based on both a fixed maximum number of iterations and a fixed maximum storage location utilization rate.
[0084] The elements of the pheromone matrix indicate the corresponding pheromone concentrations on all possible paths from each material to each storage location. At initialization, the values of all elements of the pheromone matrix can be taken as 1, or other values.
[0085] The method 200 further includes step 205, in which when the iteration stop condition is not met, the ant colony algorithm is iteratively executed. Iteratively executing the ant colony algorithm includes: for each iteration, generating a solution corresponding to each ant. The solution corresponding to each ant is a set of paths selected by this ant from each material in each order to each storage location; and determining the optimal solution for each iteration based on the objective function, where the objective function indicates the storage location utilization rate of all materials occupied by the storage locations.
[0086] In the ant colony algorithm, for each iteration, each ant will find the most suitable available storage location for each material, thus obtaining a set of paths selected by this ant from each material in each order to each storage location, which is called the solution corresponding to this ant.
[0087] For multiple ants, multiple solutions corresponding to the multiple ants will be generated. The value of the objective function can be calculated for each solution of each ant. The objective function indicates the storage location utilization rate of all materials occupied by the storage locations. That is, for each solution, calculate: the volume of the storage locations actually occupied by all materials / the total available volume of the storage locations occupied by all materials. Thus, multiple objective function values are obtained. Compare the magnitudes of these multiple objective function values, and take the solution (i.e., the set of paths) corresponding to the largest objective function value as the optimal solution for this iteration.
[0088] The ant colony algorithm can be iteratively executed multiple times. At the end of each iteration, an update operation can also be performed on the pheromone matrix and a volatilization operation can be performed on all elements of the pheromone matrix.
[0089] Method 200 further includes step 207, in which when the iteration stop condition is met, the iteration is stopped and the optimal solution at that time is output.
[0090] Method 200 may further include step 209, in which based on the output optimal solution, the inventory is locked, and a shipping notice for the order is sent to the supplier.
[0091] Locking the inventory based on the output optimal solution means locking the available storage capacity allocated in the optimal solution (for example, putting it in a reserved state), so that these available storage capacities will not be allocated to the orders to be processed subsequently. Generally speaking, when the corresponding materials are actually put into storage, these storage capacities will change to the actual occupied state (if actually occupied by the corresponding materials) or be released (if not actually occupied by the corresponding materials).
[0092] Sending a shipping notice for the order to the supplier can be automatically executed based on the completion of the locking operation. Sending a shipping notice for the order to the supplier can also be manually executed, for example, based on the notice of the completion of the locking operation.
[0093] In some embodiments, the shipping notice for the order may include the ideal arrival / delivery time corresponding to the materials involved in the order. The supplier ships the goods according to the ideal arrival / delivery time, which can achieve planned delivery on the premise of meeting the delivery time. Such planned delivery helps to make the warehouse be efficiently utilized and make the logistics scheduling efficient and orderly.
[0094] In the case where the available storage capacity available before the delivery time deadline can meet all order requirements, the optimal solution output by step 207 can allocate available storage capacity for all materials and fully meet the delivery time (that is, each material is allocated storage capacity before the delivery time). However, in some cases, such as when the warehouse storage capacity is very tight, the optimal solution output by step 207 may only allocate available storage capacity that meets the delivery time for the materials of some orders (such as orders with high priority), and cannot allocate available storage capacity that meets the delivery time for the materials of the remaining orders (orders with lower priority) (for example, in the optimal solution, the allocated storage locations for these materials are null values). In this case, in step 209, locking the inventory based on the output optimal solution can be locking the allocated storage capacity, and sending a shipping notice for the order to the supplier can be sending a corresponding shipping notice for the order to the suppliers of those orders that are allocated available storage capacity that meets the delivery time requirements in the optimal solution. For the remaining orders that cannot be satisfied, information such as the delivery time can be adjusted according to the production plan to enter the order processing process of the subsequent batch.
[0095] Figures 3-4 - Logistics intelligent scheduling method and path construction
[0096] Figure 3is a flowchart showing the logistics intelligent scheduling method 300 according to an embodiment of the present disclosure. Figure 4 is a schematic diagram showing the path construction according to an embodiment of the present disclosure.
[0097] As shown in the figure, method 300 includes step 301, in which the input of the ant colony algorithm is constructed. The input may include order data, available storage location data, and logistics efficiency data related to the materials of the orders to be delivered within a predetermined time period.
[0098] Constructing the input of the ant colony algorithm may include constructing a task array associated with the order data. The task array includes at least one task object, and each task object characterizes the material type, its storage capacity requirement, and its delivery time of a material in an order.
[0099] In the context of the present application, each material of each order has a corresponding task, as shown by T in Figure 4 The path from a certain material of a certain order to a certain storage location is the path from the task corresponding to the material to the storage location.
[0100] Here, as an example, consider the orders required to be delivered within 15 days as the orders to be processed. The material delivery requirements of the orders to be processed are called task data. To better represent the task data, define the variable Int totalTasks.
[0101] totalTasks is the total number of tasks, that is, the total problem quantity.
[0102] Since an order contains multiple materials, totalTasks is the sum of the materials of all orders, which is set to m here.
[0103] A one-dimensional task array var tasks[totalTasks] can be constructed.
[0104] This one-dimensional array represents the set of all tasks (problems).
[0105] Each task object in the task array can be represented as tasks[i], where i is the task number and is a natural number less than or equal to m. Each task object can be defined by one or more attributes. For example, the attributes of each task object may include material type, storage capacity requirement, delivery time, etc. Hereinafter, the task object tasks[i] is abbreviated as Ti. For example, in Figure 4 T1, T2, T3... Tm represent all task objects. In other words, each task object describes information such as what material is to be delivered at what time and how much storage capacity will be occupied.
[0106] In some embodiments, the value of the task object may also characterize the priority of the material.
[0107] Those skilled in the art can understand that the attributes describing the task object can be increased / decreased as needed.
[0108] The input for constructing the ant colony algorithm can also include constructing a two-dimensional matrix associated with the available storage location data, where the two-dimensional matrix includes at least one available storage location object, and each available storage location object represents the available storage capacity and suitable loading categories of a certain storage location at a certain time point.
[0109] In some embodiments, the available storage location data describes the available storage location situation that the system can provide before the order delivery time. The available storage location data can reflect both the current actual storage location occupancy situation and the future storage location occupancy situation generated by the storage location emptying plan deduced based on the historical storage location turnover rate. In other words, the available storage location data describes the available storage location situation from the current moment to the order delivery time deduced based on both the current real-time storage location situation and the historical storage location turnover data before the order delivery time.
[0110] In other embodiments, the available storage location data describes the available storage location situation after the current time.
[0111] Define a two-dimensional matrix var storage[l][t], where l is the storage location number and t is the available time point. Each element storage[l][t] of the two-dimensional matrix can also be defined by one or more attributes. These attributes can include, for example, the available storage capacity (volume in cubic meters or length, width, and height dimensions), suitable loading categories, etc. In other words, the value of storage[l][t] can represent how much capacity a certain storage location can provide for which suitable loading categories at a certain time point.
[0112] The time point here can be a defined period of time. For example, see Figure 4 , for a total of n storage locations S1 to Sn, each storage location will have different available storage capacities at different time points T1 to T4. The time point and the available storage capacity can be described by a preset unit time period (such as 1 day) and unit storage capacity (such as 1 cubic meter, etc.). Those skilled in the art can set according to needs. Those skilled in the art can understand that Figure 4Taking S1 in as an example, it can be assumed that at time point t1, the available storage capacity is 10 cubic meters. At time point t2, as some previously occupied storage capacity is released, the available storage capacity increases by 5 cubic meters, thus becoming 15 cubic meters. When the algorithm runs, for storage location S1, if a certain material occupies 5 cubic meters at time point t1, the available storage capacity at t2 is 10 cubic meters. The input for constructing the ant colony algorithm can also include constructing a two-dimensional matrix associated with logistics efficiency data, and this two-dimensional matrix includes at least one logistics efficiency object (logEfficiency[g][s]), where each logistics efficiency object represents the logistics duration when a certain supplier transports in a certain transportation mode.
[0113] Based on the historical order delivery situation, the logistics efficiency can be calculated (for example, in units of hours / km or in days), which is a calculation parameter for finding a suitable storage location for the material.
[0114] A two-dimensional matrix var logEfficiency[g][s] associated with logistics efficiency data can be defined, where g is the supplier code and s is the transportation mode (such as shipping, land transportation, etc.). The value of logEfficiency[g][s] is the logistics efficiency of a certain supplier in a certain transportation mode. Generally, the supplier, the transportation mode of the material, the place of shipment, etc. are already identified in the order, so the logistics duration from shipment to delivery can be estimated.
[0115] For a certain material, based on the relevant notified order shipment time (such as the same day) and the historical logistics efficiency of this material, the estimated arrival time of the material can be estimated, and then the available storage capacity during the period from the estimated arrival time to the delivery time can be used for the storage location allocation of this material.
[0116] As shown in the figure, the method 300 may further include step 303, in which the parameters of the ant colony algorithm are initialized, and these parameters may include the number of ants, the iteration stop condition, and the pheromone matrix.
[0117] Initializing the parameters of the ant colony algorithm may include initializing the number of ants, that is, the size of the ant colony.
[0118] The size of the ant colony is closely related to the amount of the problem. Too many ants will cause a large number of duplicate solutions and reduced efficiency, while too few ants will reduce the probability of obtaining the optimal solution. Here, the number of ants w can be initialized as w = the amount of the problem m * 1.5. Subsequently, the value of w can also be adjusted according to the quality of the algorithm solution.
[0119] Those skilled in the art can understand that those skilled in the art can adjust the value of w as needed.
[0120] Initializing the parameters of the ant colony algorithm may also include initializing the number of iterations N.
[0121] In each iteration, all the ants in the ant colony complete their respective path planning. Each ant generates its own set of paths (i.e., the solution corresponding to that ant), and an optimal solution is produced from all the solutions of all the ants. In theory, the optimal solution generated in the next iteration will be better than the optimal solution generated in the previous iteration. Therefore, the algorithm will gradually converge to the ideal solution.
[0122] The more iterations there are, the closer the final solution is to the ideal solution, but it will consume more computing resources and cause computational delay.
[0123] In some embodiments, the number of iterations can be set according to a fixed value or a target reference value:
[0124] a) Set according to a fixed value. For example, set the maximum number of iterations N to the average problem volume. The average problem volume is, for example, the average value calculated based on the total number of problems involved in the order numbers within multiple 15-day periods. When the number of iterations reaches this fixed value, stop the iteration.
[0125] The advantage of setting the number of iterations to a fixed value is that the running time and computational amount can be controlled, and the disadvantage is that it is too rigid.
[0126] b) Set according to a target reference value. For example, use a fixed storage location utilization rate R as a reference index. When the storage location utilization rate corresponding to the calculated optimal solution in a certain iteration exceeds this fixed storage location utilization rate R, stop the iteration. The definition of the storage location utilization rate R is the same as the definition of the following objective function F.
[0127] In the case of using a target reference value, the maximum number of iterations N is a dynamic value. The advantage of using a dynamic value is that calculations can be performed as needed, there is no excessive resource redundancy, and the quality of the output solution of the algorithm can be required. The disadvantage is that if R is set unreasonably, it may enter infinite calculations.
[0128] Considering the above two cases, in some embodiments, the number of iterations N can be defined in a way that takes both into account.
[0129] For example, the iteration upper limit can be set to 1000, and the storage location utilization rate R = 70%. If a solution with a storage location utilization rate >= R is found within 1000 iterations, stop the iteration immediately; otherwise, stop the iteration when the number of iterations exceeds 1000.
[0130] Initializing the parameters of the ant colony algorithm can also include initializing the pheromone matrix.
[0131] The pheromone matrix can be represented as a two-dimensional matrix pheromoneMatrix. For Figure 4In the situation shown, pheromoneMatrix contains m*n elements, and each element pheromoneMatrix[i][j] represents the pheromone concentration of the path from the i-th task object to the j-th storage location. During initialization, the values of all elements can be set to 1. As shown in the figure, method 300 also includes step 305, in which it is determined whether the stop iteration condition is satisfied.
[0132] If the stop iteration condition is not satisfied, for example, the number of iterations does not exceed N and no solution with a storage location utilization rate >= R is generated, then method 300 proceeds to step 307, in which the ant colony algorithm is executed to solve the optimal solution.
[0133] In the application of the ant colony algorithm in this system, the goal of the ant colony marching is to find the most suitable storage location for each material while obtaining the highest storage location utilization rate, so as to satisfy both the production plan and improve the storage location utilization rate.
[0134] As described above, in Figure 4 , the allocation from a certain task object T (which corresponds to a certain material of a certain order and represents the demand for the time and storage capacity of available storage locations) to an available storage location S (providing the time and storage capacity of the storage location to meet the demand) can be considered a path. Each task object corresponds to a material of an order. In the context of this application, for the sake of convenience of description, the path is described as the path from a certain material to a storage location, which specifically refers to the path from a certain material in a certain order to a certain storage location. The same type of logistics in different orders is considered different materials in the context of this article.
[0135] In each iteration, each ant in the ant colony needs to find its own suitable storage location for each material in the task data (that is, find a suitable available storage capacity for each task object), and always preferentially select the path with a higher concentration in the pheromoneMatrix as the most suitable storage location.
[0136] If the pheromone concentrations on all possible paths for the current material to the available storage location are the same, the ant will randomly select a path that can meet the delivery time and storage capacity requirements.
[0137] In some embodiments, if all ants plan according to the paths with high concentrations in the pheromoneMatrix, some potential optimal paths will inevitably be lost. Therefore, when defining the ant colony, a ratio α (information heuristic factor) can also be defined to force some ants to take random paths instead of the paths with high concentrations in the pheromoneMatrix to discover better paths.
[0138] In the first iteration, the ant randomly selects a storage location for the material / task object and determines whether the storage location provides available storage capacity that meets the delivery time of the material / task. If the storage location can provide available storage capacity that meets the delivery time of the material / task object, the ant will construct a path from the material / task object to the storage location. If the storage location can provide available storage capacity that meets the delivery time of the material / task object, the ant randomly selects another storage location and decides whether to construct a path from the material / task object to the other storage location based on whether the other storage location can provide available storage capacity that meets the delivery time of the task object.
[0139] In subsequent iterations, if the information heuristic factor is considered, in each iteration, a part of the ants will choose the path with a high pheromone concentration, and a part will randomly select a path. In the case of randomly selecting a path, similarly, first determine whether the corresponding storage location provides available storage capacity that meets the delivery time to decide whether to construct the path. In the non-random case, the path with a high pheromone concentration already necessarily meets the delivery time requirement.
[0140] Specifically, as Figure 4 shown, the goal is to find the most suitable available storage location for each material, more precisely, to find the available storage capacity that is most suitable for the time. For one iteration, each ant will select the available storage location that it deems most suitable for each material, thus obtaining a solution corresponding to that ant, namely a set of paths. This can be expressed as, for example: T1->S[1][t1]; T2->S[1][t3]; T3->S[1][t2]; Ti->S[n][t2];... For m ants, m solutions, that is, m sets of paths, will be obtained.
[0141] For each solution, the value of the objective function F can be calculated.
[0142] The objective function F can be predefined. Here, it can be defined as:
[0143] F = the volume of all materials actually occupying the storage location / the total available volume of the storage locations occupied by all materials
[0144] For example, for Figure 4 the situation shown, the value of the objective function can be obtained as follows:
[0145] F = (the required storage capacity of T1 + the required storage capacity of T2 + the required storage capacity of T3 + the required storage capacity of Ti +...) / (the total available volume of S1 + the total available volume of Sn +...)
[0146] The required storage capacity of T is the storage capacity that the material actually needs to occupy.
[0147] Accordingly, m objective function values are calculated. Compare the magnitudes of these m objective function values, and take the solution corresponding to the largest objective function value as the optimal solution for this iteration.
[0148] Method 300 may further include step 309, in which pheromone update is performed.
[0149] In each iteration, when all task data processing is completed, the ant can backtrack all the paths it has just found, secrete pheromone with a corresponding concentration according to the overall quality of the paths (the magnitude of the storage location utilization rate), that is, update the pheromone for the elements in the pheromone matrix corresponding to the paths.
[0150] Specifically, at the end of each iteration, for each ant, the pheromone matrix can be updated according to the following formula:
[0151]
[0152]
[0153] Among them, τ ij represents the pheromone concentration value on the path from task object i (corresponding to task i) to storage location j, where i is a natural number less than or equal to the total number of materials (for example Figure 4 in it is m), and j is a natural number less than or equal to the total number of storage locations (for example Figure 4 in it is n);
[0154] represents the increased pheromone concentration value on the path from task object i to storage location j by the k-th ant, where k is a natural number less than or equal to the number of ants (for example w);
[0155] Among them, if the k-th ant uses the path from task object i to storage location j, then for the path from task object i to storage location j, the corresponding increased pheromone concentration value is Q / C k where C k represents the difference obtained by subtracting the storage location utilization rate corresponding to the solution of the k-th ant from 100%, and Q is an empirical value. For example, Q can be taken as 1.
[0156] If the k-th ant does not use the path from task object i to storage location j, then for the path from task object i to storage location j, the corresponding increased pheromone concentration value is 0.
[0157] At the end of each iteration, all ants perform the above pheromone update operation.
[0158] Method 300 further includes step 311, in which, at the end of each iteration, pheromone evaporation is performed on each element of the pheromone matrix according to the following formula:
[0159] pheromoneMatrix[i][j] = pheromoneMatrix[i][j] - ρ
[0160] Among them, ρ is a pheromone evaporation factor greater than 0 and less than 1.
[0161] Next, method 300 proceeds to step 313, where the iteration count N is incremented by 1, and then it returns to step 305 to determine whether the iteration stop condition is satisfied.
[0162] If it is determined at step 313 that the iteration stop condition is satisfied, the iteration is stopped and the current optimal solution is output.
[0163] Although not shown, method 300 may further include, after step 315, locking the storage location based on the output optimal solution and sending an order shipment notice to the supplier.
[0164] In some embodiments, the order shipment notice may include an ideal shipment time, which may be the earliest available shipment time.
[0165] In the case where the available storage capacity before the delivery time can meet all order requirements, the optimal solution output by step 313 can allocate the available storage capacity to all materials and fully meet the delivery time (i.e., each material is allocated the available storage capacity before the delivery time). However, in some cases, such as when the warehouse storage capacity is very tight, the optimal solution output by step 313 may only allocate the available storage capacity that meets the delivery time to the materials of some orders (such as orders with high priority), and cannot allocate the available storage capacity that meets the delivery time to the materials of the remaining orders (such as orders with lower priority) (for example, in the optimal solution, the allocated storage locations for these materials are null values). In this case, at step 315, locking the inventory based on the output optimal solution may include locking the allocated storage capacity, and sending an order shipment notice to the supplier may include sending a corresponding order shipment notice to the suppliers of those orders that are allocated the available storage capacity that meets the delivery time in the optimal solution. For the remaining orders that cannot be satisfied, information such as the delivery time can be adjusted according to the production plan to enter the order processing flow of subsequent batches.
[0166] The method of the embodiments of the present disclosure may also involve tuning by adjusting tunable factors that affect the performance, efficiency, and optimal solution of the ant colony algorithm. The following table lists some tunable factors:
[0167]
[0168]
[0169] When actually adjusting the parameters, test data can be input and the running results can be observed. One or more of the above parameters can be adjusted according to the quality of the optimal solution finally output (whether available storage capacity has been allocated to all or as many materials / orders as possible and the delivery time is met) and the length of the running time of the algorithm.
[0170] Figure 5 It is a schematic diagram showing the effect of iterative execution of the method according to an embodiment of the present disclosure.
[0171] Where the horizontal axis represents the number of iterations and the vertical axis represents (1 - storage location occupancy rate). As can be seen from the figure, after about 30 iterations, the algorithm converges to an approximate optimal solution. Each point represents the solution obtained by an ant. When the number of iterations is low, the solutions are very scattered. When the number of iterations is high, all the solutions converge.
[0172] The method according to an embodiment of the present disclosure can allocate the most suitable available storage location for all materials according to the available storage location data before sending the order shipment notice, and can achieve a high storage location utilization rate while meeting the delivery time.
[0173] The method according to an embodiment of the present disclosure can avoid the logistics chaos that may be caused by the disorderly arrival of orders by locking the available storage locations in advance.
[0174] The method according to an embodiment of the present disclosure makes the order delivery more flexible while avoiding logistics chaos by providing the ideal delivery time of materials to the supplier, and also fully realizes the efficient utilization of storage locations. For example, when there are more available storage locations, the supplier can be made to deliver earlier before the delivery time, so that the less busy period of the warehouse can be fully utilized, leaving a greater order demand processing capacity for the follow-up, thereby reducing the explosion of the warehouse caused by the arrival of orders in a pile; when there are fewer available storage locations, the supplier can be made to deliver later before the delivery time, or some orders can be delayed in shipment, avoiding the explosion of the warehouse caused by the arrival of orders in a pile and thus causing logistics chaos.
[0175] The method according to an embodiment of the present disclosure can realize the unified allocation of orders and storage locations, improve the warehouse utilization rate as much as possible while meeting the production plan as much as possible, and make the logistics scheduling in an orderly and efficient state.
[0176] Figure 6 It is a schematic diagram showing the general hardware environment of the device that can implement the embodiment of the present disclosure.
[0177] Now refer to Figure 6 , a schematic diagram showing an example of a computing node 600 is shown. The computing node 600 is only an example of a suitable computing node and is not intended to imply any limitation on the scope of use or function of the embodiments described herein. In any case, the computing node 600 can implement and / or execute any function set forth above.
[0178] In computing node 600, there is a computer system / server 6012, which can operate with many other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with computer system / server 6012 include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing technology environments including any of the above systems or devices, and so on.
[0179] Computer system / server 6012 can be described in the general context of computer system-executable instructions, such as program modules, executed by a computer system. Generally speaking, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Computer system / server 6012 can be practiced in a distributed cloud computing environment, where tasks are executed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located on both local and remote computer system storage media including memory storage devices.
[0180] As Figure 6 shown, the computer system / server 6012 in computing node 600 is shown in the form of a general-purpose computing device. The components of computer system / server 6012 can include, but are not limited to: one or more processors or processing units 6016, a system memory 6028, and a bus 6018 that couples different system components including system memory 6028 to processing unit 6016.
[0181] Bus 6018 represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor, or a local bus using any of the various bus structures. By way of example and not limitation, these architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MAC) bus, Enhanced ISA bus, Video Electronics Standards Association (VESA) local bus, Peripheral Component Interconnect (PCI) bus, Peripheral Component Interconnect Express (PCIe), and Advanced Microcontroller Bus Architecture (AMBA).
[0182] Computer system / server 6012 typically includes various computer system-readable media. These media can be any accessible media by computer system / server 6012, including volatile and non-volatile media, removable and non-removable media.
[0183] The system memory 6028 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 6032. The computer system / server 6012 may also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 6034 may be provided for reading from and writing to a non-removable non-volatile magnetic medium (not shown and typically referred to as a "hard disk drive"). Although not shown, a disk drive for reading from and writing to a removable non-volatile disk (e.g., a "floppy disk") and an optical disk drive for reading from and writing to a removable non-volatile optical disk (such as a CD-ROM, DVD-ROM or other optical medium) may be provided. In these cases, each may be connected to the bus 6018 by one or more data media interfaces. As will be further depicted and described below, the memory 6028 may include at least one program product having a set (e.g., at least one) of program modules that are configured to perform the functions of embodiments of the present disclosure.
[0184] By way of example, and not limitation, a program / utility 6040 having a set (at least one) of program modules 6042, an operating system, one or more application programs, other program modules, and program data may be stored in the memory 6028. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof may include an implementation of a network environment. The program modules 6042 generally execute the functions and / or methods in the embodiments described herein.
[0185] The computer system / server 6012 can also communicate with one or more external devices 6014 (such as keyboards, pointing devices, monitors 6024, etc.), one or more devices that enable users to interact with the computer system / server 6012, and / or any device that enables the computer system / server 6012 to communicate with one or more other computing devices (e.g., network cards, modems, etc.). Such communication can occur via the input / output (I / O) interface 22. Additionally, the computer system / server 6012 can communicate with one or more networks (such as local area networks (LANs), general wide area networks (WANs), and / or public networks (e.g., the Internet)) via the network adapter 20. As depicted, the network adapter 20 communicates with other components of the computer system / server 6012 via the bus 6018. It should be understood that although not shown, other hardware and / or software components can be used in conjunction with the computer system / server 6012. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
[0186] The present disclosure can be implemented as a system, method, and / or computer program product. The computer program product can include one or more computer-readable storage media having computer-readable program instructions thereon for causing a processor to perform aspects of the present disclosure.
[0187] A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example (but not limited to), an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile discs (DVDs), memory sticks, floppy disks, mechanically encoded devices (such as punch cards or raised structures in grooves having instructions stored thereon), and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be construed as being a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through an optical fiber cable), or electrical signals transmitted through a wire.
[0188] The computer-readable program instructions described herein can be downloaded to various computing / processing devices from a computer-readable storage medium or downloaded to an external computer or external storage device via a network (such as the Internet, a local area network, a wide area network, and / or a wireless network). The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device.
[0189] The computer-readable program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++ etc.) and conventional procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or may be connected to an external computer (such as via the Internet using an Internet service provider). In some embodiments, by utilizing the state information of the computer-readable program instructions to customize an electronic circuit, including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can execute the computer-readable program instructions to perform aspects of the present disclosure.
[0190] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0191] These computer-readable program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, when executed by the processor of the computer or other programmable data processing apparatus, create an apparatus that implements the functions / acts specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, so that the computer-readable medium storing the instructions comprises a manufacture, the manufacture including instructions that implement aspects of the functions / acts specified in one or more boxes of the flowchart and / or block diagram.
[0192] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, such that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.
[0193] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified (one or more) logical functions. In some alternative implementations, the functions noted in the boxes may occur out of the order noted in the figures. For example, two consecutive boxes may in fact be executed substantially in parallel, or the boxes may sometimes be executed in the reverse order, depending on the functionality involved. It will also be noted that each box of the block diagrams and / or flowchart, and combinations of boxes in the block diagrams and / or flowchart, can be implemented by a system based on dedicated hardware that performs the specified functions or acts, or a combination of dedicated hardware and computer instructions.
[0194] Those skilled in the art should also understand that the various operations illustrated in the embodiments of the present disclosure do not necessarily have to be performed in the order illustrated. Those skilled in the art can adjust the order of the operations as needed. Those skilled in the art can also add more operations or omit some operations as needed.
[0195] The description of the various embodiments of the present disclosure has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen to best explain the principles of the embodiments, the practical application, or technical improvement over technologies found in the marketplace, or to enable other practitioners in the art to understand the embodiments disclosed herein.
Claims
1. A computer-implemented method for optimizing logistics scheduling, comprising: Construct the input of the ant colony algorithm, where the input includes order data related to the materials of the orders to be delivered within a predetermined period, available storage location data, and logistics efficiency data, and the logistics efficiency data related to the materials is associated with the logistics duration for the supplier to transport the materials; Initialize the parameters of the ant colony algorithm, where the parameters include the number of ants, the iteration stop condition, and the pheromone matrix. The number of ants is based on the number of materials included in the order data, and the elements of the pheromone matrix indicate the corresponding pheromone concentrations on all possible paths from each material in each order to each storage location; When the iteration stop condition is not met, iteratively execute the ant colony algorithm. The iterative execution of the ant colony algorithm includes: For each iteration, generate a solution corresponding to each ant. The solution corresponding to each ant is a set of paths selected by this ant from each material in each order to each storage location; And Determine the optimal solution for each iteration based on the objective function, where the objective function indicates the storage location utilization rate of all the materials occupying the storage locations; When the iteration stop condition is met, stop the iteration and output the optimal solution at that time.
2. The method according to claim 1, wherein, The input for constructing the ant colony algorithm further includes: Construct a task array associated with the order data. The task array includes at least one task object, and each task object represents the material type, its storage capacity requirement, and its delivery time of a material in an order; Construct a two-dimensional matrix associated with the available storage location data. The two-dimensional matrix includes at least one available storage location object, and each available storage location object represents the available storage capacity and the suitable loaded product categories of a certain storage location at a certain time point; Construct a two-dimensional matrix associated with the logistics efficiency data. The two-dimensional matrix includes at least one logistics efficiency object, and each logistics efficiency object represents the logistics duration when a certain supplier transports in a certain transportation mode.
3. The method according to claim 2, wherein, Determining the optimal solution for each iteration based on the objective function further includes: For each iteration, calculate the value of the corresponding objective function for the solution corresponding to each ant; Select the solution that maximizes the value of the objective function as the optimal solution for this iteration.
4. The method according to claim 3, wherein, The iterative execution of the ant colony algorithm further includes: At the end of each iteration, for each ant, update the pheromone matrix according to the following formula: Among them, τ ij represents the information concentration value on the path from task object i to storage location j, where i is a natural number less than or equal to the total number of materials, and j is a natural number less than or equal to the total number of storage locations; It represents the pheromone concentration value increased by the k-th ant on the path from task object i to storage location j, where k is a natural number less than or equal to the number of ants; Among them, if the k-th ant uses the path from task object i to storage location j, then for the path from task object i to storage location j, the corresponding pheromone concentration value is increased by Q / C k , where C k represents the difference obtained by subtracting the storage location utilization rate of the solution corresponding to the k-th ant from 100%, and Q is an empirical value; If the k-th ant does not use the path from task object i to storage location j, then for the path from task object i to storage location j, increase the corresponding pheromone concentration value by 0.
5. The method according to claim 4, wherein, The iterative execution of the ant colony algorithm further includes: At the end of each iteration, perform pheromone evaporation on each element of the pheromone matrix according to the following formula: pheromoneMatrix[i][j] = pheromoneMatrix[i][j] - ρ where ρ is a pheromone evaporation factor greater than 0 and less than 1.
6. The method according to claim 5, wherein, The iteration stop condition is: The number of iterations is greater than a preset number; or The value of the objective function corresponding to the optimal solution is greater than or equal to the preset storage location utilization rate.
7. The method according to claim 6, further comprising, for a task object, performing the following steps until a path for the task object is constructed: Randomly select a storage location, Determine whether the storage location can provide available storage capacity that meets the delivery time of the task object, In response to determining that the storage location can provide available storage capacity that meets the delivery time of the task object, construct a path from the task object to the storage location. In response to determining that the storage location cannot provide available storage capacity that meets the delivery time of the task object, randomly select another storage location and determine whether to construct a path from the task object to the other storage location based on whether the other storage location can provide available storage capacity that meets the delivery time of the task object.
8. The method according to any one of claims 1-7, further comprising: Lock the inventory based on the output optimal solution; And Send an order shipping notice to the supplier.
9. The method according to any one of claims 1-7, wherein The available storage location data is determined based on the current real-time storage location utilization situation and the historical storage location turnover rate of the materials.
10. The method according to any one of claims 1-7, wherein The order data contains information reflecting the order priority.
11. A computer system, comprising: One or more processors, and A memory coupled to the one or more processors, the memory storing computer-readable program instructions that, when executed by the one or more processors, cause the one or more processors to perform the method according to any one of claims 1-10.
12. A computer-readable storage medium having computer-readable program instructions stored thereon, which when executed by a processor cause the processor to execute the method according to any one of claims 1-10.
13. A computer program product comprising computer-readable program instructions, which when executed by a processor cause the processor to execute the method according to any one of claims 1-10.
Citation Information
Patent Citations
Ant colony algorithm and hierarchical optimization-based whole vehicle logistics scheduling method and device, storage medium, and terminal
CN109214756A