Method for determining a processing sequence for an ensemble of semi-products, related processing method, scheduling device, processing line and computer program
The Path Bridging Local Search algorithm efficiently addresses the challenge of industrial scheduling by prioritizing feasibility in the scheduling process, resulting in reduced computation time and improved cost efficiency for semi-product sequencing.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-27
- Publication Date
- 2026-03-05
AI Technical Summary
Industrial scheduling of semi-products on a processing line faces challenges in finding feasible solutions that respect complex constraints, such as avoiding forbidden transitions, which can lead to costly disruptions and reduced productivity.
A Path Bridging Local Search (PB) algorithm that separates feasibility optimization from cost optimization, using base 3-opt moves and exhaustive checks to ensure feasible sequences are found, followed by cost optimization to minimize transition costs.
The method significantly improves the success rate of finding feasible solutions, reducing computation time by 88% and achieving better costs in 75% of instances, while ensuring compliance with production constraints.
Smart Images

Figure IB2024058311_05032026_PF_FP_ABST
Abstract
Description
[0001] Method for determining a processing sequence for an ensemble of semi-products, related processing method, scheduling device, processing line and computer program
[0002] FIELD OF THE INVENTION
[0003] The present invention concerns a determination method for determining a processing sequence for an ensemble of semi-products to be processed one after the other on a processing line, the method being implemented by a computer.
[0004] The invention also relates to a processing method for processing an ensemble of semi-products, one after the other on a processing line.
[0005] The invention also concerns a scheduling device comprising at least a processor and a memory, configured for executing such a determination method.
[0006] The invention also relates to a processing line comprising actuators, a line controller for controlling the actuators, and such a scheduling device
[0007] The invention further concerns a computer program including software instructions which, when executed by a processor, implement such a determination method.
[0008] TECHNICAL BACKGROUND
[0009] The technical field is that of industrial scheduling, more precisely that of finding adequate processing sequences for processing, successively, different semi-products, on a same processing line.
[0010] Planning and scheduling operations is fundamental in the manufacturing industries, bringing efficiency to production, logistics or maintenance tasks, among others. Scheduling helps to coordinate and plan the use of resources, such as employees, equipment, and raw materials. Scheduling is critical for improving productivity, quality and service indicators, because it helps minimize downtimes, delays and unexpected disruptions in the production process. By improving planning and scheduling, inventories can also be reduced without impacting customer satisfaction.
[0011] In a steel factory, for instance, the planning and scheduling of all its units plays a critical role. The overall steel making process is complex, with many possible different routes and designs. Two big parts can be differentiated: Primary operations, where the pig iron is made, for instance from iron ore and coke at the blast furnace, then refined into liquid steel by reducing its carbon content using a converter, and then solidified in the casters facilities into big blocks of steel (slabs, billets); and Finishing operations, where those slabs and billets are gradually subject to transformations in size (width, thickness) and mechanical properties (yield strength) along successive processes, and so transformed into a steel strip that is cut in sheets or wound in coils. The surface of the strip is usually protected against corrosion by surface treatments such as galvanizing or tinning. In the Continuous Galvanizing Lines (CGL), coils are unrolled and welded into a never-ending steel strip that goes into a furnace for annealing treatments, a zinc bath for galvanizing the surface with a zinc coating layer, and a skin-pass machine for mechanical properties refinement and rugosity control. The strip is eventually oiled for further protection and recoiled to be sent to the customer (Figure 1 ).
[0012] The planning and scheduling of all these processes at the steel factory is typically hierarchical, from the high-level planning of volumes and flows of campaigns along the units to the most operational low-level scheduling of the items to be processed in each unit for the day. Items (i.e., slabs, coils), or in other words semi-products, with similar properties are grouped in campaigns that are sequenced one after another attending to tactical and operational criteria, being service (customer dates) an important one. These decisions are taken by planning experts with the help of support tools. Finally, the schedulers at each facility need to decide the arrangement of the items of each campaign, usually for a horizon of 1 to 2 days. The arrangement must respect some production rules and minimize as much as possible losses of quality, yield, productivity, etc. Finding the best arrangement is a complex combinatorial problem that needs the help of optimization techniques in order to build good quality schedules, and even, sometimes, just for finding one arrangement that does not violate the production rules (one « feasible » arrangement).
[0013] In practice, the coils of one campaign, though having similar properties, are usually different one from another and / or intended to lead to different final coils, after processing. So, each coil transition typically requires a modification of the process settings, which may impair the quality of the final product and / or the productivity. For the different possible coil transitions (i.e.: coil changes), the impact of the transition considered on the final quality and / or on the productivity is usually represented by a transition cost.
[0014] The fitness function, to be minimized to find an adequate coils scheduling, is usually the sum of all the transition costs. Aside to the transition costs, a wide set of production rules introduce scheduling constraints that forbid certain coils to be sequenced consecutively, because this brings issues or is not possible for certain machines at the CGL (for instance two coils that do not weld together, or two coils whose difference in strip width is over a given limit, or which have very different annealing temperatures targets in the furnace). If an infeasible sequence was to be processed in the CGL, there may be a risk of strip breakage, which represents a huge cost due to the unproductive long hours required to fix the issue. The strip has to be manually welded where it broke, and if this happens into the annealing furnace, the operation is very complicated, sometimes requiring more than 24 hours to accomplish it.
[0015] So, the first priority for the schedule is to have no constraints violated (i.e. to be “feasible”), that is to have only workable transitions, and no forbidden (or so-called unwanted) transition, in the coils sequence. The second priority is to have a minimum cost. If a schedule does have one or more constraints violated, that is, is not feasible (more precisely: not feasible as such), different actions can still be taken, like introducing linking auxiliary coils (sometimes called dummy coils), looking for more coils to try to fix the issue, or eliminating coils from the schedule. All these actions have a huge cost for the factory in terms of yield and service, and a significant loss of time.
[0016] An analogy of the problem described can be made with the Asymmetrical Travelling Salesman Problem (ATSP), in which the target is to visit a set of cities minimizing the total cost of the trip, knowing the cost or distance between each pair of cities (each city corresponding to a coil of the campaign). In the ATSP, the constraints would forbid to travel directly between certain cities, and the theoretical problem can be defined as a Constrained Asymmetric Travelling Salesman Problem (CATSP). It is noted that in the usual Travelling Salesman Problem (TSP), one looks for a cycle, that is, one accounts for the cost of completing the tour from the last city to the initial city, while in the CATSP described one looks for a path: the cost from last coil to first coil is not accounted.
[0017] Based on the above analogy, the scheduling can be optimized as a CATSP, using different possible metaheuristics, among them Ant Colony Optimization (ACO).
[0018] The problem of scheduling the production of different semi-products, to be processed one after the other on a same processing line, has been presented above in the exemplary case of a continuous galvanization line. But the same kind of scheduling problem clearly concerns any production campaign for which the semi-products, to be successively processed on the same processing line (typically a continuous or semi-continuous line), are potentially different one from another (i.e.: have different properties), or intended to lead to final semi-products that are different from each other. In the steel making industry, for instance, the same kind of scheduling problem may be encountered for scheduling production at a hot rolling, or cold rolling mill, for a pickling line or for scheduling the production of a coating or finishing line different than a galvanization line. And in other industrial areas, the same kind of scheduling problem is encountered for instance, for the scheduling of car paint shops, in the automotive industry. In a general manner, by semiproduct, it is meant an intermediary source-product, intended, after processing, to become a part, a good, or another, more finished semi-product. In the steel-making industry, it is for instance a coil, a slab, a billet, a broom, an ingot, a bar, a beam, a tube or a wire. In practice, these industrial scheduling problems, and CGL in particular, are often strongly constrained, in that many transitions are forbidden, or at least to be avoided as much as possible. Finding feasible solutions to such a highly constrained CATSP may be very challenging. A method for finding feasible solutions with a high success rate is described in the following article: Alvarez-Gil, Nicolas, Segundo Alvarez Garcia, Rafael Rosillo, and David de la Fuente. “Sequencing Jobs with Asymmetric Costs and Transition Constraints in a Finishing Line: A Real Case Study." Computers & Industrial Engineering 165 (March 1 , 2022): 107908. https: / / doi.Org / 10.1016 / j.cie.2021.107908. This article presents a study of the CGL scheduling problem in 30 real-world challenging instances, focusing on assuring feasibility -i.e., all constraints are respected- in very constrained scenarios, proposing a new ACO variant with a novel local search (Interval Reconstruction, AS-IR) able to perform successfully where the algorithms so far in use failed.
[0019] At the junction between two successive campaigns, there is a transition between two semi-products and it is desirable, inter alia, not to have a forbidden transition at the campaigns junction. Besides, it is sometimes desirable, at the beginning of a campaign, to start with a given kind of semi-product (for instance with a wide coil, or even with the wider one), which dictates the start semi-product, and also the end semi-product for the preceding campaign.
[0020] In practice, the order of the campaigns is of high importance and is usually decided by the plant planning experts, who must take decisions concerning semi-products due dates, flow of campaigns in upstream facilities, planned downtimes, etc. The order of the campaigns is thus somehow dictated by various constraints, which then create constraints for campaigns linking. In particular, for the CGL, as the process is continuous, the end coil of one campaign must link to the start coil of the next campaign, still respecting all the standard scheduling constraints. Even though the schedules for each campaign are made independently, they must be consistent with the campaign linking, making sure that consecutive campaigns do link.
[0021] The linking requirement between campaigns above presented is called boundary constraints (BC) to the CATSP, here, and the corresponding problem is called CATSP-BC. The linking of schedules, as will be shown in the computation analysis below, has a big impact in the problem complexity. In fact, it poses a challenge to algorithms that otherwise would perform fine.
[0022] Another method for finding feasible solutions with a high success rate is described in the following article: Segundo Alvarez Garcia, Alvarez-Gil, Nicolas, Rafael Rosillo, and David de la Fuente. “An effective graph-analysis method to schedule a continuous galvanizing line with campaigning boundary constraints." Computers & Industrial Engineering 192 (2024): 110206. https: / / doi.Org / 10.1016 / j.cie.2024.110206. This article presents a study of the CGL scheduling problem in 30 real-world challenging instances, focusing on assuring feasibility -i.e., all constraints are respected- in very constrained scenarios, proposing another new ACO variant with a brand new graph analysis (GA) method devised as an effective surrogate check for feasibility, which runs embedded in the ACO sequence construction heuristic.
[0023] Such existing ACO based methods are interesting, but may be further improved, in particular for finding feasible solutions.
[0024] SUMMARY OF THE INVENTION
[0025] One objective of the invention is to provide a new method for determining industrial scheduling, so as to enable to find feasible solutions, with a higher rate of success.
[0026] For this purpose, the subject-matter of the invention concerns, inter alia, a determination method for determining a processing sequence for an ensemble of semiproducts to be processed one after the other on a processing line, the method being implemented by a computer and comprising:
[0027] - an initialization phase wherein a list of the semi-products of said ensemble is acquired;
[0028] - a feasibility phase wherein at least one feasible sequence is sought on the basis of a graph representing the ensemble of semi-products, in which each semi-product is represented by a node and each transition between two semi-products is represented by a directed arc linking the two corresponding nodes, the feasibility phase comprising:
[0029] + an identifying step including identifying a candidate path, on said graph, the candidate path starting from a start node up to an end node and representing a sequence of semi-products to be processed one after the other on the processing line, the candidate path including all the semi-products of the acquired list; and for the candidate path:
[0030] + a first searching step including searching along said candidate path for an infeasible transition between two successive nodes, successively called infeasibility start node and infeasibility end node, and representing an infeasibility between two semi-products; if an infeasible transition is found:
[0031] + a second searching step including searching for a movable segment to be moved; a respective segment being a succession of nodes linked by one or more directed arcs, a respective segment being traversed in a traverse direction among a forward direction from the start node to the end node and a reverse direction from the end node to the start node, the movable segment being of a type chosen from among the group comprising: a first type corresponding to a segment of the candidate path suitable to be joined to the infeasibility start node, and a second type corresponding to a segment having at one end the infeasibility end node and being suitable to be shifted within the candidate path; the movable segment being of a kind chosen from among the group comprising: a forward kind with the traverse direction being the forward direction, and a reverse kind with the traverse direction being the reverse direction; if a movable segment is found:
[0032] + a moving step including moving the movable segment;
[0033] + until a stop condition is reached, carrying out successively one or more additional iterations of the first searching, second searching and moving steps on the candidate path successively modified; the processing sequence being determined from the candidate path resulting from the last iteration.
[0034] Thus, the determination method according to the invention provides a new efficient Local Search (LS) algorithm, called Path Bridging (PB), specifically devised to handle constraints and asymmetry as an effective technique to perform winning LS improvements in these scenarios.
[0035] Advantageously, as a novel approach, the method according to the invention splits the overall optimization into feasibility optimization and then optional cost optimization. The Path Bridging chains base 3-opt moves carefully designed to never incur in infeasibilities.
[0036] Preferably, other features like a design choice of the base 3-opt moves, a perturbation move and exhaustive checks for chain consolidation render the method very effective in highly constrained scenarios. The extra computation added pays off amply: tested on challenging instances, the Path Bridging outperforms the prior art methods, reporting new better costs in 75% of the instances and a significant reduction in computation time, on average 88% in the comparable cases. As a stress test, the benchmark budget computation time was reduced from 120 s to 1 s, verifying that the Path Bridging is still able to find feasible solutions in all runs.
[0037] According to other advantageous aspects of the invention, the determination method comprises one or several of the following features, taken individually or according to any technically possible combination: - if the movable segment is of the reverse kind, the feasibility phase further comprises, before the moving step, an inversing step including inversing the found movable segment, said moving step being then carried out with the inversed segment;
[0038] - if the movable segment is of the reverse kind, the movable segment that is searched is a succession of nodes which, when traversed in the reverse direction, are linked by one or more directed arcs corresponding only to feasible transitions;
[0039] - the feasibility phase further comprises, before the second searching step, a selecting step including selecting - from among the first type and the second type - the type of the movable segment to be searched during the second searching step; the selection of the type of the movable segment being preferably a pseudo-random selection; the pseudo-random selection being further preferably carried out according to respective target probabilities; the target probability for the first type being still further preferably greater than the target probability for the second type;
[0040] - the selecting step further includes selecting - from among the forward kind and the reverse kind - the kind of the movable segment to be searched during the second searching step; the selection of the kind of the movable segment being preferably a pseudo-random selection;
[0041] - the pseudo-random selection of the type and of the kind is carried out according respectively to a first target probability for the combination of the first type and the forward kind, a second target probability for the combination of the first type and the reverse kind, a third target probability for the combination of the second type and the forward kind, and a fourth target probability for the combination of the second type and the reverse kind; the first target probability being preferably equal to the second target probability; the third target probability being preferably equal to the fourth target probability; the first target probability being further preferably greater than the third target probability; the second target probability being further preferably greater than the fourth target probability;
[0042] - the stop condition is chosen from among the group comprising: said candidate path includes no more infeasible transition, a predefined number of iterations has been carried out;
[0043] - the feasibility phase further comprises a perturbation move step before each new iteration of the first searching step; the perturbation move step including:
[0044] + detecting all the infeasible transitions in the candidate path,
[0045] + creating a list with the respective segments between two successive infeasible transitions,
[0046] + shuffling the list randomly,
[0047] + reordering the segments according to the shuffled list to obtain a new version of the candidate path, and the new first searching step being then done with the new version of the candidate path;
[0048] - the feasibility phase comprises, for each iteration of the first searching step, one or several sub-iterations of the second searching and moving steps, each new sub-iteration of the second searching step being carried out with an infeasible transition remaining in the forward direction, starting from the end of the movable segment if the movable segment is of the first type, or starting from the infeasibility start node if the movable segment is of the second type;
[0049] - if the movable segment is of the first type, the second searching step is carried out in an exhaustive manner for finding a segment:
[0050] + which is joinable by its extremity nodes to both the infeasibility start node and the infeasibility end node, or at least joinable by one extremity node to the infeasibility start node;
[0051] + and for which the junction of the path where the segment was removed is authorized through a respective feasible transition;
[0052] - if the movable segment is of the first type, the second searching step includes:
[0053] + looking for at least one node linked to the infeasibility start node via a respective directed arc in the graph,
[0054] + choosing, as a first chosen node, one from among said at least one node linked to the infeasibility start node,
[0055] + setting the node, called first set node, just before the first chosen node in the candidate path according to the traverse direction of the movable segment,
[0056] + looking for at least one node linked to the first set node via a respective directed arc in the graph,
[0057] + choosing, as a second chosen node, one from among said at least one node linked to the first set node,
[0058] + setting the node, called second set node, just before the second chosen node in the candidate path according to the traverse direction of the movable segment, the movable segment being - according to its traverse direction - a segment between an initial node formed by the first chosen node and a final node formed by the second set node, and during the moving step, the moved segment is moved just after the infeasibility start node in the candidate path according to the forward direction, the initial node of said segment being linked to the infeasibility start node;
[0059] - the feasibility phase further comprises, after the moving step, a checking step for checking if the infeasible transition is resolved in the candidate path modified with the moved segment, by determining if the second set node forming the final node of the moved segment is linked to the infeasibility end node via a respective directed arc in the graph;
[0060] - if the movable segment is of the second type, the second searching step is carried out in an exhaustive manner for finding a segment:
[0061] + which is joinable by its extremity nodes to two respective successive nodes preceding the infeasibility start node;
[0062] + and for which one extremity node is the infeasibility end node;
[0063] - if the movable segment is of the second type, the second searching step includes:
[0064] + looking for at least one node linked to the infeasibility end node via a respective directed arc in the graph,
[0065] + choosing, as a first chosen node, one from among said at least one node linked to the infeasibility end node,
[0066] + setting the node, called first set node, just after the first chosen node in the candidate path according to the traverse direction of the movable segment,
[0067] + looking, after the infeasibility end node in the forward direction, for at least one node linked to the first set node via a respective directed arc in the graph,
[0068] + choosing, as a second chosen node, one from among said at least one node linked to the first set node,
[0069] + setting the node, called second set node, just after the second chosen node in the candidate path according to the forward direction, the movable segment being - according to its traverse direction - a segment between an initial node formed by the infeasibility end node and a final node formed by the second chosen node if the kind of the movable segment is the forward kind; or else a segment between an initial node formed by the second chosen node and a final node formed by the infeasibility end node if the kind of the movable segment is the reverse kind, and during the moving step, the moved segment is moved between the first chosen node and the first set node in the candidate path; - the feasibility phase further comprises, after the moving step, a checking step for checking if the infeasible transition is resolved in the candidate path modified with the moved segment, by determining if the second set node is linked to the infeasibility start node via a respective directed arc in the graph;
[0070] - each choosing is a random choosing;
[0071] - the method further comprises - after the feasibility phase - a cost phase wherein the processing sequence is determined by optimizing a total cost equal to the sum of transition costs for all the transitions from one semi-product to another in the processing sequence, under the constraint of non-increasing the number of infeasible transitions in the processing sequence;
[0072] - the cost phase comprises, for each candidate path identified during the feasibility phase, one or more successive iterations of the second searching and moving steps of the feasibility phase; and a cost computing step after each moving step, the cost computing step including computing a cost variation by adding the transition costs for the new transitions corresponding to the new arcs resulting from the moved segment and by subtracting the transition costs for the removed transitions corresponding to the arcs removed further to the moved segment; each second searching step being carried out starting from one of the transitions of the candidate path;
[0073] - the first target probability, the second target probability, the third target probability and the fourth target probability vary from the feasibility phase to the cost phase; during the cost phase, the first target probability, the second target probability, the third target probability and the fourth target probability being preferably substantially equal to each other;
[0074] - if no infeasible transition is found during the first searching step, the processing sequence is determined from the candidate path;
[0075] - during the identifying step, the candidate path is a random path identified in a pseudo-random manner; and
[0076] - the semi-products are metal products; the semi-products being preferably steel products.
[0077] The subject-matter of the invention is also a processing method for processing an ensemble of semi-products, one after the other on a processing line, said method comprising:
[0078] - determining a processing sequence for said ensemble of semi-products, by executing a determination method as defined above,
[0079] - processing said ensemble of semi-products on the processing line according to said processing sequence. The subject-matter of the invention is also a scheduling device comprising at least a processor and a memory, configured for executing a determination method as defined above.
[0080] The subject-matter of the invention is also a processing line comprising actuators, a line controller for controlling the actuators, and a scheduling device as defined above, the scheduling device being further configured to transmit the processing sequence to the line controller and to command the line controller for the processing line to process the ensemble of semi-products according to the processing sequence.
[0081] The subject-matter of the invention is also a computer program including software instructions which, when executed by a processor, implement a determination method as defined above.
[0082] BRIEF DESCRIPTION OF THE DRAWINGS
[0083] The invention will be better understood upon reading of the following description, which is given solely by way of example and with reference to the appended drawings, wherein:
[0084] - Figure 1 is a schematic representation of a continuous galvanization line;
[0085] - Figure 2 is a schematic organigram of phases and steps of a method, according to the invention, for determining a processing sequence for processing an ensemble of semiproducts on a processing line, such as the galvanization line of Figure 1 , the method comprising an initialization phase, a feasibility phase, and then a cost phase;
[0086] - Figure 3 is a schematic representation of a chain of Local Search (LS) moves, building a bridge of movable segments that are successively inserted between a target infeasible transition, between two successive nodes, successively called infeasibility start node and infeasibility end node, target infeasible transition which eventually is effectively removed;
[0087] - Figure 4 is a schematic representation of the bridge construction with a first type, called insertion, of the movable segment wherein the movable segment is inserted after the infeasibility start node, and respectively with a second type, called move a1 , of the movable segment wherein the movable segment having at one end the infeasibility end node is moved away;
[0088] - Figure 5 is a schematic representation of the four base moves, making eight possible cases from implementation point of view, depending on the relative position of the target infeasibility;
[0089] - Figure 6 is a schematic representation of special moves for start and end nodes, only performed in the feasibility phase; - Figure 7 is a schematic view of successive actions for the 3-opt move “insertion forward” performed in the feasibility phase, namely when the movable segment is of the first type and of a forward kind;
[0090] - Figure 8 is a view similar to that of Figure 7, for the 3-opt move “insertion reversed”, namely when the movable segment is of the first type and of a reverse kind;
[0091] - Figure 9 is a view similar to that of Figure 7, for the 3-opt move “move a1 forward”, namely when the movable segment is of the second type and of the forward kind;
[0092] - Figure 10 is a view similar to that of Figure 7, for the 3-opt move “move a1 reversed”, namely when the movable segment is of the second type and of the reverse kind;
[0093] - Figure 11 is a schematic representation of a perturbation move step, shuffling the segments between infeasible transitions;
[0094] - Figure 12 is a view similar to that of Figure 7, for the 3-opt move “insertion forward cost” performed in the cost phase;
[0095] - Figure 13 is a schematic representation of inversion and cost gain computation, wherein all costs of the segment to be inverted must be discounted in the gain, and costs for the inverted arcs in the segment must be added;
[0096] - Figure 14 is a representation showing performance of the invention in the case of a galvanization line called cgl_44, with all feasibility phase iterations, showing the length of a K 3-opt sequential moves and the number of infeasible transitions at each iteration; a value of k=200 meaning the iteration failed in improving the sequence;
[0097] - Figure 15 is a representation showing performance of the invention in the case of a galvanization line called cgl_114, with first 5 seconds iterations of the cost phase, showing the length of the k-opt sequential move and the cost gained at each iteration; a value of k=200 meaning the iteration failed in improving the sequence;
[0098] - Figure 16 is a representation showing performance of the invention in the case of the galvanization line cgl_1 14, with cost phase iterations in a 120 s run, wherein some improvement moves still succeed after many failed iterations; and
[0099] - Figure 17 is a representation showing performance of the invention in the case of a galvanization line called cgl_26, with cost phase iterations in a 120 s run, wherein the scale for the whole run gives a clear idea of the efficiency of the method according to the invention in reaching best cost.
[0100] DETAILED DESCRIPTION
[0101] As mentioned above, the invention concerns, inter alia, a method for determining a processing sequence for an ensemble of semi-products to be processed one after the other on a processing line (that is: an order in which these semi-products are to be processed, one after the other). This method can be applied to any of the industrial scheduling cases presented in the “technical background” section. In this method, a graph represents the ensemble of semi-products, each semi-product being represented by a node and each transition between two semi-products being represented by a directed arc linking the two corresponding nodes. It is noted that the instant method can be implemented based on data representative of the list of semi-products to be processed and of the list of forbidden transition(s) (and possibly also a list of transitions costs, at least for the non-forbidden transitions), without necessarily using a graphic representation of these data in the form of a « graph » (all the more that no connexity or other graph-property analysis is indispensable, in the instant method).
[0102] For determining the processing sequence, the method according to the invention has a constant look on feasibility, and firstly comprises an initialization phase wherein a list of the semi-products of said ensemble is acquired and a feasibility phase wherein at least one feasible sequence is sought on the basis of said graph. The cost optimization is addressed secondly during a cost phase, carried out after the feasibility phase. The method according to the invention therefore separates feasibility from cost optimization. This makes it immune to adverse costs structures that might trap the Local Search (LS) algorithm in infeasible local optima. The feasibility phase completely overlooks costs, targeting a feasible sequence. To help on that, the method according to the invention disregards major inversions in the LS moves, neglecting the 2-opt and the double inversion 3-opt moves. On the base 3-opt moves selected for the chain, it implements an exhaustive process of feasibility checks to build the set of promising candidates for the 3-opt cuts to be relinked. In the context of the 3-opt move, a “cut” refers to the operation of breaking the sequence into segments by removing a respective arc, also called edge. For the 3-opt move, the sequence is broken with three cuts, i.e. by removing three arcs. These three cuts essentially divide the sequence into four disjoint segments. The idea is, after making these cuts, to reconnect the segments in a different order, or orientation, to explore new potential sequences. This makes it very efficient. Further efficiency is brought by tabu-list backtracking and by exhaustive checks to close-up the chain of moves. The cost phase adds cost considerations on top of these base moves, working with a cost gain dragged along the iteration’s steps. The same exhaustive feasibility checks are performed to select candidates that never add infeasible transitions, also called infeasibilities, during the moves, making cost optimization also very efficient.
[0103] In the following description, the general structure of this method is presented first. Then, the feasibility phase with the different possible moves, key to this method, is presented in more detail. The cost phase is presented then, and experimental results are finally described.
[0104] General Structure of the method
[0105] As represented in Figure 2, the method comprises the following phases, executed (in the following order) by a scheduling device:
[0106] P01 : initialization phase wherein a list of the semi-products of said ensemble is acquired;
[0107] P02: feasibility phase wherein at least one feasible sequence is sought on the basis of a graph representing the ensemble of semi-products, in which each semi-product is represented by a node and each transition between two semi-products is represented by a directed arc linking the two corresponding nodes;
[0108] P03: cost phase wherein the processing sequence is determined by optimizing a total cost equal to the sum of transition costs for all the transitions from one semi-product to another in the processing sequence, under the constraint of non-increasing the number of infeasible transitions in the processing sequence; cost phase P03 is optional.
[0109] A generic pseudo-code of the method according to the invention is given in Table 1 .
[0110] [Table 1 ]
[0111] Algorithm 1 Path Bridging Framework
[0112] 1 SetAlgorithmParameters
[0113] 2 S <— InitializeSequence
[0114] 3 S <— PerformFeasibilityPhase(S)
[0115] 4 S <— PerformCostPhase(S)
[0116] In the above example of pseudo-code, line 1 corresponds to the initialization phase P01 ; lines 2 and 3 correspond to the feasibility phase P02 with line 2 corresponding to an identifying step S01 described hereinafter and line 3 corresponding to the other steps of the feasibility phase P02; and line 4 corresponds to the cost phase P03.
[0117] Each respective phase P01 , P02 and P03 will described in more detail in the following of the description.
[0118] Optionally, the method further comprises after the feasibility phase P02, or else after the cost phase P03 if carried out, a final phase for transmitting the processing sequence to a line controller, and commanding the line controller so that it controls a processing line in order to process the ensemble of semi-product, one after the other, in the order specified by the processing sequence. In other words, according to this optional phase, the scheduling result, namely the obtained processing sequence, is used to automatically execute production according to the order (sequencing) thus determined.
[0119] With this optional addition, the method therefore forms a method for processing an ensemble of semi-products, one after the other on the processing line, said method comprising determining a processing sequence for said ensemble of semi-products, by executing the initialization phase P01 , the feasibility phase P02 and optionally the cost phase P03; and then processing said ensemble of semi-products on the processing line according to said processing sequence.
[0120] As a variant, or as an optional addition, the scheduling result, namely the obtained processing sequence, is displayed on a man-machine interface.
[0121] Further optionally, before executing production according to the obtained processing sequence, the proposed sequence is displayed; if it is validated by the operator, production is (automatically) based on it; but the operator also has the option of manually modifying the proposed sequence (adding a dummy coil, or an additional coil) before sending it to production. It is also possible to delete a coil that is difficult to join to the others, and carry out again the feasibility phase P02, optionally the cost phase P03, to obtain a new proposal.
[0122] The scheduling device comprises at least a processor and a memory. It may take the form of a stand-alone computer, electronic unit or server. But it could also be implemented in a distributed manner (somehow “virtually”), using so-called “cloud” resources (computing and storing resources distributed among distinct physical systems in a network, possibly located at different places). The scheduling device and the controller may be distinct from each other, or may be implemented as a single electronic device configured for planning and controlling the processing line. The scheduling device is programmed to execute the method in question.
[0123] The processing line comprises actuators, a line controller for controlling the actuators, and the scheduling device. The processing line is for example a Continuous Galvanizing Line (CGL), as illustrated in Figure 1.
[0124] According to the above optional addition, the scheduling device is further configured to transmit the processing sequence to the line controller and to command the line controller for the processing line to process the ensemble of semi-products according to the processing sequence.
[0125] Before the initialization phase P01 , the method optionally includes setting of method parameters, i.e. of algorithm parameters. The parameters of the method according to the invention are typically a maximum length of a bridge at each phase kmax feas and kmax cost respectively), and a set of probabilities for four base moves, at each step k of the iteration, parameters that will described in more detail in the following of the description. For the feasibility phase P02, tests have shown to perform better with very low move a1 probability, while for the cost phase P03, a uniform distribution of probabilities has shown to obtain wider exploration and best results. Optionally, the cost phase P03 adds an extra parameter for the gain threshold allowed to worsen in the second cut being tested. The higher the value of parameter cost_threshold_insertion, the more exploration but the lower probability for the cost gain to eventually close the bridge.
[0126] In initialization phase P01 , the list of the semi-products of said ensemble is acquired by the scheduling device.
[0127] The data acquired by the scheduling device specify in particular:
[0128] - the ensemble of semi-products to be processed;
[0129] - what transitions, from one semi-product of the ensemble to another, are forbidden transitions (transitions to be avoided as much as possible), also called infeasible transitions, or else unworkable transitions; the other transitions being called allowed transitions, also called feasible transitions, or else workable transitions;
[0130] - for each feasible transition, and optionally also for the infeasible transitions, a transition cost Cij associated to the transition considered.
[0131] The data relative to the transitions may, like here, take the form of a cost matrix C. The cells of the cost matrix C are the transition costs Cy, each positive or null for feasible transitions. By convention, the cells of the cost matrix corresponding to infeasible transitions may, like here, have cy=-1 . This practical convention allows an easy representation of the problem with a single cost matrix C from which one can obtain the adjacency matrix A, representative of the graph Gr corresponding to this scheduling problem.
[0132] In the adjacency matrix A, the matrix cell a^ equals 1 (or another fixed, non-zero value) when the transition from the semi-product i to the semi-product j is feasible, and equals 0 if it is a infeasible transition. In other words, ay= 1 when an arc exists between nodes i and j of the graph Gr, and j=O if there is no arc between these two nodes.
[0133] For feasible transitions, each transition cost Cy may represent an estimated impact of the transition considered on the final quality of the semi-product (i.e.: on the adequacy between target properties expected for the semi-product - such as a target tensile strength, coating thickness, or surface roughness - and actually properties obtained at the end of the processing, as predicted using a model of the processing for instance) and / or on the productivity of the line (rate of production, amount of material or energy required). More precisely, the more negative the estimated impact, the highest the transition cost. The transition cost may be estimated based on the discontinuities between the properties of the semi-products of the transition considered. For instance, for a CGL, these transition costs could be assigned a penalty or bonus depending on the discontinuity in width, thickness, or zinc coating weight between two successive coils. For instance, the more the zinc coating weight differs between two coils, the more the penalty increases. Alternatively, the transition costs may be estimated more finely, by determining the consequence, on the process settings, of the semi-product change at the transition, and then determining the consequence of the modification of the process settings onto the quality or productivity, based on a physical model / simulation of the process, as described in document WO 2021 / 094883 A1 , for instance. In alternative embodiments, the method may comprise the determination of the transition costs, based on the discontinuity of the semi-product properties, and / or on the consequence of this discontinuity on the process.
[0134] The data acquired may comprise inverses of the transition costs, 1 / cy, instead of transition costs, in alternative embodiments (indeed, providing values that are all the smaller as the transition impact is low is also a possible way to specify transition costs, to be representative of such costs).
[0135] In other words, a Constrained Asymmetric Travelling Salesman Problem (CATSP) is formally defined as follows: given a directed weighted graph G = (V, E), where V is the set of vertices or nodes and E is the set of weighted edges or arcs between nodes, with given weights cost q7for each arc (i, / ) linking nodes i and j, find the minimum-cost Hamiltonian path.
[0136] In the CATSP, not all nodes are linked by arcs. An adjacency matrix A of the graph G stores the existing arcs, having values atj = 1 for existing arcs between nodes i and j, and at = 0 if there is no arc between them. The cost matrix C of the graph G stores all the weights or costs q7> 0 for existing arcs (i,j), and by convention has values chfe= -1 for non-existing arcs (h, !F). This means that no such pair of nodes (h. k) are allowed to be sequenced consecutively in the solution sequence S.
[0137] I denotes the number of infeasibilities, or violated constraints, accounted as the number of occurrences of chfe= -1 in a sequence solution S. A solution S is said feasible if and only if I = 0. / verifies the following equation:
[0138] [Eq 1]
[0139] For the fitness function F (total cost of the sequence S) only positive costs are considered, according to the following equation:
[0140] [Eq 2] Here, the objective is to minimize the number of infeasibilities I as first priority, and the total cost of the sequence F as second priority. For feasible instances, the target is thus I = 0, and advantageously to minimize F.
[0141] As shown in Figure 2, the feasibility phase P02 comprises the following steps, executed by the scheduling device:
[0142] + the identifying step S01 including identifying a candidate path, on said graph G, the candidate path starting from a start node start up to an end node end, as shown in Figures 3 to 10, and representing a sequence of semi-products to be processed one after the other on the processing line, the candidate path including all the semi-products of the acquired list; and for the candidate path:
[0143] + a first searching step S02 including searching along said candidate path for an infeasible transition between two successive nodes, successively called infeasibility start node ao and infeasibility end node ai, and representing an infeasibility between two semiproducts; if an infeasible transition is found:
[0144] + a second searching step S04 including searching for a movable segment So to be moved; a respective segment being a succession of nodes linked by one or more directed arcs, a respective segment being traversed in a traverse direction among a forward direction from the start node start to the end node end and a reverse direction from the end node end to the start node start, the movable segment So being of a type chosen from among the group comprising: a first type insertion corresponding to a segment of the candidate path suitable to be joined to the infeasibility start node ao, and a second type move a1, also denoted move ai in Figures 4-6, corresponding to a segment having at one end the infeasibility end node ai and being suitable to be shifted within the candidate path; the movable segment So being of a kind chosen from among the group comprising: a forward kind with the traverse direction being the forward direction, and a reverse kind with the traverse direction being the reverse direction; if a movable segment So is found:
[0145] + a moving step S06 including moving the movable segment So, -So;
[0146] + until a stop condition is reached, carrying out successively one or more additional iterations of the first searching S02, second searching S04 and moving S06 steps on the candidate path successively modified; the processing sequence being determined from the candidate path resulting from the last iteration. Advantageously, during the identifying step S01 , the candidate path is a random path identified in a pseudo-random manner.
[0147] Advantageously, if no infeasible transition is found during the first searching step S02, the processing sequence is determined from the candidate path.
[0148] Advantageously, during the second searching step S04, if the movable segment So is of the reverse kind, the movable segment So that is searched is a succession of nodes which, when traversed in the reverse direction, are linked by one or more directed arcs corresponding only to feasible transitions.
[0149] Optionally, the feasibility phase P02 further comprises, before the second searching step S04, a selecting step S03 including selecting - from among the first type insertion and the second type move a1 - the type of the movable segment So to be searched during the second searching step. The selection of the type of the movable segment So is preferably a pseudo-random selection. The pseudo-random selection is advantageously carried out according to respective target probabilities. The target probability for the first type is typically greater than the target probability for the second type.
[0150] Advantageously, the selecting step S03 further includes selecting - from among the forward kind and the reverse kind - the kind of the movable segment So to be searched during the second searching step S04. The selection of the kind of the movable segment SO is preferably a pseudo-random selection. In other words, the forward kind corresponds to a segment to be traversed in the forward direction, and the reverse kind corresponds to a segment to be traversed in the reverse direction.
[0151] Further advantageously, the pseudo-random selection of the type and of the kind is carried out according respectively to a first target probability for the combination of the first type and the forward kind, a second target probability for the combination of the first type and the reverse kind, a third target probability for the combination of the second type and the forward kind, and a fourth target probability for the combination of the second type and the reverse kind.
[0152] In the example of below Table 2, the first target probability is equal to the second target probability, the third target probability is equal to the fourth target probability, the first target probability is greater than the third target probability, and the second target probability is greater than the fourth target probability.
[0153] [Table 2]
[0154] Insertion Insertion Move a1 Move a1 forward reversed forward reversed
[0155] Probability 0.45 0.45 0.05 0.05 Optionally, if the movable segment So is of the reverse kind, the feasibility phase P02 further comprises, before the moving step S06, an inversing step S05 including inversing the found movable segment So, said moving step S06 being then carried out with the inversed segment -So.
[0156] Optionally, the feasibility phase P02 further comprises, after the moving step S06, a checking step S07 for checking if the infeasible transition is resolved in the candidate path modified with the moved segment So, -So.
[0157] Optionally, the feasibility phase P02 further comprises, for each iteration of the first searching step S02, one or several sub-iterations of the second searching S04 and moving S06 steps, each new sub-iteration of the second searching step S04 being carried out with an infeasible transition remaining in the forward direction, starting from the end of the movable segment So if the movable segment So is of the first type insertion, or starting from the infeasibility start node ao if the movable segment So is of the second type move a1.
[0158] As an optional addition, the feasibility phase P02 further comprises a perturbation move step S08 before each new iteration of the first searching step S02; the perturbation move step S08 including:
[0159] - detecting all the infeasible transitions in the candidate path,
[0160] - creating a list with the respective segments between two successive infeasible transitions,
[0161] - shuffling the list randomly,
[0162] - reordering the segments according to the shuffled list to obtain a new version of the candidate path, and the new first searching step S02 being then done with the new version of the candidate path.
[0163] Optionally, the stop condition of the feasibility phase P02 is that said candidate path includes no more infeasible transition, or else that a predefined number of iterations has been carried out.
[0164] Thus, the invention, in particular the feasibility phase P02, performs variable K 3-opt moves to improve tours iteratively. Starting from an initial solution sequence, either random or built with a simple heuristic like nearest neighbor, the invention iteratively attempts a chain of 3-opt moves to improve it, consolidating the chains of moves that succeed into a new sequence to be improved in next iteration. The 3-opt moves target a given arc of the sequence to be improved, and go inserting between its two nodes other segments of the sequence, building a bridge that eventually may be closed-up. The method according to the invention is therefore called path bridging. Each iteration of the method according to the invention performs a chain of K 3-opt moves, as depicted in Figure 3. Each iteration performing a chain of K 3-opt moves corresponds to a respective loop of index i in the below example of pseudo-code in Table 3.
[0165] The 3-opt moves implemented for the Path Bridging are engineered so as to never add constraints, and are explained in detailed hereinafter. Following computational results,
[0166] 2-opt as a basic move due to its poor effectiveness in asymmetric problems, as well as the
[0167] 3-opt move that implies inversion of two segments have been disregarded. Advantageously, at each step during an iteration, one of the moves is chosen pseudo randomly, based on the set of predefined probabilities, such as the one according to above Table 2. The moves that imply an inversion of one of the segments have a lower probability assigned.
[0168] To handle constraints, a very big penalty could be used, having in this case to minimize:
[0169] [Eq 3]
[0170] The skilled person will note that any arbitrary choice of the penalty would impact the choice of an acceptance criterion threshold when trying to escape local optima.
[0171] It is very likely for the initial solution to be unfeasible, so improvements in it should target to reduce I. The Path Bridging targets infeasibilities to be removed from the input sequence and substituted by valid (existing) arcs. Trying to reduce I while not worsening F is a difficult endeavor, as it is easier to have cheaper solutions if more constraints are violated. This is the reason why the method according to the invention performs advantageously successively two phases, namely the feasibility phase P02 and then the cost phase P03.
[0172] As a key advantage of the method according to the invention, all the moves (both in the feasibility phase P02 and in the cost phase P03) are selected in order to never add an infeasibility to the current solution. Accordingly, an exhaustive check of constraints violations is performed at each move, guiding the selection of the three arcs to be cut, and rending the 3-opt specific moves chosen very efficient. The 3-opt moves according to the invention will be described in more details hereinafter.
[0173] In the feasibility phase P02, the target is to improve the initial solution to get a feasible solution. To do this, this feasibility phase P02 completely overlooks the costs, caring only to do moves that gradually get the solution down to I = 0, or at least gradually reduces I (should the target 1=0 not be reachable). The reason behind is that the cost structure of the problem can be adverse or favorable: if the feasible sequences happen to have big costs arcs, it is usually more difficult for a constructive algorithm to find feasible solutions; while if all the costs in a feasible sequence were 0, it can intuitively be grasped that this will largely help direct the search to a feasible solution. By not looking at costs, the method according to the invention is immune to this issue. At each iteration, the feasibility phase P02 performs the designed 3-opt moves targeting one of the infeasible arcs of the sequence randomly. A chain of moves is performed until the sequence is feasible or a maximum chain length is reached. The chain ends (closing-up of the bridge) when the nodes a0(extreme of the bridge) and a of the target arc eventually link (see Figure 3). In this feasibility phase P02, all candidates for the third cut of the move are checked exhaustively to see if any of them closes up the bridge, as an effective method to boost performance. Only in this feasibility phase P02, at the end of each iteration, a perturbation move is advantageously performed during the perturbation move step S08 to help escape possible local optima. When I = 0 or a maximum number of iterations is reached, the feasibility phase P02 ends. An example of pseudo-code for this feasibility phase P02 is given in below Table 3.
[0174] [Table 3]
[0175] Algorithm 2 PerformFeasibilityPhase(S) _
[0176] 1 P <— AssignMovesProbabiltiesFeasibility
[0177] 2 M — ListOfMovesFeasibility
[0178] 3 i ^ O
[0179] 4 infeasible_arcs <— LocatelnfeasibleArcs(S)
[0180] 5 while (i < imax_feas) and infeasible_arcs 0 do
[0181] 6 k ^ O, S’
[0182] 7 target_arc <— GetTargetArclnfeasibility(infeasible_arcs)
[0183] 8 while (k < kmax feas) do
[0184] 9 move <— ChooseLSFeasibilityMovePseudoRandomly(M, P)
[0185] 10 cuts_candidates <— ChooseFeasibillityCuts(S’, move, target_arc)
[0186] 11 cuts, closing_up_ok <—
[0187] ExhaustiveSearchClosingUpFeasilityThirdCut(cuts_candidates)
[0188] 12 S’ <— PerformMove(S’, move, cuts)
[0189] 15 end while
[0190] 16 else
[0191] 17 closing_up_ok <— ExhaustiveSearchClosingUpFeasilityStartEndNodesO
[0192] 18 if closing_up_ok
[0193] 19 S <— PerformMoveStartEndNodesO
[0194] 20 end while
[0195] 21 end if
[0196] 22 k — k+1
[0197] 23 end while
[0198] 24 S PerformPerturbationMove(S)
[0199] 25 infeasible_arcs <— LocatelnfeasibleArcs(S)
[0200] 26 i <— i + 1
[0201] 27 end while In the above example of pseudo-code, it is first pointed out that each iteration performing a chain of K 3-opt moves corresponds to a respective loop of index i, and each 3-opt move among the K 3-opt moves corresponds to a respective loop of index k. In this example of pseudo-code, line 7 corresponds to the first searching step S02; line 9 corresponds to the selecting step S03; lines 10 and 11 correspond to the second searching step S04; line 12 corresponds to the moving step S06; line 13 corresponds to the checking step S07, and line 24 corresponds to the perturbation move step S08.
[0202] The cost phase P03 comprises, for each candidate path identified during the feasibility phase P02, one or more successive iterations of the second searching S04 and moving S06 steps of the feasibility phase P02; and a cost computing step S10 after each moving step S06, the cost computing step S10 including computing a cost variation by adding the transition costs Cij for the new transitions corresponding to the new arcs resulting from the moved segment and by subtracting the transition costs Cij for the removed transitions corresponding to the arcs removed further to the moved segment; each second searching step S04 being carried out starting from one of the transitions of the candidate path.
[0203] Advantageously, the first target probability, the second target probability, the third target probability and the fourth target probability vary from the feasibility phase P02 to the cost phase P03. During the cost phase P03, the first target probability, the second target probability, the third target probability and the fourth target probability are preferably substantially equal to each other, as shown in the example of below Table 4.
[0204] [Table 4]
[0205] Insertion Insertion Move a1 Move a1 forward cost reversed cost forward cost reversed cost
[0206] Probability 0.25 0.25 0.25 0.25
[0207] In other words, the cost phase P03 has a similar execution scheme than the feasibility phase P02, though now the moves are chained to reduce the cost. Typically, the cost phase P03 starts from the solution sequence obtained in the feasibility phase P02. An advantageous design choice for the method according to the invention is that this cost phase P03 only accepts feasible base moves. That is, by design, the 3-opt moves performed in the chain never add infeasibilities, and the closing-up of the bridge does not allow to do it neither -note that if the problem is unfeasible, I > 0, the method works the same, only it never allows to increase the number of infeasibilities I. Differently to infeasibilities, costs are allowed to worsen to a certain extent along the chain of 3-opt moves, as a mechanism to escape local optima. Following computational tests, the best target arc for starting each iteration is not a high-cost-arc to be fixed, as it could be intuitively imagined, but a random arc of the sequence. This has proved to yield much better exploration. Another difference with the feasibility phase P02 is that the cost phase P03 does not perform an exhaustive check for the third cut, but chooses a random third cut candidate. The closing-up of the bridge is performed when the net gain (i.e., the cost gain minus the closing arc) is positive. An example of pseudo-code for this cost phase P03 is given in below Table 5.
[0208] [Table 5]
[0209] Algorithm 3 PerformCostPhase(S) _
[0210] 1 P <— AssignMovesProbabiltiesCost ListOfMovesCost
[0211] 4 while (i < imax_cost) do
[0212] 5 k ^ O, S’
[0213] 6 target_arc <— GetRandomArc(S’)
[0214] 7 while (k < kmax cost) do
[0215] 8 move <— ChooseLSCostMovePseudoRandomly(M, P)
[0216] 9 cuts <— ChooseCostCuts(S’, move, target_arc)
[0217] 10 S’ <— PerformMove(S’, move, move_arcs)
[0218] 11 if CheckClosingUpCostOK(cuts)
[0219] 12 S ^ S’
[0220] 13 end while
[0221] 14 end if
[0222] 15 k ^ k+1
[0223] 16 end while
[0224] 17 i «- i + 1
[0225] 18 end while
[0226] In the above example of pseudo-code, it is also pointed out that each iteration performing a chain of K 3-opt moves corresponds to a respective loop of index i, and each 3-opt move among the K 3-opt moves corresponds to a respective loop of index k.
[0227] In this example of pseudo-code, line 8 corresponds to the selecting step S03; line 9 corresponds to the second searching step S04; line 10 corresponds to the moving step S06; and line 11 corresponds to the cost computing step S10.
[0228] Complementary practical aspects
[0229] Feasibility moves
[0230] The possible moves performed with the method according to the invention, in particular during the second searching S04 and moving S06 steps, will be now described in more detail.
[0231] Attending to the chaining of the moves, it is always targeted an initial arc (ao, ai) to be removed by eventually linking the end of the bridge to the infeasibility end node ai. Therefore, two possible 3-opt moves are considered: (1 ) inserting a segment after the infeasibility start node ao, also call insertion, and (2) displacing a segment extending from infeasibility end node ai, and inserting it after c0, also called move a1, as shown in Figure 4. This distinction is important for the method according to the invention from the point of view of the chaining of moves, as it impacts which node of the current target arc (ao, ai) will continue to be in the target arc for the next 3-opt move. Following this scheme and depending on whether or not an inversion of the target segment is done, there are four base moves used by the method according to the invention: insertion forward, insertion reversed, move a1 forward and move a1 reversed, depicted in Figure 5. Each has two possible cases depending on the position of the target arc (ao, ai).
[0232] At the feasibility phase P02, the base moves advantageously include an exhaustive check to close-up the bridge, performed with all the obtained candidates for the third cut, a technique that proves to boost the efficiency of the iterations.
[0233] Additionally, if the base move insertion or move a1 does not succeed, an additional chance special move is tried out: the method checks exhaustively the start and end nodes as a relaxed third cut, for all the second cut candidates. It tries to move start and end nodes, without inversion. This additional chance special move corresponds to lines 16-19 of the example of pseudo-code in above Table 3. For instance, in the move insertion, if no regular move candidate closes the bridge, the last chance checks all the possible segments start- po and b -end to see if they can be inserted in the first cut (ao, ai) of the 3-opt move. Likewise, move a1 checks for all the possible segments ai-po that could be inserted before the start node start, and if the segment ai-end could be inserted in the cut (x0, Xi). These special moves are shown in Figure 6. These moves have relaxed conditions, because nodes involving start or end of the sequence need not link to another node. These moves have proved in the experimental tests to be effective for unlocking situations of stagnation in local optima, and are only implemented in the feasibility phase P02. They exploit the fact that the CATSP looks for paths instead of tours, here.
[0234] Finally, at the end of each iteration -once the chain has finished-, the perturbation move, or kick, is advantageously performed to help escape possible local optima. Hereinafter are described in detail the four base moves of the method according to the invention and this extra perturbation move.
[0235] Firstly, the two moves of the first type insertion are hereinafter described.
[0236] If the movable segment So is of the first type insertion, the second searching step is carried out in an exhaustive manner for finding a segment:
[0237] - which is joinable by its extremity nodes to both the infeasibility start node ao and the infeasibility end node ai, or at least joinable by one extremity node to the infeasibility start node ao;
[0238] - and for which the junction of the path where the segment was removed is authorized through a respective feasible transition.
[0239] Advantageously, if the movable segment So is of the first type insertion, the second searching step S04 typically includes: - looking for at least one node b linked to the infeasibility start node ao via a respective directed arc in the graph,
[0240] - choosing, as a first chosen node bi, one from among said at least one node b linked to the infeasibility start node ao,
[0241] - setting the node bo; b2, called first set node bo; b2, just before the first chosen node bi in the candidate path according to the traverse direction of the movable segment So,
[0242] - looking for at least one node p ; no1linked to the first set node bo; b2 via a respective directed arc in the graph,
[0243] - choosing, as a second chosen node pi ; n0, one from among said at least one node pi1; no1linked to the first set node bo; b2,
[0244] - setting the node po; m, called second set node po; m, just before the second chosen node pi ; n0in the candidate path according to the traverse direction of the movable segment So, the movable segment So being - according to its traverse direction - a segment between an initial node formed by the first chosen node bi and a final node formed by the second set node po; m, and during the moving step S06, the moved segment So;-So is moved just after the infeasibility start node ao in the candidate path according to the forward direction, the initial node bi of said segment So;-So being linked to the infeasibility start node ao.
[0245] Advantageously, at least one choosing of this second searching step, and preferably each choosing of this second searching step, is a random choosing
[0246] Still advantageously, during the checking step S07, checking if the infeasible transition is resolved in the candidate path modified with the moved segment So;-So is done by determining if the second set node po; forming the final node of the moved segment So;-So is linked to the infeasibility end node ai via a respective directed arc in the graph.
[0247] In Figure 7, the first of the four base moves is called insertion forward. A target arc (ao, ai ) is defined at the start of the iteration, which corresponds to one infeasibility, typically a randomly chosen infeasibility, to be fixed and forms the first cut for the 3-opt move. It is looked for other two cuts that will get a segment, located between the two cuts, to be inserted after the infeasibility start node ao, without adding infeasibilities. Therefore, it is looked into the sequence for all the candidate nodes bi that have an incoming arc from the infeasibility start node ao, which are put in a list Bi. A node bi is randomly selected from this list and its previous node is set in the sequence as bo, which gives the second cut (bo, bi) of the 3-opt move. Now it is looked for the third cut to be done; for that, a list Pi of nodes pi having an incoming arc from node bo is built and placed to the right of the node bi (no inversion of the segment). If this list Pi is empty, the actions are the following: backtrack to the list Bi, dropping from the list Bi the failed node bi just tested (as a tabu list approach), and then choose a new random node bi from the new list Bi (with the failed node bi removed). If the list Pi is not empty, one node pi is chosen and its previous node is set in the sequence as p0, getting the third cut (p0, pi) of the 3-opt move.
[0248] In the feasibility phase moves, an exhaustive check of the final closing-up of the bridge is done. For each node pi in the list Pi, its previous node is set in the sequence as po. If the arc (p0, ai) is feasible, the stop condition is reached and the third cut (p0, pi) that will closeup the bridge is set, thereby resolving the initial infeasibility. If no arc (p0, ai) resolves, a random node pi is chosen from the list Pi, thereby setting the third cut (p0, pi) of the 3-opt move.
[0249] The three cuts are thus defined, knowing that the movable segment bi-po, also denoted So, can be inserted after the infeasibility start node ao, without increasing the number of infeasibilities in the sequence. The movable segment So is then moved after the infeasibility start node ao.
[0250] If the arc (p0, ai) is feasible, the bridge is closed up, thereby consolidating the improved sequence and ending the iteration: the targeted infeasibility is resolved, as illustrated by line 13 of the example of pseudo-code in above Table 3.
[0251] If the arc (p0, ai) is infeasible, a new target arc (a’o, a’i) is set, typically with this infeasible arc (p0, ai), and a next move of the iteration is launched, continuing with one of the four base moves. During these sub-iterations, the modifications of the sequence are chained, i.e. successively linked, starting from the infeasibility that the method did not manage to eliminate, but only to move; and each sub-iteration corresponds to a respective loop of index k in the example of pseudo-code in above Table 3. This sub-iteration also corresponds to the loopback on step S03 in Figure 2.
[0252] In Figure 8, the second of the four base moves is called insertion reversed, and works similarly than the first one, namely the move insertion forward, with the difference that the segment to be inserted is inverted before being moved. An infeasible target arc (ao, ai) is still defined as the first cut of the 3-opt move. But it is known in advance that the movable segment is going to be inverted, so the feasibility checks performed are different. In this case, it is looked for the list Bi of candidate nodes bi that have an incoming arc from the infeasibility start node ao. One node bi is randomly selected in the list Bi and its posterior node is set as b2, getting the second cut (bi, b2) of the 3-opt move. Now it is looked for the third cut to be done; for that, it is looked backwards, i.e. in the reverse direction, from the node bi into the sequence, checking all arcs that link to its previous node if inverted, until it is found the node that does not comply with this. The reason is that the movable segment is going to be inverted, so once inverted all the arcs in the segment must exist as a valid edge. For those nodes complying with the inversion, a list Noof candidate nodes n0that have an outgoing arc to node b2 is made. If this list Nois empty, the actions are the following: backtrack to the list Bi, dropping from the list Bi the failed node bi just tested (as a tabu list approach), and then choose a new random node bi from the new list Bi (with the failed node bi removed). If the list Nois not empty, one node n0is chosen and its following node is set in the sequence as m, getting the third cut (n0, ni) of the 3-opt move.
[0253] An exhaustive check of the final closing-up of the bridge is also performed. For each node n0in the list No, its following node in the sequence is set as m , and it is further checked if the arc (m, ai) is feasible, preferably in an exhaustive manner for each node . If this condition is met, the stop condition is reached, and the third cut (n0, ni) is set. The three cuts of the 3-opt move are now defined, knowing that the movable segment ni-bi, also denoted So, which becomes after inversion bi-ni , also denoted -So, can be inserted, further to this inversion, after the infeasibility start node ao, without increasing the number of infeasibilities in the sequence. If the arc (m, ai) is feasible, the bridge is closed up, thereby consolidating the improved sequence and ending the iteration: the targeted infeasibility is resolved. If no arc (m, ai) is feasible, a new target arc (a’o, a’i) is set, typically with this infeasible arc (m, ai), and a next move of the iteration is launched, continuing with one of the four base moves.
[0254] Secondly, the two moves of the second type move a1 are now described.
[0255] If the movable segment So is of the second type move a1, the second searching step S04 is carried out in an exhaustive manner for finding a segment:
[0256] - which is joinable by its extremity nodes to two respective successive nodes preceding the infeasibility start node ao;
[0257] - and for which one extremity node is the infeasibility end node ai.
[0258] Advantageously, if the movable segment So is of the second type move a 1, the second searching step S04 includes:
[0259] - looking for at least one node xo*; xijlinked to the infeasibility end node ai via a respective directed arc in the graph,
[0260] - choosing, as a first chosen node x0; Xi, one from among said at least one node xo*; xijlinked to the infeasibility end node ai,
[0261] - setting the node Xi ; x0, called first set node Xi ; x0, just after the first chosen node x0; xi in the candidate path according to the traverse direction of the movable segment So,
[0262] - looking, after the infeasibility end node ai in the forward direction, for at least one node po1; bi1linked to the first set node xi ; x0via a respective directed arc in the graph,
[0263] - choosing, as a second chosen node po; bi, one from among said at least one node po1; b linked to the first set node xi ; x0, - setting the node pi ; b2, called second set node pi ; b2, just after the second chosen node po; bi in the candidate path according to the forward direction, the movable segment So being - according to its traverse direction - a segment between an initial node formed by the infeasibility end node ai and a final node formed by the second chosen node po if the kind of the movable segment So is the forward kind; or else a segment between an initial node formed by the second chosen node bi and a final node formed by the infeasibility end node ai if the kind of the movable segment So is the reverse kind, and during the moving step S06, the moved segment So;-So is moved between the first chosen node x0, Xi and the first set node Xi , x0in the candidate path.
[0264] Advantageously, at least one choosing of this second searching step, and preferably each choosing of this second searching step, is a random choosing
[0265] Still advantageously, during the checking step S07, checking if the infeasible transition is resolved in the candidate path modified with the moved segment So;-So is done by determining if the second set node pi, b2 is linked to the infeasibility start node ao via a respective directed arc in the graph.
[0266] In Figure 9, the third of the four base moves is called move a1 forward, and aims at taking out the infeasibility end node ai from the target arc in next iteration. As for the previous base moves, the infeasible target arc (ao, ai) is still defined as the first cut of the 3-opt move, but now it is looked for a cut where to insert a segment starting in the infeasibility end node ai, effectively removing the infeasibility end node ai from the target cut for next iteration (if this one does not close-up the bridge). A list Xoof all the candidate nodes x0that have an outgoing arc to the infeasibility end node ai, is generated, and one node x0is randomly selected from this list Xo, and then its following node is set as Xi. This gives the second cut (x0, Xi) of the 3-opt move where to insert the segment that includes the infeasibility end node ai. Now it is looked in the sequence for all the nodes po placed after the infeasibility end node ai and having an outgoing arc to node Xi previously set, building a list Po of such nodes p0, and then selecting one node po randomly. If this list Po is empty, the actions are the following: backtrack to the list Xo, dropping from the list Xothe failed node xo just tested (as a tabu list approach), and then choose a new random node x0from the new list Xo(with the failed node x0removed). If the list Po is not empty, one node po is chosen and its following node in the sequence is set as pi, getting the third cut (p0, pi) of the 3-opt move.
[0267] Additionally, for all nodes po an exhaustive closing-up check is performed by looking for one respective node po whose following node pi in the sequence has a feasible incoming arc (ao, pi) from the infeasibility start node ao. If such node pi is found, the third cut (p0, pi) is set, before performing the move of the movable segment ai-po, also denoted So, after the node x0, and closing-up the bridge consolidating the new sequence and ending the iteration successfully. We have fixed the targeted infeasibility. If no arc (ao, pi) is feasible, a random candidate cut (p0, pi) is chosen by randomly choosing a node po from the list Po and performing the move of the movable segment ai-po. Further, a new target arc (a’o, a’i) is set, typically with this infeasible arc (ao, pi), and a next move of the iteration (next k-step) is launched, picking again one of the four base moves.
[0268] In Figure 10, lastly, the fourth of the four base moves is called move al reversed, and follows a similar logic than the third one, namely the move move a 1 forward, though again here it shall be taken care of the inversion of arcs inside the segment to be moved. As for the previous base moves, the infeasible target arc (ao, ai) is still defined as the first cut of the 3-opt move. Then, a list Xi of all the candidate nodes Xi with an incoming arc from the infeasibility end node ai is generated and one node Xi of this list Xi is selected, setting the node previous to the selected node Xi as x0. This gives the second cut (x0, Xi) of the 3-opt move. Is it now checked consecutively for all pair nodes after the infeasibility end node ai whose arc inverted is a valid arc, until the first node non-compliant with this condition is found. From all these compliant nodes, a list Bi of nodes bi that have an incoming arc from the node bi is made.
[0269] If this list Bi is empty, the actions are the following: backtrack to the list Xi, dropping from the list Xi the failed node Xi just tested (as a tabu list approach), and then choose a new random node Xi from the new list Xi (with the failed node Xi removed). If the list Bi is not empty, one node bi is chosen and its following node in the sequence is set as b2, getting the third cut (bi, ba) of the 3-opt move.
[0270] Additionally, for all nodes bi an exhaustive closing-up check is performed by looking for one respective node bi whose following node b2 in the sequence has a feasible incoming arc (ao, ba) from the infeasibility start node ao. If such node b2 is found, the third cut (bi, ba) is set. The three cuts of the 3-opt move are now defined, knowing that the movable segment ai-bi, also denoted So, which becomes after inversion bi-ai, also denoted -So, can be inserted, further to this inversion, after the node xo, without increasing the number of infeasibilities in the sequence. If the arc (ao, ba) is feasible, the bridge is closed up, thereby consolidating the improved sequence and ending the iteration: the targeted infeasibility is resolved. If no arc (ao, ba) is feasible, a new target arc (a’o, a’i) is set, typically with this infeasible arc (ao, ba), and a next move of the iteration is launched, continuing with one of the four base moves.
[0271] Perturbation move In Figure 1 1 , the perturbation move includes a ( / + l)-opt move, being I the number of infeasibilities. All the infeasible arcs are selected as cuts for the kick, before building a list with the segments, each one between two successive cuts, and then shuffling the list randomly. The segments are then sequenced in the obtained random order. This is a simple yet effective method to perturb the sequence without adding infeasibilities.
[0272] The perturbation move is not a base move inside the chain, it is performed at the end of each iteration, no matter if it has been successful in reducing infeasibilities or not, and only in the feasibility phase P02.
[0273] Cost moves
[0274] At the end of the feasibility phase P02, a feasible sequence is found in a vast majority of the cases, as it will be observed hereinafter with the presented results. But the sequence was shuffled importantly during the feasibility phase P02, neglecting any consideration of costs.
[0275] Advantageously, the optional cost phase P03 therefore aims, after the feasibility phase P02, to optimize the costs, while still not allowing to incur in any infeasibility. For this, a cost-version of the four base moves previously described for the feasibility phase P02 is used. The principle for the cost moves is the same, and essentially differs in that a check of costs in the concerned arcs is added up to them. The calculation of (cumulated) cost gains renders the method according to the invention very efficient, because it is not necessary to evaluate the complete sequence fitness function even once in all the execution. This is a key factor for efficiency.
[0276] The four moves keep the same mechanism to look for cuts that will assure a feasible move, except that the exhaustive check to close the bridge is not done. On top of this mechanism, a computation of the gain in costs is done by adding the costs of the nodes relinked with the move, and subtracting the costs of the arcs being removed. Advantageously, by design, a condition on costs for the arcs is required to be chosen for each move, in order to gain efficiency in the exploration. This mechanism looks somehow greedily for promising cuts in terms of costs, increasing the chances of succeeding in the final closing-up, and avoiding inefficient explorations that result in a high number of idle iterations.
[0277] For the first cost move insertion forward cost, only candidates node bi verifying the relation cost(a0, ^i) < cost(a0, a±) + threshold are considered. To define the end po of the movable segment bi-po, the set of valid candidates nodes pi is restricted to those verifying the relation cost^b^ p^ < cost^ag.a^ - costfao.b . Once the movable segment bi-po has been defined by its cuts (bo, bi ) and (p0, pi), the cost gain is computed for the move (before final closing-up) as the sum of the new arcs minus the arcs removed, according to the following equation:
[0278] [Eq 4] wherein cost(ao,Qi) represents the cost associated to each respective cut (ao,Oi) between the nodes Oo and ai.
[0279] If the computed cost gain is negative, another candidate node pi is tried. Once the condition is met and the cost gain is positive, the closure of the bridge is checked. If the node po links to the infeasibility end node ai, i.e. if the arc (p0, ai) is feasible, the final cost gain is checked by requiring that the following condition costgain is met. If this condition is met, the bridge is closed-up and the iteration succeeds, consolidating the new sequence obtained. If the node po does not link to the infeasibility end node ai , i.e. if the arc (po, ai) is infeasible, or if the net cost gain is not positive, the iteration is continued with another move.
[0280] Figure 12 depicts this above described mechanism for the 3-opt move insertion forward cost applied during the cost phase.
[0281] The cost gain follows a trend along the iteration steps. The lower the cost gain at each step, the lower the likelihood of closure of the bridge. It is worth noting that the final condition for a net positive gain is always computed with different nodes in play, so sometimes a big, cumulated cost gain may not assure the closing-up, if the closing arc has a high cost, while other times a small cost gain can close-up if the new final arc has a small or no cost. Nevertheless, a higher cost gain increases importantly the chances for the closing-up, and this is the reason for the previous cost conditions that look to choose cuts that yield a higher cost gain.
[0282] The other three moves, namely insertion reversed cost, move a1 forward cost and move al reversed cost, follow these same considerations in order to choose the candidates for the 3-opt moves in the cost phase. Therefore, the cost phase P03 is similar for these other three moves, and will not be described in further detail. It is important though to pay attention to the moves with inversion. In these cases, the inverted links, already checked by the selection mechanism that assures feasibility, do not add infeasibility. But the costs, being asymmetric, will also change and thus must be computed in the cost gain. The hereinafter equation Eq 5 reflects the cost gain to be computed for the 3-opt move insertion reversed cost:
[0283] [Eq 5]
[0284] That is, it is necessary to add to the cost gain the cost of the inverted arcs inside the segment (as it is going to be inverted) and discount the costs of the current arcs inside the segment, as depicted in Figure 13.
[0285] The probabilities of each cost phase move are fine-tuned differently to the feasibility phase probabilities. A uniform distribution shows to perform better. Examples of such probabilities are shown in above Table 4.
[0286] Additional remarks
[0287] Thus, the method according to the invention truly handles constraints and asymmetry along all its logic: from the setting of a specific phase devoted to feasibility (which targets infeasibilities one by one), namely the feasibility phase P02, to the careful design of the selection of candidate cuts for the chained 3-opt moves (not to incur in violations or add too much cost with inversions), as well as to the choice of the base moves (disregarding 2-opt moves, and the 3-opt move that implies double inversion, and assigning lower probability to inversions). This makes the method according to the invention extremely efficient for the problem at hand for which it has been designed, as it will be apparent hereinafter.
[0288] Additionally, it was detected in computational tests that, when randomly selecting the third final cut from the candidates set, on many occasions the bridge was possible to be closed-up, but the cut actually selected did not closed -extending the number of k steps needed in the iteration or just making many iterations fail. This was improved by implementing the exhaustive checks for bridge closing-up in the feasibility phase P02, including the special moves concerning start and end nodes described above in view of Figure 6, further increasing efficiency and effectiveness.
[0289] The complexity added by the constraint handling technique is not huge, and it does not imply too much extra computation time, either, paying off well, as it will be reported in next section. This extra computation -indeed, the whole method- pays off better in highly constrained scenarios like the ones that are dealt with, and which are the reason to be of this method. In low-constrained scenarios, feasibility is obtained quite easily without this design, if not so efficiently.
[0290] The temporary consolidation of each individual move during the iteration’s steps implies a disjoint set of nodes for the sequential k-opt move under construction -i.e., the same nodes can be chosen more than once for the moves in the same iteration- without adding coding complexity. This feature of the Path Bridging brings a wider capability for exploration. It allows to run the iterations k steps with k > N, where N is the number of jobs to be sequenced (number of semi-products to be ordered, and then processed).
[0291] The perturbation move, performed as an exceptional move done outside the chain, tries to help escape local optima. As a design choice for efficiency, it only performs noninversion moves; a very low probability of success was estimated for such a kick move doing inversions in highly constrained instances. It is a mechanism that incorporates nonsequential moves into the method according to the invention: being a ( / + l)-opt move, where I is the number of infeasibilities, it includes moves that cannot be expressed as a series of chained moves when I = 3 and a pseudo 2-opt move (without inversion), when I = 1.
[0292] The parameters of the method are typically the maximum length of the bridge at each phase (kmax feas and kmax cost respectively), and the set of probabilities for the four base moves, at each step k of the iteration. For the feasibility phase P02, tests have shown to perform better with very low move a1 probability, while for the cost phase, a uniform distribution of probabilities has shown to obtain wider exploration and best results. The cost phase P03 adds an extra parameter for the gain threshold allowed to worsen in the second cut being tested. The higher the value of parameter cost_threshold_insertion, the more exploration but the lower probability for the cost gain to eventually close the bridge.
[0293] Experimental analysis
[0294] Experimental setting
[0295] In the following part of the description, the results obtained with the method according to the invention are presented.
[0296] The 30 challenging instances published in aforementioned Alvarez-Gil et al. (2022), gathered from real-world problems of a CGL and for which the paper has the benchmark results so far, were solved and analyzed. Each instance is described through a cost matrix named as cgl_n, where n is the size of the problem, varying between 17 and 114 coils. In this problem, the start and end of the sequence can be any node of the graph. For assuring statistical significance, this prior art method was run 30 times on every instance, exactly as it is done with the prior art method in Alvarez-Gil et al. (2022). The same fixed budget time of 120 seconds is used, no matter the size of the instances.
[0297] The CATSP-BC variant, published by Alvarez-Garcia et al. (2024), was also solved and analyzed, in this case with a budget computation time of 180 seconds, as in the publication. In this problem, start and end coils are fixed, which is related in the industry to the linking of campaigns at the CGL, as shown in Figure 1 . The instances are the same as in the previous study, only that now the start and end nodes are given. The start and end coils are the first and last nodes in the cost matrix. Again, this prior art method was run 30 times for each instance.
[0298] By running these prior art methods again in this experimentation, instead of just comparing with the published results, it was possible study computation times, a major motivation of this invention aside to effectiveness. The best cost and infeasibility results obtained with the prior art methods have shown to be totally in line with the original publications.
[0299] This computational analysis was run in an Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz machine with 32 GB of RAM. The method according to the invention was run with the following parameters: k_max_feas=k_max_cost=200, cost_threshold_insertion=1000, cost_threshold_move_a1 =0, backtrack! ng_tries_feas= backtracking_tries_cost=n, where n is the size fo the problem (that is, full backtracking to all binodes in insertion, and to all x0or %i nodes in move a1). The moves probabilities are those shown in Tables 2 and 4.
[0300] Below Table 6 shows the results for the experimental computation according to the invention, and comparison with the aforementioned prior art methods.
[0301] In the CATSP, it is looked for the minimum cost Hamiltonian path of the weighted graph defined by the cost matrix. The cost matrix includes adjacency information, storing a value of -1 for non-existing arcs. The prior art method is the AS hybrid, which embeds in the Ant System an effective LS named Interval Reconstruction, able to assure feasibility in 100% of the runs. This is the target of the work by Alvarez-Gil et al. (2022). The target of the invention is now to improve the cost results and the computation time, while keeping the robust behavior in feasibility. To be able to compare computation time, a new run of the AS hybrid was done, exactly with the same source code and parameters as in the published work.
[0302] Table 6 displays, for the two methods under comparison, the best cost achieved, the time in seconds to reach it t_last, and the number of infeasible solutions inf (i.e., some constraint violated) among the 30 runs. Columns best cost gap % and tjast gap % show the difference in percentage between the two methods, for cost and time, using the AS hybrid as the reference value. The skilled person can see that the method according to the invention, also denoted PB (for Path Bridging), is equally robust regarding feasibility, getting no infeasible solution in any of the 30 runs for the 30 instances. Regarding costs, the skilled person will observe the same best cost result (maybe the optimum) for the smaller instances, but from size 40 on Path Bridging performs better, obtaining overall better costs in 22 out of 30 instances. In 4 occasions, the improvement is over 12%. Regarding computation times, Path Bridging is faster in 22 occasions, 73% less time in average, and slower in 8 occasions, 205% more time in average. But in all the slower runs, the cost obtained is better, which can also be interpreted as the AS hybrid having got stuck in a local optimum kind of soon. A fairer comparison can be done if it is only looked at the 8 instances with same cost result, where Path Bridging performs an 88% faster on average to get the same fitness value.
[0303] [Table 6]
[0304] AS Comparison hybrid PB best inf best cost gap t_last gap
[0305] Instance best cost inf. t last cost t last % % cgl_17.txt 4422 0 0,06 4422 0 0 0,0 100,0 cgl_26.txt 5255 0 2,76 5255 0 1 ,22 0,0 55,8 cgl_28.txt 2833 0 17,05 2833 0 0,55 0,0 96,8 cgl_32.txt 4287 0 105,4 4035 0 0,36 5,9 99,7 cgl_33.txt 9071 0 13,31 9071 0 0,75 0,0 94,4 cgl_37.txt 4883 0 14,11 4883 0 1 ,16 0,0 91 ,8 cgl_38.txt 3887 0 0,35 3887 0 0,01 0,0 97,1 cgl_43.txt 5372 0 0,91 4899 0 2,02 8,8 -122,0 cgl_44.txt 10070 0 1 ,35 8949 0 0,84 11,1 37,8 cgl_45.txt 8012 0 18,21 7995 0 13,07 0,2 28,2 cgl_47.txt 5046 0 21 ,69 5046 0 5,45 0,0 74,9 cgl_48.txt 9909 0 115,08 9148 0 15 7,7 87,0 cgl_48b.tx 4348 0 22,22 4271 0 17,38 1,8 21 ,8 t cgl_50.txt 5369 0 37,44 5335 0 46,85 0,6 -25,1 cgl_51.txt 12668 0 9,49 12498 0 4,26 1,3 55,1 cgl_51 b.tx 4394 0 49,66 4146 0 8,56 5,6 82,8 t cgl_57.txt 8322 0 0,9 7999 0 6,36 3,9 -606,7 cgl_58.txt 3652 0 64,57 3652 0 4,17 0,0 93,5 cgl_60.txt 10327 0 40,62 10144 0 65,55 1,8 -61 ,4 cgl_66.txt 8400 0 105,47 8217 0 12,83 2,2 87,8 cgl_70.txt 9909 0 77,65 9235 0 4,34 6,8 94,4 cgl_70b.tx 5850 0 117,44 5454 0 34,07 6,8 71 ,0 t cgl_72.txt 8833 0 46,93 7664 0 21 ,18 13,2 54,9 cgl_73.txt 6571 0 23,84 6148 0 111 ,85 6,4 -369,2 cgl_76.txt 10219 0 53,96 9399 0 8,07 8,0 85,0 cgl_78.txt 10249 0 34,58 8985 0 10,71 12,3 69,0 cgl_81.txt 6957 0 14,85 6919 0 15,34 0,5 -3,3 cgl_88.txt 11039 0 16,1 10431 0 57,44 5,5 -256,8 cgl_107.tx 6345 0 20,51 5515 0 61 ,45 13,1 -199,6 t cgl_114.tx 9895 0 74,29 8685 0 50,18 12,2 32,5 t
[0306] In the CATSP-BC, it is looked for the minimum cost (s, e)-Hamiltonian path that starts in node s and ends in node e. Following the same criterion as Alvarez-Garcia et al. (2024), the first node of the cost matrix as start node, and the last node of the cost matrix as end node are fixed. Results are displayed in Table 7, where the skilled person can see a notable dominance of the Path Bridging when compared to the prior art method ACO-GA-IR. Table 7 has the same structure as in the previous experimental results. The budget computation time is here 180 seconds as in the original study, though the ACO-GA-IR is allowed to exceed this budget to the iteration in course (exactly as in the reference study). This is the reason for time values over 180 seconds in the two biggest size instances. To be able to compare computations times, the ACO-GA-IR was run again, with exactly the same parameterization, getting best cost and infeasibility results totally in line with the referred paper.
[0307] Regarding the effectiveness, the Path Bridging is 100% robust: there are no infeasible solutions in any of the 30 runs for the 30 instances, while the ACO-GA-IR has one infeasibility at cgl_44. The best cost achieved is also superior. Column best cost gap % shows the relative improvement in %, and the skilled person can see that the Path Bridging outperforms the ACO-GA-IR in 19 instances out of 30, getting the so far benchmark results for the CATSP-BC. Regarding the efficiency, it is looked at tjast, or last time of improvement of the solution, i.e. how many seconds it took to reach the best cost sequence. Comparing the two algorithms in column tjast gap %, the Path Bridging is conspicuously faster in most of the instances, reaching best cost in a lower level of time magnitude. In 23 out of 30 instances, the time improvement is over 90%, in 3 more instances over 80%. It only runs slower in instance cgl_70, but the skilled person will observe that it run slower to reach a better cost.
[0308] [Table 7]
[0309] CPLEX ACO- Comparison
[0310] GA- ACO-GA-IR
[0311] IR PB vs. PB
[0312] LB UB optimum best cost t_last best t_last best t_last gap % gap
[0313] Instance cost inf. (s) cost inf. (s) % cgl_17.txt 5602 5602 5602 5602 0 19,62 5602 0 0 0,0 100,0 cgl_26.txt 6522 6522 6522 6522 0 52,16 6522 0 0 0,0 100,0 cgl_28.txt 3654 3654 3654 3654 0 19,12 3654 0 2,21 0,0 88,4 cgl_32.txt 5482 7128 - 7128 0 65,64 7128 0 0,08 0,0 99,9 cgl_33.txt 10067 10068 - 10068 0 2,47 10068 0 0,2 0,0 91 ,9 cgl_37.txt 5673 5673 5673 5841 0 9,75 5673 0 0,27 2,9 97,2 cgl_38.txt 6089 7253 - 7253 0 10,23 7253 0 0 0,0 100,0 cgl_43.txt 5758 7343 - 7343 0 37,49 7343 0 2,29 0,0 93,9 cgl_44.txt 10912,9 10914 - 11122 1 102,05 10914 0 0,04 1,9 100,0 cgl_45.txt 8596 8596 8596 8596 0 30,8 8596 0 0,2 0,0 99,4 cgl_47.txt 5841 5992 - 6061 0 11 ,55 5992 0 0,2 1,1 98,3 cgl_48.txt 10322 10604 - 10664 0 38,55 10604 0 3,05 0,6 92,1 cgl_48b.txt 5073,9 5578 - 5852 0 56,32 5556 0 2,92 5,1 94,8 cgl_50.txt 6340 6610 - 6623 0 44,59 6610 0 1 ,87 0,2 95,8 cgl_51.txt 12666,7 12668 - 12670 0 142,74 12668 0 1 ,37 0,0 99,0 cgl_51 b.txt 4825 4991 - 5503 0 81 ,88 4991 0 8,05 9,3 90,2 cgl_57.txt 8371 ,5 9722 - 9722 0 88,9 9722 0 14,9 0,0 83,2 cgl_58.txt 5093 5093 5093 5093 0 172 5093 0 0,03 0,0 100,0 cgl_60.txt 9762,1 11601 - 12229 0 21 ,35 11601 0 15,09 5,1 29,3 cgl_66.txt 9191 9290 - 9368 0 15,11 9290 0 11 ,58 0,8 23,4 cgl_70.txt 10236 10237 - 10932 0 73,49 10237 0 97,07 6,4 -32,1 cgl_70b.txt 5798,7 6618 - 7248 0 201 ,54 6582 0 130,19 9,2 35,4 cgl_72.txt 8069 10370 - 13201 0 107,64 10370 0 8,14 21,4 92,4 cgl_73.txt 6824 7978 - 8041 0 127,33 7974 0 7,43 0,8 94,2 cgl_76.txt 9916,4 10411 - 12816 0 188,53 10411 0 10,24 18,8 94,6 cgl_78.txt 9641 ,2 12027 - 14272 0 85,08 12027 0 3,11 15,7 96,3 cgl_81.txt 7883 8365 - 9055 0 82,93 8336 0 2,19 7,9 97,4 cgl_88.txt 10144,7 11092 - 11968 0 115,63 11092 0 16,36 7,3 85,9 cgl_107.txt 4419 7057 - 7845 0 214,53 6736 0 148,95 14,1 30,6 cgl 114.txt 10930 11287 - 12957 0 249,29 11220 0 7,78 13,4 96,9
[0314] Summing-up, these experimental results show a very efficient performance of the Path Bridging in the problems addressed, compared to the prior art methods. The Path Bridging is also more effective in scaping local optima, getting better costs in 72% and 63% of the instances of each respective problem. The feasibility phase implementation -featuring occasional perturbations, no-improvement chain consolidations, and exhaustive checks for close-ups- shows to render the method according to the invention robust for finding feasible solutions in 100% of the runs. This is achieved thanks to its design in two distinct phases, namely feasibility phase P02, and then optional cost phase P03: these features cannot be applied, or would not be efficient, in a cost optimization.
[0315] As an additional measurement of efficiency, a comparison of the Path Bridging with the prior art methods was performed in two much more restrictive budget computation times, executing again 30 runs each instance, for the two problems. Table 8 and Table 9 summarize the results regarding feasibility for tight budget computation times of 5 seconds and 1 second respectively. The Path Bridging is robust in these short computation times, obtaining feasible solutions in all the runs. This can help make a better idea of the higher performance of the Path Bridging.
[0316] [Table 8]
[0317] CATSP CATSP CATSP-BC CATSP-BC
[0318] AS hybrid PB ACO-GA-IR PB
[0319] Infeasibilities in all instances and runs 140 0 364 0
[0320] Instances with some run infeasible 13 0 16 0
[0321] Instances with all runs infeasible 0 0 10 0
[0322] AS hybrid PB ACO-GA-IR PB
[0323] Infeasibilities in all instances and runs 318 0 315 0
[0324] Instances with some run infeasible 21 0 17 0
[0325] Instances with all runs infeasible 1 0 10 0
[0326] To complement the experimental analysis, a look was also taken to the performance of the method through some graphic examples. For each iteration, the value of k (the length of the sequential k-opt move) as dots, and in a solid line the number of infeasibilities (feasibility phase), or the cost gain (cost phase), are plotted. When the tentative chain of moves fails, the value displayed is k = kmax, in the setting 200 for both phases. At these failed iterations, the number of infeasibilities will hold constant, and the cost_gain will be zero. The feasibility phase P02 allows performing some moves without improving the number of infeasibilities as a shake technique, holding k constant without reaching kmax. Which can be also noticed in the charts.
[0327] In Figure 14 are represented some performances of the method according to the invention regarding feasibility for the instance cgl_44. Looking at the slope of the curve, the skilled person can notice that many iterations resolve more than one constraint violation at a time; this is possible even for k = 0 if the first simple 3-opt move performs an inversion. The method according to the invention starts from a random solution with 36 infeasibilities and brings them down to 0 in 16 iterations. Only one iteration did not close up the bridge (reaching k = 200).
[0328] In Figure 15 is represented an example for the cost phase iterations in the first 5 seconds of execution for instance cgl_114, where many iterations successfully improve cost. The chart gives a glimpse of the variety of chain lengths, often not too long, but of a considerable length on occasions.
[0329] Figure 16 displays all cost phase iterations for a 120 seconds run of the same instance cgl_114. The skilled person can observe how the chain maximum length, kmax cost, is routinely reached after certain iterations, as making further improvement gets more and more difficult. These longer chains, besides, take longer running time. The value of the parameter kmax cost, thus, constitutes a trade-off between efficiency and effectiveness that is advantageously considered carefully during the method fine-tuning. In Figure 16, the skilled person can spot how complex it is to escape local optima if the person pays attention to the improvement around iteration 900, in this case with a chain of small length.
[0330] Finally, Figure 17 illustrates how the method according to the invention can successfully compose K 3-opt moves much bigger than the size of the problem, analyzing an example run of instance cgl_26. The skilled person can easily spot a value of k of around 170. Being a problem of 26 nodes, this means that the iteration has composed a winning k- opt move of a length roughly 7 times bigger than the number of arcs. Considering that the method according to the invention performs two new cuts and relinks at each base move of the chain, the iteration has performed approximately 340 cuts and relinks to compose an eventual winning move, in a sequence with just 25 arcs. In the chart, the skilled person can also observe the efficiency of the method according to the invention: it reaches its best cost value (likely the global optimum) in a few iterations, then runs idly over 20.000 iterations just to finish the budget time of 120 seconds, without further improvement.
Claims
CLAIMS1. Method for determining a processing sequence for an ensemble of semiproducts to be processed one after the other on a processing line, the method being implemented by a computer and comprising:- an initialization phase (P01 ) wherein a list of the semi-products of said ensemble is acquired;- a feasibility phase (P02) wherein at least one feasible sequence is sought on the basis of a graph representing the ensemble of semi-products, in which each semi-product is represented by a node and each transition between two semi-products is represented by a directed arc linking the two corresponding nodes, the feasibility phase (P02) comprising:+ an identifying step (S01 ) including identifying a candidate path, on said graph, the candidate path starting from a start node start) up to an end node end) and representing a sequence of semi-products to be processed one after the other on the processing line, the candidate path including all the semi-products of the acquired list; and for the candidate path:+ a first searching step (S02) including searching along said candidate path for an infeasible transition between two successive nodes, successively called infeasibility start node (ao) and infeasibility end node (ai), and representing an infeasibility between two semi-products; if an infeasible transition is found:+ a second searching step (S04) including searching for a movable segment (So) to be moved; a respective segment being a succession of nodes linked by one or more directed arcs, a respective segment being traversed in a traverse direction among a forward direction from the start node {start) to the end node {end) and a reverse direction from the end node {end) to the start node {start), the movable segment (So) being of a type chosen from among the group comprising: a first type {insertion) corresponding to a segment of the candidate path suitable to be joined to the infeasibility start node (ao), and a second type {move a1) corresponding to a segment having at one end the infeasibility end node (ai ) and being suitable to be shifted within the candidate path; the movable segment (So) being of a kind chosen from among the group comprising: a forward kind with the traverse direction being the forward direction, and a reverse kind with the traverse direction being the reverse direction; if a movable segment (So) is found:+ a moving step (S06) including moving the movable segment (So;-So);+ until a stop condition is reached, carrying out successively one or more additional iterations of the first searching (S02), second searching (S04) and moving (S06) steps on the candidate path successively modified; the processing sequence being determined from the candidate path resulting from the last iteration.
2. Method according to claim 1 , wherein if the movable segment (So) is of the reverse kind, the feasibility phase (P02) further comprises, before the moving step (S06), an inversing step (S05) including inversing the found movable segment (So), said moving step (S06) being then carried out with the inversed segment (-So).
3. Method according to claim 1 or 2, wherein if the movable segment (So) is of the reverse kind, the movable segment (So) that is searched is a succession of nodes which, when traversed in the reverse direction, are linked by one or more directed arcs corresponding only to feasible transitions.
4. Method according to any one of the preceding claims, wherein the feasibility phase (P02) further comprises, before the second searching step (S04), a selecting step (S03) including selecting - from among the first type insertion) and the second type move a1) - the type of the movable segment (So) to be searched during the second searching step; the selection of the type of the movable segment (So) being preferably a pseudorandom selection; the pseudo-random selection being further preferably carried out according to respective target probabilities; the target probability for the first type being still further preferably greater than the target probability for the second type.
5. Method according to claim 4, wherein the selecting step (S03) further includes selecting - from among the forward kind and the reverse kind - the kind of the movable segment (So) to be searched during the second searching step (S04); the selection of the kind of the movable segment (So) being preferably a pseudorandom selection.
6. Method according to claims 4 and 5, wherein the pseudo-random selection of the type and of the kind is carried out according respectively to a first target probability for the combination of the first type and the forward kind, a second target probability for the combination of the first type and the reverse kind, a third target probability for the combination of the second type and the forward kind, and a fourth target probability for the combination of the second type and the reverse kind; the first target probability being preferably equal to the second target probability; the third target probability being preferably equal to the fourth target probability; the first target probability being further preferably greater than the third target probability; the second target probability being further preferably greater than the fourth target probability.
7. Method according to any one of the preceding claims, wherein the stop condition is chosen from among the group comprising: said candidate path includes no more infeasible transition, a predefined number of iterations has been carried out.
8. Method according to any one of the preceding claims, wherein the feasibility phase (P02) further comprises a perturbation move step (S08) before each new iteration of the first searching step (S02); the perturbation move step (S08) including:- detecting all the infeasible transitions in the candidate path,- creating a list with the respective segments between two successive infeasible transitions,- shuffling the list randomly,- reordering the segments according to the shuffled list to obtain a new version of the candidate path, and the new first searching step (S02) being then done with the new version of the candidate path.
9. Method according to any one of the preceding claims, wherein the feasibility phase (P02) comprises, for each iteration of the first searching step (S02), one or several sub-iterations of the second searching (S04) and moving (S06) steps, each new subiteration of the second searching step (S04) being carried out with an infeasible transition remaining in the forward direction, starting from the end of the movable segment (So) if themovable segment (So) is of the first type (insertion), or starting from the infeasibility start node (ao) if the movable segment (So) is of the second type (move a 1).
10. Method according to any one of the preceding claims, wherein, if the movable segment (So) is of the first type (insertion), the second searching step is carried out in an exhaustive manner for finding a segment:- which is joinable by its extremity nodes to both the infeasibility start node (ao) and the infeasibility end node (ai), or at least joinable by one extremity node to the infeasibility start node (ao);- and for which the junction of the path where the segment was removed is authorized through a respective feasible transition.
11. Method according to any one of the preceding claims, wherein, if the movable segment (So) is of the first type (insertion), the second searching step (S04) includes:- looking for at least one node (b ) linked to the infeasibility start node (ao) via a respective directed arc in the graph,- choosing, as a first chosen node (bi), one from among said at least one node (bij) linked to the infeasibility start node (ao),- setting the node (bo; b2) , called first set node (bo; b2), just before the first chosen node (bi) in the candidate path according to the traverse direction of the movable segment (So),- looking for at least one node (p ; no1) linked to the first set node (bo; b2) via a respective directed arc in the graph,- choosing, as a second chosen node (pi ; n0), one from among said at least one node (p ; no1) linked to the first set node (bo; b2),- setting the node (p0; ni) , called second set node (p0; m ) , just before the second chosen node (pi ; n0) in the candidate path according to the traverse direction of the movable segment (So), the movable segment (So) being - according to its traverse direction - a segment between an initial node formed by the first chosen node (bi) and a final node formed by the second set node (p0; ni), and during the moving step (S06), the moved segment (So;-So) is moved just after the infeasibility start node (ao) in the candidate path according to the forward direction, the initial node (bi) of said segment (So;-So) being linked to the infeasibility start node (ao).
12. Method according to claim 1 1 , wherein the feasibility phase (P02) further comprises, after the moving step (S06), a checking step (S07) for checking if the infeasible transition is resolved in the candidate path modified with the moved segment (So;-So), by determining if the second set node (po; m) forming the final node of the moved segment (So;-So) is linked to the infeasibility end node (ai) via a respective directed arc in the graph.
13. Method according to any one of the preceding claims, wherein, if the movable segment (So) is of the second type (move a1), the second searching step (S04) is carried out in an exhaustive manner for finding a segment:- which is joinable by its extremity nodes to two respective successive nodes preceding the infeasibility start node (ao);- and for which one extremity node is the infeasibility end node (ai).
14. Method according to any one of the preceding claims, wherein, if the movable segment (So) is of the second type (move a 1), the second searching step (S04) includes:- looking for at least one node (xoj; x ) linked to the infeasibility end node (ai) via a respective directed arc in the graph,- choosing, as a first chosen node (x0; Xi), one from among said at least one node (xo1; xij) linked to the infeasibility end node (ai),- setting the node (xi ; x0), called first set node (xi ; x0), just after the first chosen node (x0; xi) in the candidate path according to the traverse direction of the movable segment (So),- looking, after the infeasibility end node (ai ) in the forward direction, for at least one node (po1; bi1) linked to the first set node (xi ; x0) via a respective directed arc in the graph,- choosing, as a second chosen node (p0; bi ), one from among said at least one node (po1; bi1) linked to the first set node (xi ; x0),- setting the node (pi ; b2), called second set node (pi ; b2), just after the second chosen node (p0; bi) in the candidate path according to the forward direction, the movable segment (So) being - according to its traverse direction - a segment between an initial node formed by the infeasibility end node (ai) and a final node formed by the second chosen node (p0) if the kind of the movable segment (So) is the forward kind; or else a segment between an initial node formed by the second chosen node (bi) and a final node formed by the infeasibility end node (ai) if the kind of the movable segment (So) is the reverse kind, andduring the moving step (S06), the moved segment (So;-So) is moved between the first chosen node (x0; Xi) and the first set node (xi ; x0) in the candidate path.
15. Method according to claim 14, wherein the feasibility phase (P02) further comprises, after the moving step (S06), a checking step (S07) for checking if the infeasible transition is resolved in the candidate path modified with the moved segment (So;-So), by determining if the second set node (pi ; ba) is linked to the infeasibility start node (ao) via a respective directed arc in the graph.
16. Method according to claim 12 or 14, wherein each choosing is a random choosing.
17. Method according to any one of the preceding claims, wherein the method further comprises - after the feasibility phase (P02) - a cost phase (P03) wherein the processing sequence is determined by optimizing a total cost equal to the sum of transition costs (Cij) for all the transitions from one semi-product to another in the processing sequence, under the constraint of non-increasing the number of infeasible transitions in the processing sequence.
18. Method according to claim 17, wherein the cost phase (P03) comprises, for each candidate path identified during the feasibility phase (P02), one or more successive iterations of the second searching (S04) and moving (S06) steps of the feasibility phase (P02); and a cost computing step (S10) after each moving step, the cost computing step (S10) including computing a cost variation by adding the transition costs (Cij) for the new transitions corresponding to the new arcs resulting from the moved segment and by subtracting the transition costs (Cij) for the removed transitions corresponding to the arcs removed further to the moved segment; each second searching step (S04) being carried out starting from one of the transitions of the candidate path.
19. Method according to claims 6 and 18, wherein the first target probability, the second target probability, the third target probability and the fourth target probability vary from the feasibility phase (P02) to the cost phase (P03); during the cost phase (P03), the first target probability, the second target probability, the third target probability and the fourth target probability being preferably substantially equal to each other.
20. Method according to any one of the preceding claims, wherein if no infeasible transition is found during the first searching step (S02), the processing sequence is determined from the candidate path.
21. Method according to any one of the preceding claims, wherein during the identifying step (S01 ), the candidate path is a random path identified in a pseudo-random manner.
22. Method according to any one of the preceding claims, wherein the semiproducts are metal products; the semi-products being preferably steel products.
23. Method for processing an ensemble of semi-products, one after the other on a processing line, said method comprising: determining a processing sequence for said ensemble of semi-products, by executing a method according to anyone of the preceding claims, processing said ensemble of semi-products on the processing line according to said processing sequence.
24. Scheduling device comprising at least a processor and a memory, configured for executing the method according to any one of claims 1 to 22.
25. Processing line comprising actuators, a line controller for controlling the actuators, and the scheduling device of claim 24, the scheduling device being further configured to transmit the processing sequence to the line controller and to command the line controller for the processing line to process the ensemble of semi-products according to the processing sequence.
26. Computer program comprising software instructions which, when executed by a processor, implement a method according to any one of claims 1 to 22.
Citation Information
Patent Citations
Method for scheduling production on a continuous galvanizing line
WO2021094883A1
Plate coil automatic scheduling method and system for cold rolling hot galvanizing units
CN101344781A
A hybrid shop floor production scheduling method with multi-path finite continuous output inventory
CN113505910B