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 (Task_{old}) will be removed from the task pool. At the same time, a new task (Task_{new}) 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_no_{new} is equal to job_no_{old};

(2)
The stage_no_{new} represents the next stage of stage_no_{old};

(3)
The st_{new} is equal to the completion time of the job i at stage j involved in the Task_{old}.

(4)
The from_location_{new} is the processing machine of the job i at stage j involved in the Task_{old}.
where, job_no_{new} and stage_no_{new} is the job_no and stage_no of Task_{new}, job_no_{old} and stage_no_{old} is the job_no and stage_no of Task_{old}, st_{new} and from_location_{new} is the st and from_location of Task_{new}. A simple example is shown in Figure 2. Once the old task Task_{2} is completed and stage one is not the last stage of job_{2}, a new Task_{2} which represent the next stage of the job is added in task pool. In the new task, “6” represents the completion time of job_{2} on machine_{2} at stage one (also the earliest start time of the new task). And “machine_{2}” represents the processing machine selected for job_{2} 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 v_{1});

2.
Transporter assignment vector (also called v_{2}).
Transport sequence vector v_{1} 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: Task_{3} ≻ Task_{2} ≻ Task_{1} ≻ Task_{4} ≻ Task_{5}.
In v_{2}, v_{2}(u) represents the AGV selected for the Task_{u} indicated at position u. Figure 4 illustrates a transporter assignment vector. For example, position 3 indicates Task_{3}, and v_{2}(3) represents the AGV assigned for Task_{3}.
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 twovector 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 v_{1} from left to right, and get the corresponding task Task_{m} to be scheduled.
(b) Get other information about Task_{m}. For example, we can know the assigned AGV R_{v} for the task in v_{2}, the involved job J_{i}, the processing time p_{ij}, the earliest start time of the task st, the starting location M_{k}.
(c) Plan the empty trip (from the destination M_{k’} of the previous task to machine M_{k}) for R_{v}. The start time of the empty trip is earliest idle time of R_{v}. The arrival time of the empty trip is calculated as follow:
$$CT_{{i1}}^{\prime } = AIT_{v} + pt_{{k^{\prime } k}} ,$$
(2)
where, pt_{k'k} represents the transport time from location M_{k'} to location M_{k}, AIT_{v} is the earliest idle time of R_{v}.
(d) Select the processing machine for J_{i} at stage one according the improved FAM rule. The estimated completion time \({C}_{{i}{1}}^{ \, {{p}}}{^{\prime}}\) of J_{i} at stage one on each available machine M_{p} is calculated as follow:
$$C_{{i1}}^{{p^{\prime}}} = \max \,(\max (CT^{\prime}_{{i1}} ,st) + pt_{{kp}} ,MIT_{p} ) + p_{{i1}} ,$$
(3)
where, MIT_{p} represents the earliest idle time of machine M_{p}, pt_{kp} represents the transport time from location M_{k} to location M_{p}, p_{i1} represents the processing time of J_{i} at stage one.
Then, the machine M_{q} with the smallest estimated completion time was selected as the processing machine for J_{i} at stage one.
(e) Plan the loaded trip (from location M_{k} to location M_{q}) for R_{v}. The start time ST_{i1} 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, pt_{kq} represents the transport time from location M_{k} to location M_{q};
(f) Plan J_{i} to be processed on M_{q}. The start time S_{i1} of processing on machine M_{q} is the maximum between the earliest idle time of machine M_{q} and the arrival time of the loaded trip:
$$S_{i1} = \max (CT_{i1} ,MIT_{q} ),$$
(6)
where, MIT_{q} represents the earliest idle time of machine M_{q};
(g) Update the earliest idle time of machine M_{q} and AGV R_{v} 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 twovector representation is read.
Step 2. Schedule the tasks in task pool at stage j (j > 1):
(a) Select the AGV R_{u} with the earliest idle time (AIT);
(b) Select a task from task pool as the next task for R_{u}. According to first come first served (FCFS) rule, the way that selecting the task Task_{m} with the smallest st is applied;
(c) Plan the empty trip and loaded trip for R_{u}, 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 twovector 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: ST_{1}<ST_{2}, ST_{3}<ST_{4} (ST_{x} indicates the start time of operation x).
The disjunctive arc between operation 2 and operation 3 indicates ST_{2}<ST_{3}. It can be inferred that ST_{1}<ST_{4}. 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: S_{1}<ST_{2}, ST_{3}<S_{4} (ST_{x} indicates the start time of transport operation x; S_{y} indicates the start time of machine operation y).
The disjunctive arc between operation 4 and operation 1 indicates ST_{4}<ST_{1}. It can be inferred that ST_{3}<ST_{2}. 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 twovector representation can be transformed into feasible scheduling scheme. And when applied to algorithms, it can limit the search space within a considerably range. For largescale problems, a satisfactory solution can be obtained easily within a limited time. Detailed comparative experiments will be presented in Section 5.