Keywords

1 Introduction

Construction projects consist of various activities which involve complex problems with considerable amount of resource requirements to complete the project within a given time duration. In every construction, project scheduling of each activity requires specific duration of time to complete task by using various resources like materials, manpower, and machinery which is assigned to carry out task in the project [1]. Construction resource management involves the planning, scheduling, and assigning resources to activities which are performed interdependent to each other to meet project ultimate goal. Project scheduling should be done in accordance with usage of limited resource availability in efficient way; on the other hand, we must also consider difficulties, uncertainties, and risks by having constraints like resource limitation and duration-constrained projects. While considering resource management, unlimited number of resources are available, but in real-time project, there are only limited resources can perform. To overcome these conflicts, both resource-constrained scheduling and resource leveling problems are implemented using interdependent resource management system. In dealing with resource management problems, we may concentrate on two types of problems which are resource leveling and resource-constrained scheduling used for allocating resources like manpower, material, and machineries, carried out to assign the activities in a scheduling process of the project [2]. Scheduling of activities is the most important job to be done in construction project management. Resource availability and allocation will affect entire scheduling in real project due to limited resources, and optimizing the resource utilization is crucial. In general, resource scheduling is an important aspect of the planning and management activity in project scheduling [3]. Minimizing undesirable fluctuation in resource utilization is not that easy to perform, which are inefficient and costly to implement in real project. This can be done by resource leveling and resource-constrained scheduling techniques used for scheduling activities. This is mainly focusing on interdependent of resource management system in the construction project.

1.1 Resource Leveling Problem

The resource leveling problems (RLPs) is a common resource scheduling issue that arises in real-time projects with constrained resources [4]. In resource leveling, considerable attempt is to minimize the peaks and valleys of resource usage by adjust start and finish dates of activities considering resource constraints to minimize the variation in resource demands. Fluctuation in resource histogram usage profile shows that inefficiency of resource allocation which results in addition cost in the overall project [5]. In this method, levels of resources are considerably fixed, and on the other hand, the duration of the project is fixed and the resources are leveled using only by the availability of free float or free slack. In real-time projects, the number of activities is more that we cannot shift manually [6]. Resource leveling has that availability of resource limitation by means of minimizing the peaks in daily usage of resource profile and finds the required resources in minimum amount to be performed during each activity to complete the project in given time duration. Resource leveling problems (RLPs) are such kind of combinatorial and optimization problems with possible solutions. Therefore, solving RLP using analytical methods cannot give us optimal solutions, also using heuristic methods to solve such kind of problems will not give better solutions. This limitation of analytical and simple heuristic methods is good to have meta-heuristic approach like genetic algorithm used in this paper. This could really help in maximization and minimization problem to control resource usage profile in the construction project.

1.2 Resource-Constrained Project Scheduling Problem

The project management problem is defined as determining the time required to finish a project activities in order to meet a specific goal. It was considered in early research on project scheduling that a project's activities are represented solely by the implementation of time duration. As a result, methods such as the program evaluation and review technique (PERT) and the critical path method (CPM) that take precedence relationships between project activities into consideration have been proposed [7]. However, considering of precedence relationship as independent likes to be wrong assumption, which is having some constraints and the major limitations of the project to be considered, is resource constraints. In real-time problem, which is considerably maintained as a standard problem for scheduling activities due to some factors like limited availability of resources, addition cost for overall project, time consideration and workers health reasons, etc., to be taken into account in the resource-constrained project scheduling problem (RCPSP). The basic assumption of RCPSP is that the duration of a project may get extended due to the constraints of limited resource availability in real-time projects [8]. This problems can resolved by considering the extension of project duration done by finding the schedule duration is shortest with limited resource availability. This kind of combinatorial problems which apply selected rules on characteristics of activities like ‘minimum float values’ to compete for available resources. According to their priority level with minimum slack value, it should be critical activities, and other activities can be shifted or even delayed. Another rule ‘shortest duration’ can used in the scheduling process, which starts from project state date and finding eligible activities in respect of precedence network logics and resolving over allocation of resources by set of heuristic rules. This process where all the activities are planned without exceeding the resource constraints and logical connection but it will results in increasing cost of total project duration which is exceed the duration scheduled by CPM [9]. Heuristic methods are easy to applicable, simple to use, and easily adopted to work in computer language. They are easy to manageable in real-time projects and can be solved by meta-heuristic approach using genetic algorithm.

1.3 Genetic Algorithm

