#### Abstract

We study the place scheduling problem which has many application backgrounds in realities. For the block manufacturing project with special manufacturing platform requirements, we propose a place resource schedule problem. First, the mathematical model for the place resource schedule problem is given. On the basis of resource-constrained project scheduling problem and packing problem, we develop a hybrid heuristic method which combines priority rules and three-dimensional best fit algorithm, in which the priority rules determine the scheduling order and the three-dimensional best fit algorithm solves the placement. After this method is used to get an initial solution, the iterated local search is employed to get an improvement. Finally, we use a set of simulation data to demonstrate the steps of the proposed method and verify its feasibility.

#### 1. Introduction

One of the main works in ship manufacturing is hull section processing. This process is always implemented on the block manufacturing platform, which usually takes a long time to finish. Because of the limited area, it cannot meet the requirement of the shipbuilding enterprises. Effective use of limited resources has become a concern for the shipbuilding enterprises.

For utilization of the platform in block manufacturing, we propose a place scheduling problem. It includes two related problems. One is resource constrained project scheduling problem (RCPSP), and the other is bin packing problem.

The RCPSP is described as an individual project that includes activities; these activities cannot stop during its processing time. There are two kinds of restrictions during the process. One is precedence constraints. It means that activity cannot start before its predecessor activity in . The other one is resource constraints. To make the activity work smoothly, the activity needs unit resources during its process. We decide the finish time of every activity under the priority and resource constraints to get the shortest project makespan. Hartmann proposes algorithm for static job scheduling problem which belongs to NP-hard problem [1]. Kelley, Alvar-Valdes, and Tamarit give approximate and exact methods [2, 3]. Alcaraz and Maroto develop a heuristic method based on priority rules [4]. It consists of two parts, a scheduling generation method and a priority rule. Kolisch summarizes the scheduling generation methods into two categories, serial and parallel methods [5]. Serial schedule is implemented by the addition of activities, while parallel schedule is produced with the increasing of the time. Baker considers that every activity should only be scheduled once for a single path [6]. Mingozzi et al. propose a RCPSP problem based on a new mathematical model and use an exact method [7].

Packing problem is about how to put more boxes into a bin in which the bottom area is limited. We can divide the packing problem into two categories for discussion: two-dimensional and three-dimensional packing problems. For two-dimensional packing problem, Burke et al. propose a new placement heuristic for the rectangular cutting issues [8]. Egeblad and Pisinger provide a new method for the two-dimensional packing problem and extend to three-dimensional packing problem [9]. In three-dimensional packing, the method of 3BF is based on searching the list in order. Similar to 2BF algorithm, it searches dynamically to find suitable boxes to be put in the available space. The 3BF defines that blank area is at the farthest point where the boxes are to be put. The 3BF is raised by Martello et al. [10]; it solves the problem of how to select suitable boxes, and the point cannot be blocked by other boxes.

This paper is organized as follows. Section 2 gives a mathematical model. Section 3 proposes an iterated local search algorithm. Section 4 presents a set of simulation examples to demonstrate the method. Section 5 comes up with a summary for this paper.

#### 2. Place Scheduling Problem

The project consists of activities . Every activity should be processed on the required platform, that is, place. We define it as , where and denote the length of the place that activity requires, respectively. The duration that activity requires is defined as . and represent the start and finish time of the activity , respectively. In the project, there are kinds of place recourses, and every place resource is given by , where and denote the length and width of the available place , respectively. There are types of places . All activities have priority constraints; is the predecessors of . We assume that the start time of the project is 0. We decide the start time of the activities so that the makespan of the project is minimized.

For modeling this problem, two dummy nodes 0 and are introduced. 0 is the predecessor of all the activities, and is the successor of all the activities in the project. The duration and required place resource of the two dummy nodes are 0. Obviously, the finish time of is the makespan of the project, so the problem can be formulated as follows:

Priorities between activities can be defined as

We can show it by a network diagram as in Figure 1.

We regard an activity as a cuboid, and it is defined as ,

Constraint (3) denotes that any two cuboids cannot overlap. Constraints (4) and (5) denote that any cuboid should be finished within the available place. Constraint (6) means that the cuboid can rotate ninety degrees, which is represented by two values.

#### 3. Iterated Local Search Algorithm

##### 3.1. The Initial Solution Method

For the initial solution, we develop a hybrid heuristic method of project scheduling problem and packing problem to solve it. Each activity is abstracted as a cuboid and is put in the available place. As we put the cuboid into the space, we divide different places according to different heights. Every place is a two-dimensional area.

