# Deling with Uncertainty in the MRCPSP/Max Using Discrete Differential Evolution and Entropy
## 2 Coping with Uncertainty in Project Management
### Problem Models  
The classical RCPSP remains a generic model with simple constraints that guide the allocation of limited resources within a project, in which an activity executed in one specific way cannot start before its predecessor is completed. Later, the concept of modes representing various resource sets to be potentially utilized was introduced in [28], and this multimode characteristic extended the model to real industrial cases, which encompass the amount of man/machine resources available to complete a job in smart manufacturing, the skill levels, and the different labor contracts in the workforce required to provide services. Among many other extended models [17], the deterministic single-mode RCPSP/max [29] was modified, allowing minimal and maximal time lags between any two precedence-related activities. The objective of this problem is to assign each activity a start time, while satisfying all temporal and resource constraints within a minimum project makespan. The multi-mode RCPSP/max (MRCPSP/max) problem consists of \(n+2\) activities with the set \(V=\{0,1,\ldots n,n+1\}\), where activity \(i\) is to be executed in only one mode \(\mu_{i}\in M\). Depending on the mode \(\mu_{i}\), each activity has a fixed duration or processing time \(d_{i,\mu_{i}}\), which is a non-negative real or integer number. In addition, dummy activities 0 and \(n+1\) with \(d_{0,\mu_{0}}=d_{n+1,\mu_{n+1}}=0\) represent the beginning and the completion of the project, respectively. A start schedule \(S\) is an assignment of start times to all activities, i.e., a schedule vector \(S=(S_{i})\), where \(S_{i}\) represents the start time of activity \(i\) and \(S_{0}\) is assumed to be 0. The end-time of activity \(i\) is denoted as \(C_{i}\). As durations are deterministic and preemption is not allowed, we thus have \(C_{i}\) defined as in Equation (1):\[S_{i}+d_{i,\mu_{i}}=C_{i}\ \ \ \ \ \mu_{i}\in M,\ i\in V \tag{1}\]  
In MRCPSP/max, schedules are subject to two constraints: temporal and resource constraints. Here, temporal constraints restrict the time lag between activities in an activity-on-node (AON) network \(N=\langle V,\ E,\ \delta\rangle\), consisting of the node set \(V\), the arc set \(E\), and the arc weight function \(\delta\). Without considering the arc weight, the time lag depends on the mode \(\mu_{i}\) of activity \(i\) and the mode \(\mu_{j}\) of activity \(j\) (\(j\
eq i\)), and is either a minimum (maximum) time lag \(l^{min}_{i,\mu_{i},j,\mu_{j}}\left(l^{max}_{i,\mu_{i},j,\mu_{j}}\right)\) between the start times of two different activities \(i\) and \(j\) such that  
\[S_{i}+l^{min}_{i,\mu_{i},j,\mu_{j}}\leq S_{j}\leq S_{i}+l^{max}_{i,\mu_{i},j, \mu_{j}}\ \ \ \ \langle i,j\rangle\in E,\ \ \ \mu_{i}\in M,\ i\in V \tag{2}\]  
When both \(l^{min}_{i,\mu_{i},j,\mu_{j}}=0\) and \(l^{max}_{i,\mu_{i},j,\mu_{j}}=0\), activity \(j\) cannot be started before activity \(i\) begins. In this definition, time lags connect the start times of two related activities, known as start-to-start time lags. A scheduleS is time- feasible if all the time lag constraints are satisfied at the start times \(S_{i}\) (\(i=0,1,\ldots,n+1\)). However, in this study, the arc weight denotes a user preference matrix, assigning the minimum and maximum time lags of \(\delta^{min}_{i,\mu_{i},j,\mu_{j}}=l^{min}_{i,\mu_{i},j,\mu_{j}}\) and \(\delta^{max}_{i,\mu_{i},j,\mu_{j}}=l^{max}_{i,\mu_{i},j,\mu_{j}}\) to each arc \(<\!\!i,j\). The inclusion of such time lags will lead to cycles in \(N\); in a more realistic case, a project manager will consult with the customer about his/her specific requirements and hold a group discussion with team members for implementation. However, these interdependent activities may follow immediately or a few days later. In terms of resource constraints, let \(A(M,\ S,\ t)\) be the set of activities being processed at time instant \(t\) for schedule \(S\), and \(M=(\mu_{i})\) be a mode vector used by activity \(i\).