A method and system for scheduling overhead cranes in steel plants based on the Hungarian algorithm.
By applying the Hungarian algorithm to the scheduling of unmanned overhead cranes, a cost matrix is constructed to determine the optimal task allocation scheme, which solves the problems of insufficient resource utilization and low scheduling efficiency in existing technologies, and achieves efficient resource allocation and production flexibility.
Patent Information
- Application Number
- CN202411337128.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-25
- Publication Date
- 2025-11-14
- Estimated Expiration
- 2044-09-25
AI Technical Summary
Existing technologies lack effective scheduling algorithms for unmanned overhead cranes, resulting in inefficient matching between overhead cranes and tasks to be scheduled, which may lead to underutilization of resources or low scheduling efficiency.
The Hungarian algorithm is used to construct a cost matrix between tasks and overhead cranes to calculate the optimal task allocation scheme, so as to achieve the best match between tasks and overhead cranes, reduce scheduling time, improve operational efficiency, and rationally allocate tasks and resources.
The Hungarian algorithm can quickly and accurately determine the optimal scheduling scheme, reduce scheduling conflicts and equipment idleness, lower production costs, improve production flexibility and responsiveness, and maximize resource utilization.
Smart Images

Figure CN119273076B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of overhead crane scheduling technology in steel plants, and particularly to a method for scheduling overhead cranes in steel plants based on the Hungarian algorithm. Background Technology
[0002] Unmanned overhead crane transportation is a crucial link in the metallurgical industry process, and its transportation efficiency directly impacts overall efficiency. Traditional unmanned overhead crane scheduling is controlled by technicians, managed by dividing the metallurgical area into zones and assigning a certain number of cranes to each zone. Traditional crane scheduling is manpower-intensive, inefficient, and prone to errors. Therefore, the intelligent scheduling problem of unmanned overhead cranes and its algorithm design are of great significance for improving metallurgical efficiency.
[0003] The unmanned overhead crane consists of two parts: a large crane and a small crane. The large crane is a movable lever with a track for the small crane to move along. The small crane is the direct carrier of goods and runs on the track provided by the large crane. If we simplify the metallurgical plant into a rectangular plane and establish a Cartesian coordinate system, the overhead crane scheduling problem can be regarded as a shortest path problem between points, where the small crane is the control point, the goods are the target points, the large crane controls the X-axis coordinate of the small crane, and the small crane moves on the large crane to control its own Y-axis coordinate.
[0004] For the unmanned overhead crane scheduling in steel plants, existing technologies include the patent "A crane scheduling method, device, equipment and readable storage medium" (CN116934059B), which directly generates movement commands by acquiring scheduling information, simplifying manual operation; the patent "A crane scheduling method, system, device, electronic equipment and storage medium" (CN116822864A), which proposes a solution to the problem of multiple cranes blocking each other on the same track; and the patent "An unmanned overhead crane scheduling method" (CN115099659A), which provides a task priority scheduling method to avoid cranes being idle for a long time or being too close together.
[0005] The drawback of existing technologies is the lack of effective scheduling algorithms, which leads to inefficient matching between overhead cranes and tasks to be scheduled, potentially resulting in underutilization of resources or low scheduling efficiency. Summary of the Invention
[0006] One of the objectives of this invention is to provide a steel plant overhead crane scheduling method based on the Hungarian algorithm. The Hungarian algorithm can quickly and accurately determine the optimal scheduling scheme, thereby reducing scheduling time and improving operational efficiency. By rationally allocating tasks and overhead cranes, it maximizes the utilization of existing resources and reduces idle time and resource waste. The optimal scheduling scheme reduces scheduling conflicts and equipment idleness, thereby reducing production costs and operating expenses. Better scheduling management allows steel plants to quickly adjust in the face of production changes, improving production flexibility and responsiveness.
[0007] The steel plant overhead crane scheduling method based on the Hungarian algorithm provided in this embodiment of the invention includes:
[0008] Obtain raw data from the steel plant;
[0009] Based on the Hungarian algorithm and the original data of the steel plant, the optimal task allocation scheme is determined.
[0010] Based on the optimal task allocation scheme, the overhead cranes in the steel plant are scheduled.
[0011] Optionally, the overhead crane scheduling in the steel plant based on the Hungarian algorithm and the original data of the steel plant includes:
[0012] Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ;
[0013] Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and the steel coil into an overhead crane structure and a steel coil structure respectively, and initialize all overhead crane structures and steel coil structures:
[0014] Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane structures whose matching status is unmatched before time t+T. coil Includes all steel coil structures whose matching status is unmatched before time t+T;
[0015] Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1;
[0016] Step 5: Update list L based on the current time t. crane : Add a crane structure whose matching status changes from matched to unmatched during the time interval from t to t+T; from operation table T operation Read the scheduling information for the time period from t to t+T, and update the list L of steel coils waiting to be transported based on the scheduling information. coil : Include the steel coil structure that needs to be transported during the time period from t to t+T;
[0017] Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ijA value of 1 indicates that the i-th steel coil structure is assigned to the j-th overhead crane structure, while a value of 0 indicates that the i-th steel coil structure is not assigned to the j-th overhead crane structure; m indicates that there are currently m steel coil structures that need to be assigned to overhead cranes; n indicates that there are currently n idle overhead crane structures; the initialization matrix a(i,j) is a matrix of all zeros;
[0018] Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance the crane arm moves after crane structure j moves to steel coil structure i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix;
[0019] Step 8: Using Python's scipy.optimize library, by calling the linear_sum_assignment function in the library, the Hungarian algorithm is used to calculate the distance matrix Q(i,j) to find the optimal task allocation scheme a(i,j) to minimize the total distance the crane moves;
[0020] Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the state of the corresponding moving crane structure and steel coil structure, write the scheduled data to the database, and remove the matched crane structure and steel coil structure from list L respectively. crane and L crane Remove from the current time t; increment the current time t by the interval T, and return to step 4.
[0021] Optionally, each crane structure and steel coil structure shall contain at least an ID and information indicating whether they match.
[0022] Optionally, initializing all crane structures and steel coil structures includes:
[0023] From the overhead crane table T crane Steel Coil Table T coil Read the initial crane status and steel coil status. Based on the initial crane status and steel coil status, set the matching status of currently idle cranes and steel coils to be transported by unassigned cranes to be unmatched, and set the matching status of scheduled cranes and steel coils to be transported by assigned cranes to be matched.
[0024] Optionally, the specific calculation method for the distance the crane arm moves is as follows:
[0025] d = α|x1-x2| + β|y1-y2|;
[0026] Where (x1, y1) are the starting coordinates of the crane arm movement, (x2, y2) are the ending coordinates of the crane arm movement, and α and β are the energy consumption coefficients of the crane trolley and the crane trolley, respectively.
[0027] Optional, overhead crane table T crane It should at least include the crane ID, crane X coordinate, crane Y coordinate, whether it contains steel coils, and idle time;
[0028] Steel Coil Table T coil It must include at least the coil ID, weight, production completion time, coil X coordinate, and coil Y coordinate;
[0029] Operation table T operation It should include at least the ID of the steel coil to be dispatched, the planned dispatch time, and the target location ID.
[0030] The steel plant overhead crane scheduling system based on the Hungarian algorithm provided in this embodiment of the invention includes:
[0031] The acquisition module is used to acquire raw data from the steel plant.
[0032] The determination module is used to determine the optimal task allocation scheme based on the Hungarian algorithm and the original data of the steel plant.
[0033] The scheduling module is used to schedule overhead cranes in steel plants based on the optimal task allocation scheme.
[0034] Optionally, the scheduling module, based on the Hungarian algorithm and using the original data from the steel plant, performs overhead crane scheduling at the steel plant, including:
[0035] Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ;
[0036] Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and the steel coil into an overhead crane structure and a steel coil structure respectively, and initialize all overhead crane structures and steel coil structures:
[0037] Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane structures whose matching status is unmatched before time t+T. coil Includes all steel coil structures whose matching status is unmatched before time t+T;
[0038] Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1;
[0039] Step 5: Update list L based on the current time t. crane : Add a crane structure whose matching status changes from matched to unmatched during the time interval from t to t+T; from operation table T operation Read the scheduling information for the time period from t to t+T, and update the list L of steel coils waiting to be transported based on the scheduling information. coil : Include the steel coil structure that needs to be transported during the time period from t to t+T;
[0040] Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ij A value of 1 indicates that the i-th steel coil structure is assigned to the j-th overhead crane structure, while a value of 0 indicates that the i-th steel coil structure is not assigned to the j-th overhead crane structure; m indicates that there are currently m steel coil structures that need to be assigned to overhead cranes; n indicates that there are currently n idle overhead crane structures; the initialization matrix a(i,j) is a matrix of all zeros;
[0041] Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance the crane arm moves after crane structure j moves to steel coil structure i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix;
[0042] Step 8: Using Python's scipy.optimize library, by calling the linear_sum_assignment function in the library, the Hungarian algorithm is used to calculate the distance matrix Q(i,j) to find the optimal task allocation scheme a(i,j) to minimize the total distance the crane moves;
[0043] Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the state of the corresponding moving crane structure and steel coil structure, write the scheduled data to the database, and remove the matched crane structure and steel coil structure from list L respectively. crane and L crane Remove from the current time t; increment the current time t by the interval T, and return to step 4.
[0044] Optionally, each crane structure and steel coil structure shall contain at least an ID and information indicating whether they match.
[0045] Optionally, initializing all crane structures and steel coil structures includes:
[0046] From the overhead crane table T crane Steel Coil Table Tcoil Read the initial crane status and steel coil status. Based on the initial crane status and steel coil status, set the matching status of currently idle cranes and steel coils to be transported by unassigned cranes to be unmatched, and set the matching status of scheduled cranes and steel coils to be transported by assigned cranes to be matched.
[0047] Other features and advantages of the invention will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the invention. The objects and other advantages of the invention may be realized and obtained by means of the structures particularly pointed out in the written description, claims, and drawings.
[0048] The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description
[0049] The accompanying drawings are provided to further illustrate the invention and form part of the specification. They are used in conjunction with embodiments of the invention to explain the invention and do not constitute a limitation thereof. In the drawings:
[0050] Figure 1 This is a flowchart of the steel plant overhead crane scheduling method based on the Hungarian algorithm in an embodiment of the present invention;
[0051] Figure 2 This is a schematic diagram illustrating the implementation of the steel plant overhead crane scheduling method based on the Hungarian algorithm in an embodiment of the present invention.
[0052] Figure 3 This is a schematic diagram illustrating the specific implementation of the steel plant crane scheduling method based on the Hungarian algorithm in this invention.
[0053] Figure 4 This is a schematic diagram of a steel plant overhead crane scheduling system based on the Hungarian algorithm in an embodiment of the present invention. Detailed Implementation
[0054] The preferred embodiments of the present invention will be described below with reference to the accompanying drawings. It should be understood that the preferred embodiments described herein are for illustration and explanation only and are not intended to limit the present invention.
[0055] This invention provides a steel plant overhead crane scheduling method based on the Hungarian algorithm, such as... Figure 1 As shown, it includes:
[0056] S1. Obtain raw data from the steel plant;
[0057] S2. Based on the Hungarian algorithm, determine the optimal task allocation scheme according to the original data of the steel plant;
[0058] S3. Based on the optimal task allocation scheme, perform overhead crane scheduling in the steel plant.
[0059] First, raw data is collected from the steel plant, including equipment status, production tasks, workshop layout, crane locations, and load requirements. This data provides the foundation for overhead crane scheduling in the steel plant. The Hungarian algorithm is used to solve the scheduling problem, which is mainly used to solve the optimal matching problem in a bipartite graph. In overhead crane scheduling in the steel plant, the algorithm constructs a cost matrix between tasks and overhead cranes to calculate the optimal task allocation scheme, thereby achieving the best match between tasks and overhead cranes.
[0060] The Hungarian algorithm can quickly and accurately determine the optimal scheduling scheme, thereby reducing scheduling time and improving operational efficiency; by rationally allocating tasks and overhead cranes, it maximizes the use of existing resources and reduces idle time and resource waste; the optimal scheduling scheme reduces scheduling conflicts and equipment idleness, thereby reducing production costs and operating expenses; better scheduling management allows steel plants to quickly adjust to production changes, improving production flexibility and responsiveness.
[0061] The Hungarian algorithm is used as the scheduling algorithm to match overhead cranes with tasks to be scheduled. The Hungarian algorithm can adjust the allocation of overhead cranes according to scheduling requirements, ensuring that the allocation reaches global optimum and maximizing scheduling efficiency and resource utilization. Furthermore, the Hungarian algorithm is flexible, able to adjust the allocation of overhead cranes according to different scheduling needs to cope with varying requirements, thereby further improving the applicability and performance of the scheduling system.
[0062] In one embodiment, the overhead crane scheduling of the steel plant based on the Hungarian algorithm and the original data of the steel plant includes:
[0063] Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ;
[0064] Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and the steel coil into an overhead crane structure and a steel coil structure respectively, and initialize all overhead crane structures and steel coil structures:
[0065] Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane structures whose matching status is unmatched before time t+T. coil Includes all steel coil structures whose matching status is unmatched before time t+T;
[0066] Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1;
[0067] Step 5: Update list L based on the current time t. crane : Add a crane structure whose matching status changes from matched to unmatched during the time interval from t to t+T; from operation table T operation Read the scheduling information for the time period from t to t+T, and update the list L of steel coils waiting to be transported based on the scheduling information. coil : Include the steel coil structure that needs to be transported during the time period from t to t+T;
[0068] Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ij A value of 1 indicates that the i-th steel coil structure is assigned to the j-th overhead crane structure, while a value of 0 indicates that the i-th steel coil structure is not assigned to the j-th overhead crane structure; m indicates that there are currently m steel coil structures that need to be assigned to overhead cranes; n indicates that there are currently n idle overhead crane structures; the initialization matrix a(i,j) is a matrix of all zeros;
[0069] Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance the crane arm moves after crane structure j moves to steel coil structure i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix;
[0070] Step 8: Using Python's scipy.optimize library, by calling the linear_sum_assignment function in the library, the Hungarian algorithm is used to calculate the distance matrix Q(i,j) to find the optimal task allocation scheme a(i,j) to minimize the total distance the crane moves;
[0071] Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the state of the corresponding moving crane structure and steel coil structure, write the scheduled data to the database, and remove the matched crane structure and steel coil structure from list L respectively. crane and L crane Remove from the current time t; increment the current time t by the interval T, and return to step 4.
[0072] Each crane structure and steel coil structure contains at least an ID and information indicating whether they match.
[0073] Initializing all overhead crane structures and steel coil structures includes:
[0074] From the overhead crane table Tcrane Steel Coil Table T coil Read the initial crane status and steel coil status. Based on the initial crane status and steel coil status, set the matching status of currently idle cranes and steel coils to be transported by unassigned cranes to be unmatched, and set the matching status of scheduled cranes and steel coils to be transported by assigned cranes to be matched.
[0075] like Figure 2 As shown, the algorithm steps include:
[0076] Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ;
[0077] Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and steel coil into an overhead crane structure and a steel coil structure respectively. Each structure contains information such as ID and whether it matches. Initialize all overhead crane and steel coil structures: from the overhead crane table T crane Steel Coil Table T coil Read the initial crane and steel coil status, set the matching status of the currently idle crane and the steel coil to be transported by the unassigned crane to unmatched, and set the matching status of the scheduled crane and the steel coil to be transported by the assigned crane to matched; since in this problem, the crane and steel coil can be regarded as vertices waiting to be assigned in a bipartite graph, the "structure" will be referred to as "vertices" in the following text.
[0078] Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane vertices whose matching state is unmatched before time t+T. coil Includes all steel coil vertices that are unmatched before time t+T;
[0079] Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1;
[0080] Step 5: Update list L based on the current time t. crane : Add overhead cranes whose matching status changes from matched to unmatched during the time period from t to t+T (i.e., overhead cranes that have completed their steel coil transport tasks and are now idle again); from operation table T operation Read the scheduling information for the time period from t to t+T and update the list of steel coils waiting to be transported, L. coil : Include the steel coils that need to be transported during the time period from t to t+T;
[0081] Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ij A value of 1 indicates that coil i is assigned to crane j, while a value of 0 indicates that coil i is not assigned to crane j. m represents the number of coils that need to be assigned to cranes, i.e., list L. coil The length of the list L; n represents the number of available overhead cranes, i.e., list L. crane The length of the matrix is specified. The matrix a(i,j) is initialized as a matrix of all zeros, indicating that no allocation has been performed yet.
[0082] Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance that crane j moves to reach crane i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix;
[0083] Step 8: Using Python's "scipy.optimize" library, the distance matrix Q(i,j) is calculated using the Hungarian algorithm by calling the "linear_sum_assignment" function. The goal of this algorithm is to find an optimal task allocation scheme a(i,j) to minimize the total distance traveled by the crane.
[0084] Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the status (including matching status) of the corresponding moving cranes and coils, write the scheduled data to the database, and remove the matched cranes and coils from list L respectively. crane and L crane Remove from the current time t; increment the current time t by the interval T, and return to step 4.
[0085] When the above technical solution is implemented in a specific application, such as Figure 2 As shown:
[0086] The first step is to preprocess the overhead crane scheduling data and import it into the database. The data for this method includes four parts: overhead crane starting position data, cross-zone stack coordinates and coil storage data, coil production data, and coil unloading scheduling instruction data. The preprocessing stage requires extracting the coordinates and status of the overhead crane, stack, and coil, as well as production loading and unloading instructions, from the raw data, and then establishing and storing separate data tables for the overhead crane, stack, coil, and operation.
[0087] The second step involves setting scheduling intervals and matching scheduling instructions within those intervals. This step treats each scheduling interval as a cycle for scheduling planning. Instructions within the current scheduling time are read from the database, and the information on the coils to be scheduled is updated. The distance matrix between the overhead crane and the coils to be scheduled is calculated, and the Hungarian algorithm is used for matching. The matching results are then executed to complete the scheduling. The bipartite graph matching mechanism of the Hungarian algorithm ensures that the total travel distance of the overhead crane is minimized, thus achieving optimal scheduling.
[0088] The third step is to update the information on the overhead crane, stack, and coil after scheduling, and then proceed to the next scheduling cycle. Maintain the scheduling information completed within the current cycle, writing the updated crane coordinates and status, stack status, and coil coordinates and status to the database. Update the time information, proceed to the next cycle, and return to the second step to read new scheduling instructions until the set end time or when there are no remaining scheduling instructions.
[0089] In one embodiment, the specific method for calculating the distance the overhead crane arm moves is as follows:
[0090] d = α|x1-x2| + β|y1-y2|;
[0091] Where (x1, y1) are the starting coordinates of the crane arm movement, (x2, y2) are the ending coordinates of the crane arm movement, and α and β are the energy consumption coefficients of the crane trolley and the crane trolley, respectively.
[0092] In one embodiment, the overhead crane table T crane It should at least include the crane ID, crane X coordinate, crane Y coordinate, whether it contains steel coils, and idle time;
[0093] Steel Coil Table T coil It must include at least the coil ID, weight, production completion time, coil X coordinate, and coil Y coordinate;
[0094] Operation table T operation It should include at least the ID of the steel coil to be dispatched, the planned dispatch time, and the target location ID.
[0095] This invention provides a steel plant overhead crane scheduling system based on the Hungarian algorithm, such as... Figure 4 As shown, it includes:
[0096] Module 1 is used to acquire raw data from the steel plant;
[0097] Module 2 is used to determine the optimal task allocation scheme based on the Hungarian algorithm and the original data of the steel plant.
[0098] Scheduling module 3 is used for scheduling overhead cranes in steel plants based on the optimal task allocation scheme.
[0099] The scheduling module, based on the Hungarian algorithm and using the original data from the steel plant, performs overhead crane scheduling, including:
[0100] Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ;
[0101] Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and the steel coil into an overhead crane structure and a steel coil structure respectively, and initialize all overhead crane structures and steel coil structures:
[0102] Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane structures whose matching status is unmatched before time t+T. coil Includes all steel coil structures whose matching status is unmatched before time t+T;
[0103] Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1;
[0104] Step 5: Update list L based on the current time t. crane : Add a crane structure whose matching status changes from matched to unmatched during the time interval from t to t+T; from operation table T operation Read the scheduling information for the time period from t to t+T, and update the list L of steel coils waiting to be transported based on the scheduling information. coil : Include the steel coil structure that needs to be transported during the time period from t to t+T;
[0105] Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ij A value of 1 indicates that the i-th steel coil structure is assigned to the j-th overhead crane structure, while a value of 0 indicates that the i-th steel coil structure is not assigned to the j-th overhead crane structure; m indicates that there are currently m steel coil structures that need to be assigned to overhead cranes; n indicates that there are currently n idle overhead crane structures; the initialization matrix a(i,j) is a matrix of all zeros;
[0106] Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance the crane arm moves after crane structure j moves to steel coil structure i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix;
[0107] Step 8: Using Python's scipy.optimize library, by calling the linear_sum_assignment function in the library, the Hungarian algorithm is used to calculate the distance matrix Q(i,j) to find the optimal task allocation scheme a(i,j) to minimize the total distance the crane moves;
[0108] Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the state of the corresponding moving crane structure and steel coil structure, write the scheduled data to the database, and remove the matched crane structure and steel coil structure from list L respectively. crane and L crane Remove from the current time t; increment the current time t by the interval T, and return to step 4.
[0109] Each crane structure and steel coil structure contains at least an ID and information indicating whether they match.
[0110] Initializing all overhead crane structures and steel coil structures includes:
[0111] From the overhead crane table T crane Steel Coil Table T coil Read the initial crane status and steel coil status. Based on the initial crane status and steel coil status, set the matching status of currently idle cranes and steel coils to be transported by unassigned cranes to be unmatched, and set the matching status of scheduled cranes and steel coils to be transported by assigned cranes to be matched.
[0112] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A steel plant overhead crane scheduling method based on the Hungarian algorithm, characterized in that, include: Obtain raw data from the steel plant; Based on the Hungarian algorithm and the original data of the steel plant, the optimal task allocation scheme is determined. Based on the optimal task allocation scheme, the steel plant overhead crane is scheduled; The method of scheduling overhead cranes in the steel plant based on the Hungarian algorithm and the original data of the steel plant includes: Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ; Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and the steel coil into an overhead crane structure and a steel coil structure respectively, and initialize all overhead crane structures and steel coil structures: Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane structures whose matching status is unmatched before time t+T. coil Includes all steel coil structures whose matching status is unmatched before time t+T; Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1; Step 5: Update list L based on the current time t. crane : Add a crane structure whose matching status changes from matched to unmatched during the time interval from t to t+T; from operation table T operation Read the scheduling information for the time period from t to t+T, and update the list L of steel coils waiting to be transported based on the scheduling information. coil : Include the steel coil structure that needs to be transported during the time period from t to t+T; Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ij A value of 1 indicates that the i-th steel coil structure is assigned to the j-th overhead crane structure, while a value of 0 indicates that the i-th steel coil structure is not assigned to the j-th overhead crane structure; m indicates that there are currently m steel coil structures that need to be assigned to overhead cranes; n indicates that there are currently n idle overhead crane structures; the initialization matrix a(i, j) is a matrix of all zeros; Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance the crane arm moves after crane structure j moves to steel coil structure i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix; Step 8: Call the linear_sum_assignment function to calculate the distance matrix Q(i,j) using the Hungarian algorithm, and find the optimal task allocation scheme a(i,j) to minimize the total distance the crane moves; Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the state of the corresponding moving crane structure and steel coil structure, write the scheduled data to the database, and remove the matched crane structure and steel coil structure from list L respectively. crane and L coil Remove from the current time t; increment the current time t by the interval T, and return to step 4.
2. The steel plant overhead crane scheduling method based on the Hungarian algorithm as described in claim 1, characterized in that, Each crane structure and steel coil structure contains at least an ID and information indicating whether they match.
3. The steel plant overhead crane scheduling method based on the Hungarian algorithm as described in claim 1, characterized in that, Initializing all overhead crane structures and steel coil structures includes: From the overhead crane table T crane Steel Coil Table T coil Read the initial crane status and steel coil status. Based on the initial crane status and steel coil status, set the matching status of currently idle cranes and steel coils to be transported by unassigned cranes to be unmatched, and set the matching status of scheduled cranes and steel coils to be transported by assigned cranes to be matched.
4. The steel plant overhead crane scheduling method based on the Hungarian algorithm as described in claim 1, characterized in that, The specific calculation method for the distance the crane arm moves is as follows: d = α|x1-x2| + β|y1-y2|; Where (x1, y1) are the starting coordinates of the crane arm movement, (x2, y2) are the ending coordinates of the crane arm movement, and α and β are the energy consumption coefficients of the crane trolley and the crane trolley, respectively.
5. The steel plant overhead crane scheduling method based on the Hungarian algorithm as described in claim 1, characterized in that, Overhead crane table T crane It should at least include the crane ID, crane X coordinate, crane Y coordinate, whether it contains steel coils, and idle time; Steel Coil Table T coil It must include at least the coil ID, weight, production completion time, coil X coordinate, and coil Y coordinate; Operation table T operation It should include at least the ID of the steel coil to be dispatched, the planned dispatch time, and the target location ID.
6. A steel plant overhead crane scheduling system based on the Hungarian algorithm, characterized in that, include: The acquisition module is used to acquire raw data from the steel plant. The determination module is used to determine the optimal task allocation scheme based on the Hungarian algorithm and the original data of the steel plant. The scheduling module is used to schedule overhead cranes in steel plants based on the optimal task allocation scheme. The scheduling module is used for: Step 1: Convert the raw data from the steel plant into overhead crane data. crane Steel Coil Table T coil Operation table T operation ; Step 2: According to the overhead crane schedule T crane Steel Coil Table T coil Abstract the overhead crane and the steel coil into an overhead crane structure and a steel coil structure respectively, and initialize all overhead crane structures and steel coil structures: Step 3: Set the start time t0, end time t1, time interval T, and current time t, and initialize t to t0; define list L. crane List L contains all crane structures whose matching status is unmatched before time t+T. coil Includes all steel coil structures whose matching status is unmatched before time t+T; Step 4: Repeat steps 5 through 9 until the current time t exceeds the end time t1; Step 5: Update list L based on the current time t. crane : Add a crane structure whose matching status changes from matched to unmatched during the time interval from t to t+T; from operation table T operation Read the scheduling information for the time period from t to t+T, and update the list L of steel coils waiting to be transported based on the scheduling information. coil : Include the steel coil structure that needs to be transported during the time period from t to t+T; Step 6: Define matrix a(i,j): Matrix a(i,j) is an m×n dimensional state matrix, representing the allocation result to be solved, where each element a ij A value of 1 indicates that the i-th steel coil structure is assigned to the j-th overhead crane structure, while a value of 0 indicates that the i-th steel coil structure is not assigned to the j-th overhead crane structure; m indicates that there are currently m steel coil structures that need to be assigned to overhead cranes; n indicates that there are currently n idle overhead crane structures; the initialization matrix a(i, j) is a matrix of all zeros; Step 7: Define the distance matrix Q(i,j): The matrix Q(i,j) is an m×n dimensional distance matrix, where each element Q ij This represents the distance the crane arm moves after crane structure j moves to steel coil structure i; let N = max(m,n), d max To find the maximum value in Q(i,j), use d max +1 fills Q(i,j) with an N×N dimensional distance matrix; Step 8: Call the linear_sum_assignment function to calculate the distance matrix Q(i,j) using the Hungarian algorithm, and find the optimal task allocation scheme a(i,j) to minimize the total distance the crane moves; Step 9: Execute the optimal task allocation scheme a(i,j) obtained in Step 8 as the scheduling scheme, update the state of the corresponding moving crane structure and steel coil structure, write the scheduled data to the database, and remove the matched crane structure and steel coil structure from list L respectively. crane and L coil Remove from the current time t; increment the current time t by the interval T, and return to step 4.
7. The steel plant overhead crane scheduling system based on the Hungarian algorithm as described in claim 6, characterized in that, Each crane structure and steel coil structure contains at least an ID and information indicating whether they match.
8. The steel plant overhead crane scheduling system based on the Hungarian algorithm as described in claim 6, characterized in that, The scheduling module is used to initialize all overhead crane structures and steel coil structures, including: From the overhead crane table T crane Steel Coil Table T coil Read the initial crane status and steel coil status. Based on the initial crane status and steel coil status, set the matching status of currently idle cranes and steel coils to be transported by unassigned cranes to be unmatched, and set the matching status of scheduled cranes and steel coils to be transported by assigned cranes to be matched.
Citation Information
Patent Citations
Unmanned crown block scheduling method
CN115099659A
Crown block scheduling method, system and device, electronic equipment and storage medium
CN116822864A
A crane scheduling method, apparatus, equipment, and readable storage medium
CN116934059B
Equipment scheduling and allocating method based on Hungary algorithm
CN103235990A
Optimization method for assignment problem of series-parallel system based on Hungary algorithm
CN104850909A