There are many methods of how to place the rectangle. We will use best fit [8] heuristic algorithm to solve our problem. We cannot just rely on the size of the rectangle to judge which is more suitable, because cuboids have their sequences. But in the Best Fit method, the standard to select the cuboid to be moved only relies on the lengths and widths of the unselected cuboids. Inspired by this, we should consider the sequence before we select the cuboids using the Best Fit method. We place the larger bottom area first; if they are equal, select the one with the higher height.

Before placing it, we can regard the bottom area as an object in a two-dimensional packing problem. After packing, we can use some methods of the three-dimensional packing. We can put them according to some rules. Length, width, and height can be interchanged when we put them. But in our problem, the height is the duration, so only length and width can be interchanged. This is different from the three-dimensional packing. There are many methods regarding the three-dimensional packing problem. We mainly use the algorithm of Crainic et al. which is based on the extreme point [13]. Its main objective is to determine the placement. We place the bottom-left-rear point on the selected placement. The extreme point is represented as . We select the location based on the extreme point.

We give the description on how to select the position as follows. (1)Put the first activity on the origin , and then it will produce three new extreme points. (2)Put the second activity by our rule which means that the smaller among the extreme points is preferred. Then, the smaller will be considered. Finally, the will be selected. Meanwhile, we consider rotation when we place the boxes. (3)If an activity cannot match the placement, we will use another activity. In the worse condition, if all activities cannot match the placement, we will find another placement to find a bigger as a placement. (4)If the extreme point of cannot meet the activity’s requirement, we will delete this point. In other words, we will not search for it again in the next stage.

Priority rule based scheduling is an important method to RCPSP. It is straightforward and easy to use. There are many priorities; the better ones are presented in Table 1.

We cannot use these rules directly, but we can learn some ideas, like MTS. It is sorted by the minimum of the latest finish time. We use it in the improvement algorithm. In our rule, the larger bottom area will be considered first; if they are the same, the longer duration (i.e., ) will be considered.

It is closely related to priority and schedule generation scheme (SGS). SGS gets a feasible schedule by local search. Local search means arranging part of activities in stage. There are two different SGSs. We call them serial and parallel. The arrangement is described as follows. (1)We select the activities from the network graph according to the priority rule. Then, we put them in the set which means that activities can be arranged. (2)We will select an activity from . The larger bottom area will be considered first; if they are the same, the longer duration (i.e., ) will be considered. (3)We put the activities into the set which means that activities have been scheduled. This is one cycle. Then, a new cycle will begin. (4)According to the rule, we arrange new activities which are in the set on the extreme point. If it cannot be placed, we will consider the rotation. If not, the second in the set will be placed. The process will not finish until all the activities are scheduled.

There are some kinds of placement. We consider putting the cuboid along the -axis or the -axis.

##### 3.2. Optimization Solution Method

For the initial solution, we solve it by a rule, so the result is not necessarily the best. Iterated local search will be used to improve the initial solution by searching the local neighborhood to produce local optimum.

###### 3.2.1. Local Search

Savelsbergh proposes the ideas of local search to solve the time window problem [14]. Voudouris and Tsang apply local search in the traveling salesman problem [15]. Schaerf and Meisels use local search in the employee timetabling problems [16]. Marco et al. reviews the local search and introduces specific applications [17]. The idea of the local search is to search for the neighborhood of the initial solution and then iterate constantly. Local search is not only attractive but also very successful in practice. In recent research, combinatorial optimization and continuous optimization problems can be applied by local search. There is essential difference in search space type between combinatorial optimization problems and continuous optimization problems. The space of combinatorial optimization is finite, but the space of the continuous optimization is infinite. We use the space of the combinatorial optimization, and then the local search will be used to find the optimal.

Lucio et al. use the local search in a network planning algorithm that incorporates uncertain traffic demands [18]. Cabido et al. propose local search driven by adaptive scale estimation on Gpus [19]. Funke et al. use it in the vehicle routing and scheduling problems [20]. Tricoire proposes multidirectional local search [21]. Ricca and Simeone apply it in political districting [22]. Mills et al. propose an extended guided local search to the quadratic assignment problem [23].

###### 3.2.2. Iterated Local Search

Iterated local search is widely used because of its simplicity and efficiency. It starts the search from the initial solution. So, before we use it, an initial solution should be obtained. In general, a more optimal solution can be found based on several initial solutions. For nondeterministic polynomial (NP) problem, it is difficult to enumerate all circumstances, so we find a generally better solution. From an initial solution, we can find a better solution by constantly search. It may take more time.

The key to the iterated local search is searching the local neighborhood constantly. Then, we decide whether it is the solution we want. It is as follows. (1)Get an initial solution. (2)Start the local search from the initial solution. (3)Get another solution by perturbation. (4)Start the local search from the recent solution. (5)Compare and choose a better solution. (6)Repeat until the termination condition is met.

