Under the same scale of problem, it’s obvious that the solution space of integrated scheduling problem is much larger than that of production scheduling or transportation scheduling. For getting better algorithm design in next section, some preparations are considered to be completed. Firstly, the task pool is introduced to transform scheduling into task selection and assignment, which can simplify the IPTSP. Secondly, a new way of solution representation according to the proposed task pool is proposed, which provides an encoding method for the IPTSP that can be operated by subsequent algorithms. Finally, the solution evaluation can evaluate the makespan of each code. By this way, all of them can help algorithm efficiently find satisfactory solutions while appropriately limiting the search space.
3.1 Establishment of Task Pool
In the IPTSP, each job at each stage requires a transportation task which takes it from previous machine (or warehouse) to current machine. And the number of existing transportation tasks does not exceed the total number of jobs at the same time. Based on these characteristics, this paper establishes a specific set of transportation tasks, called task pool. Then, the integrated scheduling problem can be solved through the procedure that the AGVs execute the tasks in the task pool in a specific order until the task pool is emptied.
Specifically, a task can be described as:
$$Task = (job\_no,stage\_no,st,from\_location),$$
(1)
where job_no is the index number of the job involved, stage_no is the current stage number of the job involved, st is the earliest start time of the task, from_location is the starting location of the task (if stage_no =1, it represents the warehouse; else, it represents the processing machine of job at stage stage_no -1).
Here, the task pool is a collection of all tasks to be scheduled. Initially, in the task pool, the number of tasks is equal to the number of jobs, the job_no of all tasks represent all jobs to be scheduled, the stage_no of all tasks represent stage one, the st of all tasks are zero, the from_location of all tasks represent warehouse. Once a task in task pool is completed by an AGV, if the stage_no of the task is not equal to the last stage of the job, the completed task (Taskold) will be removed from the task pool. At the same time, a new task (Tasknew) representing the next stage of the same job is added to the task pool. The old and new tasks satisfy the following relationship:
-
(1)
The job_nonew is equal to job_noold;
-
(2)
The stage_nonew represents the next stage of stage_noold;
-
(3)
The stnew is equal to the completion time of the job i at stage j involved in the Taskold.
-
(4)
The from_locationnew is the processing machine of the job i at stage j involved in the Taskold.
where, job_nonew and stage_nonew is the job_no and stage_no of Tasknew, job_noold and stage_noold is the job_no and stage_no of Taskold, stnew and from_locationnew is the st and from_location of Tasknew. A simple example is shown in Figure 2. Once the old task Task2 is completed and stage one is not the last stage of job2, a new Task2 which represent the next stage of the job is added in task pool. In the new task, “6” represents the completion time of job2 on machine2 at stage one (also the earliest start time of the new task). And “machine2” represents the processing machine selected for job2 at stage one (also the starting location of the new task).
After this, the object of scheduling is to assign the tasks in the task pool to each AGV in a certain order and then to schedule the trip and process, making the makespan smaller. While the task pool is emptied, the scheduling is complete.
3.2 Solution Representation
A new way of solution representation based on the proposed task pool is proposed, which provides an encoding method for the IPTSP that can be operated efficiently by subsequent algorithms.
Under some task selection rules based on time target (like: FCFS, EDT, GWTQ [19]), we found that the assignment of AGVs and the order of tasks transporting at the first stage have a great impact on the makespan, because the earliest start time of tasks in task pool are all zero and starting locations are all warehouses (at the first stage). Therefore, we consider to transform the assignment of AGVs and the order of tasks transporting at the first stage into a coding sequence to optimize. For that a new solution representation is introduced, based on tasks in task pool at the first stage. The new solution representation is composed of two parts:
-
1.
Transport sequence vector (also called v1);
-
2.
Transporter assignment vector (also called v2).
Transport sequence vector v1 represents the order of transport for each task at the first stage. Figure 3 illustrates a transport sequence vector. For example, the transport sequence shown in Figure 3 can be translated into a list of ordered tasks below: Task3 ≻ Task2 ≻ Task1 ≻ Task4 ≻ Task5.
In v2, v2(u) represents the AGV selected for the Tasku indicated at position u. Figure 4 illustrates a transporter assignment vector. For example, position 3 indicates Task3, and v2(3) represents the AGV assigned for Task3.
With the new solution representation, the assignment of AGVs and the sequence of tasks at the first stage have been confirmed. Furthermore, such algorithm applying requires a makespan evaluation procedure, which will be presented in the next section.
3.3 Solution Evaluation
Using the proposed solution representation method, the evaluation of makespan is described as follows:
-
(1)
At stage one, the transport sequence and the assignment of AGVs are determined according to the two-vector representation;
-
(2)
At stage j (j > 1), a task is assigned to the earliest idle AGV with a specific task selection rule. Repeat the above process until the task pool is emptied.
Among them, after the task is selected and assigned to an AGV, the processing machine (also the destination of the task) at this stage is selected according to the improved First Available Machine (FAM [20]) rule. When the task is completed, if the stage involved in this task doesn’t represent the last stage, the task is removed from the task pool and a new task is added (refer to Section 3.1 for the details).
The steps are shown below:
Step 1. Schedule the tasks in task pool at stage one:
(a) Read the position information in v1 from left to right, and get the corresponding task Taskm to be scheduled.
(b) Get other information about Taskm. For example, we can know the assigned AGV Rv for the task in v2, the involved job Ji, the processing time pij, the earliest start time of the task st, the starting location Mk.
(c) Plan the empty trip (from the destination Mk’ of the previous task to machine Mk) for Rv. The start time of the empty trip is earliest idle time of Rv. The arrival time of the empty trip is calculated as follow:
$$CT_{{i1}}^{\prime } = AIT_{v} + pt_{{k^{\prime } k}} ,$$
(2)
where, ptk'k represents the transport time from location Mk' to location Mk, AITv is the earliest idle time of Rv.
(d) Select the processing machine for Ji at stage one according the improved FAM rule. The estimated completion time \({C}_{{i}{1}}^{ \, {{p}}}{^{\prime}}\) of Ji at stage one on each available machine Mp is calculated as follow:
$$C_{{i1}}^{{p^{\prime}}} = \max \,(\max (CT^{\prime}_{{i1}} ,st) + pt_{{kp}} ,MIT_{p} ) + p_{{i1}} ,$$
(3)
where, MITp represents the earliest idle time of machine Mp, ptkp represents the transport time from location Mk to location Mp, pi1 represents the processing time of Ji at stage one.
Then, the machine Mq with the smallest estimated completion time was selected as the processing machine for Ji at stage one.
(e) Plan the loaded trip (from location Mk to location Mq) for Rv. The start time STi1 of the loaded trip is the maximum between the earliest start time of the task and the arrival time of the empty trip:
$$ST_{i1} = \max (CT_{i1}^{\;^{\prime}} ,st),$$
(4)
And the arrival time of the loaded trip is calculated as follow:
$$CT_{i1} = ST_{i1} + pt_{kq},$$
(5)
where, ptkq represents the transport time from location Mk to location Mq;
(f) Plan Ji to be processed on Mq. The start time Si1 of processing on machine Mq is the maximum between the earliest idle time of machine Mq and the arrival time of the loaded trip:
$$S_{i1} = \max (CT_{i1} ,MIT_{q} ),$$
(6)
where, MITq represents the earliest idle time of machine Mq;
(g) Update the earliest idle time of machine Mq and AGV Rv as follow:
$$MIT_{q} = S_{i1} + p_{i1},$$
(7)
$$AIT_{v} = CT_{i1},$$
(8)
(h) Update the task pool referred to Section 3.1;
(i) Repeat step1(a)–(h) until the last position of two-vector representation is read.
Step 2. Schedule the tasks in task pool at stage j (j > 1):
(a) Select the AGV Ru with the earliest idle time (AIT);
(b) Select a task from task pool as the next task for Ru. According to first come first served (FCFS) rule, the way that selecting the task Taskm with the smallest st is applied;
(c) Plan the empty trip and loaded trip for Ru, select processing machine, plan the job processing and update information. All of these procedures are similar with steps from 1(b) to (h);
(d) Repeat step 2(a)–(c) until the task pool is emptied.
Step 3. Get the makespan of current two-vector solution representation.
3.4 Advantages of the Proposed Solution Representation
The proposed solution representation and solution evaluation do not yield any infeasible solution. We give the theoretical proof:
Proof.
The disjunctive graph is used to prove it. According to the Ref. [21], an infeasible solution can be described as the condition that its disjunctive graph contains one or more directed cycles.
By contradiction: suppose the proposed solution representation and solution evaluation create an infeasible solution P. And the disjunctive graph of P contains a cycle C. There are three possible situations about the cycle C: (The dashed arrows in figure indicate that there may be some unmarked transport or machine operations on them).
(1) As shown in Figure 5, the cycle C is formed due to machine disjunctive arc and machine disjunctive arc.
As shown in Figure 5, the stage of operation 2 is after the stage of operation 1, the stage of operation 2 is after the stage of operation 1. The disjunctive arc between operation 2 and operation 3 indicates that the stage of operation 2 is equal to the stage of operation 1. So, the stage of operation 4 is after the stage of operation 1. There cannot be a disjunctive arc between operation 1 and operation 4, which is contrary to the figure. This proves that situation one cannot exist.
(2) As shown in Figure 6, the cycle C is formed due to transport disjunctive arc and transport disjunctive arc.
As shown in Figure 6, some relationships about the start time of operations can be obtained according to the conjunctive arcs: ST1<ST2, ST3<ST4 (STx indicates the start time of operation x).
The disjunctive arc between operation 2 and operation 3 indicates ST2<ST3. It can be inferred that ST1<ST4. According to the solution evaluation proposed by this paper, if transport operation 1 and transport operation 4 exist in the task pool at the same time, the transport operation 4 must be selected behind transport operation 1. So there can be no disjunctive arc from transport operation 1 to transport operation 4, which is contrary to the figure. This proves that situation two cannot exist.
(3) As shown in Figure 7, the cycle C is formed due to transport disjunctive arc and machine disjunctive arc.
As shown in Figure 7, some relationships about the start time of operations can be obtained according to the conjunctive arcs: S1<ST2, ST3<S4 (STx indicates the start time of transport operation x; Sy indicates the start time of machine operation y).
The disjunctive arc between operation 4 and operation 1 indicates ST4<ST1. It can be inferred that ST3<ST2. According to the solution evaluation proposed by this paper, if transport operation 3 and transport operation 2 exist in the task pool at the same time, the transport operation 2 must be selected behind transport operation 3. So there can be no disjunctive arc from transport operation 2 to transport operation 3, which is contrary to the figure. This proves that situation three cannot exist.
In summary, all of three possible situations about the cycle C cannot exist. This completes the proof.
Meanwhile, the proposed solution representation has major differences with that of the literatures. Refs. [17, 18] represent a solution by three long vectors which considered the sequence of operations, the machine assignment and the transporter assignment for all operations from a global view. They had proved the effectiveness and succeed in many cases. However, when the size of problem becomes larger, it may cause the algorithm to perform a lot of invalid searches and hardly to find an optimal solution.
The proposed solution representation uses two vectors representing the order sequence and assignment of AGVs at the first stage which has a big impact on result. The heuristic rules select tasks for corresponding AGV and select machine for jobs at the other stage. The advantage of the proposed solution representation is that each two-vector representation can be transformed into feasible scheduling scheme. And when applied to algorithms, it can limit the search space within a considerably range. For large-scale problems, a satisfactory solution can be obtained easily within a limited time. Detailed comparative experiments will be presented in Section 5.