Resource leveling and resource-constrained scheduling optimization have proven difficult for individual simultaneous optimization. Given the improved meta- heuristics described in this research, the goal can be reformulated in a heuristic way as the finding for a better-optimal set of activity imports that reduce the duration of total project while simultaneously minimizing the appropriate moments of particular resources under resource constrained [10]. This aims to directly minimize the total project cost, which cannot be done using mathematical approaching methods, schedule with efficient resource utilization, and also avoids daily resource fluctuation will reduce the project duration. To deal with multiobjectives, search optimization technique is used which is based on solving the optimization problem using artificial intelligence like genetic algorithm (GA). This method of approach has been successfully adopted for solving engineering problems in an effective means of finding near-optimum results in a large complex problem that we are facing in this paper. Genetic algorithm is used in optimization procedures for search algorithm based on the concept of natural selection and natural genetics. GA improves a fitness through natural evolution and performs random search for obtaining the optimal solution; it required representation form of optimization problem to get possible solutions. This could be obtained in the string form termed as chromosomes which is pack of genes to form a structure of string. The fitness of each gene is evaluating by its fitness objective function they combine to enhance ‘survival of fittest’ and the natural process for better string structure to produce an offspring by exchange information which are calculated and can be retained only if they are having higher fitness value than the other genes in the population. Generally, this procedure is carried out for more number of offspring until an optimal gene is obtained. Each genes is undergone process of during implementation of genetic algorithm technique in five major steps: (1) creating gene structure (string); (2) define objective fitness function to evaluate gene; (3) creating an initial set of population randomly; (4) generate an offspring and function using operators; and (5) coding the procedure in a computer language.

2 Methodology

This project shows the methodology and the flow of work adopted in the development of model using GA using Python and integrates resource leveling and resource-constrained scheduling model as mentioned in Fig. 1. Initial phase of work flow is followed by literature study and finding research gap to develop a resource leveling model using genetic algorithm in Python language. Research papers were collected from different database for resource leveling, and genetic algorithm was performed together and solving real-time project data. While considering resource management, unlimited number of resources are available but in real-time project, there are only limited resources can be performed. The availability and allocation of resources will have an impact on the overall schedule in real project due to limited resources, optimizing the resource utilization is crucial. Minimizing undesirable fluctuation in resource utilization is not that easy to perform. Undesirable fluctuation in resource is inefficient and costly to implement in real-time project.

Fig. 1
A flow diagram from top to bottom includes literature, research gap identification, development of resource leveling model using G A, development of resource constrained scheduling model using G A, integration of R L and R C S models, model, validation using benchmark, instance, and real, results, and conclusions.

Methodology flow diagram

Performing resource leveling and resource-constrained scheduling model in an initial stage of project scheduling leads to the deviation in resource profile utilization and may get delay in completion of the project duration. Avoid deviation by considering reduction of resource demand variation and extension of duration during the progress in project using interdependent resource management system for optimal solution.

3 Interdependent Resource Management

Resource scheduling can be done by delaying activities or splitting them by considering total float values or total slack. So that the resources are assigned to those tasks which are no longer overloaded within a given time duration of the project. Resource leveling and scheduling are performed for given sample data collected from literature having five activities on road pavement which containing description with immediate predecessor activity, duration, resources, and float values are shown in Table 1.

Table 1 Sample data

3.1 Resource Scheduling Technique

Based on the given data, resource leveling is performed by using Microsoft Project Software critical path method was calculated, and then critical activities and noncritical activities and float days were calculated. This technique consists of the following step:

  • Collection of data should be implemented in MSP software and calculate the amount of work to be done.

  • Allocating the duration (days) for each activities which comprises the total duration of the project.

  • Allocation of resources (labors) for each activities by considering immediate predecessor activity in the given sample data for the project.

  • Calculating critical activities, noncritical activities, and float days by using Microsoft project software.

  • Calculation of daily resource requirement is needed to find out the resources are allocated within the limit and does not exceed the total project duration.

  • Implementing the acquired data from MSP to MS Excel to plot histogram for identification of any peaks and valleys in resource usage profile.

  • By performing resource leveling using genetic algorithm optimization technique in Python programming language to acquire optimal solution.

  • Finally, resource usage profile for the given data after resource leveling is done.

3.2 Genetic Algorithm Optimization