For combinatorial optimization problems, the candidate feasible solutions in the neighborhood of the feasible solution are countable. Local optimum can be defined as . We get . The is the objective function. We can enumerate all the candidate solutions and check them if they are better than the current solution. If there is no better solution, the current solution is the optimal.

It is very important to learn the concept of neighborhood for the local search. If a feasible solution can change into a feasible solution by a step, a feasible solution can be called a neighboring feasible solution . Neighborhood is the set of the feasible solution . It begins by local search to find local optimum. The initial solution changes after being constantly perturbed. We can find a new local optimum this way. The purpose of perturbation is to find different solutions. Then, we compare them to find a better one.

The local search is demonstrated in Figure 2. There are six activities, A, B, C, D, E, and F. The old stands for the previous solution. The new means the current solution after the local search. Local search is based on the old solution; the new one is the one among the neighboring feasible solutions of the old.

In Figure 2, the B is inserted into the front of the D to form a new solution. In our problem, we can consider the activities that start at the same time to exchange to get a new sequence.

#### 4. Simulation Experiment

We use a set of simulation data to show our algorithm. This set of data is adapted from PSPLIB by Kolisch and Sprecher [24], in which any two resources are set as the length and width of a place, respectively. One of the generated instances is described as follows.

There are two places; the length and width of place 1 are 3 and 2 are 3 and 2 for place 2. The activities of odd numbers work on place 1. The activities of even numbers work on place 2. The network diagram is given in Figure 3.

The data of activities is presented in Table 2.

The arrangement steps described as follows. (1)At first, the lowest time is 0, the activities that can be arranged are , and the odd activities of place 1 are . The bottom area of them is the same, so we compare their duration. We arrange activity 3 at first. According to our rule, we put bottom left rear of activity 3 on the . Then, it produces three new extreme points; see Figure 4. (2)At time 0, there is not enough space for activity 5, so we will consider it later. On place 2, both activity 2 and activity 4 can be arranged. We lay activity 2 first on the . Then, it produces three new extreme points , , ; see Figure 5. (3)At time 0, activity 4 will be put in order. After rotation, it lays on the ; see Figure 6. (4)There is still available space at time 0, but it cannot meet the activity needs. We should find another space. According to our rule, we search for the space from time 4. At time 4, there are some activities to be arranged , which include unscheduled activities at time 0. According to the area and duration, the activity sequence of place 1 is . We put activity 5 on the ; see Figure 7. (5)All activities that start from time 4 are finished. We select time 6 as the start searching time based on the arranged activities. At time 6, can be put. But cannot match the space, so we continue to search for the next lowest time. According to the arranged activities, the next earliest time is time 7. Check the network diagram; can be joined in, including . On place 1, we arrange activity 15 first based on our rule; see Figure 8.(6)There is not enough space to put activity 9 at time 7. We will consider it later. On the place 2, can be arranged. Activity 8 should be put first, but it cannot match the placement. So, we lay the activity 14 on ; see Figure 9. (7)After we arrange all the activities at time 7, the next lowest time will be found to start the placement. Steps will continue until all the activities are arranged.

*Improvement Process*. The sequence of the activities is very important to complete the duration. So, we use ILS to disturb current searching point, which can cause random selection in the local optimum. The ILS includes three steps. The first step is producing the initial solution; the second step is searching in the neighbor to get a local optimum; and the third is a loop which has three parts. The first part is disturbing the local optimum to get a new sequence. The second part is searching a solution based on the new sequence. The third part is compared with previous solution to decide which is better until the termination condition is met.

As in our example, we swap two activities that start at the same time during the local search. The others are arranged according to our normal rule. The perturbation of ILS in our example is that any two activities are swapped at any time in the local optimum. The activities that have been swapped will not be considered. The others are scheduled according to our normal rule.

The initial solution of this example is 27. After ILS, the optimal solution is 21, producing about 22% improvement. For the set of instances, the average improvement is 21%.

#### 5. Conclusion

For the proposed place scheduling problem, we have developed a hybrid heuristic method to generate the initial solution. In order to produce local optimal solution, we have designed ILS method to create improvement for the initial solution. In the improvement, the random disturbance has an impact on the result. So, the improvement based on randomness will be the future research.

#### Conflict of Interests

We declare that we have no financial and personal relationships with other people or organizations that can inappropriately influence our work, and we also declare that there is no conflict of interests regarding the publication of this paper.

#### Acknowledgments

This work was supported in part by NSFC under Grant no. 2012-62000-4103036, NSFS under Grant no. ZR2012FM006, and SDPW under Grant no. IMZQWH010016. The authors thank the 3 reviewers and handling editor for their meticulous reading of the paper and their constructive comments which greatly improved the paper.