## 2 Problem Definition and Literature Review
The simplest way to solve the deterministic RCPSPDC is using heuristics, where jobs are ranked and executed based on certain heuristics or policies [1; 2]; however, this method does not yield quality solutions [39]. The recent research efforts have resulted in the proposal of various metaheuristics and their hybrids to solve RCPSPDC. Metaheuristics and their hybrids typically can produce near-optimal solutions in a reasonable time due to their exploration and exploitation capabilities [14]. [PERSON] et al. [4] employed the renowned simulated annealing (SA) and tabu search (TS) methods to address the multi-mode RCPSPDC. [PERSON] et al. [40] utilized the EDA, The authors of [41] integrated a genetic algorithm (GA) with a local search strategy, and [42] implemented ACO. However, better solutions were generated using hybrids of metaheuristics. [PERSON] [24] merged forward-backward iterations (FBI) with scatter search heuristics, while [PERSON] et al. [43] combined FBI with Lagrangian relaxation and constraint programming. [PERSON] et al. [23] created a hybrid model combining IGA and neighborhood search with FBI. [PERSON] and [PERSON] [12] used parallel GAs without information sharing to solve RCPSPDC. Though these methods were not explicitly studied for RCPSPDC-PEO, they can be adapted to solve the problem. One of the drawbacks of metaheuristics and their hybrids for RCPSP (RCPSPDC), in general, is the loss of feasible solutions in the state transition. For instance, consider GA with single point crossover [23; 41]; when two parents of GA cross over to produce an offspring, the precedence conditions (i.e., Equations (1) and (2)) are usually perturbed, leading to an infeasible solution. This necessitates extra processing and computation to rectify the schedule. Additionally, in hybrid systems where multiple metaheuristics are employed either in parallel or sequentially, managing and tuning parameters pose a considerable challenge. This can sometimes diminish the system's overall effectiveness [14; 15; 16]. An alternative approach is borrowing the techniques from stochastic scheduling [44]. The stochastic RCPSP (SRCPSP) is a category of non-deterministic RCPSP characterized by uncertainty in project parameters like job execution times and resource availabilities and are represented through distributions. One of the methods used in SRCPSP is sequential generation of a schedule based on an open- or closed-loop policy [19; 45]. The open-loop policy aims to devise a complete project schedule before the project's initiation, while the closed-loop policy optimizes the schedule dynamically and adaptively as the project unfolds [46]. Greedy randomized adaptive search procedure (GRASP) [47], genetic algorithm (GA) [45] pre-processing procedure with a two-phase GA [44] and 17 priority-rule heuristics with the justification technique [48] are some of the proposed open-loop policy based techniques for SRCPSP. As the open-loop policy is static in nature, a more flexible policy based on closed-loop policy through dynamic programming (DP) [46] garnered attention for SRCPSP. A closed-loop policy [49] aims to find an optimal decision rule (i.e., policy) to execute a job at each decision point, given knowledge on the current state. If the decision or policy in the closed-loop policy is random, this is similar to any of the SGS methods [35; 36; 37; 38] with random scheduling for the classical RCPSP (RCPSPDC). In SGS for the classical RCPSP (RCPSPDC), an activity is scheduled as soon as precedence and resource conditions (i.e., Equations (1) and (2)) are met. If there are multiple eligible activities, SGS schedules an activity based on a certain predefined priority or heuristic value [26; 30; 32; 50]. The main distinction between SGS methods and closed-loop is that the latter uses an optimal policy. Despite its effectiveness, the closed-loop method is limited by the curse of dimensionality [19] caused by [PERSON]'s recursive approach in the MDP [18]. Thus, this method is applicable to only small problem sets [51].