No. | Based on Algorithm | Problem | References |
1 | GA | RCPSP | 13,14,15,16 |
2 | NPV-RCPSP | 12 | |
3 | MS-RCPSP | 17,18,19,20 | |
4 | PSO | RCPSP | 21,23 |
5 | MS-RCPSP | 2,22 | |
6 | DE | RCPSP | 24,25 |
7 | MS-RCPSP | 26 | |
8 | CS | MS-RCPSP | 31,32 |
In this paper, a topology optimization algorithm for the mechanical-electrical coupling problem of periodic composite materials is studied. Firstly, the homogenization problem of the mechanical-electrical coupling topology optimization problem of periodic composite materials is established by the multi-scale asymptotic expansion method. Secondly, the topology optimization algorithm for the mechanical-electrical coupling problem of periodic composite materials is constructed by finite element method, solid isotropic material with penalisation method and homogenization method. Finally, numerical results show that the proposed algorithm is effective to calculate the optimal structure of the periodic composite cantilever beam under the influence of the mechanical-electrical coupling.
Citation: Ziqiang Wang, Chunyu Cen, Junying Cao. Topological optimization algorithm for mechanical-electrical coupling of periodic composite materials[J]. Electronic Research Archive, 2023, 31(5): 2689-2707. doi: 10.3934/era.2023136
[1] | Hong Li, Keyu Zhang, Hongyan Xu . Solutions for systems of complex Fermat type partial differential-difference equations with two complex variables. AIMS Mathematics, 2021, 6(11): 11796-11814. doi: 10.3934/math.2021685 |
[2] | Wenjie Hao, Qingcai Zhang . The growth of entire solutions of certain nonlinear differential-difference equations. AIMS Mathematics, 2022, 7(9): 15904-15916. doi: 10.3934/math.2022870 |
[3] | Fengrong Zhang, Linlin Wu, Jing Yang, Weiran Lü . On entire solutions of certain type of nonlinear differential equations. AIMS Mathematics, 2020, 5(6): 6124-6134. doi: 10.3934/math.2020393 |
[4] | Yeyang Jiang, Zhihua Liao, Di Qiu . The existence of entire solutions of some systems of the Fermat type differential-difference equations. AIMS Mathematics, 2022, 7(10): 17685-17698. doi: 10.3934/math.2022974 |
[5] | Zheng Wang, Zhi Gang Huang . On transcendental directions of entire solutions of linear differential equations. AIMS Mathematics, 2022, 7(1): 276-287. doi: 10.3934/math.2022018 |
[6] | Yong Liu, Chaofeng Gao, Shuai Jiang . On meromorphic solutions of certain differential-difference equations. AIMS Mathematics, 2021, 6(9): 10343-10354. doi: 10.3934/math.2021599 |
[7] | Jingjing Li, Zhigang Huang . Radial distributions of Julia sets of difference operators of entire solutions of complex differential equations. AIMS Mathematics, 2022, 7(4): 5133-5145. doi: 10.3934/math.2022286 |
[8] | Minghui Zhang, Jianbin Xiao, Mingliang Fang . Entire solutions for several Fermat type differential difference equations. AIMS Mathematics, 2022, 7(7): 11597-11613. doi: 10.3934/math.2022646 |
[9] | Wenju Tang, Keyu Zhang, Hongyan Xu . Results on the solutions of several second order mixed type partial differential difference equations. AIMS Mathematics, 2022, 7(2): 1907-1924. doi: 10.3934/math.2022110 |
[10] | Zhenguang Gao, Lingyun Gao, Manli Liu . Entire solutions of two certain types of quadratic trinomial q-difference differential equations. AIMS Mathematics, 2023, 8(11): 27659-27669. doi: 10.3934/math.20231415 |
In this paper, a topology optimization algorithm for the mechanical-electrical coupling problem of periodic composite materials is studied. Firstly, the homogenization problem of the mechanical-electrical coupling topology optimization problem of periodic composite materials is established by the multi-scale asymptotic expansion method. Secondly, the topology optimization algorithm for the mechanical-electrical coupling problem of periodic composite materials is constructed by finite element method, solid isotropic material with penalisation method and homogenization method. Finally, numerical results show that the proposed algorithm is effective to calculate the optimal structure of the periodic composite cantilever beam under the influence of the mechanical-electrical coupling.
The MS-RCPSP [1,2,3,4,5] is a complex scheduling problem widely studied in operations research and project management. It is a type of project scheduling problem that considers the order in which tasks should be performed and the resources required to perform each task, such as labor, equipment and materials. In the MS-RCPSP, resources are considered limited, finite and reused, meaning there are restrictions on the number of renewable resources available at any given time. The goal of solving the MS-RCPSP is to minimize the project's completion time, cost or both (multi-objective) while ensuring that all resource constraints are satisfied. It is a widely studied problem with numerous real-world applications, including construction, software development and manufacturing.
The MS-RCPSP problem has an important constraint: a resource can only perform the task if it possesses the right skill type and the skill level is greater than or equal to the required skill level. This constraint accurately describes reality. Moreover, resources have many skill types and skill levels, so it is necessary to plan for allocating resources to perform practical tasks to improve the efficiency of project implementation. MS-RCPSP is a problem of class NP-Hard, so the optimal solution cannot be found in polynomial time. However, metaheuristic methods can solve the problem to find approximate solutions in less time. In order to find a suitable solution for the MS-RCPSP problem, this paper proposes the MEMINV algorithm developed from the Memetic algorithm [6,7,8] integrated with the Inversion method. The solution to the MS-RCPSP problem when applying MEMINV is a schedule that allocates resources to perform project tasks.
The major contributions of this paper involve the following:
● Proposing the Inversion method to detect the local extreme of populations in the evolutionary process over the generations. The local extreme detection is based on examining the number of successive evolutionary generations of a population without changing the total project time.
● Proposing the Adaptive Localserach method to dynamically change the parameters during the algorithm's evolution, including mutation coefficient, crossover coefficient and the number of neighboring individuals used to perform the search.
● Proposing hybrid algorithm MEMINV based on combining the Memetic algorithm and the Inversion method to improve problem-solving efficiency.
● Conduct experiments on the iMOPSE[4,5] dataset to verify the proposed algorithm.
The remainder of this paper is organized as follows: Part 2 provides an overview of related works in the RCPSP and MS-RCPSP problems and studies existing research on evolutionary methods employed to address these problems. Additionally, this section introduces the Memetic algorithm, known for its effectiveness in solving NP-Hard class problems. Section 3 describes the mathematical formulation of the problem, including the mathematical constraints and their implications. Part 4 presents the MEMINV algorithm, a hybrid approach combining the Memetic algorithm with the Inversion method, aimed at enhancing solution efficiency.
The MS-RCPSP [2,3,4,5,9,10,11] is a sub-classification of the Resource-Constrained Project Scheduling Problem (RCPSP), which has been proven to be an NP-Hard class, meaning that their solutions cannot be found in polynomial time. Therefore, it is common to use approximate, evolutionary algorithms to find an acceptable solution quickly.
Numerous scientists have extensively researched and published various methods to discover practical solutions for RCPSP and MS-RCPSP problems. These solutions are primarily based on evolutionary computation algorithms, including Genetic Algorithms (GA), Particle Swarm Optimization (PSO), Differential Evolution (DE) and Cuckoo Search (CS). Table 1 summarizes some outstanding works to solve those problems.
No. | Based on Algorithm | Problem | References |
1 | GA | RCPSP | 13,14,15,16 |
2 | NPV-RCPSP | 12 | |
3 | MS-RCPSP | 17,18,19,20 | |
4 | PSO | RCPSP | 21,23 |
5 | MS-RCPSP | 2,22 | |
6 | DE | RCPSP | 24,25 |
7 | MS-RCPSP | 26 | |
8 | CS | MS-RCPSP | 31,32 |
Many authors widely use the GA algorithm to solve the RCPSP family of problems.
In [12], the authors use the GA integrated with the Immune to solve the NPV-Based RCPSP problem. The algorithm is also applied with two additional variables to improve efficiency: local search and forward-backward improvement. Mateja Đumíc et al. [13] using GA combined with many different methods to determine the feasible schedule of RCPSP. In [14], O. Shuvo et al. consider RCPSP by integrating chemical reaction optimization and genetic algorithm (CRO-GA), and the authors have redesigned the basic operators of CRO and GA and the priority-based selection operator to find out the schedules. The authors [15] introduce the quantum-inspired genetic algorithm (QIGA), which is an adjusted GA algorithm to solve the RCPSP problem. In this algorithm, the authors improve the initialization and update stages population using quantum gates and superposition. In paper [16], the authors employ a combination of GA (Genetic Algorithm) and a two-point crossover operator to tackle the resource-constrained project scheduling problem with transfer times (RCPSPTT).
The GA algorithm is used to solve the MS-RCPSP. In [17], the authors proposed the genetic programming hyper-heuristic (GP-HH) algorithm, which has many improvements to improve solution quality, including repair-based decoding of a solution, using ten simple heuristic rules designed to construct a set of low-level heuristics, using GA with a high-level strategy and the design-of-experiment (DOE) method is employed to investigate the effect of parameters setting. The performance of GP-HH is evaluated on the iMOPSE dataset. The authors [18] use the breadth and depth methods hybrid with the GA algorithm. In [19], the authors proposed the MOGP-HH/D algorithm to find out the multi-objective of MS-RCPSP, which uses many technicals, including NSGA-Ⅱ algorithm, local search... design-of-experiment (DOE) by Taguchi method. In their study [20], the authors used several methods to obtain a multi-objective solution for the problem. The first utilized a priority rule for population initialization, followed by applying the NSGA-Ⅱ algorithm to facilitate the search process. Finally, they integrated a local search into the search process to enhance the quality of the results
Particle Swarm Optimization (PSO) is another commonly used metaheuristic for solving scheduling problems. The authors of the paper [21] proposed an algorithm that is improved from PSO to solve RCSPS. The new algorithm uses the "Valid Particle Generator" technique to detect feasible solutions and, at the same time, applies more adaptive methods to improve the quality of the solutions. In [2], the authors proposed a novel M-PSO algorithm to solve MS-RCPSP. The M-PSO is a hybrid between the PSO algorithm and the Migration method that supports the population escapes from local extrema. D. Q. Huu et al. [22] combined PSO with the re-assignment technical to recalculate the resource assigned to execute the task after each generation. The proposed algorithms are conducted with the iMOPSE dataset. In [23], the authors used PSO for the resource-constrained project scheduling problem with varying resource levels (RCPSPVRL), an RCPSP extension. In the RCPSPVRL, the total project duration is divided into many periods, each requiring a different quantity of resources.
Additionally, the DE algorithm discovers extensive applications among various research groups for solving scheduling problems. In [24], the authors proposed a two-stage multi-operator differential evolution (DE) algorithm to solve RCPSP. The algorithm processes each generation through two stages, including the exploration stage, and based on the diversity of the population and the quality of solutions, this approach dynamically places more importance on the most-suitable DE and then repeats the same process during the exploitation phase. In [25], improving DE (IDE) with the mutation technique is used to speed up the algorithm's convergence speed. The author evaluates the new algorithm and compares it with other algorithms, such as HGA and PSO, to demonstrate its effectiveness. The authors [26] consider a multi-objective MS-RCPSP problem with priority constraints to find the minimum deviation from the expected time to complete each project and allocate resources. The schedule alternative is found based on the improved DE algorithm.
Researchers have also proposed and developed some variations of the MS-RCPSP problem. In [27], the author extended MS-RCPSP to resource scheduling and cooperative multi-robot system problem task allocation. for SAR (RSTA-RSSAR). In RSTA-RSSAR, the skills of multi-robot systems are considered from both depth and breadth. In it, the processing time of activities in RSTA-RSSAR changes with skill ability resources provided. In order to solve the problem effectively, a genetic differential evolution algorithm (PS-GDEA) is proposed. Another variant is Real-RCPSP [28], which extends from MS-RCPSP by adding a constraint on task execution time that varies according to resource ability usage instead of a fixed duration. The authors also proposed an algorithm to solve the Real-RCPSP problem based on the Adaptive method combined with the DE algorithm called A-DEM.
Furthermore, numerous research groups have embraced the utilization of the CS algorithm as a valuable tool for addressing scheduling problems effectively. The authors use the Cuckoo Search (CS) [29,30] algorithm to solve the scheduling problem. The CS uses Lévy Flight random walk to evolve the population, using two search techniques: Local Search and Global Search. Authors of [31,32] use this metaheuristic to solve the MS-RCPSP.
Moreover, many other researchers have also proposed state-of-the-art algorithms that offer practical solutions for finding feasible schedules for the MS-RCPSP problem. The authors [33] recommend the multi-objective evolution strategy (MOES) framework to discover multi-objective solutions by focusing on generating and using mutation operators for good scheduling. In [34], the authors proposed a discrete oppositional multi-verse optimization (DOMVO) algorithm with many processing steps to get high effective such as using the black/white holes technique combined with the path relinking technique, the opposition-based learning (OBL), a repair-based decoding scheme, and the design-of-experiment (DOE) method.
Usually, to experiment with the proposed algorithms, the authors often use two primary datasets, PSLIB [35] and iMOPSE [4,5], which was suggested by P. B. Myszkowski.
Memetic algorithms (MAs) [6,7,8] are optimization algorithms that incorporate both evolutionary and local search procedures to solve complex optimization problems. MAs have gained increasing popularity in recent years due to their ability to overcome the limitations of traditional evolutionary algorithms (EAs) by incorporating problem-specific knowledge to guide the search process.
In a memetic algorithm, individuals in the population are encoded as solutions to the optimization problem and evolve through selection, crossover (recombination) and mutation. The genetic algorithm generates new candidate solutions, while the local search method is used to refine the solutions generated by the genetic algorithm.
Using local search methods in memetic algorithms can lead to faster convergence and improved solution quality compared to traditional genetic algorithms. This is because local search methods can exploit the structure of the problem space to find better solutions quickly. Moreover, the genetic algorithm provides a mechanism for exploring the search space and avoids getting trapped in local optima.
The Memetic algorithm performs the following steps:
● Step 1. Initialization: Generate an initial population of candidate solutions, each represented as a chromosome.
● Step 2. Fitness evaluation: Evaluate the fitness of each chromosome in the population using a fitness function.
● Step 3. Selection: Select pre-chromosomes for reproduction based on their fitness values.
● Step 4. Crossover: Combine the selected pre-chromosomes to create offspring chromosomes through crossover (recombination) operation.
● Step 5. Mutation: Introduce random variations into the offspring chromosomes through mutation operation.
● Step 6. Local search: To improve their solutions, perform a local search on some of the offspring chromosomes.
● Step 7. Acceptance: Accept the offspring as the new population if they are better than the current population, otherwise keep the current population.
● Step 8. Termination: Terminate the algorithm if a satisfactory solution is found or a stopping criterion is met.
● Repeat steps 2 to 8 to create the next generation of solutions.
However, there are also some disadvantages to using MAs. One of the main drawbacks is that MAs can be computationally expensive, as they require both global and local search procedures. Another challenge is designing effective, problem-specific and efficient local search procedures can be complex. Furthermore, MAs can also suffer from premature convergence, where the algorithm becomes stuck in a local optimum and cannot escape finding the global optimum.
The MS-RCPSP has a wide range of real-world applications, such as in project management, scheduling of manufacturing processes and resource allocation in large-scale engineering projects. The ability to effectively solve the MS-RCPSP has significant implications for the efficiency and success of these real-world applications.
To solve the MS-RCPSP, advanced optimization techniques are required to find the optimal schedule. Solving the MS-RCPSP is to minimize the makespan, or the total time required to complete the project while ensuring that all resource constraints are satisfied. The solution must also consider any dependencies between tasks, meaning that predecessor tasks must be completed before others begin.
RCPSP (Resource-Constrained Project Scheduling Problem) [1,9,10,11,12] is a problem of finding a schedule to complete project tasks with limited renewable resources (usually smaller than the number of tasks). The RCPSP problem is to find the best schedule to perform the project tasks under resource constraints, and the tasks have a fixed order of execution. The objective function of the RCPSP problem is evaluated based on the execution time (makespan), the cost of implementation (cost) or a combination of both (multi-objective).
In RCPSP, multiple tasks are performed, and each task is described by start and end times with some significant constraints as follows:
● When a task starts, it cannot be stopped until it is finished.
● Tasks are related to each other in order of execution. That is, the predecessors' task needs to be completed before the start of the successor's task.
● Resources are finite and can be reused for other tasks. The number of resources allocated should not exceed the amount available. Although a task can use multiple resources, a resource can be used for only one task concurrently.
Multi-Skill (MS) RCPSP problem [2,3,4,5] is extended from the RCPSP. The MS-RCPSP added a new constraint to the resources: each resource has many skills and a certain level. Therefore, each task will require a specific skill type and skill level resource. The MS-RCPSP is a widely studied problem with numerous real-world applications, including construction, software development and manufacturing.
Example 1: A project with 10 tasks and 3 renewable resources.
● Tasks that require resources with the skill level required to perform are shown in Table 2.
Task | W1 | W2 | W3 | W4 | W5 | W6 | W7 | W8 | W9 | W10 |
Required skill of the resource | S2.1 | S1.2 | S1.3 | S3.1 | S2.2 | S1.3 | S2.2 | S3.2 | S3.1 | S1.2 |
● Resources with complementary skills and skill levels are shown in Table 3.
Resource | L1 | L2 | L3 | L4 |
Skills | S1.3 | S1.2 | S1.3 | S2.2 |
S2.1 | S3.2 | S3.1 | S3.1 |
The notations:
● Wi: Task i, Lj: Resource j
● Si.j represents a skill type i with a skill level of j.
Based on the resource requirements for execution and the capacity of the given resources, we can build a matrix describing the resource's ability to perform the task, as shown in Figure 1 below.
The MS-RCPSP problem can be conceptually formulated based on the notations in Table 4.
Symbol | Description |
Ci | The set of tasks need to be completed before task i can be executed |
S | The set of all resource's skills Si: the subset of skills owned by the resource i, Si ⊆ S; |
Si | The skill i; |
tj | The duration of task j |
L | The resources used to execute tasks of the project |
Lk | The subset of the resources which can be performed task k; Lk ⊆ L |
Li | The resource i |
W | The tasks of the project need to do |
Wk | The subset of task which can be executed by the resource k, Wk ⊆ W |
Wi | The task i |
ri | The subset of the skill required by task i. A resource has the same skill and skill level equal to or greater than the requirement that can be performed. |
Bk, Ek | The begin time and end time of the task k |
Au, vt | The variable to identify the resource v is running task u at time t; 1: yes, 0: no; |
hi | The skill level i; |
gi | Type of skill i; |
m | Makespan of the schedule |
P | The feasible solution |
Pall | The set of all solution |
f(P): | The function to calculate the makespan of P solution |
n | Task number |
z | Resource number |
The MS-RCPSP problem could be state as follow:
f(P)→min | (1) |
Where:
f(P)=maxWi∈W{Ei}−minWk∈W{Bk} | (2) |
Subject to the following constraints:
●Sk≠∅∀Lk∈L | (3) |
●tjk≥0∀Wj∈W,∀Lk∈L | (4) |
●Ej≥0∀Wj∈W | (5) |
●Ei≤Ej−tj∀Wj∈W,j≠1,Wi∈Cj | (6) |
●∀Wi∈Wk∃Sq∈Sk:gSq=griandhSq≥hri | (7) |
●∀Lk∈L,∀q∈m:∑ni=1Aqi,k≤1 | (8) |
●∀Wj∈W∃!q∈[0,m],!Lk∈L:Aqj,k=1;whereAqj,k∈{0;1} | (9) |
The above constraints have the following meanings:
● Constraint (3) guarantees that each resource has at least one skill
● Constraints (4, 5) say that the execution time of any task must be at least 0 (in fact, every real task, with a minimum execution time, is always greater than 0, the case is zero to illustrate two dummy tasks representing the start and end of the project)
● Constraint (6) implies that the predecessor task (task i) must end before the successor task (task j) starts. The time when task i ends is denoted Ei, and the time when successor task j starts is Ej - tj (finish time minus execution time).
● Constraint (7) ensures that for every task i ∈ Wk (set of tasks that resource k can perform), there is always a skill S ∈ Sk (skill set of resource k) such that gS = gSi : r's skill type coincides with Li's skill type that task i requires. hSq ≥ hri : the skill level of the performing resource is higher or equal to the required skill level.
● Constraint (8) states that at each time (q), each resource can only perform at most one task. If ∑ni=1Aqi,k=0, then resource k is not assigned to any task. If ∑ni=1Aqi,k=1, then resource k is assigned to a single task.
● Constraint (9) ensures that each task is assigned to only one renewable resource and performed by only one resource.
In the MS-RCPSP problem, each task has additional skill requirements of the renewable resource needed to perform. Each resource is also divided into different skill types and skill levels. Figure 1 depicts an example of the resource skill constraints required to complete a task.
This section describes the proposed evolutionary algorithm for the MS-RCPSP problem named MEMINV, a variation of the Memetic algorithm [6,7,8] enhanced with the Inversion method.
In the MS-RCPSP problem, the population is calculated and evolved over several generations to improve the makespan of the project. Representing each individual in the population is a vector whose elements correspond to the total number of project tasks. The value at each vector element denotes the resource index assigned to perform the corresponding task.
Considering the project in example 1, an individual can be represented as a vector as shown in Figure 2 below.
The goal of the adaptive method is to adjust the crossover parameter µCR through each generation to increase the algorithm's efficiency. The adjustment depends on the results of the evolutionary performance of the population. The specific steps are as follows:
● The crossover parameter of the ith individual, denoted CRi, is calculated by the Cauchy random function of the crossover parameter CR. The CR is calculated based on the number of successful evolution individuals.
● When implementing the MEMINV algorithm, instead of using a fixed number of neighboring individuals at the local search step, the algorithm dynamically calculates and changes the number of neighboring individuals based on the number of individuals that successfully evolve.
● Suppose the population has ten individuals, with the project duration given in Figure 3. It is necessary to find three neighboring individuals with P5, the algorithm runs through the following steps:
o Step 1: Sort the population in ascending order of the project execution time of each individual (calculated using the objective function); the result is shown in Figure 4.
o Step 2: Considering the sorted list of Pall to calculate the distance with the P5 individual, it gets d5 = 13.
o Step 3: Considering Pall to get three individuals adjacent to P5. Neighboring individuals obtained include PS5 = {P2, P4, P6}.
The Adaptive local search is shown in the algorithm 1.
Algorithm 1. AdaptiveLocalSearch Input: Pall: the population current: the current individual to find the neighbors µCR: crossover probability (global variable) Output: Pbesti: the best individual gets from the neighboring individuals |
Begin 1. PR = {}; wmin = 3; wmax = 10; 2. fitness ← f(Pall) 3. i = index(current) // the index of current individual in Pall 4. mp = fitness(i) 5. N = sizeOf(Pall) 6. Pallsort ← sort(Pall, fitness) // sort population by fitness 7. Di = findDistance(i) 8. For j=1 to N 9. If abs(fitness(j) – mp) ≤ Di 10. PS= PS + {Pj} 11. End if 12. If (sizeOf(PS) > w) break; 13. End for 14. Pbesti = fbest(PS) 15. If (Pbesti!= localbest) SCR = SCR + {µCR} CRi = randci (µCR, 0.1) c = rand(0, 1) µCR = (1 - c) × µCR + c × mean(SCR) //Adaptive factor w = wmax – i/N × (wmax – wmin) 20. Return Pbesti End Function |
where: findDistance: function to find the maximum distance from position i (index of the curent individual) to others to be able to get enough number of individuals neighboring of Pi. |
The traditional memetic algorithm operates by evolving a population over several generations through several steps, including selection, crossover, mutation, local search and recombination to create a new population. However, while evolving, the algorithms may fall into the local extreme and iterate infinitely without leaving, so finding a better result is impossible. Therefore, the Inversion technique moves the population to another solution space far from the local extreme. Integrating the Inversion technique into the memetic algorithm leads to improved results.
In this step, the algorithm uses a marked variable cfail to count the times the makespan is not changed over generations; if cfail was more significant than a specified threshold (cmax), then the population has fallen into the local extreme. Equation (10) represents the calculation of cfail.
cfail={cfail+1ifnewmakespan=oldmakespan0ifnewmakespan≠oldmakespan | (10) |
Throughout the algorithm's evolution, upon detection of a local extreme, the Inversion method is invoked to facilitate the population's elimination of the local extreme. This is achieved through the following steps:
Step 1: Repeating with each individual
Step 2: Considering each task i of the individual, get out the Li of resources to execute the current task, reordering the resources index in Li.
Step 3: Replacing the current resource with the resource which mirrors in Li. The formula (11) shows this action.
Li={L1,L2,…,Lm},m⩽n∀Wi∈W,j∈[1,m]:Lj←Lm−j | (11) |
Figure 5 presents the Inversion technical by replacing the execution resource. Primarily, the task being performed by resource L2 will be changed to Lm-1, and resource Lm does the task will be allocated to L1.
After applying the Inversion method, the population will be moved to a new location, allowing the algorithm MEMINV to escape the local extreme, continue the evolutionary computation and expand the solution space.
The Inversion method is present in Algorithm 2 below.
Algorithm 2. Inversion |
Input: Pall – the population needs to move Output:Pnew – the result population Begin 1. { 2. Pnew = {} 3. i = 1 4. p_size = size(P) 5. while(i < p_size) { 6. Pi ← Pall[i]; 7. j_task = 1 8. n_task = size(Pi) 9. for { j_task = 1; j_task < n_task; j_task++) 10. { 11. Li ← the resources matching with L(j_task) requirement 12. Li ← Reorder(Li) 13. i_current ← current resource index to run task i 14. i_current = size(Li) – idx + 1 15. Lj_task = Li[i_current] 16. } // j_task 17. Pnew = Pnew + {Pi} 18. } 19. Return Pnew 20. } |
The MEMINV algorithm is a hybrid algorithm from the memetic algorithm and the Inversion method. The steps of the algorithm are detailed in Figure 6.
In the Figure 6, ALC is Active Local Search method used to dynamically find the individual in the algorithm's evolution. The improvement of MEMINV is demonstrated in the ALC and "Inversion steps", with the ALC, the algorithm will conduct an individual based on dynamically changing the number of neighboring and the crossover coefficient in the evolutionary process to get the local best and "Inversion steps" will check for local extrema within the population and redirects it to another region if it has fallen into one. This step is executed by applying the Inversion method.
The MEMINV algorithm is present in Algorithm 3.
Algorithm 3. MEMINV Input: dataset, gmax: number of generation, SCR: global variable, set of crossover coefficients of successful evolution individuals µCR: Crossover Probability (global variable) µMP: Mutation Probability (global variable) w: number of neighbors for local search (global variable) Output: best individual and makespan |
1. Begin 2. { 3. {Read dataset}. 4. g = 0, cfail = 0, cmax = 50, SCR = {}; µCR = 0.5; w = 3; 5. Pall = {population initallation} 6. {makespan, best, fitness} = {Caculating the fitness of population and the best individual} 7. while(g < gmax) 8. { 9. predecessors = Selection(population); // Select predecessor chromosomes for reproduction based on their fitness values 10. offspring = Crossover(predecessors, µCR); // Perform crossover on the population 11. offspring = Mutate(offspring, µMP); // Perform mutation on the offspring 12. offspring = AdaptiveLocalSearch(Pall, offspring); // Perform local search on some of the offspring 13. Pall = CombinePopulation(Pall, offspring); // Combine the pre-population and offspring to create the new population 14. {new_makespan, new_best, fitness} = {Caculating the fitness of population and the best individual from Pall} 15. if new_makespan!= makespan then 16. cfail = 0 17. else 18. cfail += 1 19. end if 20. if (cfail = cmax) 21. Pall = Inversion(Pall) 22. cfail = 0 23. end if 24. if (makespan < new_makespan) 25. makespan = new_makespan; 26. best = new_best; 27. SCR += 1; 28. end if 29. g = g+1 30. } // end while 31. return {best, makespan } 32. } |
In Algorithm 2, lines 15–19 aim to detect local extremes, while commands in lines 20–23 move the population by calling the Inversion function. After moving the population, the algorithm continues on the new solution area. In order to facilitate the parameter adjustment during the evolutionary process, the algorithm utilizes a global variable called SCR. This variable keeps track of the number of individuals that have successfully evolved over multiple generations.
In order to evaluate the performance of the proposed MEMINV algorithm, we experimented on the iMOPSE [4,5] dataset presented in Table 5.
Code | Name | Tasks | Resources | Precedence Constraints | Skills | |
1 | iM01 | 100_5_22_15 | 100 | 5 | 22 | 15 |
2 | iM02 | 100_5_46_15 | 100 | 5 | 46 | 15 |
3 | iM03 | 100_5_48_9 | 100 | 5 | 48 | 9 |
4 | iM04 | 100_5_64_15 | 100 | 5 | 64 | 15 |
5 | iM05 | 100_5_64_9 | 100 | 5 | 64 | 9 |
6 | iM06 | 100_10_26_15 | 100 | 10 | 26 | 15 |
7 | iM07 | 100_10_47_9 | 100 | 10 | 47 | 9 |
8 | iM08 | 100_10_48_15 | 100 | 10 | 48 | 15 |
9 | iM09 | 100_10_64_9 | 100 | 10 | 64 | 9 |
10 | iM10 | 100_10_65_15 | 100 | 10 | 65 | 15 |
11 | iM11 | 100_20_22_15 | 100 | 20 | 22 | 15 |
12 | iM12 | 100_20_46_15 | 100 | 20 | 46 | 15 |
13 | iM13 | 100_20_47_9 | 100 | 20 | 47 | 9 |
14 | iM14 | 100_20_65_15 | 100 | 20 | 65 | 15 |
15 | iM15 | 100_20_65_9 | 100 | 20 | 65 | 9 |
16 | iM16 | 200_10_128_15 | 200 | 10 | 128 | 15 |
17 | iM17 | 200_10_50_15 | 200 | 10 | 50 | 15 |
18 | iM18 | 200_10_50_9 | 200 | 10 | 50 | 9 |
19 | iM19 | 200_10_84_9 | 200 | 10 | 84 | 9 |
20 | iM20 | 200_10_85_15 | 200 | 10 | 85 | 15 |
21 | iM21 | 200_20_145_15 | 200 | 20 | 145 | 15 |
22 | iM22 | 200_20_54_15 | 200 | 20 | 54 | 15 |
23 | iM23 | 200_20_55_9 | 200 | 20 | 55 | 9 |
24 | iM24 | 200_20_97_15 | 200 | 20 | 97 | 15 |
25 | iM25 | 200_20_97_9 | 200 | 20 | 97 | 9 |
26 | iM26 | 200_40_133_15 | 200 | 40 | 133 | 15 |
27 | iM27 | 200_40_45_15 | 200 | 40 | 45 | 15 |
28 | iM28 | 200_40_45_9 | 200 | 40 | 45 | 9 |
29 | iM29 | 200_40_90_9 | 200 | 40 | 90 | 9 |
30 | iM30 | 200_40_91_15 | 200 | 40 | 91 | 15 |
Experiments were conducted with the following parameters and data:
● Benchmark instances: iMOPSE dataset (iM01 to iM30), each instance is a project with full input parameters such as the number of tasks, the number of resources used to execute the project, the number of precedence constraints and the number of resource skills.
● The initial number of individuals (i.e., solution, individual, schedule): 100
● The number of generations: 50,000
● The number of times the experiment was carried out on each element of the dataset: 30
● Experiment tools: Visual Studion 2019, C#, Net Framework 4.5
● PC configuration: CPU Core i5 2.2 GHz, 6GB RAM, Windows 10
Experimental results with the iMOPSE dataset are presented in Table 5. The results are aggregated, compared and evaluated based on three factors:
● BEST - best makespan values - this is the shortest time to complete the project
● AVG - average execution time of 50 experiments with each instance dataset
● STD values - the standard deviation value between experiments on the same data instance
The schedule found by the proposed MEMINV algorithm is compared with the GA algorithm developed by Myszkowski [36], as shown in Table 6.
Code | Name | GA | MEMINV | ||||
BEST | AVG | STD | BEST | AVG | STD | ||
The projects have 100 tasks | |||||||
iM01 | 100_5_22_15 | 517 | 524 | 5.3 | 475 | 478 | 2.8 |
iM02 | 100_5_46_15 | 584 | 587 | 4.7 | 584 | 596 | 4.5 |
iM03 | 100_5_48_9 | 528 | 535 | 9.7 | 523 | 526 | 10.7 |
iM04 | 100_5_64_15 | 527 | 530 | 2.5 | 505 | 506 | 1.8 |
iM05 | 100_5_64_9 | 508 | 521 | 9.9 | 487 | 498 | 4.9 |
iM06 | 100_10_26_15 | 292 | 292 | 1.7 | 295 | 301 | 0.3 |
iM07 | 100_10_47_9 | 296 | 296 | 2.3 | 283 | 285 | 2.0 |
iM08 | 100_10_48_15 | 279 | 282 | 2.9 | 272 | 281 | 3.7 |
iM09 | 100_10_64_9 | 296 | 305 | 6.6 | 256 | 260 | 0.9 |
iM10 | 100_10_65_15 | 286 | 290 | 5.0 | 285 | 296 | 3.6 |
iM11 | 100_20_22_15 | 163 | 169 | 5.8 | 140 | 141 | 2.1 |
iM12 | 100_20_46_15 | 197 | 207 | 6.9 | 166 | 172 | 8.3 |
iM13 | 100_20_47_9 | 185 | 186 | 0.5 | 181 | 183 | 0.6 |
iM14 | 100_20_65_15 | 240 | 240 | 0.5 | 207 | 212 | 5.5 |
iM15 | 100_20_65_9 | 181 | 187 | 4.5 | 181 | 182 | 1.3 |
The projects have 200 tasks | |||||||
iM16 | 200_10_128_15 | 577 | 583 | 4.9 | 576 | 585 | 2.3 |
iM17 | 200_10_50_15 | 553 | 577 | 17.5 | 546 | 572 | 17.5 |
iM18 | 200_10_50_9 | 585 | 589 | 5.0 | 549 | 554 | 4.8 |
iM19 | 200_10_84_9 | 567 | 583 | 11.4 | 535 | 542 | 6.8 |
iM20 | 200_10_85_15 | 549 | 555 | 4.9 | 540 | 543 | 3.7 |
iM21 | 200_20_145_15 | 326 | 329 | 1.9 | 282 | 285 | 1.7 |
iM22 | 200_20_54_15 | 363 | 385 | 20.8 | 328 | 345 | 14.5 |
iM23 | 200_20_55_9 | 312 | 318 | 4.2 | 267 | 273 | 5.0 |
iM24 | 200_20_97_15 | 424 | 438 | 9.7 | 409 | 422 | 11.2 |
iM25 | 200_20_97_9 | 321 | 326 | 6.2 | 283 | 285 | 1.1 |
iM26 | 200_40_133_15 | 215 | 222 | 6.2 | 169 | 171 | 5.3 |
iM27 | 200_40_45_15 | 201 | 210 | 6.3 | 178 | 179 | 0.1 |
iM28 | 200_40_45_9 | 209 | 213 | 2.9 | 181 | 183 | 1.9 |
iM29 | 200_40_90_9 | 211 | 215 | 3.1 | 196 | 200 | 1.8 |
iM30 | 200_40_91_15 | 200 | 205 | 3.4 | 174 | 181 | 3.2 |
Sum | 177.2 | 133.9 |
The experimental results show that the proposed algorithm MEMINV is more efficient than the GA algorithm on the following parameters:
● In term of BEST values, the MEMINV algorithm outperforms GA in 26 out of 30 projects, achieving improvements ranging from 0 to 22.33%. However, in 4 projects, MEMINV performs worse than GA, including the projects with 100 tasks and one project with 200 tasks. Figure 7.a and 7.b illustrate the BEST values comparisons for 15 projects with 100 tasks and 15 remains with 200 tasks, respectively.
● Regarding AVG values, MEMINV yields better results than GA in 25 out of 30 projects, achieving improvements ranging from 0 to 23.31%. However, in 4 projects, MEMINV performs worse than GA, including four projects with 100 tasks and one project with 200 tasks. Figure 8.a and 8.b detail the AVG values comparisons for 15 projects with 100 tasks and 15 others with 200 tasks, respectively.
● Moreover, MEMINV exhibits greater stability than GA with a total standard deviation of 133.9, compared to GA's 177.2 on 30 datasets of iMOPSE. Figure 9.a and 9.b present the STD values comparisons for 15 projects with 100 tasks and 15 projects with 200 tasks, respectively. Overall, these results suggest that MEMINV is a more stable and efficient algorithm for scheduling projects with a large number of tasks, making it well-suited for real-world industrial applications.
Experimental results demonstrate that the MEMINV algorithm is less effective for projects with fewer tasks, but it achieves higher efficiency for larger projects. This suggests that MEMINV is well-suited for scheduling real-world projects consisting of a series of jobs with a significant number of tasks. For instance, MEMINV can be applied in various fields, such as equipment manufacturing and industrial sewing lines.
In this paper, we have presented a mathematical formulation of the MS-RCPSP problem and proposed a new algorithm, MEMINV, that combines the strengths of the Memetic algorithm and the Inversion method. Our experiments on the IMOPSE dataset demonstrate that MEMINV outperforms previous algorithms regarding BEST and AVG values, achieving up to a 22.33% improvement on BEST values and a 23.31% improvement on AVG values. The total STD value suggests that the proposed algorithm exhibits more excellent stability, meaning that it produces less difference between experiment times.
The results suggest that MEMINV is a promising approach for solving complex scheduling problems with a large number of tasks, which is critical for various real-world industrial production scenarios, such as industrial machine lines or some other manufacturing sectors. Specifically, MEMINV can enable enterprises to create more efficient production schedules, leading to more automated and intelligent production systems that can replace manual labor.
In future work, we plan to investigate other approximation methods, such as random moves based on Gauss, Cauchy, etc., to enhance further the quality of the schedules produced by MEMINV. Overall, our research provides valuable insights into the MS-RCPSP problem and offers a practical solution that can improve the efficiency of production scheduling in various industries.
The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.
The authors declare that there are no conflicts of interest regarding the publication of this paper.
[1] |
A. C. Eringen, Theory of nonlocal piezoelectricity, J. Math. Phys., 25 (1984), 717–727. https://doi.org/10.1063/1.526180 doi: 10.1063/1.526180
![]() |
[2] |
J. S. Yang, R. C. Batra, Conservation laws in linear piezoelectricity, Eng. Fract. Mech., 51 (1995), 1041–1047. https://doi.org/10.1016/0013-7944(94)00271-I doi: 10.1016/0013-7944(94)00271-I
![]() |
[3] |
M. Deng, Y. Feng, Two-scale finite element for piezoelectric problem in periodic structure, Appl. Math. Mech., 32 (2011), 1525–1540. https://doi.org/10.1007/s10483-011-1521-7 doi: 10.1007/s10483-011-1521-7
![]() |
[4] |
J. Telega, S. Bytner, Piezoelectricity with polarization gradient: homogenization, Mech. Res. Commun., 29 (2002), 53–59. https://doi.org/10.1016/S0093-6413(02)00228-8 doi: 10.1016/S0093-6413(02)00228-8
![]() |
[5] |
G. Allaire, E. Bonnetier, G. Francfort, F. Jouve, Shape optimization by the homogenization method, Numer. Math., 76 (1997), 27–68. https://doi.org/10.1007/s002110050253 doi: 10.1007/s002110050253
![]() |
[6] |
M. Zhou, D. Geng, Multi-scale and multi-material topology optimization of channel-cooling cellular structures for thermomechanical behaviors, Comput. Methods Appl. Mech. Eng., 383 (2021), 113896. https://doi.org/10.1016/j.cma.2021.113896 doi: 10.1016/j.cma.2021.113896
![]() |
[7] |
X. Zhao, M. Zhou, Y. Liu, M. Ding, P. Hu, P. Zhu, Topology optimization of channel cooling structures considering thermomechanical behavior, Struct. Multidiscip. Optim., 59 (2019), 613–632. https://doi.org/10.1007/s00158-018-2087-z doi: 10.1007/s00158-018-2087-z
![]() |
[8] |
L. Ling, J. Yan, G. Cheng, Optimum structure with homogeneous optimum truss-like material, Comput. Struct., 86 (2008), 1417–1425. https://doi.org/10.1016/j.compstruc.2007.04.030 doi: 10.1016/j.compstruc.2007.04.030
![]() |
[9] |
A. Homayouni-Amlashi, A. Mohand-Ousaid, M. Rakotondrabe, Topology optimization of 2DOF piezoelectric plate energy harvester under external in-plane force, J. Micro-Bio Rob., 16 (2020), 65–77. https://doi.org/10.1007/s12213-020-00129-0 doi: 10.1007/s12213-020-00129-0
![]() |
[10] |
B. Yang, C. Cheng, X. Wang, Z. Meng, A. Homayouni-Amlashi, Reliability-based topology optimization of piezoelectric smart structures with voltage uncertainty, J. Intell. Mater. Syst. Struct., 33 (2022), 1975–1989. https://doi.org/10.1177/1045389X211072197 doi: 10.1177/1045389X211072197
![]() |
[11] |
L. Xu, G. Cheng, Two-scale concurrent topology optimization with multiple micro materials based on principal stress orientation, Struct. Multidiscip. Optim., 57 (2018), 2093–2107. https://doi.org/10.1007/s00158-018-1916-4 doi: 10.1007/s00158-018-1916-4
![]() |
[12] |
S. Xu, G. Cheng, Optimum material design of minimum structural compliance under seepage constraint, Struct. Multidiscip. Optim., 41 (2010), 575–587. https://doi.org/10.1007/s00158-009-0438-5 doi: 10.1007/s00158-009-0438-5
![]() |
[13] |
H. Rodrigues, J. Guedes, M. Bendsoe, Hierarchical optimization of material and structure, Struct. Multidiscip. Optim., 24 (2002), 1–10. https://doi.org/10.1007/s00158-002-0209-z doi: 10.1007/s00158-002-0209-z
![]() |
[14] |
J. Guedes, N. Kikuchi, Preprocessing and postprocessing for materials based on the homogenization method with adaptive finite element methods, Comput. Methods Appl. Mech. Eng., 83 (1990), 143–198. https://doi.org/10.1016/0045-7825(90)90148-F doi: 10.1016/0045-7825(90)90148-F
![]() |
[15] |
E. Andreassen, C. Andreasen, How to determine composite material properties using numerical homogenization, Comput. Mater. Sci., 83 (2014), 488–495. https://doi.org/10.1016/j.commatsci.2013.09.006 doi: 10.1016/j.commatsci.2013.09.006
![]() |
[16] |
G. Cheng, Y. Cai, L. Xu, Novel implementation of homogenization method to predict effective properties of periodic materials, Acta Mech. Sin., 29 (2013), 550–556. https://doi.org/10.1007/s10409-013-0043-0 doi: 10.1007/s10409-013-0043-0
![]() |
[17] |
Y. Wang, M. Wang, F. Chen, Structure-material integrated design by level sets, Struct. Multidiscip. Optim., 54 (2016), 1145–1156. https://doi.org/10.1007/s00158-016-1430-5 doi: 10.1007/s00158-016-1430-5
![]() |
[18] |
J. Guest, J. Prvost, Optimizing multifunctional materials: design of microstructures for maximized stiffness and fluid permeability, Int. J. Solids Struct., 43 (2006), 7028–7047. https://doi.org/10.1016/j.ijsolstr.2006.03.001 doi: 10.1016/j.ijsolstr.2006.03.001
![]() |
[19] |
J. Guest, J. Prvost, Design of maximum permeability material structures, Comput. Methods Appl. Mech. Eng., 196 (2007), 1006–1017. https://doi.org/10.1016/j.cma.2006.08.006 doi: 10.1016/j.cma.2006.08.006
![]() |
[20] |
Z. Han, Z. Wang, K. Wei, Shape morphing structures inspired by multi-material topology optimized bi-functional metamaterials, Compos. Struct., 300 (2022), 116135. https://doi.org/10.1016/j.compstruct.2022.116135 doi: 10.1016/j.compstruct.2022.116135
![]() |
[21] |
Z. Han, K. Wei, Multi-material topology optimization and additive manufacturing for metamaterials incorporating double negative indexes of Poissons ratio and thermal expansion, Addit. Manuf., 54 (2022), 102742. https://doi.org/10.1016/j.addma.2022.102742 doi: 10.1016/j.addma.2022.102742
![]() |
[22] |
M. Costa, A. Sohouli, A. Suleman, Multi-scale and multi-material topology optimization of gradient lattice structures using surrogate models, Compos. Struct., 289 (2022), 115402. https://doi.org/10.1016/j.compstruct.2022.115402 doi: 10.1016/j.compstruct.2022.115402
![]() |
[23] |
X. Huangy, W. Li, A new multi-material topology optimization algorithm and selection of candidate materials, Comput. Methods Appl. Mech. Eng., 386 (2021), 114114. https://doi.org/10.1016/J.CMA.2021.114114 doi: 10.1016/J.CMA.2021.114114
![]() |
[24] |
Z. Wang, J. Cui, Second-order two-scale method for bending behavior analysis of composite plate with 3-D periodic configuration and its approximation, Sci. China Math., 57 (2014), 1713–1732. https://doi.org/10.1007/s11425-014-4831-1 doi: 10.1007/s11425-014-4831-1
![]() |
[25] |
J. Cao, C. Xu, A high order schema for the numerical solution of the fractional ordinary differential equations, J. Comput. Phys., 238 (2013), 154–168. https://doi.org/10.1016/j.jcp.2012.12.013 doi: 10.1016/j.jcp.2012.12.013
![]() |
[26] |
L. Tian, Z. Wang, J. Cao, A high-order numerical scheme for right Caputo fractional differential equations with uniform accuracy, Electron. Res. Arch., 30 (2022), 3825–3854. https://doi:10.3934/era.2022195 doi: 10.3934/era.2022195
![]() |
[27] |
C. Wang, J. Zhu, W. Zhang, S. Li, J. Kong, Concurrent topology optimization design of structures and non-uniform parameterized lattice microstructures, Struct. Multidiscip. Optim., 58 (2018), 35–50. https://doi.org/10.1007/s00158-018-2009-0 doi: 10.1007/s00158-018-2009-0
![]() |
[28] |
P. Gangl, A multi-material topology optimization algorithm based on the topological derivative, Comput. Methods Appl. Mech. Eng., 366 (2020), 113090. https://doi.org/10.1016/j.cma.2020.113090 doi: 10.1016/j.cma.2020.113090
![]() |
[29] |
Y. Feng, M. Deng, X. Guan, The twoscale asymptotic error analysis for piezoelectric problems in the quasi-periodic structure, Sci. China Phys., Mech. Astron., 56 (2013), 1844–1853. https://doi.org/10.1007/s11433-013-5304-1 doi: 10.1007/s11433-013-5304-1
![]() |
[30] |
A. Homayouni-Amlashi, T. Schlinquer, A. Mohand-Ousaid, M. Rakotondrabe, 2D topology optimization MATLAB codes for piezoelectric actuators and energy harvester, Struct. Multidiscip. Optim., 63 (2021), 983–1014. https://doi.org/10.1007/s00158-020-02726-w doi: 10.1007/s00158-020-02726-w
![]() |
[31] |
M. Wang, S. Feng, A. Incecik, G. Krolczyk, Z. Li, Structural fatigue life prediction considering model uncertainties through a novel digital twin-driven approach, Comput. Methods Appl. Mech. Eng., 391 (2022), 114512. https://doi.org/10.1016/j.cma.2021.114512 doi: 10.1016/j.cma.2021.114512
![]() |
[32] |
S. Feng, X. Han, Z. Li, A. Incecik, Ensemble learning for remaining fatigue life prediction of structures with stochastic parameters: a data-driven approach, Appl. Math. Modell., 101 (2022), 420–431. https://doi.org/10.1016/j.apm.2021.08.033 doi: 10.1016/j.apm.2021.08.033
![]() |
[33] |
W. Mason, H. Baerwald, Piezoelectric crystals and their applications to ultrasonics, Phys. Today, 4 (1951), 23–24. https://doi.org/10.1063/1.3067231 doi: 10.1063/1.3067231
![]() |
1. | Julián R. Wiest-Goyeneche, Elyn L. Solano-Charris, Carlos A. Vega-Mejía, Multi-skill resource-constrained project scheduling problem: a case study in an open-pit mining process, 2024, 0305-215X, 1, 10.1080/0305215X.2024.2376852 | |
2. | Jingjing Wu, Xinyu Liu, Mengjun Zhang, Bin Li, Chenglin Zhao, 2024, An Efficient Shipyard Moulding-bed Scheduling Method Based on Genetic Algorithm, 979-8-3503-5456-0, 873, 10.1109/ISCTIS63324.2024.10698817 | |
3. | Zijiao Zhang, Chong Wu, Shiyou Qu, Jiaming Liu, A hierarchical chain-based Archimedes optimization algorithm, 2023, 20, 1551-0018, 20881, 10.3934/mbe.2023924 |
Task | W1 | W2 | W3 | W4 | W5 | W6 | W7 | W8 | W9 | W10 |
Required skill of the resource | S2.1 | S1.2 | S1.3 | S3.1 | S2.2 | S1.3 | S2.2 | S3.2 | S3.1 | S1.2 |
Resource | L1 | L2 | L3 | L4 |
Skills | S1.3 | S1.2 | S1.3 | S2.2 |
S2.1 | S3.2 | S3.1 | S3.1 |
Symbol | Description |
Ci | The set of tasks need to be completed before task i can be executed |
S | The set of all resource's skills Si: the subset of skills owned by the resource i, Si ⊆ S; |
Si | The skill i; |
tj | The duration of task j |
L | The resources used to execute tasks of the project |
Lk | The subset of the resources which can be performed task k; Lk ⊆ L |
Li | The resource i |
W | The tasks of the project need to do |
Wk | The subset of task which can be executed by the resource k, Wk ⊆ W |
Wi | The task i |
ri | The subset of the skill required by task i. A resource has the same skill and skill level equal to or greater than the requirement that can be performed. |
Bk, Ek | The begin time and end time of the task k |
Au, vt | The variable to identify the resource v is running task u at time t; 1: yes, 0: no; |
hi | The skill level i; |
gi | Type of skill i; |
m | Makespan of the schedule |
P | The feasible solution |
Pall | The set of all solution |
f(P): | The function to calculate the makespan of P solution |
n | Task number |
z | Resource number |
Algorithm 1. AdaptiveLocalSearch Input: Pall: the population current: the current individual to find the neighbors µCR: crossover probability (global variable) Output: Pbesti: the best individual gets from the neighboring individuals |
Begin 1. PR = {}; wmin = 3; wmax = 10; 2. fitness ← f(Pall) 3. i = index(current) // the index of current individual in Pall 4. mp = fitness(i) 5. N = sizeOf(Pall) 6. Pallsort ← sort(Pall, fitness) // sort population by fitness 7. Di = findDistance(i) 8. For j=1 to N 9. If abs(fitness(j) – mp) ≤ Di 10. PS= PS + {Pj} 11. End if 12. If (sizeOf(PS) > w) break; 13. End for 14. Pbesti = fbest(PS) 15. If (Pbesti!= localbest) SCR = SCR + {µCR} CRi = randci (µCR, 0.1) c = rand(0, 1) µCR = (1 - c) × µCR + c × mean(SCR) //Adaptive factor w = wmax – i/N × (wmax – wmin) 20. Return Pbesti End Function |
where: findDistance: function to find the maximum distance from position i (index of the curent individual) to others to be able to get enough number of individuals neighboring of Pi. |
Algorithm 2. Inversion |
Input: Pall – the population needs to move Output:Pnew – the result population Begin 1. { 2. Pnew = {} 3. i = 1 4. p_size = size(P) 5. while(i < p_size) { 6. Pi ← Pall[i]; 7. j_task = 1 8. n_task = size(Pi) 9. for { j_task = 1; j_task < n_task; j_task++) 10. { 11. Li ← the resources matching with L(j_task) requirement 12. Li ← Reorder(Li) 13. i_current ← current resource index to run task i 14. i_current = size(Li) – idx + 1 15. Lj_task = Li[i_current] 16. } // j_task 17. Pnew = Pnew + {Pi} 18. } 19. Return Pnew 20. } |
Algorithm 3. MEMINV Input: dataset, gmax: number of generation, SCR: global variable, set of crossover coefficients of successful evolution individuals µCR: Crossover Probability (global variable) µMP: Mutation Probability (global variable) w: number of neighbors for local search (global variable) Output: best individual and makespan |
1. Begin 2. { 3. {Read dataset}. 4. g = 0, cfail = 0, cmax = 50, SCR = {}; µCR = 0.5; w = 3; 5. Pall = {population initallation} 6. {makespan, best, fitness} = {Caculating the fitness of population and the best individual} 7. while(g < gmax) 8. { 9. predecessors = Selection(population); // Select predecessor chromosomes for reproduction based on their fitness values 10. offspring = Crossover(predecessors, µCR); // Perform crossover on the population 11. offspring = Mutate(offspring, µMP); // Perform mutation on the offspring 12. offspring = AdaptiveLocalSearch(Pall, offspring); // Perform local search on some of the offspring 13. Pall = CombinePopulation(Pall, offspring); // Combine the pre-population and offspring to create the new population 14. {new_makespan, new_best, fitness} = {Caculating the fitness of population and the best individual from Pall} 15. if new_makespan!= makespan then 16. cfail = 0 17. else 18. cfail += 1 19. end if 20. if (cfail = cmax) 21. Pall = Inversion(Pall) 22. cfail = 0 23. end if 24. if (makespan < new_makespan) 25. makespan = new_makespan; 26. best = new_best; 27. SCR += 1; 28. end if 29. g = g+1 30. } // end while 31. return {best, makespan } 32. } |
Code | Name | Tasks | Resources | Precedence Constraints | Skills | |
1 | iM01 | 100_5_22_15 | 100 | 5 | 22 | 15 |
2 | iM02 | 100_5_46_15 | 100 | 5 | 46 | 15 |
3 | iM03 | 100_5_48_9 | 100 | 5 | 48 | 9 |
4 | iM04 | 100_5_64_15 | 100 | 5 | 64 | 15 |
5 | iM05 | 100_5_64_9 | 100 | 5 | 64 | 9 |
6 | iM06 | 100_10_26_15 | 100 | 10 | 26 | 15 |
7 | iM07 | 100_10_47_9 | 100 | 10 | 47 | 9 |
8 | iM08 | 100_10_48_15 | 100 | 10 | 48 | 15 |
9 | iM09 | 100_10_64_9 | 100 | 10 | 64 | 9 |
10 | iM10 | 100_10_65_15 | 100 | 10 | 65 | 15 |
11 | iM11 | 100_20_22_15 | 100 | 20 | 22 | 15 |
12 | iM12 | 100_20_46_15 | 100 | 20 | 46 | 15 |
13 | iM13 | 100_20_47_9 | 100 | 20 | 47 | 9 |
14 | iM14 | 100_20_65_15 | 100 | 20 | 65 | 15 |
15 | iM15 | 100_20_65_9 | 100 | 20 | 65 | 9 |
16 | iM16 | 200_10_128_15 | 200 | 10 | 128 | 15 |
17 | iM17 | 200_10_50_15 | 200 | 10 | 50 | 15 |
18 | iM18 | 200_10_50_9 | 200 | 10 | 50 | 9 |
19 | iM19 | 200_10_84_9 | 200 | 10 | 84 | 9 |
20 | iM20 | 200_10_85_15 | 200 | 10 | 85 | 15 |
21 | iM21 | 200_20_145_15 | 200 | 20 | 145 | 15 |
22 | iM22 | 200_20_54_15 | 200 | 20 | 54 | 15 |
23 | iM23 | 200_20_55_9 | 200 | 20 | 55 | 9 |
24 | iM24 | 200_20_97_15 | 200 | 20 | 97 | 15 |
25 | iM25 | 200_20_97_9 | 200 | 20 | 97 | 9 |
26 | iM26 | 200_40_133_15 | 200 | 40 | 133 | 15 |
27 | iM27 | 200_40_45_15 | 200 | 40 | 45 | 15 |
28 | iM28 | 200_40_45_9 | 200 | 40 | 45 | 9 |
29 | iM29 | 200_40_90_9 | 200 | 40 | 90 | 9 |
30 | iM30 | 200_40_91_15 | 200 | 40 | 91 | 15 |
Code | Name | GA | MEMINV | ||||
BEST | AVG | STD | BEST | AVG | STD | ||
The projects have 100 tasks | |||||||
iM01 | 100_5_22_15 | 517 | 524 | 5.3 | 475 | 478 | 2.8 |
iM02 | 100_5_46_15 | 584 | 587 | 4.7 | 584 | 596 | 4.5 |
iM03 | 100_5_48_9 | 528 | 535 | 9.7 | 523 | 526 | 10.7 |
iM04 | 100_5_64_15 | 527 | 530 | 2.5 | 505 | 506 | 1.8 |
iM05 | 100_5_64_9 | 508 | 521 | 9.9 | 487 | 498 | 4.9 |
iM06 | 100_10_26_15 | 292 | 292 | 1.7 | 295 | 301 | 0.3 |
iM07 | 100_10_47_9 | 296 | 296 | 2.3 | 283 | 285 | 2.0 |
iM08 | 100_10_48_15 | 279 | 282 | 2.9 | 272 | 281 | 3.7 |
iM09 | 100_10_64_9 | 296 | 305 | 6.6 | 256 | 260 | 0.9 |
iM10 | 100_10_65_15 | 286 | 290 | 5.0 | 285 | 296 | 3.6 |
iM11 | 100_20_22_15 | 163 | 169 | 5.8 | 140 | 141 | 2.1 |
iM12 | 100_20_46_15 | 197 | 207 | 6.9 | 166 | 172 | 8.3 |
iM13 | 100_20_47_9 | 185 | 186 | 0.5 | 181 | 183 | 0.6 |
iM14 | 100_20_65_15 | 240 | 240 | 0.5 | 207 | 212 | 5.5 |
iM15 | 100_20_65_9 | 181 | 187 | 4.5 | 181 | 182 | 1.3 |
The projects have 200 tasks | |||||||
iM16 | 200_10_128_15 | 577 | 583 | 4.9 | 576 | 585 | 2.3 |
iM17 | 200_10_50_15 | 553 | 577 | 17.5 | 546 | 572 | 17.5 |
iM18 | 200_10_50_9 | 585 | 589 | 5.0 | 549 | 554 | 4.8 |
iM19 | 200_10_84_9 | 567 | 583 | 11.4 | 535 | 542 | 6.8 |
iM20 | 200_10_85_15 | 549 | 555 | 4.9 | 540 | 543 | 3.7 |
iM21 | 200_20_145_15 | 326 | 329 | 1.9 | 282 | 285 | 1.7 |
iM22 | 200_20_54_15 | 363 | 385 | 20.8 | 328 | 345 | 14.5 |
iM23 | 200_20_55_9 | 312 | 318 | 4.2 | 267 | 273 | 5.0 |
iM24 | 200_20_97_15 | 424 | 438 | 9.7 | 409 | 422 | 11.2 |
iM25 | 200_20_97_9 | 321 | 326 | 6.2 | 283 | 285 | 1.1 |
iM26 | 200_40_133_15 | 215 | 222 | 6.2 | 169 | 171 | 5.3 |
iM27 | 200_40_45_15 | 201 | 210 | 6.3 | 178 | 179 | 0.1 |
iM28 | 200_40_45_9 | 209 | 213 | 2.9 | 181 | 183 | 1.9 |
iM29 | 200_40_90_9 | 211 | 215 | 3.1 | 196 | 200 | 1.8 |
iM30 | 200_40_91_15 | 200 | 205 | 3.4 | 174 | 181 | 3.2 |
Sum | 177.2 | 133.9 |
No. | Based on Algorithm | Problem | References |
1 | GA | RCPSP | 13,14,15,16 |
2 | NPV-RCPSP | 12 | |
3 | MS-RCPSP | 17,18,19,20 | |
4 | PSO | RCPSP | 21,23 |
5 | MS-RCPSP | 2,22 | |
6 | DE | RCPSP | 24,25 |
7 | MS-RCPSP | 26 | |
8 | CS | MS-RCPSP | 31,32 |
Task | W1 | W2 | W3 | W4 | W5 | W6 | W7 | W8 | W9 | W10 |
Required skill of the resource | S2.1 | S1.2 | S1.3 | S3.1 | S2.2 | S1.3 | S2.2 | S3.2 | S3.1 | S1.2 |
Resource | L1 | L2 | L3 | L4 |
Skills | S1.3 | S1.2 | S1.3 | S2.2 |
S2.1 | S3.2 | S3.1 | S3.1 |
Symbol | Description |
Ci | The set of tasks need to be completed before task i can be executed |
S | The set of all resource's skills Si: the subset of skills owned by the resource i, Si ⊆ S; |
Si | The skill i; |
tj | The duration of task j |
L | The resources used to execute tasks of the project |
Lk | The subset of the resources which can be performed task k; Lk ⊆ L |
Li | The resource i |
W | The tasks of the project need to do |
Wk | The subset of task which can be executed by the resource k, Wk ⊆ W |
Wi | The task i |
ri | The subset of the skill required by task i. A resource has the same skill and skill level equal to or greater than the requirement that can be performed. |
Bk, Ek | The begin time and end time of the task k |
Au, vt | The variable to identify the resource v is running task u at time t; 1: yes, 0: no; |
hi | The skill level i; |
gi | Type of skill i; |
m | Makespan of the schedule |
P | The feasible solution |
Pall | The set of all solution |
f(P): | The function to calculate the makespan of P solution |
n | Task number |
z | Resource number |
Algorithm 1. AdaptiveLocalSearch Input: Pall: the population current: the current individual to find the neighbors µCR: crossover probability (global variable) Output: Pbesti: the best individual gets from the neighboring individuals |
Begin 1. PR = {}; wmin = 3; wmax = 10; 2. fitness ← f(Pall) 3. i = index(current) // the index of current individual in Pall 4. mp = fitness(i) 5. N = sizeOf(Pall) 6. Pallsort ← sort(Pall, fitness) // sort population by fitness 7. Di = findDistance(i) 8. For j=1 to N 9. If abs(fitness(j) – mp) ≤ Di 10. PS= PS + {Pj} 11. End if 12. If (sizeOf(PS) > w) break; 13. End for 14. Pbesti = fbest(PS) 15. If (Pbesti!= localbest) SCR = SCR + {µCR} CRi = randci (µCR, 0.1) c = rand(0, 1) µCR = (1 - c) × µCR + c × mean(SCR) //Adaptive factor w = wmax – i/N × (wmax – wmin) 20. Return Pbesti End Function |
where: findDistance: function to find the maximum distance from position i (index of the curent individual) to others to be able to get enough number of individuals neighboring of Pi. |
Algorithm 2. Inversion |
Input: Pall – the population needs to move Output:Pnew – the result population Begin 1. { 2. Pnew = {} 3. i = 1 4. p_size = size(P) 5. while(i < p_size) { 6. Pi ← Pall[i]; 7. j_task = 1 8. n_task = size(Pi) 9. for { j_task = 1; j_task < n_task; j_task++) 10. { 11. Li ← the resources matching with L(j_task) requirement 12. Li ← Reorder(Li) 13. i_current ← current resource index to run task i 14. i_current = size(Li) – idx + 1 15. Lj_task = Li[i_current] 16. } // j_task 17. Pnew = Pnew + {Pi} 18. } 19. Return Pnew 20. } |
Algorithm 3. MEMINV Input: dataset, gmax: number of generation, SCR: global variable, set of crossover coefficients of successful evolution individuals µCR: Crossover Probability (global variable) µMP: Mutation Probability (global variable) w: number of neighbors for local search (global variable) Output: best individual and makespan |
1. Begin 2. { 3. {Read dataset}. 4. g = 0, cfail = 0, cmax = 50, SCR = {}; µCR = 0.5; w = 3; 5. Pall = {population initallation} 6. {makespan, best, fitness} = {Caculating the fitness of population and the best individual} 7. while(g < gmax) 8. { 9. predecessors = Selection(population); // Select predecessor chromosomes for reproduction based on their fitness values 10. offspring = Crossover(predecessors, µCR); // Perform crossover on the population 11. offspring = Mutate(offspring, µMP); // Perform mutation on the offspring 12. offspring = AdaptiveLocalSearch(Pall, offspring); // Perform local search on some of the offspring 13. Pall = CombinePopulation(Pall, offspring); // Combine the pre-population and offspring to create the new population 14. {new_makespan, new_best, fitness} = {Caculating the fitness of population and the best individual from Pall} 15. if new_makespan!= makespan then 16. cfail = 0 17. else 18. cfail += 1 19. end if 20. if (cfail = cmax) 21. Pall = Inversion(Pall) 22. cfail = 0 23. end if 24. if (makespan < new_makespan) 25. makespan = new_makespan; 26. best = new_best; 27. SCR += 1; 28. end if 29. g = g+1 30. } // end while 31. return {best, makespan } 32. } |
Code | Name | Tasks | Resources | Precedence Constraints | Skills | |
1 | iM01 | 100_5_22_15 | 100 | 5 | 22 | 15 |
2 | iM02 | 100_5_46_15 | 100 | 5 | 46 | 15 |
3 | iM03 | 100_5_48_9 | 100 | 5 | 48 | 9 |
4 | iM04 | 100_5_64_15 | 100 | 5 | 64 | 15 |
5 | iM05 | 100_5_64_9 | 100 | 5 | 64 | 9 |
6 | iM06 | 100_10_26_15 | 100 | 10 | 26 | 15 |
7 | iM07 | 100_10_47_9 | 100 | 10 | 47 | 9 |
8 | iM08 | 100_10_48_15 | 100 | 10 | 48 | 15 |
9 | iM09 | 100_10_64_9 | 100 | 10 | 64 | 9 |
10 | iM10 | 100_10_65_15 | 100 | 10 | 65 | 15 |
11 | iM11 | 100_20_22_15 | 100 | 20 | 22 | 15 |
12 | iM12 | 100_20_46_15 | 100 | 20 | 46 | 15 |
13 | iM13 | 100_20_47_9 | 100 | 20 | 47 | 9 |
14 | iM14 | 100_20_65_15 | 100 | 20 | 65 | 15 |
15 | iM15 | 100_20_65_9 | 100 | 20 | 65 | 9 |
16 | iM16 | 200_10_128_15 | 200 | 10 | 128 | 15 |
17 | iM17 | 200_10_50_15 | 200 | 10 | 50 | 15 |
18 | iM18 | 200_10_50_9 | 200 | 10 | 50 | 9 |
19 | iM19 | 200_10_84_9 | 200 | 10 | 84 | 9 |
20 | iM20 | 200_10_85_15 | 200 | 10 | 85 | 15 |
21 | iM21 | 200_20_145_15 | 200 | 20 | 145 | 15 |
22 | iM22 | 200_20_54_15 | 200 | 20 | 54 | 15 |
23 | iM23 | 200_20_55_9 | 200 | 20 | 55 | 9 |
24 | iM24 | 200_20_97_15 | 200 | 20 | 97 | 15 |
25 | iM25 | 200_20_97_9 | 200 | 20 | 97 | 9 |
26 | iM26 | 200_40_133_15 | 200 | 40 | 133 | 15 |
27 | iM27 | 200_40_45_15 | 200 | 40 | 45 | 15 |
28 | iM28 | 200_40_45_9 | 200 | 40 | 45 | 9 |
29 | iM29 | 200_40_90_9 | 200 | 40 | 90 | 9 |
30 | iM30 | 200_40_91_15 | 200 | 40 | 91 | 15 |
Code | Name | GA | MEMINV | ||||
BEST | AVG | STD | BEST | AVG | STD | ||
The projects have 100 tasks | |||||||
iM01 | 100_5_22_15 | 517 | 524 | 5.3 | 475 | 478 | 2.8 |
iM02 | 100_5_46_15 | 584 | 587 | 4.7 | 584 | 596 | 4.5 |
iM03 | 100_5_48_9 | 528 | 535 | 9.7 | 523 | 526 | 10.7 |
iM04 | 100_5_64_15 | 527 | 530 | 2.5 | 505 | 506 | 1.8 |
iM05 | 100_5_64_9 | 508 | 521 | 9.9 | 487 | 498 | 4.9 |
iM06 | 100_10_26_15 | 292 | 292 | 1.7 | 295 | 301 | 0.3 |
iM07 | 100_10_47_9 | 296 | 296 | 2.3 | 283 | 285 | 2.0 |
iM08 | 100_10_48_15 | 279 | 282 | 2.9 | 272 | 281 | 3.7 |
iM09 | 100_10_64_9 | 296 | 305 | 6.6 | 256 | 260 | 0.9 |
iM10 | 100_10_65_15 | 286 | 290 | 5.0 | 285 | 296 | 3.6 |
iM11 | 100_20_22_15 | 163 | 169 | 5.8 | 140 | 141 | 2.1 |
iM12 | 100_20_46_15 | 197 | 207 | 6.9 | 166 | 172 | 8.3 |
iM13 | 100_20_47_9 | 185 | 186 | 0.5 | 181 | 183 | 0.6 |
iM14 | 100_20_65_15 | 240 | 240 | 0.5 | 207 | 212 | 5.5 |
iM15 | 100_20_65_9 | 181 | 187 | 4.5 | 181 | 182 | 1.3 |
The projects have 200 tasks | |||||||
iM16 | 200_10_128_15 | 577 | 583 | 4.9 | 576 | 585 | 2.3 |
iM17 | 200_10_50_15 | 553 | 577 | 17.5 | 546 | 572 | 17.5 |
iM18 | 200_10_50_9 | 585 | 589 | 5.0 | 549 | 554 | 4.8 |
iM19 | 200_10_84_9 | 567 | 583 | 11.4 | 535 | 542 | 6.8 |
iM20 | 200_10_85_15 | 549 | 555 | 4.9 | 540 | 543 | 3.7 |
iM21 | 200_20_145_15 | 326 | 329 | 1.9 | 282 | 285 | 1.7 |
iM22 | 200_20_54_15 | 363 | 385 | 20.8 | 328 | 345 | 14.5 |
iM23 | 200_20_55_9 | 312 | 318 | 4.2 | 267 | 273 | 5.0 |
iM24 | 200_20_97_15 | 424 | 438 | 9.7 | 409 | 422 | 11.2 |
iM25 | 200_20_97_9 | 321 | 326 | 6.2 | 283 | 285 | 1.1 |
iM26 | 200_40_133_15 | 215 | 222 | 6.2 | 169 | 171 | 5.3 |
iM27 | 200_40_45_15 | 201 | 210 | 6.3 | 178 | 179 | 0.1 |
iM28 | 200_40_45_9 | 209 | 213 | 2.9 | 181 | 183 | 1.9 |
iM29 | 200_40_90_9 | 211 | 215 | 3.1 | 196 | 200 | 1.8 |
iM30 | 200_40_91_15 | 200 | 205 | 3.4 | 174 | 181 | 3.2 |
Sum | 177.2 | 133.9 |