A genetic algorithm is a random heuristic approach for solving the optimization problem and requires a representation scheme to encode feasible solutions. GA technique was implemented using the following steps to perform resource leveling:

  • Usually, it is complete in the form that string represented is called chromosomes, and each chromosomes is a combination of set of genes.

  • Each gene represents one member (one solution) which is greater than one another.

  • Fitness function is determined by evaluating its performance.

  • To enhance ‘survival of fittest’ the natural process, where the best genes produce offspring by exchange information.

  • That are estimated and retained only when they are adequate in the population than others.

  • This procedure continues for huge number of offspring generations until a best gene (best solution) is arrived at some point.

  • Population corresponds to the set of random candidate solution which is representing in the form of chromosomes.

  • Each gene corresponds to the value for each variable of the problem defined.

  • Genetic representation of solution using fitness function to generate new solution by using different operators in genetic algorithm.

    1. 1.

      Selection operator—roulette wheel selection is used for selecting parent chromosomes for initial population.

    2. 2.

      Crossover operator—single-point crossover is used to exchanging the genes of both parent chromosomes to generate new population.

    3. 3.

      Mutation operator—creates diversity by randomly changing genes of the chromosomes, probability of mutation is 0.01

    4. 4.

      Elitism—initializing the population and evaluating new generation of chromosomes by carrying best individuals.

4 Results and Discussion

The resource leveling technique using genetic algorithm helps to reduce the resource demand variation in utilization of resource profile histogram, by leveling uneven deviations in resource requirements using available resources.

4.1 Discussion

Resources usage profile shows that histogram for that given activities in the project using available resource demand to complete the project with in a given time duration. In this project, five activities were taken into consideration with resource utilization, and each activity is having their own time duration to complete their task; total duration taken to complete all activities takes 8 days. Each days having different resource usage profile initially before leveling in Figs. 2 and 3 shows resource histogram before leveling.

Fig. 2
A table with 2 columns and 7 rows depicts activity and before leveling-duration in days. The column headed before leveling-duration in days is subdivided into 8 columns. The entries in column-headed activity include A, B of 1, C, D of 2, E, total, and date.

Resource allocation before leveling

Fig. 3
A vertical bar graph of resources versus days. The resource was high on day 4 and low on day 6. The resource on day 1 was 5, day 2 was 5, day 3 was 5, day 4 was 14, day 5 was 10, day 6 was 4, day 7 was 6, and day 8 was 6.

Resource histogram before leveling

After getting values for each activities from the Fig. 2 and assigning their resources mentioned in y-axis to the required duration in days mentioned in x-axis, resource profile histogram for resource usage of each activities calculated as sum of total resources in each days was shown in Fig. 3. The initial stage of resource leveling model helps to minimize uneven fluctuation in resource usage profile histogram using genetic algorithm in python language. Noncritical activities are identified and resources are shifted with the available total float days, to acquire better solution shown in resource usage histogram shown in Fig. 5.

4.2 Results and Discussion

The proposed resource leveling technique shows that various trails were performed until the better result obtained. In this project, resource histogram shows better result after running code again, and again repeatedly shows best fitness value as 363 in y-axis and number of generations 100 which is represented in x-axis with a graphical result were shown in Fig. 4.

Fig. 4
A graph of the genetic algorithm result depicts y versus x. It trends in a fluctuating pattern.

Genetic algorithm result

Fig. 5
A table with 2 columns and 7 rows depicts activity and after leveling-duration in days. The column headed after leveling-duration in days is subdivided into 9 columns. The entries in column-headed activity include A, B of 1, C, D of 2, E, total, and date.

Resource allocation after leveling

Activity ‘B’ has shifted its resource from 4th day to 6th day using float days by one day increasing and having 9 days as total duration of the project. However, many trails were shown different results in genetic algorithm coding according to their float days changes, which having maximum fitness value by exceeding minimum daily requirement of resource utilization are not taken consideration. Resource allocation after leveling shown in Fig. 5, activity ‘B’ is denoted as noncritical activity, and Fig. 6 shows that resource profile histogram after resource leveling has done with minimum fitness value.

Fig. 6
A vertical bar graph of resources versus days. The resource was high on day 6 and low on day 5. The resource on day 1 was 5, day 2 was 5, day 3 was 5, day 4 was 8, day 5 was 4, day 6 was 10, day 7 was 6, day 8 was 6, and day 9 was 6.

Resource histogram after leveling

5 Conclusion

The proposed model is to solve resource leveling and resource-constrained project scheduling problems in real-time construction projects by interdepending both using a genetic algorithm approach. The effective schedule was created by simulating the data by their fitness function value and using random optimization technique to obtain better resource usage profile with some changes in total project duration. Considering real-time project data perform genetic algorithm due to many possible shifts in activity difficult to create chromosome structure, further study is to overcome this problem by taking crucial activities in resource usage where high to reduce the size of chromosome. By increasing the number of generation helps to achieve better results in getting minimum fitness value to obtain optimal solution in resource profile usage.