CN111667113A - Rapid deadlock-free branch-bound scheduling method for flexible manufacturing system - Google Patents
Rapid deadlock-free branch-bound scheduling method for flexible manufacturing system Download PDFInfo
- Publication number
- CN111667113A CN111667113A CN202010497896.4A CN202010497896A CN111667113A CN 111667113 A CN111667113 A CN 111667113A CN 202010497896 A CN202010497896 A CN 202010497896A CN 111667113 A CN111667113 A CN 111667113A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- time
- branching
- branched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000005094 computer simulation Methods 0.000 claims abstract description 7
- 230000007704 transition Effects 0.000 claims description 60
- 238000013138 pruning Methods 0.000 claims description 57
- 238000004422 calculation algorithm Methods 0.000 claims description 45
- 230000000694 effects Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 27
- 238000003754 machining Methods 0.000 claims description 19
- 239000003550 marker Substances 0.000 claims description 9
- 230000009191 jumping Effects 0.000 claims description 6
- 238000010845 search algorithm Methods 0.000 claims description 5
- 230000007547 defect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 210000000349 chromosome Anatomy 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000001135 Friedman test Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06313—Resource planning in a project environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/04—Manufacturing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Manufacturing & Machinery (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Educational Administration (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
The invention provides a quick deadlock-free branching and delimiting scheduling method of a flexible manufacturing system, which is based on flexible manufacturing system modeling of a position timing Petri network, searches for optimal scheduling in a branch tree of a PNS, gives a node which is not branched, cuts off no promising node in the searching process, and continuously updates the completion time of scheduling until all nodes are branched or the CPU time is more than the set maximum CPU time. The method does not need to spend time for parameter adjustment, can avoid repeated searching, and has high searching efficiency; since the scheme repeatedly selects nodes with small lower bounds from the top layer to the bottom layer for branching, a satisfactory solution can be given in a short time, and the more time is given, the higher the quality of the found solution is.
Description
Technical Field
The invention relates to the field of flexible manufacturing, in particular to a branch and bound scheduling method.
Background
Flexible manufacturing systems are widely used in industrial processes such as semiconductor manufacturing, mail systems, eyewear production, and the like. Due to the presence of shared resources in a flexible manufacturing system, system deadlocks may result when a workpiece requests a shared resource. Once the deadlock occurs, the system is in a halt and cannot complete the processing task, which causes economic loss and serious consequences. Scheduling is the basis for ensuring the performance of the system. The deadlock-free scheduling method not only ensures that the system is deadlock-free, but also ensures the operation performance of the system. Therefore, it is more complicated than the deadlock free control problem of the system. Recently, the problem of deadlock free scheduling of flexible manufacturing systems has received a great deal of attention from researchers. Xing et al, described in document [ 3 ] (k.y.xing, l.b.han, m.c.zhou, and f.wang, "delay-free genetic scheduling algorithm for automated manufacturing systems based Deadlock control policy," IEEE trans.syst., Man, cybern., B, cybern., vol.42, pp.603-615, jun.2012.) integrate Deadlock avoidance strategies into genetic algorithms, propose a Deadlock free genetic scheduling algorithm, and propose a detection algorithm of chromosomes and a repair algorithm for repairing non-viable chromosomes to viable chromosomes. Luo et al in document [1 ] (J.C.Luo, K.Y.Xing, M.C.ZHou, X.L.Li, and X.N.Wang, "delay-free scheduling of automated manufacturing systems using Petri nets and dhybrid statistical search," IEEE trans.Syst., Man, Cybern. To narrow the search space, they constrain the search process to a dynamic window. In document [ 4 ] (O.T. Baruwa, M.A. Piera, and A.Guasch, "Deadlock-free scheduling method for flexible manufacturing systems based on timed coordinated Petri nets and analytical search," IEEE trans. Syst., Man, Cybern., Syst., vol.45, No.5, pp.831-846, May.2015.), Baruwa et al model the system using colored Petri nets, a hierarchical search algorithm was proposed. The result shows the effectiveness of the algorithm through the test of the standard case. In document [ 2 ] (x.n.wang, k.y.xing, x.l.li, and j.clu, "analysis of distribution algorithm for scheduling protocol of flexible manufacturing systems using Petri nets," application.math.model., vol.55, pp.776-788, ma.2018.), Wang et al propose a system-based Petri deadlock net model, without distributed estimation scheduling algorithm. By embedding the local search algorithm into the distributed estimation algorithm, the search capability of the algorithm is improved.
The current prior art has the following disadvantages:
1) the parameter adjustment is difficult, the scheduling performance depends on the parameter adjustment, and the parameter setting is too much and irregular, so that the parameter adjustment is difficult;
2) the searching efficiency is low, random searching is taken as the main point, and good scheduling still cannot be obtained within a long searching time.
Disclosure of Invention
In order to overcome the defects of the prior art, the invention provides a quick deadlock-free branch-and-bound scheduling method of a flexible manufacturing system. Firstly, a lower bound of the completion time of the nodes is established based on the reachable graph of the system so as to evaluate the quality of the nodes. And secondly, selecting a branch node according to the level of the node and the lower bound of the node, and obtaining the level of the next selected node. Thirdly, according to the lower bound and the level of the nodes, a pruning rule is established, and repeated searching is avoided. Fourthly, the optimal deadlock avoidance strategy is embedded into the searching process, and the fast deadlock-free branch delimiting method is established. The invention enables fast obtaining of better scheduling than the most advanced methods available.
The technical scheme adopted for solving the technical problems comprises the following specific steps:
step 1: flexible manufacturing system modeling
Step 1.1Petri Net preparation knowledge
The Petri Net is a directed bipartite graph comprising vertices of two types, location (place) and transition (transition), where locations are represented by circles, transitions are represented by rectangles or thick solid lines, locations and transitions are connected by directed arcs,a set of non-negative integers is represented,a set of positive integers is represented that,represents a set of positive integers {1, 2.., k }; the Petri net is specifically defined as follows:
a Petri net is a 3-tuple of N ═ (P, T, F), where P is the set of locations, T is the set of transitions, for directed arc sets, P and T are finite disjoint non-empty sets, i.e.
In the Petri net N ═ (P, T, F), a vertex x ∈ P ∪ T is given, and·x ═ y ∈ P ∪ T | (y, x) ∈ F } and x·Y ∈ P ∪ T | (x, y) ∈ F represents a preamble set (preset) and a postset (postset) of x, respectively;
in a Petri net N ═ (P, T, F), a path (path) is a sequence α ═ x composed of adjacent vertices1,x2,...,xkWherein x isi∈P∪T,(xi,xi+1)∈F,i∈Zk-1;
The state or identity (marking) of a Petri net N ═ P, T, F is a mapping M: P → Z from a set of positions to a set of non-negative integers*For position P ∈ P and marker M, M (P) represents the number of tokens in position P under marker M, the number of tokens in position being represented by a black dot number or a positive integer, with initial marker M0The Petri net N is called an identification Petri net and is marked as (N, M)0);
The identification is represented by a vector, i.e. M ═ M (p)1),M(p2),...,M(p|P|))TFor brevity, ∑p∈PM (p) p represents the identifier M;
given a Petri net N ═ (P, T, F), T ∈ T is a transition in N, M is an identification in N, if M(p)>0, then the transition t is called enabled (enabled) under the identifier M, and is recorded as M [ t >; triggering a (fire) transition t under the identity M causes the system to transition from the identity M to the identity M ', denoted M [ t > M', where,M′(p)=M(p)-1;m' (p) ═ M (p) + 1; otherwise, M' (p) ═ M (p); given a controller Δ, let M [ t, Δ > denote that initiating an enable transition t at an identification M is permitted by the controller Δ, enabling for a transition sequence τ t1t2...tk,ti∈T,i∈ZkIf M isi[ti>Mi+1Wherein M is1Let τ be feasible under M (feasible);
(N1,M10)=(P1,T1,F1,M10) And (N)2,M20)=(P2,T2,F2,M20) Is two labeled Petri nets, ifM10(p)=M20(p) is called (N)1,M10) And (N)2,M20) Is compatible; two compatible labeled Petri nets (N)1,M10) And (N)2,M20) The composition (composition) of (A) is a new identification Petri net Wherein P ═ P1∪P2;T=T1∪T2;F=F1∪F2;M0(p)=M10(p),M0(p)=M20(p);
For the logo Petri Net (N, M)0)=(P,T,F,M0) Let B (N, M)0)=(V, E) represents (N, M)0) Wherein V is (N, M)0) E is a set of directed edges between nodes; a node consists of a transition sequence; let v1And v2Respectively indicates that two nodes satisfy M0[v1>M1And M0[v2>M2If T ∈ T is present, so that M1[t>M2Then there is a slave v1To v1Directed arc of, in a branch tree, node v1Is of depth | v1L +1, where v1| represents v1The number of medium transitions; all nodes at the same depth form a search layer, and the layer with the largest depth is called a bottom layer (bottom level);
step 1.2 Flexible manufacturing System modeling based on position-timed (planned-timed) Petri Net
Assuming that the resource type and the workpiece type in the flexible manufacturing system are m and n, respectively, the resource set and the workpiece set are represented as m and n, respectivelyAndgiven resource ri∈ R, orderIndicates its initial resource amount, orderIndicating the resource instance set, initially the number of unprocessed u-th class artifacts is Ψu;
An unprocessed workpiece is processed sequentially on a series of resources, the processing sequence of which is called a path, such that Means all ofA set of machining paths, wherein the u-th class workpiece has a plurality of machining paths; order toSet of machining paths representing class u workpieces, let LiDenotes thetaiNumber of medium resources, then thetaiIs shown asWhereinIs thetaiThe j-th resource in (c); let aijIndicates a certain value at thetaiJ-th movement of the workpiece to be machined, thetaiCorresponding to a sequence of activities, i.e.Resource rk∈ R is requested by multiple activitiesIndicates all requests rkThe activity of (2); for thetauTwo paths θ in (b)iAnd thetajIf, ifThen activity aikAnd ajkAre the same; for the sake of simplicity, aikAnd ajkAre combined into one activity, the set of all activities is represented as
Given aij∈A(rk) Let path tijpijti(j+1)Representing its Petri Net model, where tijDenotes aijStart of) operation, ti(j+1)Denotes aijIs performed by pijDenotes aijThe active position of (a); resource rk∈ R resource location RkIs represented bykThe initial token number of CkAdding two arcs, one from rkTo tijRepresenting a request rkThe other one from ti(j+1)To rkRepresents the release of rkLet OPNijDenotes aijThe Petri Net model of (1);
for class u workpieces, two imaginary active positions p are addedu◇And pu◆Respectively representing the start and end of the motion of the u-th workpiece, for thetai∈ΘuAdding two arcs, one from pu◇To ti1And the other is fromTo pu◆The overall flexible manufacturing system is modeled as:
wherein P is a set of active positions; is a resource location set; t is a transition set; f is a set of arcs, M0Is an initial mark and is expressed asM0(pu◇)=Ψu; M0(p)=0;M0(ri)=Ci;
For P ∈ P, letRepresenting the processing time of the activity associated therewith, ford (p) ═ 0, the Petri network with position assignment is called scheduling Petri network (PNS for short); let MfRepresents the termination identifier of N, whereinMf(pq◆)=Ψq;Mf(p)=0; Mf(ri)=CiOne feasible schedule is a transition sequence of π and satisfies M0[π>MfLet S (N, M)0) Represents (N, M)0) A set of feasible schedules;
step 2: deadlock-free fast branch-and-bound scheduling algorithm
Based on a Petri network model of a system, a deadlock-free rapid branching and delimiting scheduling algorithm is provided, an optimal solution is searched in a branch tree of the system, the searching process is guided by a new branching strategy, the branching strategy overcomes the defects of breadth-first searching and depth-first searching, the lower bound of a node is provided for pruning nodes which are not promising, and in addition, two pruning rules are provided for avoiding repeated searching;
step 2.1, lower bound of the node;
let v equal t1t2...tqRepresents B (N, M)0) And M is one node in0[ v > M, [ tau (v) denotes tqInitiation time of l*(v)=min{τ(vv1)|v1∈{v2|M[v2>Mf}; if presentAnd l is less than or equal to l*(v) Then l is the lower bound of v; if the lower bound of node v is equal to l*(v) Then the lower bound is the maximum lower bound for v; l*(v) A minimum value equal to the maximum value of the completion time of the resource from M to complete the processing of all the remaining workpieces;
order to Representing the first token or workpiece in p, assuming the workpieceThe time for entering p is tau (v)1) Then, at time τ (v),the remaining time in p is
A path is said to be a machining path if all positions in the path are active, given that P '∈ P (P' ≠ P) satisfies the existence of a machining path ω ═ pt1p1t2…pk-1tkpk(pkP'), order { D (ω) | ω is the processing path from p to p';
given T ∈ T, let(a)table with t ═ pAn input active position showing t, ζ (t, v) representing the fastest time to complete the workpiece from τ (v) in position p; if M (p) is not less than 1If M (p) is 0, letMachining pathAnd is If it is notThen If not, let ξ (r ∞)iV) denotes r starting from τ (v)iThe fastest time to request, ξ (r)i,v)=min{ζ(t,v)|t∈ri ·};
Given rik∈ΞiLet I (r)ikV) denotes that r is scheduled from τ (v) to the next activityikR betweenikA minimum idle time of; if r isikIs idle at τ (v), then I (r)ik,v)=ξ(riV) - τ (v); otherwise WhereinIs being represented by r at τ (v) in qikJ-th activity of processing; let gamma (r)ikV) indicates that the next activity is scheduled at rikAt the earliest time of (i), then gamma (r)ik,v)=τ(v)+I(rik,v)+χ(rikV), wherein if rikAt τ (v) is idle, then χ (r)ikV) is 0; if at time r (v)ikIs being processedThen
The path selection scheme assigns a processing path to each unfinished workpiece; let S (v) ═ s1,s2,...,shDenotes from M to MfGiven s ∈ S (v), let A (s, r)i) Indicating routing to r by the routing schemeiGiven activity ajk∈A(s,ri) Let p (a)jk) Indicates its active position, order Xi when representing path selection scheme as siMinimum average processing time for medium resource instances;
Theorem 1: given B (N, M)0) Is connected to the node v in (1),lower bound of completion time of v, i.e.
Step 2.2 defining branching strategies
Let d denote the depth of the current search level, d denotes the maximum depth of the search tree, at the search level d, the branching policy preferentially selects the node with the smallest lower bound, if there is no node that is not branched at the search level d or d ═ d, then set d ═ d + 1)% d, and reselect the node; stopping selecting a node if all depths are searched and no nodes not branched are selected; otherwise, one node not branched is selected, d ═ d + 1)% d is set, and the node is reselected;
the branching of the selected node v is directed by the deadlock controller, assuming M0[ v > M, only transitions enabled under M and allowed by the controller can initiate and produce new unbranched nodes; vector quantityAndare used to store branched and unbranched nodes respectively,andfor storing lists of nodes at depth i that are branched and unbranched, respectively; the steps of the branching strategy are as follows:
inputting: depth d of the current search layer;
and (3) outputting: flag, d, v and list, wherein, flag true represents that a node which is not branched is selected, and flag false represents that a node which is not branched is selected; v is the selected non-branched node; list is used for storing newly generated nodes which are not branched;
step 2.2.1: when d is1D ═ orWhen the collection is empty, the circulation of the steps 2.2.1.1 and 2.2.1.2 is carried out, and the following steps are specifically carried out:
step 2.2.1.1: let d1Is (d)1+1)%d*;
Step 2.2.1.2: if d is1If d is equal, the flag is made false, and the loop is ended, otherwise, the step 2.2.1 is skipped;
step 2.2.2: if flag is true, then:
step 2.2.2.3: let M0[v1> M, let e (M) { T ∈ T | M [ T, PCF >);
step 2.2.2.4 for any change t ∈ E (M) { v1t } adding to list;
step 2.2.2.5: let v equal v1Where v is the selected unbranched node;
step 2.2.2.6: let d be (d)1+1)%d*;
Step 2.2.3: returning flag, d, v and list;
step 2.3 definition of pruning rules
Once one isAn unbranched node is selected and branched to be inserted intoIn the method, a new node generated by a branch is inserted intoIn the method, two pruning rules are proposed, which are respectively applied to inserting nodes into the treeAndin the process of (2):
pruning rule 1
Inputting: a branched node v;
initialization: let M0[v>M;d=|v|+1;
Step A-1: if presentSo that M0[v1If the value is more than M, executing the step A-1.1, otherwise executing the step A-2;
Pruning rule 2
Inputting: a newly generated unbranched node v;
initialization: let M0[v>M;d=|v|+1;
Step B-1: if presentSo that M0[v1If the value is more than M, executing a step B-1.1, otherwise executing a step B-2;
step B-2: if presentSo that M0[v1If the value is more than M, executing a step B-2.1, otherwise executing a step B-3;
Step 2.4, a deadlock-free rapid branching and delimiting algorithm;
deadlock free fast Branch bounding method (Anytime Branch and Bound, hereinafter referred to as AB&B) Is a search algorithm for searching the optimal schedule in the branch tree of PNSIndicating the current best solution completion time. Given an unbranched node v, ifThen v is an unprivileged (unprivising) node because branch v cannot get a better solution than the current best solution. During the searching process, nodes which are not promising can be cut off;
at the beginning of the process, the process is carried out,using a branching strategy, a node is selected and branching is performed under the supervision of PCF, and the selected node is inserted under the supervision of a pruning strategy 1Under supervision of pruning strategy 2, newly generated nodes are inserted intoIf a completion time is found to be less thanWill thenUpdated as the completion time of the schedule, onceIs updated atMiddle lower bound is greater than or equal toThe nodes are pruned, and the process is carried out until all the nodes are branched or the CPU time is more than the set maximum CPU time; the detailed steps of the deadlock-free fast branch-and-bound algorithm are as follows:
And (3) outputting: current best schedule v;
step 2.4.1: if the CPUCircularly executing the steps 2.4.1.1-2.4.1.9, otherwise, jumping to the step 2.4.2;
step 2.4.1.1: let the input of the branching strategy be d, and execute the branching strategy, let the result of the branching strategy output be (flag, d, v, list);
step 2.4.1.2: if flag is false, jumping to step 2.4.2;
step 2.4.1.3: let the input of pruning rule 1 be v, execute pruning rule 1;
step 2.4.1.4: for all v1∈ list, circularly executing the step 2.4.1.5-2.4.1.8;
step 2.4.1.5: let the input of pruning rule 2 be v1Executing pruning rule 2;
step 2.4.1.6: if | v1And | +1 ═ d-Then steps 2.4.1.7 and 2.4.1.8 are performed, otherwise go to step 2.4.1.4;
Step 2.4.1.9: skipping to step 2.4.1;
step 2.4.2: v is returned.
The invention has the beneficial effects that:
(1) because the deadlock-free branch delimitation method only comprises one parameter (the maximum CPU time) and the maximum CPU time can be set according to the actual requirement, the scheme does not need to spend time for parameter adjustment;
(2) the method only keeps the node with the minimum lower bound in the nodes with the same identification reached by the system, so the scheme can avoid repeated searching. In addition, the scheme replaces random search with regular search, so that the method has high search efficiency;
(3) since the scheme repeatedly selects nodes with small lower bounds from the top layer to the bottom layer for branching, a satisfactory solution can be given in a short time, and the more time is given, the higher the quality of the found solution is.
Drawings
FIG. 1 is a PNS model of the flexible manufacturing system of the present invention.
Detailed Description
The invention is further illustrated with reference to the following figures and examples.
The innovation points of the invention are as follows:
(1) the deadlock-free branch delimitation method only comprising one parameter (maximum CPU time) is provided, when the allowable time is shorter, a satisfactory solution can be obtained, and when more time is given, a better solution can be obtained;
(2) the lower bound of the completion time of the search node is provided, the nodes with small lower bound of the node are preferentially selected to branch in the same search layer, and the random search is replaced by the regular search;
(3) a new branching strategy is provided, and nodes with small lower bound are repeatedly selected from the top layer to the bottom layer for branching, so that a large amount of time is avoided from spending in some poor search areas;
(4) and (3) a pruning rule is provided, and only the node with the minimum lower bound in the nodes with the same identification is kept, so that repeated searching is avoided, and the searching efficiency of the algorithm is improved.
The method comprises the following steps:
step 1: flexible manufacturing system modeling
Step 1.1Petri Net preparation
The Petri Net is a directed bipartite graph comprising vertices of two types, location (place) and transition (transition), where locations are represented by circles, transitions are represented by rectangles or thick solid lines, locations and transitions are connected by directed arcs,a set of non-negative integers is represented,a set of positive integers is represented that,represents a set of positive integers {1, 2.., k }; the Petri net is specifically defined as follows:
a Petri net is a 3-tuple of N ═ (P, T, F), where P is the set of locations, T is the set of transitions, for directed arc sets, P and T are finite disjoint non-empty sets, i.e.
In the Petri net N ═ (P, T, F), a vertex x ∈ P ∪ T is given, and·x ═ y ∈ P ∪ T | (y, x) ∈ F } and x·Y ∈ P ∪ T | (x, y) ∈ F represents a preamble set (preset) and a postset (postset) of x, respectively;
in a Petri net N ═ (P, T, F), a path (path) is a sequence α ═ x composed of adjacent vertices1,x2,...,xkWherein x isi∈P∪T,(xi,xi+1)∈F,i∈Zk-1;
The state or identity (marking) of a Petri net N ═ P, T, F is a mapping M: P → Z from a set of positions to a set of non-negative integers*For position P ∈ P and marker M, M (P) represents the number of tokens in position P under marker M, the number of tokens in position being represented by a black dot number or a positive integer, with initial marker M0The Petri net N is called an identification Petri net and is marked as (N, M)0);
The identification is represented by a vector, i.e. M ═ M (p)1),M(p2),...,M(p|P|))TFor brevity, ∑p∈PM (p) p represents the identifier M; for example, P ═ { P ═ P1,p2,...,p6When M is (0,1,0,0,0,2), the symbol M is denoted as p2+2p6;
Given a Petri net N ═ (P, T, F), T ∈ T is a transition in N, M is an identification in N, if M(p)>0, then the transition t is said to be enabled under the M identifier, denoted as M [ t>(ii) a Triggering a (fire) transition t under the identity M will cause the system to transition from the identity M to the identity M', denoted as M [ t ]>M', wherein,M′(p)=M(p)-1;m' (p) ═ M (p) + 1; otherwise, M' (p) ═ M (p); given a controller Δ, let M [ t, Δ > denote that initiating an enable transition t at an identification M is permitted by the controller Δ, enabling for a transition sequence τ t1t2...tk,ti∈T,i∈ZkIf M isi[ti>Mi+1Wherein M is1Let τ be feasible under M (feasible);
(N1,M10)=(P1,T1,F1,M10) And (N)2,M20)=(P2,T2,F2,M20) Is two labeled Petri nets, ifM10(p)=M20(p) is called (N)1,M10) And (N)2,M20) Is compatible; two compatible labeled Petri nets (N)1,M10) And (N)2,M20) The composition (composition) of (A) is a new identification Petri net Wherein P ═ P1∪P2;T=T1∪T2;F=F1∪F2;M0(p)=M10(p),M0(p)=M20(p);
For the logo Petri Net (N, M)0)=(P,T,F,M0) Let B (N, M)0) (V, E) represents (N, M)0) Wherein V is (N, M)0) E is a set of directed edges between nodes; a node consists of a transition sequence; let v1And v2Respectively indicates that two nodes satisfy M0[v1>M1And M0[v2>M2If T ∈ T is present, so that M1[t>M2Then there is a slave v1To v1Directed arc of, in a branch tree, node v1Is of depth | v1L +1, where v1| represents v1The number of medium transitions; all nodes at the same depth form a search layer, and the layer with the largest depth is called a bottom layer (bottomlevel);
step 1.2 Flexible manufacturing System modeling based on position-timed (planned-timed) Petri Net
The Petri Net model of the flexible manufacturing system consists of the processing path of the workpiece, and can also consist of Petri Net models of all activities/operations. Assuming that the resource type and the workpiece type in the flexible manufacturing system are m and n, respectively, the resource set and the workpiece set are represented as m and n, respectivelyAndgiven resource ri∈ R, orderIndicates its initial resource amount, orderIndicating the resource instance set, initially the number of unprocessed u-th class artifacts is Ψu;
An unprocessed workpiece is processed sequentially on a series of resources, the processing sequence of which is called a path, such that Representing a set of all machining paths, wherein the u-th workpiece has a plurality of machining paths; order toSet of machining paths representing class u workpieces, let LiDenotes thetaiNumber of medium resources, then thetaiIs shown asWhereinIs thetaiThe j-th resource in (c); let aijIndicates a certain value at thetaiJ-th movement of the workpiece to be machined, thetaiCorresponding to a sequence of activities, i.e.Resource rk∈ R is requested by multiple activitiesIndicates all requests rkThe activity of (2); for thetauTwo paths θ in (b)iAnd thetajIf, ifThen activity aikAnd ajkAre the same; for the sake of simplicity, aikAnd ajkAre combined into one activity, the set of all activities is represented as
Given aij∈A(rk) Let path tijpijti(j+1)Representing its Petri Net model, where tijDenotes aijStart of) operation, ti(j+1)Denotes aijIs performed by pijDenotes aijThe active position of (a); resource rk∈ R resource location RkIs represented bykThe initial token number of CkAdding two arcs, one from rkTo tijRepresenting a request rkThe other one from ti(j+1)To rkRepresents the release of rkLet OPNijDenotes aijThe Petri Net model of (1);
for class u workpieces, two imaginary active positions p are addedu◇And pu◆Respectively representing the start and end of the motion of the u-th workpiece, for thetai∈ΘuAdding two arcs, one from pu◇To ti1And the other is fromTo pu◆The overall flexible manufacturing system is modeled as:
wherein P is a set of active positions; is a resource location set; t is transitionGathering; f is a set of arcs, M0Is an initial mark and is expressed asM0(pu◇)=Ψu; M0(p)=0;M0(ri)=Ci;
For P ∈ P, letRepresenting the processing time of the activity associated therewith, ford (p) ═ 0, and such a place-assigned Petri net is called a scheduling Petri net (PNS for short); let MfRepresents the termination identifier of N, whereinMf(pq◆)=Ψq;Mf(p)=0;Mf(ri)=CiOne feasible schedule is a transition sequence of π and satisfies M0[π>MfLet S (N, M)0) Represents (N, M)0) The object of the invention is to set up a feasible scheduling in S (N, M)0) Searching for a feasible schedule with the minimum completion time;
for example, consider a flexible manufacturing system developed in the literature [1, 2,3 ], the resource set of which is R ═ m1,m2,m3,m4,r1,r2,r3}, the system processes three types of workpieces, i.e.Θ={θ1,θ2,θ3,θ4In which θ1=r2m2r2,θ2=r1m1r2m2r3,θ3=r1m3r2m4r3,θ4=r3m4r2m3r1。Θ1={θ1},Θ2={θ2,θ3},Θ3={θ4}。A(r1)={a21,a45},A(r2)={a11,a13,a23,a33,a43},A(r3)={a25,a41},A(m1)={a22},A(m2)={a12,a24},A(m3)={a32,a44},A(m4)={a34,a42}. The Petri Net model of the system is shown in FIG. 1, with initial identification and processing time of the activity not given.
Step 2: deadlock-free fast branch-and-bound scheduling algorithm
A deadlock-free rapid branching and delimiting scheduling algorithm is provided based on a Petri network model of a system, and the algorithm searches an optimal solution in a branching tree of the system. The search process is guided by a new branching strategy that overcomes the shortcomings of breadth-first and depth-first searches. In order to prune off the nodes that are not promising, a lower bound of nodes is proposed. In addition, two pruning rules are proposed to avoid duplicate searches.
Step 2.1, lower bound of the node;
let v equal t1t2...tqRepresents B (N, M)0) One of (1)Node and M0[ v > M, [ tau (v) denotes tqInitiation time of l*(v)=min{τ(vv1)|v1∈{v2|M[v2>Mf}; if presentAnd l is less than or equal to l*(v) Then l is the lower bound of v. The larger the lower bound, the more pronounced the pruning effect. If the lower bound of node v is equal to l*(v) Then the lower bound is the maximum lower bound for v; l*(v) A minimum value equal to the maximum value of the completion time of the resource from M to complete the processing of all the remaining workpieces; to obtain a high quality (large) lower bound, the completion time of the resource must be accurately calculated. Since the resources are either in a processing state or an idle state, processing time and idle time of the resources need to be considered.
Order to Representing the first token or workpiece in p, assuming the workpieceThe time for entering p is tau (v)1) Then, at time τ (v),the remaining time in p is
A path is said to be a machining path if all positions in the path are active, given that P '∈ P (P' ≠ P) satisfies the existence of a machining path ω ═ pt1p1t2…pk-1tkpk(pk=p'),Order to { D (ω) | ω is the processing path from p to p';
given T ∈ T, let(a)t ═ p denotes the input active position of t, ζ (t, v) denotes the fastest time to complete the workpiece from τ (v) in position p; if M (p) is not less than 1If M (p) is 0, letMachining pathAnd is If it is notThen If not, let ξ (r ∞)iV) denotes r starting from τ (v)iThe fastest time to request, ξ (r)i,v)=min{ζ(t,v)|t∈ri ·};
Given rik∈ΞiLet I (r)ikV) denotes that r is scheduled from τ (v) to the next activityikR betweenikA minimum idle time of; if r isikIs idle at τ (v), then I (r)ik,v)=ξ(riV) - τ (v); otherwise WhereinIs being represented by r at τ (v) in qikJ-th activity of processing; let gamma (r)ikV) indicates that the next activity is scheduled at rikAt the earliest time of (i), then gamma (r)ik,v)=τ(v)+I(rik,v)+χ(rikV), wherein if rikAt τ (v) is idle, then χ (r)ikV) is 0; if at time r (v)ikIs being processedThen
The path selection scheme assigns a processing path to each unfinished workpiece; let S (v) ═ s1,s2,...,shDenotes from M to MfGiven s ∈ S (v), let A (s, r)i) Indicating routing to r by the routing schemeiGiven activity ajk∈A(s,ri) Let p (a)jk) Indicates its active position, order Xi when representing path selection scheme as siMinimum average processing time for medium resource instances;
Theorem 1: given B (N, M)0) Is connected to the node v in (1),lower bound of completion time of v, i.e.
And (3) proving that: let r beij∈Ξi,d1(v,v*,rij)(d2(v,v*,rij) From τ (v) to τ (vv)*) R betweenijIdle time (machining time) of, then d1(v,v*,rij)+d2(v,v*,rij)=τ(vv*)-τ(v),Hypothesis and v*The corresponding path selection scheme is s*Then, then Due to the fact that And isTherefore, it isTherefore, the temperature of the molten metal is controlled,
step 2.2 defining branching strategies
The branching strategy decides which node to select for branching and how to branch, and conventional methods such as breadth-first and depth-first can be applied to decide which node to select for branching, the number of nodes in the branching tree growing exponentially with the size of the scale of the problem. For a large scale problem, it is not possible to enumerate all nodes to solve the problem. Thus, the breadth first strategy is not suitable for large scale problems. The depth first strategy always finds the solution to the problem quickly. However, the depth-first strategy has two drawbacks. First, since it preferentially selects node branches with greater depth, it is likely to be at B (N, M)0) Takes a lot of time. Second, if B (N, M)0) The path of the medium optimal solution is longer, it may choose a much worse and long path before finding the optimal solution.
The invention provides a new branching strategy, which can quickly find the solution of the problem and overcome the defect of the depth priority strategy. Let d denote the depth of the current search level, d denotes the maximum depth of the search tree, at the search level d, the branching policy preferentially selects the node with the smallest lower bound, if there is no node that is not branched at the search level d or d ═ d, then set d ═ d + 1)% d, and reselect the node; stopping selecting a node if all depths are searched and no nodes not branched are selected; otherwise, one node not branched is selected, d ═ d + 1)% d is set, and the node is reselected; this strategy differs from the depth-first strategy in that it re-selects nodes from level 1 if d x level is reached, whereas the depth-first strategy restarts from level (d x-1). Such a difference makes it possible to overcome the two disadvantages of the depth-first strategy. A comparison of this strategy with the depth-first search strategy can be found in the next section.
The branching of the selected node v is directed by the deadlock controller, assuming M0[vOnly transitions enabled under M and allowed by the controller can initiate and produce new unbranched nodes. Due to PNS and S3PR structures are essentially identical, so in document [ 5 ] (J.Ezpeleta, J.M.Colom, and J.Martinez, "A Petri net based on derived delivery polarity for Flexible manufacturing systems," IEEETrans.Robot.Autom., vol.11, No.2, pp.173-184, Apr.1995.) and document [ 6 ] (L.Piroddi, R.Cordone, and I.Fumagalli, "Selective Synthesis for derived delivery in Petri," IEEE.Sy., Man, cybern., A, Syst, Humans, vol.38, 1347-pp.8, Nov.2008), for S3The deadlock control method of PR may be used for PNS. Since the controller in the document [ 6 ], denoted PCF (consisting of the initials of the last name of the author), is the most permissive in existence, PCF is embedded in the branching strategy to avoid deadlock. Vector quantityAndare used to store the branched and unbranched nodes, respectively.Andfor storing a list of nodes at depth i that are branched and not branched, respectively. The steps of the complete branching strategy are as follows:
inputting: depth d of the current search layer;
and (3) outputting: flag, d, v, and list, where flag true (false) indicates that there are (or no) nodes that are not branched selected; v is the selected non-branched node; list is used for storing newly generated nodes which are not branched;
step 2.2.1: when d is1D ═ orWhen the collection is empty, the circulation of the steps 2.2.1.1 and 2.2.1.2 is carried out, and the following steps are specifically carried out:
step 2.2.1.1: let d1Is (d)1+1)%d*;
Step 2.2.1.2: if d is1If d is equal, the flag is made false, and the loop is ended, otherwise, the step 2.2.1 is skipped;
step 2.2.2: if flag is true, then:
step 2.2.2.3: let M0[v1> M, let e (M) { T ∈ T | M [ T, PCF >);
step 2.2.2.4 for any change t ∈ E (M) { v1t } adding to list;
step 2.2.2.5: let v equal v1Where v is the selected unbranched node;
step 2.2.2.6: let d be (d)1+1)%d*;
Step 2.2.3: returning flag, d, v and list;
step 2.3: defining pruning rules
Once an unbranched node is selected and branched, it is inserted intoIn the method, a new node generated by a branch is inserted intoIn (1). Because of the slave M0The sequence of transitions that trigger may arrive at the same identity, so two different nodes may correspond to the same identity. The search process from nodes corresponding to the same identity is identical. To avoid repeated searches, two pruning rules are proposed, one for each node inserted into the treeAndin the process of (1).
Pruning rule 1:
inputting: a branched node v;
initialization: let M0[v>M;d=|v|+1;
Step A-1: if v is present1∈BdSo that M0[v1If the value is more than M, executing the step A-1.1, otherwise executing the step A-2;
step A-2: let BdIs Bd∪{v};
Pruning rule 2
Inputting: a newly generated unbranched node v;
initialization: let M0[v>M;d=|v|+1;
Step B-1: if v is present1∈B dSo that M0[v1If the value is more than M, executing a step B-1.1, otherwise executing a step B-2;
step B-2: if v is present1∈BdSo that M0[v1If the value is more than M, executing a step B-2.1, otherwise executing a step B-3;
step B-3: order toB dIs composed ofB d∪{v};
Step 2.4, a deadlock-free rapid branching and delimiting algorithm;
fast Branch and Bound algorithm (Anytime Branch and Bound, hereinafter referred to as AB)&B) Is a search algorithm for searching for the optimal schedule in the branch tree of the PNS. Order toRepresents the current best solution completion time, given an unbranched node v, ifThen v is an unprivileged (unprivising) node because branch v cannot get a better solution than the current best solution. During the search, no promising nodes may be pruned.
At the beginning of the process, the process is carried out,using a branching policy, a node is selected and branches under the supervision of the PCF. Under supervision of pruning rule 1, the selected node is inserted intoIn (1). Under supervision of pruning rule 2, newly generated nodes are inserted intoPerforming the following steps; if a time-out less thanWill thenUpdating the time as the completion time of the scheduling; once the cover is closedIs updated atMiddle lower bound is greater than or equal toThe process continues until all nodes are branched or the CPU time is greater than the set maximum CPU time. The detailed steps of the deadlock-free fast branch-and-bound algorithm are as follows:
And (3) outputting: current best schedule v;
initialization:B 1={v0in which v is0Is an empty transition sequence;
step 2.4.1: if the CPUCircularly executing the steps 2.4.1.1-2.4.1.9, otherwise, jumping to the step 2.4.2;
step 2.4.1.1: let the input of the branching strategy be d, and execute the branching strategy, let the result of the branching strategy output be (flag, d, v, list);
step 2.4.1.2: if flag is false, jumping to step 2.4.2;
step 2.4.1.3: let the input of pruning rule 1 be v, execute pruning rule 1;
step 2.4.1.4: for all v1∈ list, circularly executing the step 2.4.1.5-2.4.1.8;
step 2.4.1.5: let the input of pruning rule 2 be v1Executing pruning rule 2;
step 2.4.1.6: if | v1And | +1 ═ d-Then steps 2.4.1.7 and 2.4.1.8 are performed, otherwise go to step 2.4.1.4;
Step 2.4.1.9: skipping to step 2.4.1;
step 2.4.2: v is returned.
Theorem 2: AB & B can generate a first schedule in polynomial time;
and (3) proving that: the PCF prohibits the initiation of transitions that cause deadlocks and all nodes are generated under the supervision of the PCF. This ensures that all slaves M0The identity of the arrival of the transition sequence in the originating node is secure. That is, for any one generated tag unless it is MfThere is at least one transition that can be initiated.
At the beginning of the process, the process is carried out,when d is 1, the branching strategy selects v0Under the supervision of PCF, the branch generates all son nodes thereof to be stored in list, and v is set as v ═ v0And d is 2. Since there is at least one transition from M under the supervision of PCF0Is initiated so thatBecause of the fact thatAndis empty, so v is inserted under the supervision of pruning rule 1And all nodes in list are inserted under the supervision of pruning rule 2In (1). At d ═ 2, the branching strategy is selected fromIn (b) selection v1Under the supervision of PCF, the branch generates all son nodes thereof to be stored in list, and v is set as v ═ v1And d is 3. Let M0[v1>M1. Since there is at least one transition under the supervision of the PCF, the slave M can be used1Is initiated so thatBecause of the fact thatAndis empty, so v is under the supervision of pruning rule 11Is inserted intoAnd all nodes in list are inserted under the supervision of pruning rule 2In (1). This process can be repeated until d-1. In d-1, the branching strategy is selected fromIn (b) selection v1Under the supervision of PCF, the branch generates all son nodes thereof to be stored in list, and v is set as v ═ v1And d is 0. Let M0[v1>M2. Since there is at least one transition under the supervision of the PCF, the slave M can be used2Is initiated so thatBecause of the fact thatAndis empty, so v is inserted under the supervision of pruning rule 1And all nodes in list are inserted under the supervision of pruning rule 2In (1). Given v2∈ list, due to | v2|+1=d*,v2Is the first found schedule. Thus AB&B can obtain the first schedule at the (d x-1) th iteration. Each node has at most | T | child nodes. Thus, the complexity of the branching strategy is O (| T |). At each of the iterations it is desired to,andare all empty. Thus, the complexity of applying pruning rules 1 and 2 is both O (1). Thus, AB&B has a complexity of O (| T |, d |);
AB & B can quickly find the first solution. And it can quickly update the current best solution, giving a reasonably good solution in a short time. It can give a better solution if it is given more time.
The experimental results are as follows:
AB & B is realized by C + +, is compiled by MSbuild 4.0, and runs on a personal computer with 1.7-GHz CPU and 4GB memory. The operating system of the computer is Windows 7 professional edition. AB & B was tested by a widely used flexible manufacturing system whose Petri net model is shown in fig. 1. The processing time of the campaign is specified in table 1.
TABLE 1 processing time of the campaign
Test results of lower bound, branching strategy and pruning rules
The first experiment was aimed at testing the validity of the lower bound, branching strategy and pruning rules. Suppose the number of three types of workpieces is 8, 12, 8, m1-m4And r1-r3Are 2, 2, 2, 2, 1, for this example, d 8 × 4+12 × 6+8 × 6+1 153 for lower bound validity detection at CPU times of 2s, 5s, 10s, 20s, 50s, 100s, 200s, 500s, and 1000s,the average lower bound of nodes with a medium depth of 10, 20, 30.., 150 is recorded. At the same time, at these momentsAnd is also recorded. The results are shown in Table 2, the average lower bound of the nodes andthe difference of (c) is shown in fig. 2. As can be seen from Table 2, as the depth increases, the average lower bound of the node becomes closer toThis indicates that the greater the depth, the more accurate the estimation of the lower bound of the node. It is worth mentioning that the number of nodes at depths 10 and 140 is 0 at CPU times of 100s, 200s, 500s, and 1000 s. This indicates that more and more nodes are at a relatively small depth ([1,10 ]]) And relatively large depth ([ d x-10, d x)]) Is pruned. As can be seen from FIG. 2, as the search progresses, the evaluation of the node is bounded byThe gap of (a) is getting smaller. This indicates that the proposed lower bound has a significant pruning effect on nodes that are not promising.
to test the effectiveness of the proposed branching strategy, the patent implements a depth-first strategy that is always onAnd selecting the node with the maximum depth and the minimum lower bound for expansion. AB that will use this branching strategy&The B algorithm is represented as AB&B1. To test the effectiveness of the proposed pruning rules, this patent implements AB without using pruning rules 1 and 2&B Algorithm, denoted AB&B2。AB&B2Directly inserting all branched and non-branched nodes into the nodes respectivelyAndin (1). Maximum run time of all algorithmsIs set to 1200 s. The results of the runs are shown in Table 3.AB&B will improve the completion time of the current best schedule (C)max) Spending 143.7s from 443 to 243. AB&B1It takes 190.5s to improve the currently best scheduled completion time from 443 to 363. AB&B2It takes 454.5s from 443 to 312 to improve the currently best scheduled completion time. Obviously, AB is the three algorithms&B is most efficient in searching. This indicates AB&The search efficiency of B has a great relationship with both branching strategies and pruning rules.
TABLE 3 scheduling results for AB & B, AB & B1 and AB & B2
Comparison with existing work
AB&B will be compared to all existing 6 methods, which are denoted M for the 6 algorithms respectively1(method of reference [ 2 ]), M2(method of reference [1 ]), M3(method of reference [ 4 ]), M4(method of reference [ 7 ]), M5(method of reference [ 8 ]) and M6(the method of document [ 9 ]), wherein document [ 7 ] is H.Lei, K.Y.Xing, Z.X.Gao, and F.L.Xiong, "A hybrid differential evaluation system" T.I.Meas.control, vol.38, No.10, pp.1270-1280,2016, document [ 8 ] is L.B.Han, K.Y.Xingn, X.Chen, and F.L.Xiong, "A hybrid differential evaluation system" 10, pp.1270-1280,2016, document [ 7 ] is L.B.Han, K.Y.Xingn, and F.L.Xiong, "A hybrid-based simulation evaluation system for scheduling analysis and analysis," L.F.F.Xingn. 1096,2018, and "L.Xingn.F.Gts and deadlocking controllers, "int.j.prod.res., vol.52, No.5, pp.1557-1572, oct.2014. the maximum run time of the setting algorithm is 1200 s. the testing is performed with 16 cases based on the criteria of fig. 1 in document [ 9 ]. in order to save space, the basic information of these standard cases is omitted, these cases are denoted as F1-16. for F16, the initial number of three types of workpieces is 20. therefore, for this example, d is 20 × 4+20 × 6+20 × 6+1 321. each node in the branching tree has at most 16 child nodes320(a rather bulky scale).
The results are shown in table 4, wherein other results are from documents [1, 2,4,7,8,9 ], respectively. In Table 4, BST represents the completion time of the current best solution, and AVG represents the average completion time of the current best solution found by multiple runs. AB&B all get the best solution better than the algorithm M2,M3And M6。AB&B finds the 12 current best solutions (in bold) of the 16 examples. For 3 of the remaining 4 examples, AB&The best solution found by B is better than M4。
Importantly, AB&B is stable in performance, while M1,M2And M4-M6The performance of (c) is random. For 15 of 16 examples, AB&The completion time of the best solution found by B is much less than the average completion time of the best solutions obtained by running the algorithms several times. Furthermore, M1,M2And M4-M6Depends on the fine-tuning of at least 3 parameters, and AB&B contains only one parameter, the maximum CPU time, which usually does not need to be adjusted. When the maximum CPU time is tight, AB&B is able to output a feasible and satisfactory solution. If more time is allowed, AB&B can be better and better solved.
The initial number of three types of workpieces in cases F3, F7, F11, and F15 was 15, 20, and 25, respectively. The initial number of three types of workpieces in cases F4, F8, F12, and F16 was 20, 20, and 20, respectively. For all these cases, AB & B found the best solution better than all the methods available. This indicates that AB & B has the ability to find a good solution to large scale problems. The superior capabilities of AB & B are attributed to lower bounds, branching strategies and pruning rules.
TABLE 4 calculation results of AB & B and the existing 6 methods
TABLE 5 AB&B,M1,M3And M5Run the computer
TABLE 6 execution time of AB & B and existing algorithms
To find out if there is a difference between the best solutions found by these 7 algorithms, a parametric-free Friedman (Friedman) test was performed with a significance level of 0.05. The result of 90 indicates that AB&There are significant differences between B and these 6 algorithms. To be more specific, multiple comparisons were made at a significant level of 0.05 (described in [ 10 ] (M.Hollander and D.A.Wolfe, Nonparametric Statistical methods.New York: Wiley, 1973)), and the results indicated that AB was present at a significant level&B is significantly better than all existing algorithms. Furthermore, M1And M5Is obviously superior to M2-M4And M6。
M4And M6Is not given in the document [ 9 ] and the document [ 7 ]. In the document [1 ], only M is given21900s and 178 s. Thus, only M1,M3And M5An execution time comparison is performed. The execution time of the algorithm is affected by the speed of the CPU and the size of the memory. Generally, the faster the CPU runs and the larger the memory, the shorter the time to run the algorithm. AB&B,M1,M3And M5The CPU and memory of the running computer of (a) are shown in table 5. It is clear that it is possible to use,AB&b runs the computer the slowest.
AB&B,M1,M3And M5Execution time of (2) is shown in Table 6, where M1,M3And M5The results are from documents [ 2,4,8 ], respectively. Note that only AB&B and M3The time taken to find the first schedule is given. From Table 6, AB&B to M3Finding the first schedule takes much less time. In addition, of the 16 examples, there are 12 examples AB&B takes the least time, there are 4 instances M3The time spent is minimal.
To find AB&B,M1,M3And M5Was tested at a significant level of 0.05 for a non-parametric friedman test. The results show that AB&B and M1,M3And M5There is a significant difference between the execution times of (c). To be more specific, we made multiple comparisons at a significance level of 0.05. The results show AB&B spends the least time in these 4 algorithms. Due to AB&B is the slowest of the 4 algorithms to run, so AB&B has the highest computational efficiency.
To summarize:
the invention provides a fast branch and bound algorithm (AB & B) for the first time aiming at a flexible manufacturing system easy to deadlock. AB & B searches the branch tree of the system for the best solution to the problem. In the searching process, the AB & B selects nodes which are not branched under the guidance of the proposed branching strategy, and the branching strategy enables the AB & B to quickly update the optimal solution. The branching of the nodes that are not branched is done under the supervision of an existing optimal control strategy. In the searching process, pruning is carried out according to the lower bound of the node, and repeated searching is avoided by using a pruning rule. The branching strategy and pruning rules together enable the AB & B to quickly find the optimal or near optimal solution. The test results on the standard case show that AB & B is significantly superior to all existing methods, and the superior performance of AB & B is due to the proposed lower bounds, branching strategies and pruning rules.
In summary, the present invention has the following advantages:
(1) a lower bound and two pruning rules are provided to prune nodes without future and avoid repeated searching;
(2) a new branching strategy is provided, so that deadlock can be avoided, and the algorithm can be enabled to quickly update the current optimal solution;
(3) a fast branch-and-bound algorithm with only one parameter is provided, which is superior to all existing deadlock-free scheduling algorithms for flexible manufacturing systems.
Claims (1)
1. A fast deadlock-free branch-and-bound scheduling method for a flexible manufacturing system is characterized by comprising the following steps:
step 1: flexible manufacturing system modeling
Step 1.1Petri Net preparation knowledge
The Petri net is a directed bipartite graph comprising vertices of two types, location (place) and transition (transition), where locations are represented by circles, transitions are represented by rectangles or thick solid lines, locations and transitions are connected by directed arcs,a set of non-negative integers is represented,a set of positive integers is represented that,represents a set of positive integers {1, 2.., k }; the Petri net is specifically defined as follows:
a Petri net is a 3-tuple of N ═ (P, T, F), where P is the set of locations, T is the set of transitions, for directed arc sets, P and T are finite disjointIs not empty, i.e.
In the Petri net N ═ (P, T, F), a vertex x ∈ P ∪ T is given, and·x ═ y ∈ P ∪ T | (y, x) ∈ F } and x·Y ∈ P ∪ T | (x, y) ∈ F represents a preamble set (preset) and a postset (postset) of x, respectively;
in a Petri net N ═ (P, T, F), a path (path) is a sequence α ═ x composed of adjacent vertices1,x2,...,xkWherein x isi∈P∪T,(xi,xi+1)∈F,i∈Zk-1;
The state or identity (marking) of a Petri net N ═ P, T, F is a mapping M: P → Z from a set of positions to a set of non-negative integers*For position P ∈ P and marker M, M (P) represents the number of tokens in position P under marker M, the number of tokens in position being represented by a black dot number or a positive integer, with initial marker M0The Petri net N is called an identification Petri net and is marked as (N, M)0);
The identification is represented by a vector, i.e. M ═ M (p)1),M(p2),...,M(p|P|))TFor brevity, ∑p∈PM (p) p represents the identifier M;
given a Petri net N ═ (P, T, F), T ∈ T is a transition in N, M is an identification in N, if M(p)>0, then the transition t is said to be enabled under the M identifier, denoted as M [ t>(ii) a Triggering a (fire) transition t under the identity M will cause the system to transition from the identity M to the identity M', denoted as M [ t ]>M', wherein,M′(p)=M(p)-1;m' (p) ═ M (p) + 1; otherwise, M' (p) ═ M (p); given a controller Δ, let M [ t, Δ > denote that initiating an enable transition t at an identification M is permitted by the controller Δ, enabling for a transition sequence τ t1t2...tk,ti∈T,i∈ZkIf M isi[ti>Mi+1Wherein M is1Let τ be feasible under M (feasible);
(N1,M10)=(P1,T1,F1,M10) And (N)2,M20)=(P2,T2,F2,M20) Is two labeled Petri nets, ifM10(p)=M20(p) is called (N)1,M10) And (N)2,M20) Is compatible; two compatible labeled Petri nets (N)1,M10) And (N)2,M20) The composition (composition) of (A) is a new identification Petri net Wherein P ═ P1∪P2;T=T1∪T2;F=F1∪F2;M0(p)=M10(p),M0(p)=M20(p);
For the logo Petri Net (N, M)0)=(P,T,F,M0) Let B (N, M)0) Is (V, E) represents(N,M0) Wherein V is (N, M)0) E is a set of directed edges between nodes; a node consists of a transition sequence; let v1And v2Respectively indicates that two nodes satisfy M0[v1>M1And M0[v2>M2If T ∈ T is present, so that M1[t>M2Then there is a slave v1To v1Directed arc of, in a branch tree, node v1Is of depth | v1L +1, where v1| represents v1The number of medium transitions; all nodes at the same depth form a search layer, and the layer with the largest depth is called a bottom layer (bottom level);
step 1.2 Flexible manufacturing System modeling based on position-timed (planned-timed) Petri Net
Assuming that the resource type and the workpiece type in the flexible manufacturing system are m and n, respectively, the resource set and the workpiece set are represented as m and n, respectivelyAndgiven resource ri∈ R, orderIndicates its initial resource amount, orderIndicating the resource instance set, initially the number of unprocessed u-th class artifacts is Ψu;
An unprocessed workpiece is processed sequentially on a series of resources, the processing sequence of which is called a path, such that Representing a set of all machining paths, wherein the u-th workpiece has a plurality of machining paths; order toSet of machining paths representing class u workpieces, let LiDenotes thetaiNumber of medium resources, then thetaiIs shown asWhereinIs thetaiThe j-th resource in (c); let aijIndicates a certain value at thetaiJ-th movement of the workpiece to be machined, thetaiCorresponding to a sequence of activities, i.e.Resource rk∈ R is requested by multiple activitiesIndicates all requests rkThe activity of (2); for thetauTwo paths θ in (b)iAnd thetajIf, ifThen activity aikAnd ajkAre the same; for the sake of simplicity, aikAnd ajkAre combined into one activity, the set of all activities is represented as
Given aij∈A(rk) Let path tijpijti(j+1)Representing its Petri Net model, where tijDenotes aijStart of) operation, ti(j+1)Denotes aijTo finishIn operation, pijDenotes aijThe active position of (a); resource rk∈ R resource location RkIs represented bykThe initial token number of CkAdding two arcs, one from rkTo tijRepresenting a request rkThe other one from ti(j+1)To rkRepresents the release of rkLet OPNijDenotes aijThe Petri Net model of (1);
for class u workpieces, two imaginary active positions p are addedu◇And pu◆Respectively representing the start and end of the motion of the u-th workpiece, for thetai∈ΘuAdding two arcs, one from pu◇To ti1Another one from ti(Li+1)To pu◆The overall flexible manufacturing system is modeled as:
wherein P is a set of active positions; is a resource location set; t is a transition set; f is a set of arcs, M0Is an initial mark and is expressed asM0(pu◇)=Ψu; M0(p)=0;M0(ri)=Ci;
For P ∈ P, letRepresenting the processing time of the activity associated therewith, ford (p) ═ 0, the Petri network with position assignment is called scheduling Petri network (PNS for short); let MfRepresents the termination identifier of N, whereinMf(pq◆)=Ψq;Mf(p)=0; Mf(ri)=CiOne feasible schedule is a transition sequence of π and satisfies M0[π>MfLet S (N, M)0) Represents (N, M)0) A set of feasible schedules;
step 2: deadlock-free fast branch-and-bound scheduling algorithm
Based on a Petri network model of a system, a deadlock-free rapid branching and delimiting scheduling algorithm is provided, an optimal solution is searched in a branch tree of the system, the searching process is guided by a new branching strategy, the branching strategy overcomes the defects of breadth-first searching and depth-first searching, the lower bound of a node is provided for pruning nodes which are not promising, and in addition, two pruning rules are provided for avoiding repeated searching;
step 2.1, lower bound of the node;
let v equal t1t2...tqRepresents B (N, M)0) And M is one node in0[ v > M, [ tau (v) denotes tqInitiation time of l*(v)=min{τ(vv1)|v1∈{v2|M[v2>Mf}; if presentAnd l is less than or equal to l*(v) Then l is the lower bound of v; if the lower bound of node v is equal to l*(v) Then the lower bound is the maximum lower bound for v; l*(v) A minimum value equal to the maximum value of the completion time of the resource from M to complete the processing of all the remaining workpieces;
order to Representing the first token or workpiece in p, assuming the workpieceThe time for entering p is tau (v)1) Then, at time τ (v),the remaining time in p is
A path is said to be a machining path if all positions in the path are active, given that P '∈ P (P' ≠ P) satisfies the existence of a machining path ω ═ pt1p1t2…pk-1tkpk(pkP'), order Is the process path from p to p';
given T ∈ T, let(a)t ═ p denotes the input active position of t, ζ (t, v) denotes the fastest time to complete the workpiece from τ (v) in position p; if M (p) is not less than 1If M (p) is 0, letMachining pathAnd is If it is notThen If not, let ξ (r ∞)iV) denotes r starting from τ (v)iThe fastest time to request, ξ (r)i,v)=min{ζ(t,v)|t∈ri ·};
Given rik∈ΞiLet I (r)ikV) denotes that r is scheduled from τ (v) to the next activityikR betweenikA minimum idle time of; if r isikIs idle at τ (v), thatChinese character I (r)ik,v)=ξ(riV) - τ (v); otherwise WhereinIs being represented by r at τ (v) in qikJ-th activity of processing; let gamma (r)ikV) indicates that the next activity is scheduled at rikAt the earliest time of (i), then gamma (r)ik,v)=τ(v)+I(rik,v)+χ(rikV), wherein if rikAt τ (v) is idle, then χ (r)ikV) is 0; if at time r (v)ikIs being processedThen
The path selection scheme assigns a processing path to each unfinished workpiece; let S (v) ═ s1,s2,...,shDenotes from M to MfGiven s ∈ S (v), let A (s, r)i) Indicating routing to r by the routing schemeiGiven activity ajk∈A(s,ri) Let p (a)jk) Indicates its active position, order Xi when representing path selection scheme as siMinimum average processing time for medium resource instances;
Theorem 1: given B (N, M)0) Is connected to the node v in (1),lower bound of completion time of v, i.e.
Step 2.2 defining branching strategies
Let d denote the depth of the current search level, d denotes the maximum depth of the search tree, at the search level d, the branching policy preferentially selects the node with the smallest lower bound, if there is no node that is not branched at the search level d or d ═ d, then set d ═ d + 1)% d, and reselect the node; stopping selecting a node if all depths are searched and no nodes not branched are selected; otherwise, one node not branched is selected, d ═ d + 1)% d is set, and the node is reselected;
the branching of the selected node v is directed by the deadlock controller, assuming M0[ v > M, only transitions enabled under M and allowed by the controller can initiate and produce new unbranched nodes; vector quantityAndare used to store branched and unbranched nodes respectively, andfor storing lists of nodes at depth i that are branched and unbranched, respectively; the steps of the branching strategy are as follows:
inputting: depth d of the current search layer;
and (3) outputting: flag, d, v and list, wherein, flag true represents that a node which is not branched is selected, and flag false represents that a node which is not branched is selected; v is the selected non-branched node; list is used for storing newly generated nodes which are not branched;
step 2.2.1: when d is1D ═ orWhen the collection is empty, the circulation of the steps 2.2.1.1 and 2.2.1.2 is carried out, and the following steps are specifically carried out:
step 2.2.1.1: let d1Is (d)1+1)%d*;
Step 2.2.1.2: if d is1If d is equal, the flag is made false, and the loop is ended, otherwise, the step 2.2.1 is skipped;
step 2.2.2: if flag is true, then:
step 2.2.2.3: let M0[v1> M, let e (M) { T ∈ T | M [ T, PCF >);
step 2.2.2.4 for any change t ∈ E (M) { v1t } adding to list;
step 2.2.2.5: let v equal v1Where v is the selected unbranched node;
step 2.2.2.6: let d be (d)1+1)%d*;
Step 2.2.3: returning flag, d, v and list;
step 2.3 definition of pruning rules
Once an unbranched node is selected and branched, it is inserted intoIn the method, a new node generated by a branch is inserted intoIn the method, two pruning rules are proposed, which are respectively applied to inserting nodes into the treeAndin the process of (2):
pruning rule 1
Inputting: a branched node v;
initialization: let M0[v>M;d=|v|+1;
Step A-1: if presentSo that M0[v1If the value is more than M, executing the step A-1.1, otherwise executing the step A-2;
Pruning rule 2
Inputting: a newly generated unbranched node v;
initialization: let M0[v>M;d=|v|+1;
Step B-1: if presentSo that M0[v1If the value is more than M, executing a step B-1.1, otherwise executing a step B-2;
step B-2: if presentSo that M0[v1If the value is more than M, executing a step B-2.1, otherwise executing a step B-3;
step B-2.1: if it is notThen orderIs composed ofOrder toIs composed ofFinishing; step B-3: order toIs composed of
Step 2.4, a deadlock-free rapid branching and delimiting algorithm;
deadlock free fast Branch bounding method (Anytime Branch and Bound, hereinafter referred to as AB&B) Is a search algorithm for searching the optimal schedule in the branch tree of PNSRepresenting the current best solution completion time; given an unbranched node v, ifThen v is an unprivileged node because branch v cannot get a better solution than the current best solution, and the unprivileged node will be pruned during the search process;
at the beginning of the process, the process is carried out,using a branching strategy, a node is selected and branching is performed under the supervision of PCF, and the selected node is inserted under the supervision of a pruning strategy 1Under supervision of pruning strategy 2, newly generated nodes are inserted intoIf a completion time is found to be less thanWill thenUpdated as the completion time of the schedule, onceIs updated atMiddle lower bound is greater than or equal toThe nodes are pruned, and the process is carried out until all the nodes are branched or the CPU time is more than the set maximum CPU time; the detailed steps of the deadlock-free fast branch-and-bound algorithm are as follows:
And (3) outputting: current best schedule v;
step 2.4.1: if the CPUCircularly executing the steps 2.4.1.1-2.4.1.9, otherwise, jumping to the step 2.4.2;
step 2.4.1.1: let the input of the branching strategy be d, and execute the branching strategy, let the result of the branching strategy output be (flag, d, v, list);
step 2.4.1.2: if flag is false, jumping to step 2.4.2;
step 2.4.1.3: let the input of pruning rule 1 be v, execute pruning rule 1;
step 2.4.1.4: for all v1∈ list, circularly executing the step 2.4.1.5-2.4.1.8;
step 2.4.1.5: let the input of pruning rule 2 be v1Executing pruning rule 2;
step 2.4.1.6: if | v1And | +1 ═ d-Then steps 2.4.1.7 and 2.4.1.8 are performed, otherwise go to step 2.4.1.4;
Step 2.4.1.9: skipping to step 2.4.1;
step 2.4.2: v is returned.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497896.4A CN111667113B (en) | 2020-06-04 | 2020-06-04 | Rapid deadlock-free branch delimitation scheduling method for flexible manufacturing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497896.4A CN111667113B (en) | 2020-06-04 | 2020-06-04 | Rapid deadlock-free branch delimitation scheduling method for flexible manufacturing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111667113A true CN111667113A (en) | 2020-09-15 |
CN111667113B CN111667113B (en) | 2023-04-25 |
Family
ID=72386044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010497896.4A Active CN111667113B (en) | 2020-06-04 | 2020-06-04 | Rapid deadlock-free branch delimitation scheduling method for flexible manufacturing system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111667113B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114740718A (en) * | 2022-03-26 | 2022-07-12 | 西北工业大学太仓长三角研究院 | Robust control method for flexible assembly system containing single unreliable resource |
CN117035255A (en) * | 2023-05-31 | 2023-11-10 | 南通大学 | Robust scheduling method for manufacturing system containing unreliable resources |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491863A (en) * | 2017-07-28 | 2017-12-19 | 东北大学 | A kind of branch and bound method that initial lower bound beta pruning is used based on straight-line code mode |
US20180189897A1 (en) * | 2017-01-03 | 2018-07-05 | Macau University Of Science And Technology | System, method, computer program and data signal for scheduling at least one physical event |
CN110046810A (en) * | 2019-04-02 | 2019-07-23 | 南京理工大学 | A kind of Shop Floor Multiobjective Scheduling method based on Timed Petri nets |
-
2020
- 2020-06-04 CN CN202010497896.4A patent/CN111667113B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180189897A1 (en) * | 2017-01-03 | 2018-07-05 | Macau University Of Science And Technology | System, method, computer program and data signal for scheduling at least one physical event |
CN107491863A (en) * | 2017-07-28 | 2017-12-19 | 东北大学 | A kind of branch and bound method that initial lower bound beta pruning is used based on straight-line code mode |
CN110046810A (en) * | 2019-04-02 | 2019-07-23 | 南京理工大学 | A kind of Shop Floor Multiobjective Scheduling method based on Timed Petri nets |
Non-Patent Citations (3)
Title |
---|
JIANCHAO LUO ETC.: "Deadlock-Free Scheduling of Automated", 《 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS: SYSTEMS》 * |
周家忠 等: "间歇式化工系统的Petri网优化调度与控制方法", 《控制理论与应用》 * |
王成龙等: "作业车间调度规则的挖掘方法研究", 《浙江大学学报(工学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114740718A (en) * | 2022-03-26 | 2022-07-12 | 西北工业大学太仓长三角研究院 | Robust control method for flexible assembly system containing single unreliable resource |
CN117035255A (en) * | 2023-05-31 | 2023-11-10 | 南通大学 | Robust scheduling method for manufacturing system containing unreliable resources |
CN117035255B (en) * | 2023-05-31 | 2024-02-06 | 南通大学 | Robust scheduling method for manufacturing system containing unreliable resources |
Also Published As
Publication number | Publication date |
---|---|
CN111667113B (en) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Eecbs: A bounded-suboptimal search for multi-agent path finding | |
CN111667113A (en) | Rapid deadlock-free branch-bound scheduling method for flexible manufacturing system | |
CN116166405B (en) | Neural network task scheduling strategy determination method and device in heterogeneous scene | |
CN112836974B (en) | Dynamic scheduling method for multiple field bridges between boxes based on DQN and MCTS | |
CN109857532A (en) | DAG method for scheduling task based on the search of Monte Carlo tree | |
CN105955882B (en) | A kind of method for generating test case and device of iterative learning model behavior similitude | |
CN113408949B (en) | Robot time sequence task planning method and device and electronic equipment | |
CN114757512A (en) | Job shop scheduling method based on graph neural network | |
CN106953801B (en) | Random shortest path realization method based on hierarchical learning automaton | |
CN110689174A (en) | Personnel route planning method and device based on public transport | |
CN113721622B (en) | Robot path planning method | |
CN106354633B (en) | Task schedule table generating method based on algorithm groupware | |
CN111190711B (en) | BDD combined heuristic A search multi-robot task allocation method | |
Ling et al. | Reinforcement learning for zone based multiagent pathfinding under uncertainty | |
CN116907490A (en) | Multi-robot path planning method based on conflict search | |
CN107105052B (en) | Heuristic Web service combination method based on graph planning | |
CN115759199A (en) | Multi-robot environment exploration method and system based on hierarchical graph neural network | |
CN104462829B (en) | The processing method of complicated multi-region grid in space propultion solution | |
CN108121868B (en) | A kind of space face domain generation method and system based on KDtree for sheet metal component modeling | |
Hu et al. | Cloud-computing-based resource allocation research on the perspective of improved ant colony algorithm | |
Mejía et al. | A Petri Net based algorithm for minimizing total tardiness in flexible manufacturing systems | |
Pineda et al. | Generalizing the role of determinization in probabilistic planning | |
Evgenyevna et al. | Self-configuring evolutionary algorithms for travelling salesman problem | |
Huang et al. | Dynamic task sequencing of manipulator by Monte Carlo tree search | |
Wang et al. | Automatic discovery and transfer of maxq hierarchies in a complex system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |