This application claims priority to Chinese patent application 202110991175.3 filed Aug. 26, 2021, the content of which are incorporated herein in the entirety by reference.
The disclosure relates to a technical field of mixed integer linear programming, in particular to a scheduling method for an unrelated parallel machine and a related device therefor.
An earth observation satellite is a satellite platform that images the earth's surface by a remote sensor (payload) on board in response to user demand. With an explosive growth of observation demand and limited resources, scheduling is very important to improve observation efficiency. Generally, the Earth observation satellite operates in a low orbit, and it can orbit the Earth ten to dozens of times a day. Obviously, the satellite can only observe a target successfully when flying over it, that is, the target must be within a visible range of the satellite. Therefore, a target observation is restricted in a time window. Because of operation in several orbits around the earth every day, as well as flexible maneuverability and field of view of the sensor, the satellite can observe the same target from several adjacent orbits. Therefore, there may be multiple time windows for a single satellite to observe a single target. With different orbits, there may be different time windows for different satellites to observe the same target. Further, it is required for the satellite to perform certain switching operations between continuously observing two targets, including sensor shutdown, yawing, attitude stabilization and restarting. Therefore, if each satellite is regarded as an implementer and each target is regarded as an object to be processed, a scheduling problem for the earth observation satellite can be described as a scheduling problem of an unrelated parallel machine with multiple time windows and switching time.
Similar problems also exist in scheduling by implementers in a production workshop and crew scheduling in enterprises, in which workpieces or tasks can only be allocated within the working time windows of implementers or employees. In addition, in most cases, the implementers or employees only work in daylight. Another typical application is a team orienteering problem with multiple time windows, in which customers cannot be visited during sleep time and working time. The difference is that the time windows in the above problems only depend on one of the implementer or the object to be processed, however the visibility is determined by the orbit of the satellite and a target position, and thus the time windows depend on both the object to be processed and the implementer.
In view of this, an object of this disclosure is to propose a scheduling method for an unrelated parallel machine and a related device therefor.
On a basis of the above object, the present disclosure provides a scheduling method for an unrelated parallel machine, which includes:
processing an object to be processed within a corresponding time window in response to determining that a first variable is 1, and taking a second variable to be 0 in response to determining that the first variable is 0; and scheduling the object to be processed according to the first variable and the second variable, wherein the first variable indicates whether the object to be processed is scheduled to a time window corresponding to an implementer, if the object to be processed is scheduled to the time window corresponding to the implementer, the first variable is 1, otherwise, the first variable is 0; and the second variable indicates a start time when the object to be processed are allocated to the time window, and each object to be processed is processed at most once;
processing the second object to be processed before the first object to be processed in response to determining that a latest end time of the first object to be processed is less than a sum of an earliest start time of the second object to be processed and switching time of the implementer; and processing the second object to be processed after the first object to be processed in response to determining that the latest end time of the first object to be processed is greater than the sum of the earliest start time of the second object to be processed and the switching time of the implementer;
processing the first object to be processed before the second object to be processed in response to determining that the third variable is 1; and processing the first object to be processed after the second object to be processed in response to determining that the fourth variable is 1; wherein the third variable and the fourth variable respectively indicate scheduling orders of the first object to be processed and the second object to be processed, and the third variable and the fourth variable satisfy switching time constraint, consistency constraint and the domain constraint; and establishing a mixed integer linear programming model according to above conditions, solving it to obtain a scheduling scheme for scheduling the object to be processed with a maximum total revenue, and scheduling the object according to the scheduling scheme.
On a basis of the same concept, a scheduling device for an unrelated parallel machine is also provide in this disclosure, which includes:
a first processing module configured to process an object to be processed within a corresponding time window in response to determining that a first variable is 1, and take a second variable to be 0 in response to determining that the first variable is 0; and schedule the object to be processed according to the first variable and the second variable, wherein the first variable indicates whether the object to be processed is scheduled to a time window corresponding to an implementer, if the object to be processed is scheduled to the time window corresponding to the implementer, the first variable is 1, otherwise, the first variable is 0; and the second variable indicates a start time when the object to be processed are allocated to the time window, and each object to be processed is processed at most once;
a second processing module configured to process the second object to be processed before the first object to be processed in response to determining that a latest end time of the first object to be processed is less than a sum of an earliest start time of the second object to be processed and switching time of the implementer; and process the second object to be processed after the first object to be processed in response to determining that the latest end time of the first object to be processed is greater than the sum of the earliest start time of the second object to be processed and the switching time of the implementer;
a third processing module configured to process the first object to be processed before the second object to be processed in response to determining that the third variable is 1; and process the first object to be processed after the second object to be processed in response to determining that the fourth variable is 1; wherein the third variable and the fourth variable respectively indicate scheduling orders of the first object to be processed and the second object to be processed, and the third variable and the fourth variable satisfy switching time constraint, consistency constraint and the domain constraint; and
a scheduling module configured to establish a mixed integer linear programming model according to above conditions, solving it to obtain a scheduling scheme for scheduling the object to be processed with a maximum total revenue, and schedule the object according to the scheduling scheme.
On a basis of the same concept, an electronic device is also provided in one or more embodiments of this specification, which includes a memory, a processor and a computer program stored on the memory and operable on the processor, and the processor implements the method described in any one of the above when executing the program.
From the above, it can be seen that in the scheduling method for the unrelated parallel machine and the related device provided in the present disclosure, the first variable indicating whether the object to be processed is scheduled to the time window corresponding to the implementer and the second variable indicating the start time when the object to be processed is allocated to the time window are introduced into the model, and then conflicts or relationships between the time windows are analyzed, the corresponding scheduling scheme can be obtained according to different situations and the scheduling can be performed according to the scheduling scheme. A new improved mixed integer linear programming model (MILP) is obtained, which avoids introduction of a “big M” variable and has a tighter upper bound for linear relaxation. The introduction of 0-1 variables among all objects to be processed is avoided, and solving efficiency of the scheduling scheme can be improved.
In order to explain technical schemes in this disclosure or related technologies more clearly, the drawings required in the description of the embodiments or the related art will be briefly introduced below; obviously, the drawings in the following description are only embodiments of the present disclosure, and other drawings can be obtained according to these drawings by those of ordinary skill in the art without paying creative labor.
In order to make the objects, technical schemes and advantages of the disclosure more clear, the disclosure will be further described in detail with reference to specific embodiments and drawings.
It should be noted that, unless otherwise defined, technical terms or scientific terms used in the embodiments of this disclosure shall have a general meaning understood by those with general skills in the field to which this disclosure pertains. Words “first”, “second” and the like used in the embodiments of this disclosure do not indicate any order, quantity or importance, but are only used to distinguish different components. Similar words such as “including” or“containing” mean that the elements or objects appearing before the words encompass listed elements or objects appearing after the word and their equivalents, with other elements or objects being not excluded. Similar words such as “connected to” or “connected with” are not limited to physical or mechanical connection, but can include electrical connection, direct or indirect. An expression such as “upper”, “lower”, “left” and “right” is only used to express a relative positional relationship. When an absolute position of a described object changes, the relative positional relationship may also change accordingly.
As mentioned in the background art, the scheduling problem of the unrelated parallel machine exists in all aspects of production and life. In realizing this disclosure, the applicant found that existing solutions to the scheduling problem of the unrelated parallel machine with multiple time windows are very limited. Many scholars have studied the scheduling problem of the unrelated parallel machine with the time windows, and extended their research work to a field of satellite scheduling. In order to improve antenna utilization of a Tracking and Data Relay Satellite System (TDRSS), Rojanasoonthon and Bard studied the scheduling problem of the uncorrelated parallel machines with the time windows. Firstly, a mixed integer linear programming model is established, but considering this complex model, it is difficult to solve large-scale problems in reality. They used two heuristic algorithms to solve the model, the first one is the Greedy Randomized Adaptive Search Algorithm (GRASP), which contains two stages. In a first stage, the object to be processed are sorted by a greedy function, and each object to be processed is scheduled one by one in order to generate an initial feasible solution. In a second stage, a local optimal solution is searched by inserting the object to be processed and swapping neighborhood. Then, a heuristic algorithm similar to dynamic programming is proposed, which is called R-B algorithm. A basic idea of the R-B heuristic algorithm is to construct a directed acyclic graph from priority relations among the objects to be processed, and then to search a longest path of the directed graph. An optimal solution usually cannot be obtained for meta-heuristic algorithms and optimality of the solution also cannot be guaranteed and evaluated, Rojanasoonthon and Bard thus further try to solve the optimal solution to this problem. Based on a special structure of the problem, the mixed integer linear programming model is reconstructed into independent subset major problems and multiple short-path pricing subproblems, and a branch and price algorithm is designed. More comprehensively, the above GRASP heuristic algorithm is used to solve a pricing subproblem. In their research, each object to be processed has multiple time windows, but each object to be processed has only one or two time windows at most on each implementer, and a situation with more time windows is not considered.
Chen studied a scheduling problem of Earth observation satellites, which is a variant of the scheduling problem of the uncorrelated parallel machines with the time windows. In the study, each object to be processed has multiple time windows on each implementer. By analyzing interdependence among feasible time windows, a new mixed integer linear programming model is designed, and linear relaxation of the model is tightened by improved constraints. Then, a preprocessing algorithm is proposed to reduce a problem size and facilitate solving the algorithm. However, in practical work, because of introduction of a “big M” parameter in the traditional model, it is difficult to obtain a tight upper bound for the linear relaxation of the model. In the traditional model, for any two objects to be processed and any implementer k, it is necessary to define a 0-1 variable yijk, I, j∈J, k∈M, so the number of the variables yijk is n2m. Therefore, a loose upper bound for the linear relaxation and a large number of 0-1 variables make the traditional model difficult to solve effectively.
In view of this, a scheduling scheme for an uncorrelated parallel machine is provided in one or more embodiments of this disclosure, in which a complex overlapping relationship between time windows are further analyzed deeply and the upper bound for the linear relaxation of the model is improved. A new preprocessing algorithm is designed, which can successfully schedule more objects to be processed. Specifically, firstly, the first variable indicating whether the object to be processed is scheduled to the time window corresponding to the implementer and the second variable indicating the start time when the object to be processed is allocated to the time window are introduced into the model, and then conflicts or relationships between the time windows are analyzed, the corresponding scheduling scheme can be obtained according to different situations and the scheduling can be performed according to the scheduling scheme. A new improved mixed integer linear programming model (MILP) is obtained, which avoids introduction of a “big M” variable and has a tighter upper bound for linear relaxation. The introduction of 0-1 variables among all objects to be processed is avoided, and solving efficiency of the scheduling scheme can be improved.
Hereinafter, technical schemes on one or more embodiments of the present disclosure will be explained in detail through specific embodiments.
Referring to
In S101, an object to be processed within a corresponding time window is processed in response to determining that a first variable is 1, and a second variable is taken to be 0 in response to determining that the first variable is 0; and the object to be processed is scheduled according to the first variable and the second variable. The first variable indicates whether the object to be processed is scheduled to a time window corresponding to an implementer, if the object to be processed is scheduled to the time window corresponding to the implementer, the first variable is 1, otherwise, the first variable is 0; and the second variable indicates a start time when the object to be processed are allocated to the time window, and each object to be processed is processed at most once.
In this embodiment, the object to be processed and the implementer may be different in different implementation scenarios. In a scenario of machining mechanical parts, the object to be processed may be a part to be machined, and the implementer may be a lathe. In a vehicle routing problem, the object to be processed can be a path of the vehicle, and the implementer can be the vehicle itself; and in a scenario of satellite scheduling, the object to be processed can be a task of the satellite, and the implementer can be the satellite itself.
In S102, the second object to be processed is processed before the first object to be processed in response to determining that a latest end time of the first object to be processed is less than a sum of an earliest start time of the second object to be processed and switching time of the implementer; and the second object to be processed is processed after the first object to be processed in response to determining that the latest end time of the first object to be processed is greater than the sum of the earliest start time of the second object to be processed and the switching time of the implementer.
In S103, the first object to be processed is processed before the second object to be processed in response to determining that the third variable is 1; and the first object to be processed is processed after the second object to be processed in response to determining that the fourth variable is 1. The third variable and the fourth variable respectively indicates scheduling orders of the first object to be processed and the second object to be processed, and the third variable and the fourth variable satisfy switching time constraint, consistency constraint and the domain constraint.
In S104, a mixed integer linear programming model is established according to above conditions, and solved to obtain a scheduling scheme for scheduling the object to be processed with a maximum total revenue, and the object is scheduled according to the scheduling scheme.
In this step, the mixed integer linear programming model can be expressed as:
Here, the model represents a maximum total profit of scheduling the object to be processed, which includes two virtual object to be processed, namely {0, n+1}, which correspond to a starting and ending objects to be processed, J represents a set of the objects to be processed, M represents a set of the implementers, I, j∈J∪{0, n+1}, k∈M, l∈TWjk and for each object j to be processed, j∈J, the profit is wj, xjkl represents the first variable and is a binary variable. If the object j to be processed is scheduled to a 1-th time window on an implementer k, xjkl=1, Otherwise, xjkl=0; there are multiple time windows for each object to be processed j and each implementer k, which are defined as TWjk={twjk1, twjk2, . . . , twik|TW
In this embodiment, each object to be processed should be scheduled within a certain time window. Otherwise, it cannot be scheduled. In addition, each object to be processed should be processed once without interruption, so this model focuses on non-preemptive scheduling, and a scheduling goal is to maximize the total profit of the object to be processed.
In this embodiment, the mixed integer linear programming model specifically includes:
This constraint ensures that each object to be processed is scheduled at most once.
x
jk
l∈{0,1},i,j∈J,k∈M,l∈TWjk
This constraint is domain constraint of the first variable.
ws
jk
l
x
jk
l
≤t
jk
k
,j∈J,k∈M,l∈TW
jk
(wejkl−pj)·xjkl≥tjkl,j∈J,k∈M,l∈TWjk
The above two constraints are time window constraints, which correspond to the following in step S101: the object to be processed within the corresponding time window is processed in response to determining that the first variable is 1, and the second variable is taken to be 0 in response to determining that the first variable is 0. In which, tj, j∈J∪{0, n+1} is the second variable, which is a real variable, indicating the start time corresponding to the time window twjkl to which a workpiece j is assigned, and pj indicates processing time.
For two time windows twikg and twjkl of two objects I, j to be processed (the first object to be processed and the second object to be processed) on the implementer k, if wejkl-pj-wsikg<Δk, which means that if both objects to be processed are scheduled to the implementer k, that is, xikg=1 and xjkl=1, then the object to be processed j must be processed before the object to be processed I, thus it is obtained that:
t
ik
g
−t
jk
l≥(pj+Δk)·xjkl−(wejkl+Δk)·(1−xikg)
This constraint is a switching time constraint, which corresponds to the following in step S102: the second object to be processed is processed before the first object to be processed in response to determining that a latest end time of the first object to be processed is less than a sum of an earliest start time of the second object to be processed and switching time of the implementer. Here, tj, j∈J∪{0, n+1} represents the second variable, pj represents the processing time, and Δk represents implementer switching time for each implementer k, k∈M.
For two time windows twikg and twjkl of two objects I, j to be processed on the implementer k, if weikg−pi−wsjkl<Δk, which means that if both objects to be processed are scheduled to the implementer k, that is, xikg=1 and xjkl=1, then the object to be processed j must be processed before the object to be processed I, thus it is obtained that:
t
jk
l
−t
ik
g≥(pi+Δk)·xikg−(weikg+Δk)·(1−xjkl)
This constraint is a switching time constraint, which corresponds to the following in step S102: the second object to be processed is processed after the first object to be processed in response to determining that the latest end time of the first object to be processed is greater than the sum of the earliest start time of the second object to be processed and switching time of the implementer.
If both objects to be processed I, j are scheduled to the implementer k, a processing order of the two objects to be processed cannot be confirmed. Therefore, it is necessary to introduce an auxiliary 0-1 variable: a third variable yijkg
t
jk
l
−t
ik
g≥(weikg+Δk)·yijkg
t
ik
g
−t
jk
l≥(wejkl+Δk)·yjikl
In addition, the first variable xjkl (0-1 variable), the third variable and the fourth variable yjikl
Meanwhile, the third variable yijkg
y
ijk
g
∈{0,1},i,j∈J∪{0,n+1},k∈M,g∈TWik,l∈TWjk
t
ij
k
∈R
+
,i,j∈J,k∈M.
It can be seen that in this embodiment, by introducing the second variable tj, j∈J∪{0, n+1} and the auxiliary 0-1 variable yijkg
A specific application scenario of the scheduling method for the unrelated parallel machine according to the present disclosure is given in the following. Algorithms are realized by calling CPLEX 12.8 API with C++. A compiler is Visual Studio 2017, running on Intel I core Ii7-5960x CPU @ 3.00 ghz (16 processors) computer, with 64 Gb memory and Windows 7 operating system.
In order to evaluate performance of the disclosed model and algorithms, a large number of problem instances are created through simulation. In this example, the object to be processed is the workpiece, and the implementor is a machine. Numbers of machines are 5, 10, 15 and 20 respectively. In addition, a number of time windows in each time interval is randomly generated in ranges of [5,10], [10,15], [15,20] and [20,25]. According to the number of the machines, a number of the workpieces is set from small to large. Therefore, a minimum number of the workpieces is 100 and the maximum number of the workpieces is 1200. The processing time of workpieces is uniformly distributed in a range of [240,360], and the switching time of each machine is uniformly distributed and randomly generated in a range of [180,300]. In addition, a scheduling period is set to be 24 hours. A length of the time window is generated in a interval [400,2000] in seconds. With combination of different numbers of machines and workpieces, a total of 47 problem instances were produced. Detailed parameters of all problem instances are given in Table 1.
88
indicates data missing or illegible when filed
In table 1, a column “Instance” represents an identifier of each instance. In addition, columns “|M|”, “|I|”, “|J|”, “|EJ|” and “|TW|” respectively represent a number of the machines, a number of the time windows in each interval, a number of the workpieces, a number of effective workpieces (with available time windows) and a total number of the time windows.
In order to test the performance of the model and algorithms in this embodiment, solution results are compared with those of Chen et al. Comparison results are shown in Table 2, where “Objective” represents an objective function value, that is, the total profit of the object to be processed. “Gap” represents a distance between a feasible solution and a upper bound of the optimal solution, which is calculated by (UB−Fea)/UB, where UB represents the upper bound of the optimal solution and Fea represents the objective function value of the feasible solution. Solution time is set to be 20 minutes. If the optimal solution is found within 20 minutes, the solution time is displayed in the column “Time(s)”.
As shown in Table 2, both the method of this embodiment and the method of Chen et al. can provide the a solution to most instances. Specifically, the number of instances for which the optimal solution is obtained by the method of this embodiment is larger than that by Chen et al. (39>34). In addition, for most (21) of instances (33) for which both of the methods can get the optimal solution, the solution time of the method in this embodiment is shorter than that of Chen et al. The main reasons are as follows: 1) The preprocessing algorithm in this embodiment makes more workpieces pre-scheduled, which reduces scale of problem solving; 2) with more effective inequalities are added, the upper bound of linear relaxation of the model in this embodiment is tighter, which facilitates problem solving.
76
76
0.076
0.089
0.125
15.303
16.458
207.059
40.981
2163
0
1036
0.
9
0.047
0.078
0.686
86.769
189.321
4095
0
740.211
106.921
509.098
2422
0.439
0.052
0.063
0.109
0.234
0.296
0.639
1.312
1.216
223.717
4328
0
299.571
0.007
330.303
1027.100
0
239
0.956
0.141
0.358
0.29
0.531
1.529
5303
0
3.278
4.259
4321
0
235.098
881.087
4498
0
715.176
445
0.
21
0.045
indicates data missing or illegible when filed
As an optional embodiment, referring to
For the case of no less than four time windows, the time windows can also be preprocessed by a forward rolling time window algorithm, which includes following steps:
S201: acquiring time node information of each implementer;
S202: accessing the time nodes on the implementer in sequence according to the time node information, updating an end time of an accessed time window in response to determining that the number of the accessed time windows is less than or equal to 3, with the updated end time not exceeding a current time node, and scheduling remaining objects to be processed;
S203: pre-scheduling the object to be processed in the accessed time window in response to determining that the object to be processed in the accessed time window can be successfully scheduled, and deleting time windows of the objects to be processed on all implementers in the accessed time windows; and
S204: pre-scheduling the object to be processed before the end time of the time window in time sequence in response to determining that the number of the accessed time windows is greater than 3, updating start time of time windows of the remaining objects to be processed in the accessed time windows after successfully pre-scheduling one object to be processed each time, and scheduling the remaining objects to be processed until a number of time windows of remaining unscheduled objects to be processed is less than or equal to 3.
In this embodiment, for one time window, there is obviously only one case. For any two time windows, there are two cases, let ηkij=pi+pj+Δk, where pi and pj represent processing time of the object to be processed, and Δk represents the switching time, and overlapping time windows of the objects to be processed I and j are [wsikl
Referring to
Referring to
If weikl
For any three time windows, for three overlapping time windows, [wsikl
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
In this embodiment, a flow of the forward rolling time window algorithm is referenced in the following. By preprocessing for different cases for multiple time windows, the problem size can be reduced and the solving efficiency can be improved.
= min ∈ TWS:
sjk ← max sjk ,beginTime ;
indicates data missing or illegible when filed
As a specific embodiment, the performance of this preprocessing algorithm is tested by comparing with a preprocessing strategy of Chen et al. At first, “Our preprocessing I” in table 3 represents the preprocessing algorithm proposed in this embodiment, and “Our preprocessing II” represents combination of the preprocessing algorithm in this embodiment and the preprocessing algorithm of Chen et al. Table 5 lists the comparison results, where “Num” is a number of scheduled objects to be processed in preprocessing. “Objective” and “Time(s)” respectively represent the total profit of pre-scheduling the objects to be processed and the solution time of the pre-processing.
From the results in Table 3, it can be observed that the number of pre-scheduled objects to be processed in the pre-processing strategies I and II of this embodiment is always greater than or equal to the number of pre-scheduled objects to be processed by Chen et al. In addition, for most instances (34 out of 47), the number of pre-scheduled objects to be processed is larger than that of Chen et al., which is marked in bold. Therefore, compared with the algorithm of Chen et al., the algorithm in this embodiment has a great improvement in preprocessing. In addition, regarding the preprocessing strategies I and II of this embodiment, the number of objects to be processed is the same in all instances. Therefore, it is concluded that the solution time of preprocessing algorithm II in this embodiment is shorter than that of preprocessing algorithm I, which is marked in bold, and combination of the two algorithms plays an important role in improving efficiency of the preprocessing algorithm.
In some embodiments, referring to the following flow, the time window can also be preprocessed by a backward rolling time window algorithm, and steps of the backward rolling time window algorithm are similar to those of the forward rolling time window algorithm, except that an order of accessing time nodes is reversed and from back to front. Therefore, the backward rolling time window algorithm can be regarded as mirroring of the forward rolling time window algorithm, that is, the start time of the time window becomes the end time of the time window, and the end time of the time window becomes the start time of the time window.
= max , ik ∈ TWS
= max ∈ TWS;
jk
← min , finishTime
indicates data missing or illegible when filed
As an optional embodiment, for the model in the previous embodiment, the non-dominant inequality can also be obtained according to the overlapping information of all the time windows, and the non-dominant inequality can be added to the model, which includes following steps:
When the number of overlapping time windows is two, let ηkij=pi+pj+Δk, where pi and pj represent processing time of the objects to be processed I and j, and Δk represents the switching time, and the overlapping time windows of the objects I and j to be processed are [wsikl
Referring to
Referring to
According to the obtained inequality, the non-dominant inequality can be obtained.
As an optional embodiment, for step S104 in the previous embodiment, the obtaining the non-dominant inequality according to the overlapping information of all the time windows further includes the following.
When the number of the overlapping time windows is three, let ηkij=pi+pj+pq+2·Δk, ηkij=pi+pj+Δk, ηkjq=pj+pq+Δk, ηkiq=pi+pq+Δk, where pi, pj and pq represent the objects I, j and q to be processed respectively, Δk represents the switching time, the three overlapping time windows of the objects I, j and q to be processed are: [wsikl
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Otherwise, if weikl
If weikl
If weqkl
If wsiki+pi+Δk≥wsqkl
If weikl
If weikl
If weikl
If weikl
If wsikl+pi+Δk≥wsqkl
If weqkl
If wsikl+pi+Δk≥wsqkl
Referring to
Otherwise, if weqkl
If weikl
If weikl
According to the obtained inequality, the non-dominant inequality can be obtained.
As an optional embodiment, referring to
S301: accessing each time node in time sequence for each implementor.
S302: recording a start time BeginTime of the time interval and a first time window of the time interval in response to determining that the current time node t is a first start time node of a certain time interval;
S303: updating a set of accessed time windows in response to determining that the current time node is the end time node of a certain time window and obtaining an effective inequality of the object to be processed in the accessed time window in a time interval [BeginTime, t];
S304: comparing the effective inequality with inequalities in the existing inequality set, and discarding the effective inequality in response to determining that the effective inequality is a dominant inequality; and adding the effective inequality to the inequality set in response to determining that the effective inequality is a non-dominant inequality;
S305: removing the dominated inequalities from the inequality set in response to determining that there are inequalities in the inequality set that are dominated or jointly dominated by the effective inequality;
S306: in response to determining that the current time node t is an end time node of the last time window of a certain time interval, deleting the time node of the first time window twljk, and continuing to access remaining time nodes from the first time node in sequence;
S307: adding all of the non-dominant inequalities in the inequality set to the model.
In this embodiment, an algorithm is proposed to find and recognize the effective inequality. Similar to preprocessing algorithms, an inequality recognition and search algorithm are also based on time nodes and rolling time windows. Definition of inequality domination is as follows:
Definition 1: For two effective inequalities
when J⊆I, bi<=bj and I=J, bi=bj are not held at the same time, the inequality
dominates the inequality
Note that if the inequality
dominates
then
Definition 2: for an inequality e:
it is jointly dominated by k inequalities (k>=2):
when
Definition 3: If an inequality e is neither dominated by another inequality nor jointly by other k (k≥2) inequalities, then the inequality e is a non-dominated inequality; otherwise, the inequality e is a dominant inequality.
In this embodiment, in order to avoid excessive constraints and a large model, only non-dominant inequalities are added.
As a specific example, referring to
A process of adding inequality is described in detail in Table 4. The inequality x1+x2+x4≤2 is jointly dominated by the existing inequality x1+x2≤1 and the implicit inequality x4≤1, so x1+x2+x4≤2 is discarded (round 0, time 14). The resulting inequality x2+x3+x4≤2 is dominated by the existing inequality x1+x2+x3+x4≤2 (round 1, time 16). Further, the inequality x1+x2+x3+x4≤2 in the inequality set is jointly dominated by the newly obtained inequality x3+x4≤1 and the existing inequality x1+x2≤1 (round 2, time 16). Therefore, the inequality x1+x2+x3+x4≤2 is removed from the inequality set. Finally, only the non-dominant inequalities x1+x2≤1 and x3+x4≤1 are added to the model.
In this embodiment, by adding non-dominant inequalities, the model can be solved more easily.
In contrast, referring to Table 5, the number of the inequalities in the model in this embodiment is larger than that in Chen et al. In addition, the number of inequalities in the model is much smaller than that in the model containing all inequalities, because the dominant inequalities are ignored. According to theoretical analysis results, the number of the inequalities in the model should be almost ½ of the number of the inequalities in an original mode (n2/4 vs n(n−1)/2) However, in fact, the number of the inequalities in the model is much smaller (less than ¼ of that of the original model). As for the model in this embodiment, the combination of the model in this embodiment and Chen's model, and Chen's model, the model the inequalities of which is included in this embodiment is the best in most instances, with a shorter optimal solution distance and shorter solution time. This is because more inequalities make the model tighter and easier to be solved.
70
0.0
0.05
0.05
0.08
11.12
0
14.99
21
0
205.47
70
0
38.17
0
1075.58
0.67
0.05
0.11
0.0
0.27
0.02
59.32
1
4.41
0
727.47
0
101.01
6. 4
470.
0.02
0.06
0.11
0.25
0.27
0.62
1.12
1.
97.1
8 .18
271.09
492.49
294.12
0
1022.04
0
431
120
0.9
0.14
0.19
0.33
0.27
0.55
15
1.59
1.50
3.42
.70
.
3.50
17
.58
644.16
713.03
indicates data missing or illegible when filed
It should be noted that the method of the embodiment of the present disclosure can be performed by a single device, such as a computer or a server. The method of this embodiment can also be applied to distributed scenarios, which is completed by cooperation of multiple devices. In this distributed scenario, one of the devices can only perform one or more of the steps in the method of the embodiment of the disclosure, and the devices can interact with each other to complete the method.
It should be noted that some embodiments of the present disclosure have been described above. Other embodiments are within the scope of the appended claims. In some cases, actions or steps recited in the claims may be performed in a different order from that in the above embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
On a basis of the same concept, corresponding to the method of any of the above embodiments, a scheduling device for an unrelated parallel machine is also provide in this disclosure.
Referring to
a first processing module configured to process an object to be processed within a corresponding time window in response to determining that a first variable is 1, and take a second variable to be 0 in response to determining that the first variable is 0; and schedule the object to be processed according to the first variable and the second variable, wherein the first variable indicates whether the object to be processed is scheduled to a time window corresponding to an implementer, if the object to be processed is scheduled to the time window corresponding to the implementer, the first variable is 1, otherwise, the first variable is 0; and the second variable indicates a start time when the object to be processed are allocated to the time window, and each object to be processed is processed at most once;
a second processing module configured to process the second object to be processed before the first object to be processed in response to determining that a latest end time of the first object to be processed is less than a sum of an earliest start time of the second object to be processed and switching time of the implementer; and process the second object to be processed after the first object to be processed in response to determining that the latest end time of the first object to be processed is greater than the sum of the earliest start time of the second object to be processed and the switching time of the implementer;
a third processing module configured to process the first object to be processed before the second object to be processed in response to determining that the third variable is 1; and process the first object to be processed after the second object to be processed in response to determining that the fourth variable is 1; wherein the third variable and the fourth variable respectively indicate scheduling orders of the first object to be processed and the second object to be processed, and the third variable and the fourth variable satisfy switching time constraint, consistency constraint and the domain constraint; and
a scheduling module configured to establish a mixed integer linear programming model according to above conditions, solving it to obtain a scheduling scheme for scheduling the object to be processed with a maximum total revenue, and schedule the object according to the scheduling scheme.
For convenience of description, when the above devices are described, it is made for various modules in terms of functions. Of course, when this disclosure is implemented, the functions of each module can be implemented in one or more pieces of software and/or hardware.
The device in the above embodiments is used to implement the corresponding scheduling method for the unrelated parallel machine in any of the above embodiments, and present beneficial effects of the corresponding method embodiments, which will not be described in detail here.
On a basis of the same concept, corresponding to the method of any of the above embodiments, an electronic device is also provided in this disclosure, which includes a memory, a processor and a computer program stored on the memory and operable on the processor, and the processor implements the scheduling method for the unrelated parallel machine described in any one of the above embodiments when executing the program.
The processor 1010 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits, etc., and is used for executing relevant programs to realize technical schemes provided in the embodiments of this specification.
The memory 1020 can be implemented in a form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, or the like. The memory 1020 can store the operating system and other application programs. When the technical schemes provided in the embodiments of this specification is implemented by software or firmware, relevant program codes are stored in the memory 1020 and called and executed by the processor 1010.
The input/output interface 1030 is used to connect the input/output module to realize information input and output. The input/output module can be configured as a component in the device (not shown in the figure), or it can be externally connected to the device to provide corresponding functions. An input device can include a keyboard, a mouse, a touch screen, a microphone and various sensors, and an output device can include a display, a speaker, a vibrator and an indicator.
The communication interface 1040 is used to connect with a communication module (not shown in the figure) to realize communication interaction between the device and other devices. The communication module can communicate by wired means (such as USB, network cable, etc.) or by wireless means (such as mobile network, WIFI, Bluetooth, etc.).
The bus 1050 includes a path for transmitting information among various components of the device, such as the processor 1010, the memory 1020, the input/output interface 1030 and the communication interface 1040.
It should be noted that although the above device only shows the processor 1010, the memory 1020, the input/output interface 1030, the communication interface 1040 and the bus 1050, in the specific implementation process, the device may also include other components necessary for normal operation. In addition, it can be understood by those skilled in the art that the above-mentioned device may only contain the components necessary for implementing the embodiments of this specification, and need not contain all the components shown in the drawings.
Referring to
First Processing Module 950 may be configured to process first object to be processed 990 within a corresponding time window in response to determining that first variable 970 is 1, and take second variable 975 to be 0 in response to determining that first variable 970 is 0; and schedule first object to be processed 990 according to first variable 970 and second variable 975, wherein first variable 970 indicates whether first object to be processed 990 is scheduled to a time window corresponding to implementer 997, if first object to be processed 990 is scheduled to the time window corresponding to implementer 997, first variable 970 is 1, otherwise, first variable 970 is 0; and second variable 975 indicates a start time when first object to be processed 990 is allocated to the time window, and each object to be processed (e.g., first object to be processed 990 and second object to be processed 995) is processed at most once.
Second Processing Module 955 may be configured to process second object to be processed 995 before first object to be processed 990 in response to determining that a latest end time of first object to be processed 990 is less than a sum of an earliest start time of second object to be processed 995 and switching time of implementer 997; and process second object to be processed 995 after first object to be processed 990 in response to determining that the latest end time of first object to be processed 990 is greater than the sum of the earliest start time of second object to be processed 995 and the switching time of implementer 997.
Third Processing Module 960 may be configured to process first object to be processed 990 before second object to be processed 995 in response to determining that third variable 980 is 1; and process first object to be processed 990 after second object to be processed 995 in response to determining that fourth variable 985 is 1; wherein third variable 980 and fourth variable 985 respectively indicate scheduling orders of first object to be processed 990 and second object to be processed 995, and third variable 980 and fourth variable 985 satisfy the switching time constraint, consistency constraint and the domain constraint.
Scheduling Module 965 may be configured to establish a mixed integer linear programming model according to above conditions, solving the mixed linear programming model to obtain a scheduling scheme for scheduling first object to be processed 990 with a maximum total revenue, and schedule the object according to the scheduling scheme.
These program modules may be stored on mass storage device 920 of one or more computers devices, and may be executed by one or more processors, such as processor 915. Each of the operating modules may comprise elements of programming and data management software.
The variables of the present embodiment (e.g. first variable 970, second variable 975, third variable 980, and fourth variable 985) may be used separately or in combination in the system and method of the present disclosure. The variables may be stored, for example, without limitation, on system memory 940.
The components of the one or more computers may comprise, but are not limited to, one or more processors or processing units, such as processor 915, system memory 940, mass storage device 920, Input/Output Interface 930, display adapter 925, network adaptor 935, and a system bus that couples various system components. The one or more computers and implementer 997 may be implemented over a wired or wireless network connection at physically separate locations, implementing a fully distributed system. Additionally, implementer 997 may include the one or more computers such that implementer 997 and the one or more computers may be implemented in a same physical location. By way of example, without limitation, the one or more computers may be a personal computer, a portable computer, a smart device, a network computer, a peer device, or other common network node, and so on. Logical connections between one or more computers and implementer 997 may be made via network 945, such as a local area network (LAN) and/or a general wide area network (WAN).
Implementer 997 may be, for example, without limitation, a satellite configured to process first object to be processed 990, second object to be processed 995, etc. First object to be processed 990, second object to be processed 995, etc. may be objects to be observed via implementer 997. For example, without limitation, the objects to be processed may be geographical locations, vehicles, buildings, etc. Additionally, the objects to be processed may not be on the surface of the Earth, and may be, for example, without limitation, satellites, spacecraft, asteroids, etc. Additionally, implementer 997 and objects to be processed may be different depending on the environment. For example, without limitation, in a scenario of machining mechanical parts, the object to be processed may be a part to be machined, and the implementer may be a lathe. In a vehicle routing problem, the object to be processed can be a path of the vehicle, and the implementer can be the vehicle itself; and in a scenario of satellite scheduling, the object to be processed can be a task of the satellite, and the implementer can be the satellite itself.
The apparatus may include additional components that perform each of the blocks of the algorithm in the aforementioned flowcharts of
The processing system 1114 may be coupled to a transceiver 1110. The transceiver 1110 is coupled to one or more antennas 1120. The transceiver 1110 provides a means for communicating with various other apparatus over a transmission medium. The transceiver 1110 receives a signal from the one or more antennas 1120, extracts information from the received signal, and provides the extracted information to the processing system 1114, specifically the reception component 1004. In addition, the transceiver 1110 receives information from the processing system 1114, specifically the transmission component 1010, and based on the received information, generates a signal to be applied to the one or more antennas 1120. The processing system 1114 includes a processor 1104 coupled to a computer-readable medium/memory 1106. The processor 1104 is responsible for general processing, including the execution of software stored on the computer-readable medium/memory 1106. The software, when executed by the processor 1104, causes the processing system 1114 to perform the various functions described supra for any particular apparatus. The computer-readable medium/memory 1106 may also be used for storing data that is manipulated by the processor 1104 when executing software. The processing system 1114 further includes at least one of the components 1004, 1006, 1008, 1012, 1014, and 1016. The components may be software components running in the processor 1104, resident/stored in the computer readable medium/memory 1106, one or more hardware components coupled to the processor 1104, or some combination thereof.
In one configuration, the apparatus 1002 includes means for acquiring time node information of each implementer, means for accessing the time nodes on the implementer in sequence according to the time node information, updating an end time of an accessed time window in response to determining that the number of the accessed time windows is less than or equal to 3, with the updated end time not exceeding a current time node, and scheduling remaining objects to be processed, means for pre-scheduling the object to be processed in the accessed time window in response to determining that the object to be processed in the accessed time window can be successfully scheduled, and deleting time windows of the objects to be processed on all implementers in the accessed time windows, and means for pre-scheduling the object to be processed before the end time of the time window in time sequence in response to determining that the number of the accessed time windows is greater than 3, updating start time of time windows of the remaining objects to be processed in the accessed time windows after successfully pre-scheduling one object to be processed each time, and scheduling the remaining objects to be processed until a number of time windows of remaining unscheduled objects to be processed is less than or equal to 3. Additionally, apparatus 1002 includes means for processing a first object to be processed, via an implementer, within a corresponding time window in response to determining that a first variable is 1, and taking a second variable to be 0 in response to determining that the first variable is 0; and scheduling the first object to be processed according to the first variable and the second variable, wherein the first variable indicates whether the first object to be processed is scheduled to a time window corresponding to the implementer, if the first object to be processed is scheduled to the time window corresponding to the implementer, the first variable is 1, otherwise, the first variable is 0; and the second variable indicates a start time when the first object to be processed are allocated to the time window, and each object to be processed is processed at most once, means for processing a second object to be processed, via the implementer, before the first object to be processed in response to determining that a latest end time of the first object to be processed is less than a sum of an earliest start time of the second object to be processed and a switching time of the implementer; and processing the second object to be processed after the first object to be processed in response to determining that the latest end time of the first object to be processed is greater than the sum of the earliest start time of the second object to be processed and the switching time of the implementer, means for processing the first object to be processed before the second object to be processed, via the implementer, in response to determining that a third variable is 1; and processing the first object to be processed after the second object to be processed in response to determining that a fourth variable is 1; wherein the third variable and the fourth variable respectively indicate scheduling orders of the first object to be processed and the second object to be processed, and the third variable and the fourth variable satisfy a switching time constraint, a consistency constraint and a domain constraint, and means for establishing a mixed integer linear programming model according to above conditions via the implementer, solving the mixed integer linear programming model to obtain a scheduling scheme for scheduling an object to be processed with a maximum total revenue, and scheduling each object to be processed according to the scheduling scheme, thus obtaining an improved upper bound for a linear relaxation of the mixed integer linear programming model. The aforementioned means may be one or more of the aforementioned components of the apparatus 1002 and/or the processing system 1114 of the apparatus 1002 configured to perform the functions recited by the aforementioned means.
The electronic devices in the above embodiments are used to implement the corresponding scheduling method for the unrelated parallel machine in any of the above embodiments, and present beneficial effects of the corresponding method embodiments, which will not be described in detail here.
It should be understood by those of ordinary skill in the art that discussion of any of the above embodiments is only exemplary, and is not intended to imply that the scope of the disclosure (including the claims) is limited to these examples; under the idea of this disclosure, the technical features in the above embodiments or different embodiments can also be combined, and the steps can be realized in any order; and there are many other changes in different aspects of the embodiments of this disclosure as described above, which are not provided in details for brevity.
In addition, in order to simplify the description and discussion, and in order not to make the embodiments of the present disclosure difficult to understand, well-known power/ground connections with integrated circuit (IC) chips and other components may or may not be shown in the provided drawings. In addition, the devices can be shown in the form of block diagrams in order to avoid making the embodiments of the present disclosure difficult to understand, and this also takes into account the fact that the details about the implementation of these devices in block diagram are highly dependent on a platform on which the embodiments of the present disclosure will be implemented (i.e., these details should be completely within an understanding range of those skilled in the art). While specific details (e.g., circuits) have been set forth to describe exemplary embodiments of the present disclosure, it will be apparent to those skilled in the art that the embodiments of the present disclosure may be practiced without these specific details or with variations in these specific details. Therefore, these descriptions should be regarded as illustrative rather than restrictive.
Although the present disclosure has been described in conjunction with specific embodiments thereof, many alternatives, modifications and variations of these embodiments will be apparent to those of ordinary skill in the art based on the foregoing description.
The embodiments of the present disclosure are intended to cover all such alternatives, modifications and variations that fall within the broad scope of the append claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of this disclosure shall be encompassed within the protection scope of this disclosure.
Number | Date | Country | Kind |
---|---|---|---|
202110991175.3 | Aug 2021 | CN | national |