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, the existence of multiple solutions for a class of Klein–Gordon equations coupled with Born–Infeld theory was investigated. The potential and the primitive of the nonlinearity in this kind of elliptic equations are both allowed to be sign-changing. Besides, we assumed that the nonlinearity satisfies the Berestycki–Lions type conditions. By employing Ekeland's variational principle, mountain pass theorem, Pohožaev identity, and various other techniques, two nontrivial solutions were obtained under some suitable conditions.
Citation: Jiayi Fei, Qiongfen Zhang. On solutions for a class of Klein–Gordon equations coupled with Born–Infeld theory with Berestycki–Lions conditions on R3[J]. Electronic Research Archive, 2024, 32(4): 2363-2379. doi: 10.3934/era.2024108
[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, the existence of multiple solutions for a class of Klein–Gordon equations coupled with Born–Infeld theory was investigated. The potential and the primitive of the nonlinearity in this kind of elliptic equations are both allowed to be sign-changing. Besides, we assumed that the nonlinearity satisfies the Berestycki–Lions type conditions. By employing Ekeland's variational principle, mountain pass theorem, Pohožaev identity, and various other techniques, two nontrivial solutions were obtained under some suitable conditions.
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] |
B. Felsager, B. R. Holstein, Geometry, particles and fields, Am. J. Phys., 52 (1984), 573. https://doi.org/10.1119/1.13608 doi: 10.1119/1.13608
![]() |
[2] |
M. Born, Modified field equations with a finite radius of the electron, Nature, 132 (1933), 282. https://doi.org/10.1038/132282a0 doi: 10.1038/132282a0
![]() |
[3] |
M. Born, On the quantum theory of the electromagnetic field, Proc. R. Soc. A, 143 (1934), 410–437. https://doi.org/10.1098/rspa.1934.0010 doi: 10.1098/rspa.1934.0010
![]() |
[4] |
M. Born, L. Infeld, Foundations of the new field theory, Proc. R. Soc. A, 144 (1934), 425–451. https://doi.org/10.1098/rspa.1934.0059 doi: 10.1098/rspa.1934.0059
![]() |
[5] | M. E. Peskin, An Introduction to Quantum Field Theory, 1st edition, CRC press, 1995. https://doi.org/10.1201/9780429503559 |
[6] |
N. Seiberg, E. Witten, String theory and noncommutative geometry, J. High Energy Phys., 1999 (1999), 032. https://doi.org/10.1088/1126-6708/1999/09/032 doi: 10.1088/1126-6708/1999/09/032
![]() |
[7] |
Y. S. Yang, Classical solutions in the Born-Infeld theory, Proc. R. Soc. A, 456 (2000), 615–640. https://doi.org/10.1098/rspa.2000.0533 doi: 10.1098/rspa.2000.0533
![]() |
[8] |
V. Benci, D. Fortunato, A. Masiello, L. Pisani, Solitons and the electromagnetic field, Math. Z., 232 (1999), 73–102. https://doi.org/10.1007/PL00004759 doi: 10.1007/PL00004759
![]() |
[9] |
M. Carmeli, Field theory on R×S 3 topology. Ⅰ: the Klein-Gordon and Schrödinger equations, Found. Phys., 15 (1985), 175–-184. https://doi.org/10.1007/BF00735289 doi: 10.1007/BF00735289
![]() |
[10] |
D. Fortunato, L. Orsina, L. Pisani, Born-Infeld type equations for electrostatic fields, J. Math. Phys., 43 (2002), 5698–5706. https://doi.org/10.1063/1.1508433 doi: 10.1063/1.1508433
![]() |
[11] |
D. Mugnai, Coupled Klein-Gorndon and Born-Infeld type equations: looking for solitary waves, Proc. R. Soc. A, 460 (2004), 1519–1527. https://doi.org/10.1098/rspa.2003.1267 doi: 10.1098/rspa.2003.1267
![]() |
[12] |
W. Lei, M. Ahsan, W. Khan, Z. Uddin, M. Ahmad, A numerical Haar wavelet-finite difference hybrid method and its convergence for nonlinear hyperbolic partial differential equation, Demonstratio Math., 56 (2023), 20220203. https://doi.org/10.1515/dema-2022-0203 doi: 10.1515/dema-2022-0203
![]() |
[13] |
N. S. Papageorgiou, Double phase problems: a survey of some recent results, Opuscula Math., 42 (2022), 257–278. https://doi.org/10.7494/OpMath.2022.42.2.257 doi: 10.7494/OpMath.2022.42.2.257
![]() |
[14] | P. d'Avenia, L. Pisani, Nonlinear Klein-Gordon equations coupled with Born-Infeld type equations, Electron. J. Differ. Equations, 2002 (2002), 1–13. |
[15] | F. Z. Wang, Solitary waves for the coupled nonlinear Klein-Gordon and Born-Infeld type equations, Electron. J. Differ. Equations, 2012 (2012), 1–12. |
[16] |
Y. Yu, Solitary waves for nonlinear Klein-Gordon equations coupled with Born-Infeld theory, Ann. Inst. Henri Poincare, 27 (2010), 351–376. https://doi.org/10.1016/j.anihpc.2009.11.001 doi: 10.1016/j.anihpc.2009.11.001
![]() |
[17] |
S. J. Chen, S. Z. Song, The existence of multiple solutions for the Klein-Gordon equation with concave and convex nonlinearities coupled with Born-Infeld theory on R3, Nonlinear Anal. Real World Appl., 38 (2017), 78–95. https://doi.org/10.1016/j.nonrwa.2017.04.008 doi: 10.1016/j.nonrwa.2017.04.008
![]() |
[18] |
K. M. Teng, K. J. Zhang, Existence of solitary wave solutions for the nonlinear Klein-Gordon equation coupled with BornInfeld theory with critical Sobolev exponent, Nonlinear Anal. Theory Methods Appl., 74 (2011), 4241–4251. https://doi.org/10.1016/j.na.2011.04.002 doi: 10.1016/j.na.2011.04.002
![]() |
[19] |
C. M. He, L. Li, S. J. Chen, D. O'Regan, Ground state solution for the nonlinear Klein-Gordon equation coupled with Born-Infeld theory with critical exponents, Anal. Math. Phys., 12 (2022), 48. https://doi.org/10.1007/s13324-022-00661-1 doi: 10.1007/s13324-022-00661-1
![]() |
[20] |
C. M. He, L. Li, S. J. Chen, Nontrivial solution for Klein-Gordon equation coupled with Born-Infeld theory with critical growth, Adv. Nonlinear Anal., 12 (2023), 20220282. https://doi.org/10.1515/anona-2022-0282 doi: 10.1515/anona-2022-0282
![]() |
[21] |
L. Baldelli, R. Filippucci, Singular quasilinear critical Schrödinger equations in RN, Commun. Pure Appl. Anal., 21 (2022), 2561–2586. https://doi.org/10.3934/cpaa.2022060 doi: 10.3934/cpaa.2022060
![]() |
[22] |
L. Baldelli, Y. Brizi, R. Filippucci, On symmetric solutions for (p,q)-Laplacian equations in RN with critical terms, J. Geom. Anal., 32 (2022), 120. https://doi.org/10.1007/s12220-021-00846-3 doi: 10.1007/s12220-021-00846-3
![]() |
[23] |
Z. Feng, Y. Su, Lions-type properties for the p-Laplacian and applications to quasilinear elliptic equations, J. Geom. Anal., 33 (2023), 99. https://doi.org/10.1007/s12220-022-01150-4 doi: 10.1007/s12220-022-01150-4
![]() |
[24] |
F. Albuquerque, S. J. Chen, L. Li, Solitary wave of ground state type for a nonlinear Klein-Gordon equation coupled with Born-Infeld theory in R2, Electron. J. Qual. Theory Differ. Equations, 12 (2020), 1–18. https://doi.org/10.14232/ejqtde.2020.1.12 doi: 10.14232/ejqtde.2020.1.12
![]() |
[25] |
K. M. Teng, Existence and multiple of the solutions for the nonlinear Klein-Gordon equation coupled with Born-Infeld theory on boundary domain, Differ. Equations Appl., 4 (2012), 445–457. https://doi.org/10.7153/dea-04-26 doi: 10.7153/dea-04-26
![]() |
[26] |
L. X. Wen, X. H. Tang, S. T. Chen, Infinitely many solutions and least energy solutions for Klein-Gordon equation coupled with Born-Infeld theory, Complex Var. Elliptic Equations, 64 (2019), 2077–2090. https://doi.org/10.1080/17476933.2019.1572124 doi: 10.1080/17476933.2019.1572124
![]() |
[27] |
X. Q. Liu, X. P. Wu, Multiple solutions for nonhomogeneous Klein-Gordon-Maxwell system with Berestycki-Lions conditions, Appl. Math. Lett., 137 (2023), 108505. https://doi.org/10.1016/j.aml.2022.108505 doi: 10.1016/j.aml.2022.108505
![]() |
[28] |
H. Berestycki, P. L. Lions, Nonlinear scalar field equations. Ⅰ. existence of a ground state, Arch. Ration. Mech. Anal., 82 (1983), 313–345. https://doi.org/10.1007/BF00250555 doi: 10.1007/BF00250555
![]() |
[29] |
X. Q. Liu, G. D. Li, C. L. Tang, Existence of nontrivial solutions for the Klein-Gordon-Maxwell system with Berestycki-Lions conditions, Adv. Nonlinear Anal., 12 (2023), 20220294. https://doi.org/10.1515/anona-2022-0294 doi: 10.1515/anona-2022-0294
![]() |
[30] |
F. S. Gao, V. D. Radulescu, M. B. Yang, Y. Zhang, Standing waves for the pseudo-relativistic Hartree equation with Berestycki-Lions nonlinearity, J. Differ. Equations, 295 (2021), 70–112. https://doi.org/10.1016/j.jde.2021.05.047 doi: 10.1016/j.jde.2021.05.047
![]() |
[31] |
S. J. Chen, S. Z. Song, Multiple solutions for nonhomogeneous Klein-Gordon-Maxwell equations on R3, Nonlinear Anal. Real World Appl., 22 (2015), 259–271. https://doi.org/10.1016/j.nonrwa.2014.09.006 doi: 10.1016/j.nonrwa.2014.09.006
![]() |
[32] |
H. X. Shi, H. B. Chen, Multiple positive solutions for nonhomogeneous Klein-Gordon-Maxwell equations, Appl. Math. Comput., 337 (2018), 504–513. https://doi.org/10.1016/j.amc.2018.05.052 doi: 10.1016/j.amc.2018.05.052
![]() |
[33] |
L. Wang, Two solutions for a nonhomogeneous Klein-Gordon-Maxwell system, Electron. J. Qual. Theory Differ. Equations, 40 (2019), 1–12. https://doi.org/10.14232/ejqtde.2019.1.40 doi: 10.14232/ejqtde.2019.1.40
![]() |
[34] |
D. L. Wu, H. Lin, Multiple solutions for superlinear Klein-Gordon-Maxwell equations, Math. Nachr., 293 (2020), 1827–1835. https://doi.org/10.1002/mana.201900129 doi: 10.1002/mana.201900129
![]() |
[35] | L. Xu, H. Chen, Existence and multiplicity of solutions for nonhomogeneous Klein-Gordon-Maxwell equations, Electron. J. Differ. Equations, 2015 (2015), 1–12. |
[36] |
Y. Luo, M. S. Ahmed, Cauchy problem of nonlinear Klein-Gordon equations with general nonlinearities, Rend. Circ. Mat. Palermo, Ser. 2, 71 (2022), 959–973. https://doi.org/10.1007/s12215-021-00698-4 doi: 10.1007/s12215-021-00698-4
![]() |
[37] |
S. J. Chen, L. Li, Multiple solutions for the nonhomogeneous Klein-Gordon equation coupled with Born-Infeld theory on R3, J. Math. Anal. Appl., 400 (2013), 517–524. https://doi.org/10.1016/j.jmaa.2012.10.057 doi: 10.1016/j.jmaa.2012.10.057
![]() |
[38] | L. X. Wang, C. L. Xiong, P. P. Zhao, Two solutions for nonhomogeneous Klein-Gordon equations coupled with Born-Infeld type equations, Electron. J. Differ. Equations, 2022 (2022), 1–11. |
[39] | T. Bartsch, Z. Q. Wang, M. Willem, The Dirichlet problem for superlinear elliptic equations, in Handbook of Differential Equations: Stationary Partial Differential Equations, 2 (2005), 1–5. https://doi.org/10.1016/S1874-5733(05)80009-9 |
[40] | W. M. Zou, M. Schechter, Critical Point Theory and Its Applications, Springer, New York, 2006. https://doi.org/10.1007/0-387-32968-4 |
[41] |
A. Ambrosetti, P. H. Rabinowitz, Dual variational methods in critical point theory and applications, J. Funct. Anal., 14 (1973), 349–381. https://doi.org/10.1016/0022-1236(73)90051-7 doi: 10.1016/0022-1236(73)90051-7
![]() |
[42] | J. Mawhin, M. Willem, Critical Point Theory and Hamiltonian Systems, Springer Science + Business Media, New York, 1989. https://doi.org/10.1007/978-1-4757-2061-7 |
[43] |
A. Azzollini, P. d'Avenia, A. Pomponio, On the Schrödinger-Maxwell equations under the effect of a general nonlinear term, Ann. Inst. Henri Poincare, 27 (2010), 779–791. https://doi.org/10.1016/j.anihpc.2009.11.012 doi: 10.1016/j.anihpc.2009.11.012
![]() |
[44] |
X. Q. Liu, C. L. Tang, Infinitely many solutions and concentration of ground state solutions for the Klein-Gordon-Maxwell system, J. Math. Anal. Appl., 505 (2022), 125521. https://doi.org/10.1016/j.jmaa.2021.125521 doi: 10.1016/j.jmaa.2021.125521
![]() |
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 |