Integrated scheduling optimization method and system suitable for steel production industry
By adopting unified entity relationship modeling based on greedy algorithms and parallel genetic algorithms in steel cold rolling production, the efficient and applicability problems of scheduling optimization in steel cold rolling production are solved, and efficient resource utilization and rapid response to market demand are achieved.
Patent Information
- Application Number
- CN202510394408.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-31
- Publication Date
- 2025-08-12
AI Technical Summary
In the production of cold steel rolling, existing scheduling optimization methods are difficult to obtain high-quality solutions within a limited time, and there is a lack of comprehensive consideration of logistics and warehousing status, resulting in low applicability of optimization results in actual production.
The initial solution algorithm based on greed is used to generate the initial solution, and the chromosomal population is optimized through parallel genetic algorithms, combined with multi-objective rule evaluation functions and dynamic configuration weights, to achieve unified entity relationship modeling of tasks, units, logistics and warehousing, and dynamically adjusting goals and constraints.
It improves the global optimization efficiency and accuracy of high-dimensional problems, enhances the applicability and flexibility of the system, can quickly respond to market demand, improve resource utilization, and reduce idleness and waste.
Smart Images

Figure CN120471320A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of steel cold rolling scheduling optimization, and in particular to an integrated scheduling optimization method and system applicable to the steel production industry. Background Art
[0002] Scheduling optimization is a complex and critical task in steel cold rolling production, aiming to minimize lead times, maximize resource utilization, and meet production process constraints. However, the multi-dimensional constraints of the cold rolling process, such as multiple units, multiple tasks, and multiple materials, lead to a high degree of combinatorial complexity in the scheduling problem, making it difficult for traditional scheduling methods to obtain high-quality solutions within a limited timeframe.
[0003] Furthermore, existing methods generally lack comprehensive consideration of logistics, warehousing, and production unit status, resulting in low applicability of optimization results in actual production. Traditional optimization methods are often limited to local solutions when faced with complex multi-constraint problems.
[0004] Patent document CN1556486A discloses an integrated online production process planning and scheduling system and method for steel enterprises, used for production process planning and real-time scheduling. The system comprises a PCS layer consisting of sensors and controllers installed on-site, an interface management server, a database server, an application layer server, a web server, client workstations, and a computer network connecting various computer devices, controllers, and sensors. The planning and scheduling method includes process flow definition, production order generation, production plan scheduling, simulation, partial plan adjustment, and online production scheduling.
[0005] However, patent document CN1556486A focuses on single-goal process scheduling (such as minimizing roll changes or optimizing production sequences). Its model is based on a simple mapping between units and tasks, neglecting logistics and warehousing. Furthermore, the document employs a heuristic approach, resulting in a relatively static optimization approach that does not support dynamic adjustment of objectives or constraints.
[0006] Therefore, the market needs an integrated scheduling optimization method and system suitable for the steel production industry that can achieve comprehensive optimization of steel cold rolling scheduling problems. Summary of the Invention
[0007] In view of the defects in the prior art, the purpose of the present invention is to provide an integrated scheduling optimization method and system suitable for the steel production industry.
[0008] According to the present invention, an integrated scheduling optimization method applicable to the steel production industry is provided, comprising:
[0009] Step S1: Load the database and read all entity information of the scheduling problem;
[0010] Step S2: Load the configuration file, obtain the rule information in the configuration file, and create a corresponding rule object according to the rule information;
[0011] Step S3: generating one or more initial solutions using a greedy initial solution algorithm according to the entity information, rule information and rule object, and encoding the initial solutions into a chromosome population;
[0012] Step S4: optimizing the chromosome population by a parallel genetic algorithm until the lowest loss value in the chromosome population stops decreasing or other termination conditions are met; the other termination conditions include timeout or reaching the maximum number of optimized generations;
[0013] Step S5: Decode the chromosome with the lowest loss value into a scheduling solution and output it to the result table of the database.
[0014] Preferably, the entity information includes units, orders, and processes;
[0015] The configuration file is used to configure the operating parameters of the model and the relevant configuration parameters of the rules that need to be used in the rule module;
[0016] The rule module includes a global scheduling solution loss function, a local task loss function and a scheduling solution adjustment function.
[0017] Preferably, step S3 includes:
[0018] Step S3.1: Generate N different combinations from all rules through permutations and combinations, and then generate N different initial solutions;
[0019] Step S3.2: Filter out process tasks with only one production unit from the processes to be scheduled, and directly bind the process tasks to the production unit corresponding to the process tasks;
[0020] Step S3.3: Generate a candidate task list from the tasks to be scheduled; the candidate task list includes tasks that have no preceding processes or whose preceding processes are in production;
[0021] Step S3.4: Create a local task loss cache to store the loss values to be calculated later. The key is a triplet; the triplet includes the task ID, the crew ID, and the order of the task on the crew. The value is the weighted sum of the local losses generated by the task under all rules in the state corresponding to the key.
[0022] Step S3.5: traverse the candidate tasks in the candidate task list, and then traverse the production group of the current candidate task, and place the candidate task in the next position of the task with a determined order on the group.
[0023] Step S3.6: Check whether the local task loss cache contains a triplet record of the candidate task ID, unit ID, and the order of the task on the unit. If so, use the corresponding loss value in the cache directly. If not, traverse the rule combination input in step S3.1, call the local task loss function of the rule on the task, calculate the sum, and save it to the local task loss cache.
[0024] Step S3.7: Select the combination with the smallest loss value from all the calculation records above, place the selected task at the end of the group recorded in the corresponding combination, remove the selected task from the candidate task list, and determine whether the selected task has a subsequent process. If so, add the task corresponding to the subsequent process to the candidate task list, thereby confirming the processing group and location information of the current task in the initial solution;
[0025] Repeat steps S3.5 to S3.7 until the candidate task list is empty, indicating that all candidate tasks have been assigned production units and processing orders, and the generation of all initial solutions is completed.
[0026] Preferably, the step S4 uses chromosome coding to describe the scheduling solution, and iteratively optimizes the solution space through multi-threaded parallel crossover and mutation operations;
[0027] The coding includes: gene group preference coding, gene sequence coding, initial chromosome coding, and mutation-based coding.
[0028] Preferably, the gene machine preference encoding is to store a vector machine_preference with a length equal to the number of machines in the gene to represent the gene's preference for the machine;
[0029] The gene order encoding is to describe the gene order information by retaining a float type value in the gene. The smaller the value, the higher the gene will be ranked.
[0030] The initial chromosome encoding is for the chromosome converted from the initial decoding. The gene's unit preference will be initialized to a vector of all 0s except for the current unit position which is 1. Then the gene value will be directly initialized to the gene's current position order on the unit.
[0031] The mutation-based encoding is that if the maximum value of the machine_preference of the gene is not the group where the gene of the current mutated chromosome is located, the preference value corresponding to the current group in machine_preference is exchanged with the maximum preference value, and the value of the gene is reassigned in the order of the groups in the old chromosome. If the number of genes on a group in the new chromosome is more than that on the old chromosome, the value of the last gene on the corresponding group of the old chromosome is increased in steps of 1.
[0032] Preferably, a thread is created for each chromosome in the population to perform chromosome crossover and mutation operations, and the steps include the following:
[0033] Step S4.1: Observe other chromosomes in the population;
[0034] Step S4.2: Submit a crossover application when the loss value of other chromosomes is lower than the loss value of the current chromosome;
[0035] Step S4.3: Traverse all rules, decode the chromosome as a scheduling solution, call the corresponding scheduling solution adjustment function, and try to optimize and adjust the scheduling solution in the scheduling solution adjustment function, and submit a mutation transformation application.
[0036] According to the present invention, an integrated scheduling optimization system applicable to the steel production industry is provided, comprising:
[0037] Module M1: loads the database and reads all entity information of the scheduling problem;
[0038] Module M2: loads the configuration file, obtains the rule information in the configuration file, and creates a corresponding rule object according to the rule information;
[0039] Module M3: Generate one or more initial solutions using a greedy initial solution algorithm according to the entity information, rule information and rule object, and encode the initial solutions into chromosome populations;
[0040] Module M4: Optimizing the chromosome population by a parallel genetic algorithm until the lowest loss value in the chromosome population stops decreasing or other termination conditions are met; the other termination conditions include timeout or reaching a maximum number of optimization generations;
[0041] Module M5: Decode the chromosome with the lowest loss value into a scheduling solution and output it to the result table of the database.
[0042] Preferably, the module M3 includes:
[0043] Module M3.1: Generate N different combinations from all rules through permutations and combinations, and then generate N different initial solutions;
[0044] Module M3.2: Filter out the process tasks that have only one production unit from the processes to be scheduled, and directly bind the process tasks to the production unit corresponding to the process tasks;
[0045] Module M3.3: Generate a candidate task list from the tasks to be scheduled; the candidate task list includes tasks that have no preceding processes or whose preceding processes are in production;
[0046] Module M3.4: Create a local task loss cache to store the loss values to be calculated later. The key is a triplet containing the task ID, the crew ID, and the order of the task on the crew. The value is the weighted sum of the local losses generated by the task under all rules in the state corresponding to the key.
[0047] Module M3.5: traverse the candidate tasks in the candidate task list, and then traverse the production group of the current candidate task, and place the candidate task in the next position of the task with a determined order on the group.
[0048] Module M3.6: Checks whether the local task loss cache contains a triplet of the candidate task ID, unit ID, and the order of the task on the unit. If so, the corresponding loss value in the cache is used directly. If not, the rule combination input by module M3.1 is traversed, the local task loss function of the rule is applied to the task, the sum is calculated, and the result is saved in the local task loss cache.
[0049] Module M3.7: Select the combination with the smallest loss value from all the above calculation records, place the selected task at the end of the group recorded in the corresponding combination, remove the selected task from the candidate task list, and determine whether the selected task has a subsequent process. If so, add the task corresponding to the subsequent process to the candidate task list, thereby confirming the processing group and location information of the current task in the initial solution;
[0050] Modules M3.5 to M3.7 are repeatedly triggered until the candidate task list is empty, indicating that all candidate tasks have been assigned production units and processing orders, and the generation of all initial solutions is completed.
[0051] Preferably, the module M4 describes the scheduling solution using chromosome encoding and iteratively optimizes the solution space through multi-threaded parallel crossover and mutation operations;
[0052] The coding includes: gene group preference coding, gene sequence coding, initial chromosome coding, and mutation-based coding.
[0053] Preferably, the gene machine preference encoding is to store a vector machine_preference with a length equal to the number of machines in the gene to represent the gene's preference for the machine;
[0054] The gene order encoding is to describe the gene order information by retaining a float type value in the gene. The smaller the value, the higher the gene will be ranked.
[0055] The initial chromosome encoding is for the chromosome converted from the initial decoding. The gene's unit preference will be initialized to a vector of all 0s except for the current unit position which is 1. Then the gene value will be directly initialized to the gene's current position order on the unit.
[0056] The mutation-based encoding is that if the maximum value of the machine_preference of the gene is not the group where the gene of the current mutated chromosome is located, the preference value corresponding to the current group in machine_preference is exchanged with the maximum preference value, and the value of the gene is reassigned in the order of the groups in the old chromosome. If the number of genes on a group in the new chromosome is more than that on the old chromosome, the value of the last gene on the corresponding group of the old chromosome is increased in steps of 1.
[0057] Compared with the prior art, the present invention has the following beneficial effects:
[0058] 1. The present invention effectively improves the efficiency and accuracy of global optimization of high-dimensional problems by introducing a unified entity relationship model based on tasks, crews, logistics and warehousing, and combining a multi-objective rule evaluation function with a parallel genetic algorithm.
[0059] 2. This invention achieves conflict coordination and enhances the system's applicability by dynamically configuring weights and target priorities. It can adapt to diverse constraints and targets, improving the scheduling system's robustness and flexibility in dynamic environments.
[0060] 3. The present invention incorporates the status of logistics and warehousing into the optimization model, making the results more in line with the needs of real scenarios. Through algorithm improvement and constraint modeling, the production cycle is shortened, which helps to quickly respond to market demand.
[0061] 4. Through reasonable task allocation and scheduling optimization, the present invention makes more efficient use of resources (including equipment, manpower, etc.), reducing idleness and waste. BRIEF DESCRIPTION OF THE DRAWINGS
[0062] Other features, objects and advantages of the present invention will become more apparent upon reading the detailed description of non-limiting embodiments with reference to the following drawings:
[0063] Figure 1 It is a schematic flow chart of the working method of the present invention. DETAILED DESCRIPTION
[0064] The present invention will be described in detail below with reference to specific embodiments. The following examples will help those skilled in the art to further understand the present invention, but are not intended to limit the present invention in any form. It should be noted that, for those skilled in the art, several changes and improvements can be made without departing from the scope of the present invention. These all fall within the scope of protection of the present invention.
[0065] The scheduling problem in the steel industry involved in this invention can be generally defined as: converting a number of orders into production tasks and assigning them to a number of units. The order and planned execution time of these production tasks on the units are determined, and the required materials and their warehouse and logistics status information are determined accordingly to achieve the user's production scheduling optimization goal. The attributes of the entities and the relationships between them in the above problem definition are defined as follows:
[0066] Order attributes include ID, delivery time, and process. An order is considered complete after all its processes have been completed. Process attributes include ID, order, required materials, new materials generated after completion, and production units. A task is generated when a process is assigned to a unit. Task attributes include ID, start time, end time, unit, logistics information of required materials, logistics information of new materials generated after the task is completed, and some dynamic information created by rules. Unit attributes include ID, ready time, task information at the start of scheduling, sequence of tasks to be scheduled, front library list, back library list, and address. Material attributes include ID, library location, warehousing time, and validity period (materials within the validity period can be used). Warehouse attributes include ID, address, and inventory capacity. Logistics attributes include origin, destination, transportation method, and transportation time.
[0067] The scheduling solution contains the status information of all the above entities, comprehensively describing all the details of a scheduling plan. It primarily includes a list of unit states, which contains the sequence of tasks currently assigned to that unit, arranged in chronological order. It also includes a list of warehouse states, which contains a chronological sequence of inventory events.
[0068] Optimization objectives (rules): are described using a rule class. The attributes of a rule class include its ID, scope (e.g., a unit, warehouse, or order), and corresponding rule configuration parameters. A rule object contains the following functions:
[0069] Scheduling Solution Loss Function: This function evaluates the quality of the current scheduling solution. The input is a scheduling solution, and the output is a floating-point value representing its loss. A higher loss value indicates a worse scheduling solution. For example, if the optimization goal is to minimize overall order delays, a "delivery period rule" can be created, and its loss function is the sum of all order delays. A scheduling solution can have multiple different rules, meaning that the scheduling can have multiple optimization objectives. Multiple objective functions can be configured with corresponding weights in the configuration file, and the final objective function is the weighted sum of all rule objective functions.
[0070] Local task loss function: used to evaluate the quality of a task in its current placement. The input is a task, and the output is a floating-point value, representing the loss value of the task in its current placement. In steel production, the positional relationship between tasks is crucial. For example, in cold rolling production, steel coils typically need to be produced from wide to narrow in width, and the annealing curves need to be similar. Therefore, a "property continuation rule" can be created, and its local task loss function is used to determine whether the attributes of a task and adjacent tasks are within a continuable range, otherwise a larger penalty will be incurred. This function is very important for guiding the direction of scheduling optimization because it reflects the adjustment optimization space for scheduling at a local position.
[0071] Scheduling solution adjustment function: This function uses heuristic algorithms to adjust the input scheduling solution, such as moving a task to a new location, swapping the positions of two tasks, or reassigning a task to a different unit. Rules can optimize the scheduling solution by calling these adjustment methods within this scheduling solution adjustment function. For example, the "attribute continuation rule" mentioned above can move a task that doesn't meet continuation requirements to a new location to meet the continuation constraints.
[0072] Example 1
[0073] According to the present invention, an integrated scheduling optimization method suitable for the steel production industry is provided. Figure 1 Shown, including:
[0074] Step S1: Load the database and read all entity information for the scheduling problem. This entity information includes lines, orders, and processes. The database is used to store the entity relationship model and basic entity data for the cold rolling scheduling problem, including definitions of entities such as orders, processes, tasks, lines, materials, warehouses, and logistics, as well as the standardized design of the relationships between entities. This database comprehensively describes all key elements and their relationships in the cold rolling scheduling problem.
[0075] Step S2: Load the configuration file, retrieve the rule information therein, and create a corresponding rule object based on the rule information. The configuration file includes the rule information. This configuration file is used to configure the model's operating parameters and the relevant configuration parameters of the rules required for use in the rule module. The rule module includes a global scheduling solution loss function, a local task loss function, and a scheduling solution adjustment function. This allows for customized optimization rules based on different production objectives and dynamically evaluates the pros and cons of the current scheduling solution.
[0076] Step S3: Based on the entity information, rule information, and rule object, a greedy initial solution algorithm is used to generate one or more initial solutions, and the initial solutions are encoded as chromosome populations. This step uses a greedy algorithm to quickly generate multiple feasible initial solutions and generate a diversified solution space through rule combination. The initial solution algorithm is constructed based on greedy thinking to quickly generate multiple scheduling solutions, including:
[0077] Step S3.1: Generate N different combinations from all the rules through permutations and combinations, and then generate N different initial solutions. The rule combination is also used as an input to the function, because different rule combinations can produce different initial solutions.
[0078] Step S3.2: Select the process tasks that have only one production unit from the scheduled processes, and directly bind the process tasks to the production unit corresponding to the process tasks. The purpose of this step is to narrow the solution space.
[0079] Step S3.3: Generate a candidate task list from the tasks to be scheduled. The candidate task list includes tasks that have no predecessor processes or whose predecessor processes are in production. In other words, tasks that meet the following conditions will be added to the candidate task list: the process corresponding to the task has no predecessor process or the predecessor process is in production.
[0080] Step S3.4: Create a local task loss cache to store the loss values to be calculated later. The key is a triplet consisting of the task ID, the crew ID, and the order of the task on the crew. The value is the weighted sum of the local losses incurred by the task under all rules in the state corresponding to the key. This cache is used to avoid repeated calculations.
[0081] Step S3.5: traverse the candidate tasks in the candidate task list, and then traverse the production group of the current candidate task, and place the candidate task in the next position of the task with a determined order on the group.
[0082] Step S3.6: Check whether there is a triple record of the task ID, unit ID and the order of the task on the unit of the candidate task in the local task loss cache. If so, directly use the corresponding loss value in the cache; if not, traverse the rule combination input in step S3.1, call the local task loss function of the task under the rule and sum it up, and save it to the local task loss cache.
[0083] Step S3.7: Select the combination with the smallest loss value from all the above calculation records, place the selected task at the end of the group recorded in the corresponding combination, remove the selected task from the candidate task list, and determine whether the selected task has a subsequent process. If so, add the task corresponding to the subsequent process to the candidate task list, thereby confirming the processing group and location information of the current task in the initial solution.
[0084] Repeat steps S3.5 to S3.7 until the candidate task list is empty, indicating that all candidate tasks have been assigned production units and processing orders, and the generation of all initial solutions is completed.
[0085] Repeat steps S3.2 through S3.7 for the remaining N-1 rule combinations to generate corresponding initial solutions. This process can be executed in parallel using multithreading technology to improve computational efficiency. For each generated initial solution, call the scheduled solution loss function for all rules and sum them to form the loss value for the scheduled solution.
[0086] Step S4: Optimize the chromosome population using a parallel genetic algorithm until the minimum loss value in the chromosome population no longer decreases, or terminates after other termination conditions are met. Other termination conditions include timeout or reaching the maximum number of optimized generations. This step uses chromosome encoding to describe the scheduling solution and iteratively optimizes the solution space through multi-threaded parallel crossover and mutation operations to ensure optimization efficiency and the global nature of the solution. The parallel genetic algorithm encodes the initial scheduling solution into a chromosome by treating each task in a scheduling solution as a gene.
[0087] Gene machine preference encoding: A vector (Gene::machine_preference) with a length equal to the number of machines is stored in the gene to indicate the gene's preference for the machine. For example, if there are 5 machines with machine IDs 0 to 4, and the machine_preference in the gene is [0, 0, 0.8, 0.6, 0], it means that the gene has a preference of 0.8 and 0.6 for machines 2 and 3, respectively, and a preference of 0 for machines 0, 1, and 4. When decoding, the gene will select the machine with the highest preference.
[0088] Gene order encoding: The order information of genes is described by retaining a float type value in the gene. The smaller the value, the higher the gene will be ranked.
[0089] Initial chromosome encoding: For the chromosome converted from the initial decoding, the gene's unit preference will be initialized to a vector of all 0s except the current unit position which is 1. Then the gene value will be directly initialized to the gene's current position order on the unit.
[0090] Mutation-based encoding: Because mutation (see Chromosome Mutation Method for details) directly adjusts the gene's unit or order within the unit, chromosome encoding needs to be adjusted after a mutation occurs: If the maximum value of a gene's machine_preference is not the unit of the gene on the mutated chromosome, the preference value corresponding to the current unit in machine_preference is swapped with the maximum preference value. Gene values are reassigned according to the order of their units on the old chromosome. If a unit on the new chromosome has more genes than the old chromosome, the value is incremented by 1, starting from the last gene in the corresponding unit on the old chromosome.
[0091] Decoding: Assigning machines: According to the gene's machine_preference, select the machine with the highest preference value. For example, if there are five machines, with machine IDs 0 to 4, and the gene's machine_preference is [0, 0, 0.8, 0.6, 0], this means the gene prefers machines 2 and 3 to 0.8 and 0.6, respectively, and prefers machines 0, 1, and 4 to 0. During decoding, the gene will select the machine with the highest preference, which is machine 3. Adjusting the order of genes on the machines: Sort the tasks on the machines in ascending order according to the corresponding gene values and update their position information on the machines.
[0092] After all the initial solutions are encoded into chromosomes, a chromosome population is obtained. For each chromosome in the population, a thread is created to perform chromosome crossover and mutation operations. The following are the specific execution steps on each thread:
[0093] Step S4.1: Observe other chromosomes in the population.
[0094] Step S4.2: When the loss value of other chromosomes is lower than that of the current chromosome, submit a crossover transformation application. It should be noted that in this step, "submit" is used instead of directly performing the crossover transformation for the consideration of parallelization. The parallel genetic algorithm will maintain a transformation operation queue, and the length of the transformation operation queue can be configured through a configuration file, usually an integer multiple of the number of computing hardware logical cores. The transformation operation queue will record the transformation applications from all chromosome threads, and the transformation applications include crossover transformation or mutation exchange. When the transformation operation queue is full, all chromosome execution threads will be blocked, and then the transformation operations in the queue will be processed in parallel, and the loss values of the sub-chromosomes generated by the transformation will be calculated. If a sub-chromosome with a lower loss value is generated, the chromosome with a higher loss value will be eliminated in the subsequent chromosome update. The crossover includes generating a new chromosome by combining the corresponding information of two incoming chromosomes. The crossover methods adopted include mean crossover and slice crossover.
[0095] The mean crossover includes the following steps:
[0096] First, calculate the parent weights to make the chromosome with a lower loss value have a higher weight. The formula is as follows:
[0097] [Parent weight, mother weight] = Softmax({1, loss value of the father chromosome / loss value of the mother chromosome})
[0098] Where,
[0099] Then, traverse the genes of the parent chromosomes in order of gene ID. Next, multiply the machine_preference vectors of the two genes by [parent weight, mother weight] and add them to be used as the machine_preference of the sub-chromosome gene. Then, multiply the values of the two genes by [parent weight, mother weight] and add them to be used as the value of the sub-chromosome gene. Finally, decode the sub-chromosome.
[0100] The slice crossover includes the following: First, randomly generate a cut point position cut_pos, and the range is [0, the number of genes of the chromosome]. Then, traverse the chromosome gene position i: if i < cut_pos, the machine_preference and value of the gene adopt the values of the father gene; if i ≥ cut_pos, the machine_preference and value of the gene adopt the values of the mother gene. Finally, decode the sub-chromosome
[0101] Step S4.3: Traverse all rules, decode the chromosome as the scheduling solution, and call the corresponding scheduling solution adjustment function. The scheduling solution adjustment function attempts to optimize the scheduling solution and submits a mutation request. Mutation is to transform the input chromosome to generate a new sub-chromosome. The mutation functions used for this mutation include gene segment insertion mutation and gene segment exchange mutation.
[0102] The gene fragment insertion mutation includes: first, randomly selecting a gene ID and fragment length to be adjusted, and the adjusted insertion position. Then, obtaining the task corresponding to the gene, finding the task at the corresponding position in the production unit and the subsequent sequence with a length equal to the length of the gene fragment, and moving it to the designated insertion position. Finally, the generated new chromosome is coded based on the mutation.
[0103] The gene segment exchange mutation process includes: first, randomly selecting two gene IDs and their segment lengths to be exchanged, then obtaining the tasks corresponding to the two genes, finding their corresponding positions in the production unit, and swapping the positions of the two task sequences.
[0104] Step S5: Decode the chromosome with the lowest loss value into a scheduling solution and output it to the database's result table. The chromosome with the lowest loss value is selected from the chromosome population and decoded and output to the database's result table. The result table includes the following fields: Task ID, Order ID, Process ID, Production Unit ID, Production Sequence Number, and rule-defined output fields. For example, if a "roll change rule" is configured, the roll cycle in which the task is scheduled for production and the cumulative roll workload during the production of the task will be output. These are all important information in steel cold rolling scheduling.
[0105] Example 2
[0106] The present invention also provides an integrated scheduling optimization system applicable to the steel production industry. The integrated scheduling optimization system applicable to the steel production industry can be implemented by executing the process steps of the integrated scheduling optimization method applicable to the steel production industry, that is, those skilled in the art can understand the integrated scheduling optimization method applicable to the steel production industry as a preferred implementation method of the integrated scheduling optimization system applicable to the steel production industry.
[0107] According to the present invention, an integrated scheduling optimization system applicable to the steel production industry is provided, comprising:
[0108] Module M1: Loads the database and reads all entity information of the scheduling problem. Entity information includes units, orders, and processes.
[0109] Module M2: Loads the configuration file, retrieves the rule information from it, and creates the corresponding rule object based on the rule information. The configuration file is used to configure the model's operating parameters and the relevant configuration parameters for the rules used in the rule module. The rule module includes a global scheduling solution loss function, a local task loss function, and a scheduling solution adjustment function.
[0110] Module M3: Based on entity information, rule information, and rule objects, a greedy initial solution algorithm is used to generate one or more initial solutions, and the initial solutions are encoded as a chromosome population. Module M3 includes: Module M3.1: Through permutations and combinations, N different combinations are generated from all rules, and thus N different initial solutions are generated. Module M3.2: Process tasks with only one production unit are selected from the scheduled processes, and the process tasks are directly bound to the corresponding production unit. Module M3.3: A candidate task list is generated from the scheduled tasks. The candidate task list includes tasks with no predecessor processes or whose predecessor processes are currently in production. Module M3.4: A local task loss cache is created to store the loss values to be calculated later. The key is a triple. The triple consists of the task ID, the unit ID, and the order of the task on the unit. The value is the weighted sum of the local losses incurred by the task under all rules in the state corresponding to the key. Module M3.5: Traverse the candidate tasks in the candidate task list, and then traverse the production group of the current candidate task, and place the candidate task in the next position of the task whose order has been determined on the group. Module M3.6: Check whether there is a triple record of the candidate task ID, group ID and the order of the task on the group in the local task loss cache. If so, directly use the corresponding loss value in the cache. If not, traverse the rule combination input by module M3.1, call the local task loss function of the rule for the task and sum it up, and save it to the local task loss cache. Module M3.7: Select the combination with the smallest loss value from all the above calculation records, place the selected task at the end of the group recorded in the corresponding combination, remove the selected task from the candidate task list, and determine whether the selected task has a subsequent process. If so, add the task corresponding to the subsequent process to the candidate task list, thereby confirming the processing group and position information of the current task in the initial solution. Modules M3.5 to M3.7 are repeatedly triggered until the candidate task list is empty, indicating that all candidate tasks have been assigned production units and processing orders, and the generation of all initial solutions is completed.
[0111] Module M4: Optimizes the chromosome population using a parallel genetic algorithm until the lowest loss in the population stops decreasing or other termination conditions are met. Other termination conditions include timeout or reaching the maximum number of optimization generations. Module M4 uses chromosome encoding to describe the scheduling solution and iteratively optimizes the solution space through multi-threaded parallel crossover and mutation operations. A thread is created for each chromosome in the population to trigger the crossover and mutation operations. The module includes the following: Module M4.1: Observes other chromosomes in the population. Module M4.2: Submits a crossover request when the loss of another chromosome is lower than the loss of the current chromosome. Module M4.3: Iterates through all rules, decodes the chromosome as the scheduling solution, and calls the corresponding scheduling solution adjustment function. The scheduling solution adjustment function attempts to optimize the scheduling solution and submits a mutation request. The encoding includes: gene machine unit preference encoding, gene order encoding, initial chromosome encoding, and mutation-based encoding. The gene machine unit preference encoding stores a vector (machine_preference) with a length equal to the number of machines in the gene to represent the gene's preference for the machine unit. Gene order coding describes the order information of genes by retaining a float type value in the gene. The smaller the value, the higher the gene will be ranked. The initial chromosome coding is for the chromosome converted from the initial decoding. The gene's machine preference will be initialized to a vector of all 0s except for the current machine position which is 1. Then the gene value will be directly initialized to the gene's current position order on the machine. Mutation-based coding is that if the maximum value of the gene's machine_preference is not the machine where the gene of the current mutated chromosome is located, the preference value corresponding to the current machine in machine_preference will be swapped with the maximum preference value, and the gene value will be reassigned according to the order of the machines in the old chromosome. If the number of genes on a machine in the new chromosome is more than that on the old chromosome, the value of the gene will be incremented by 1 from the value of the last gene of the corresponding machine in the old chromosome.
[0112] Module M5: Decode the chromosome with the lowest loss value into a scheduling solution and output it to the result table of the database.
[0113] Those skilled in the art will appreciate that, in addition to implementing the system and its various devices, modules, and units provided by the present invention in purely computer-readable program code, it is entirely possible to implement the same functions of the system and its various devices, modules, and units provided by the present invention in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers by logically programming the method steps. Therefore, the system and its various devices, modules, and units provided by the present invention can be considered a hardware component, and the devices, modules, and units included therein for implementing various functions can also be considered as structures within the hardware component; the devices, modules, and units for implementing various functions can also be considered as both software modules implementing the method and structures within the hardware component.
[0114] The above describes specific embodiments of the present invention. It should be understood that the present invention is not limited to the specific embodiments described above, and those skilled in the art may make various changes or modifications within the scope of the claims, which do not affect the essence of the present invention. The embodiments of this application and the features in the embodiments may be combined with each other in any manner unless there is a conflict.
Claims
1. An integrated scheduling optimization method applicable to the steel production industry, characterized in that: include: Step S1: Load the database and read all entity information of the scheduling problem; Step S2: Load the configuration file, obtain the rule information in the configuration file, and create a corresponding rule object according to the rule information; Step S3: generating one or more initial solutions using a greedy initial solution algorithm according to the entity information, rule information and rule object, and encoding the initial solutions into a chromosome population; Step S4: optimizing the chromosome population by a parallel genetic algorithm until the lowest loss value in the chromosome population stops decreasing or other termination conditions are met; the other termination conditions include timeout or reaching the maximum number of optimized generations; Step S5: Decode the chromosome with the lowest loss value into a scheduling solution and output it to the result table of the database.
2. The integrated scheduling optimization method applicable to the steel production industry according to claim 1, characterized in that: The entity information includes units, orders, and processes; The configuration file is used to configure the operating parameters of the model and the relevant configuration parameters of the rules that need to be used in the rule module; The rule module includes a global scheduling solution loss function, a local task loss function and a scheduling solution adjustment function.
3. The integrated scheduling optimization method applicable to the steel production industry according to claim 1, characterized in that: The step S3 comprises: Step S3.1: Generate N different combinations from all rules through permutations and combinations, and then generate N different initial solutions; Step S3.2: Filter out process tasks with only one production unit from the processes to be scheduled, and directly bind the process tasks to the production unit corresponding to the process tasks; Step S3.3: Generate a candidate task list from the tasks to be scheduled; the candidate task list includes tasks that have no preceding processes or whose preceding processes are in production; Step S3.4: Create a local task loss cache to store the loss values to be calculated later. The key is a triplet; the triplet includes the task ID, the crew ID, and the order of the task on the crew. The value is the weighted sum of the local losses generated by the task under all rules in the state corresponding to the key. Step S3.5: traverse the candidate tasks in the candidate task list, and then traverse the production group of the current candidate task, and place the candidate task in the next position of the task with a determined order on the group. Step S3.6: Check whether the local task loss cache contains a triplet record of the candidate task ID, unit ID, and the order of the task on the unit. If so, use the corresponding loss value in the cache directly. If not, traverse the rule combination input in step S3.1, call the local task loss function of the rule on the task, calculate the sum, and save it to the local task loss cache. Step S3.7: Select the combination with the smallest loss value from all the calculation records above, place the selected task at the end of the group recorded in the corresponding combination, remove the selected task from the candidate task list, and determine whether the selected task has a subsequent process. If so, add the task corresponding to the subsequent process to the candidate task list, thereby confirming the processing group and location information of the current task in the initial solution; Repeat steps S3.5 to S3.7 until the candidate task list is empty, indicating that all candidate tasks have been assigned production units and processing orders, and the generation of all initial solutions is completed.
4. The integrated scheduling optimization method applicable to the steel production industry according to claim 1, characterized in that: The step S4 uses chromosome coding to describe the scheduling solution and iteratively optimizes the solution space through multi-threaded parallel crossover and mutation operations; The coding includes: gene group preference coding, gene sequence coding, initial chromosome coding, and mutation-based coding.
5. The integrated scheduling optimization method applicable to the steel production industry according to claim 4, characterized in that: The gene machine preference encoding is to store a vector machine_preference with a length equal to the number of machines in the gene to represent the gene's preference for the machine; The gene order encoding is to describe the gene order information by retaining a float type value in the gene. The smaller the value, the higher the gene will be ranked. The initial chromosome encoding is for the chromosome converted from the initial decoding. The gene's unit preference will be initialized to a vector of all 0s except for the current unit position which is 1. Then the gene value will be directly initialized to the gene's current position order on the unit. The mutation-based encoding is that if the maximum value of the machine_preference of the gene is not the group where the gene of the current mutated chromosome is located, the preference value corresponding to the current group in machine_preference is exchanged with the maximum preference value, and the value of the gene is reassigned in the order of the groups in the old chromosome. If the number of genes on a group in the new chromosome is more than that on the old chromosome, the value of the last gene on the corresponding group of the old chromosome is increased in steps of 1.
6. The integrated scheduling optimization method applicable to the steel production industry according to claim 4, characterized in that: For each chromosome in the population, a thread is created to perform chromosome crossover and mutation operations. The steps include the following: Step S4.1: Observe other chromosomes in the population; Step S4.2: Submit a crossover application when the loss value of other chromosomes is lower than the loss value of the current chromosome; Step S4.3: Traverse all rules, decode the chromosome as a scheduling solution, call the corresponding scheduling solution adjustment function, and try to optimize and adjust the scheduling solution in the scheduling solution adjustment function, and submit a mutation transformation application.
7. An integrated scheduling optimization system suitable for the steel production industry, characterized in that: include: Module M1: loads the database and reads all entity information of the scheduling problem; Module M2: loads the configuration file, obtains the rule information in the configuration file, and creates a corresponding rule object according to the rule information; Module M3: Generate one or more initial solutions using a greedy initial solution algorithm according to the entity information, rule information and rule object, and encode the initial solutions into chromosome populations; Module M4: Optimizing the chromosome population by a parallel genetic algorithm until the lowest loss value in the chromosome population stops decreasing or other termination conditions are met; the other termination conditions include timeout or reaching a maximum number of optimization generations; Module M5: Decode the chromosome with the lowest loss value into a scheduling solution and output it to the result table of the database.
8. The integrated scheduling optimization system for the steel production industry according to claim 7, characterized in that: The module M3 includes: Module M3.1: Generate N different combinations from all rules through permutations and combinations, and then generate N different initial solutions; Module M3.2: Filter out the process tasks that have only one production unit from the processes to be scheduled, and directly bind the process tasks to the production unit corresponding to the process tasks; Module M3.3: Generate a candidate task list from the tasks to be scheduled; the candidate task list includes tasks that have no preceding processes or whose preceding processes are in production; Module M3.4: Create a local task loss cache to store the loss values to be calculated later. The key is a triplet containing the task ID, the crew ID, and the order of the task on the crew. The value is the weighted sum of the local losses generated by the task under all rules in the state corresponding to the key. Module M3.5: traverse the candidate tasks in the candidate task list, and then traverse the production group of the current candidate task, and place the candidate task in the next position of the task with a determined order on the group. Module M3.6: Checks whether the local task loss cache contains a triplet of the candidate task ID, unit ID, and the order of the task on the unit. If so, the corresponding loss value in the cache is used directly. If not, the rule combination input by module M3.1 is traversed, the local task loss function of the rule is applied to the task, the sum is calculated, and the result is saved in the local task loss cache. Module M3.7: Select the combination with the smallest loss value from all the above calculation records, place the selected task at the end of the group recorded in the corresponding combination, remove the selected task from the candidate task list, and determine whether the selected task has a subsequent process. If so, add the task corresponding to the subsequent process to the candidate task list, thereby confirming the processing group and location information of the current task in the initial solution; Modules M3.5 to M3.7 are repeatedly triggered until the candidate task list is empty, indicating that all candidate tasks have been assigned production units and processing orders, and the generation of all initial solutions is completed.
9. The integrated scheduling optimization system for the steel production industry according to claim 7, characterized in that: The module M4 describes the scheduling solution using chromosome encoding and iteratively optimizes the solution space through multi-threaded parallel crossover and mutation operations; The coding includes: gene group preference coding, gene sequence coding, initial chromosome coding, and mutation-based coding.
10. The integrated scheduling optimization system for the steel production industry according to claim 9, characterized in that: The gene machine preference encoding is to store a vector machine_preference with a length equal to the number of machines in the gene to represent the gene's preference for the machine; The gene order encoding is to describe the gene order information by retaining a float type value in the gene. The smaller the value, the higher the gene will be ranked. The initial chromosome encoding is for the chromosome converted from the initial decoding. The gene's unit preference will be initialized to a vector of all 0s except for the current unit position which is 1. Then the gene value will be directly initialized to the gene's current position order on the unit. The mutation-based encoding is that if the maximum value of the machine_preference of the gene is not the group where the gene of the current mutated chromosome is located, the preference value corresponding to the current group in machine_preference is exchanged with the maximum preference value, and the value of the gene is reassigned in the order of the groups in the old chromosome. If the number of genes on a group in the new chromosome is more than that on the old chromosome, the value of the last gene on the corresponding group of the old chromosome is increased in steps of 1.
Citation Information
Patent Citations
Integrated iron and steel enterprise production process on line planning and controlling system and method
CN1556486A