3.1.5. Intermediate Variables

*STj*: Starting time of activity *j*

*FTj*: Completion time of activity *j*

*At*: Activity set of ongoing jobs in time period *t*

*Skst*: The remaining amount of resource *k* at demand point *s* at the end of the time period *t*

#### 3.1.6. Assumptions

 <sup>1</sup> The project contains *j* activities and two virtual activities, in which the two virtual activities represent the initial and final activities of the project, denoted as *j* = 0 and *j* = *J* + 1, respectively.

 <sup>2</sup> Only when all the predecessor activities of the activity are completed can the activity begin.

 <sup>3</sup> Each activity can only execute one mode without interruption.

 <sup>4</sup> The supply capacity of the supply point and the inventory capacity of the demand point are limited and cannot be increased.

 <sup>5</sup> The loading and unloading costs and time of the transport vehicles were included in the corresponding transport costs and time.

 <sup>6</sup> Uncertain parameters, such as resource demand, project activity time, and unit transportation cost, are random variables.

 <sup>7</sup> Resources are consumed evenly in each time period.

#### *3.2. Project Scheduling*

Project scheduling occupies a dominant position in an engineering supply chain with the contractor as the core. In view of the project scheduling problem, under the condition of ensuring the quality of project, duration and cost are its three major objectives.

#### 3.2.1. Schedule Objective

One of the most important goals in project scheduling is to minimize the project duration and complete the project as early as possible under all constraints. In this study, the completion time of the last activity (*J* + 1) can be used to describe the duration of the project; that is, the duration *Ft* can be expressed as Equation (1).

$$F\_l = \sum\_{t=EF\_{(l+1)}}^{LF\_{(l+1)}} \sum\_{m=1}^{M\_{(l+1)}} t \mathbf{x}\_{(J+1)mt} \tag{1}$$

#### 3.2.2. Cost Objective

Cost is another important goal in project scheduling. Project costs are generally divided into direct and indirect portions. Among them, ordering, purchasing, and storage costs belong to direct costs; indirect costs belong to fixed costs in any time period and are related to project duration. In summary, the cost function *Fc* can be expressed by Equation (2):

$$\begin{aligned} F\_{\mathbf{c}} &= \sum\_{j=1}^{I} \sum\_{m=1}^{M\_j} \sum\_{t=EF\_j}^{LF\_j} d\_{jm} \mathbf{x}\_{jmt} \sum\_{k=1}^{K} r\_{jmk} P c\_k + \sum\_{j=1}^{I} \sum\_{m=1}^{M\_j} \sum\_{t=EF\_j}^{LF\_j} c\_{jm} \mathbf{x}\_{jmt} + \sum\_{k=1}^{K} \sum\_{t=1}^{Ft} O c\_k \mathbf{z}\_{kt} \\ &+ \frac{1}{2} \sum\_{j=1}^{I} \sum\_{m=1}^{M\_j} \sum\_{t=EF\_j}^{LF\_j} d\_{jm} \mathbf{x}\_{jmt} \sum\_{k=1}^{K} r\_{jmk} I c\_k + \sum\_{k=1}^{K} \sum\_{t=1}^{Ft} I c\_k S\_{kst} + c\_0 F t \end{aligned} \tag{2}$$

#### 3.2.3. Constraints

In full consideration of the actual situation of the engineering supply chain, the constraints are listed in this section. This will make the model more realistic.

$$\sum\_{j \in R\_s} \sum\_{m=1}^{M\_j} r\_{jmk} \sum\_{t'=t}^{t+d\_{jm}-1} x\_{jmt} \le S\_{ks(t-1)} + \sum\_{i=1}^{I} v\_{ik}(t), \forall k \in K, s \in S, t \in FT \tag{3}$$

$$\sum\_{j \in A\_l} \sum\_{m=1}^{M\_j} r\_{jmk} \le r\_{k\prime} \,\forall k \in K, t \in FT \tag{4}$$

$$\sum\_{m=1}^{M\_j} \sum\_{t=EF\_j}^{LF\_j} t x\_{jmt} \le \sum\_{m=1}^{M\_j} \sum\_{t=EF\_j}^{LF\_j} (t - d\_{jm}) x\_{jmt}, \forall j \in P\_{j\prime}, j \in J \tag{5}$$

$$S\_{\rm kst} = S\_{\rm ks(t-1)} + \sum\_{i=1}^{I} v\_{i\rm kk}(t) - \sum\_{j \in R\_t} \sum\_{m=1}^{M\_j} r\_{j\rm mk} \sum\_{t'=t}^{t+d\_{jm}-1} x\_{j\rm mt'} \forall k \in \mathcal{K}, \mathbf{s} \in \mathcal{S}, t \in FT. \tag{6}$$

$$S\_{\rm ks0} = 0, S\_{\rm ksFt} = 0, \forall k \in K, s \in S \tag{7}$$

$$S\_{kst} \ge 0, \sum\_{k=1}^{K} S\_{kst} \le I \mathbb{C}\_{s\prime} \,\forall k \in K, s \in S, t \in FT \tag{8}$$

$$F\_t \le D,\\ F\_c \le B \tag{9}$$

$$FT\_{\vec{j}} = \sum\_{m=1}^{M\_{\vec{j}}} \sum\_{t=EF\_{\vec{j}}}^{LF\_{\vec{j}}} t \mathbf{x}\_{jmt\prime} \, ST\_{\vec{j}} = FT\_{\vec{j}} - d\_{jm\prime} \forall \vec{j} \in J \tag{10}$$

$$\sum\_{m=1}^{M\_{\vec{f}}} \sum\_{t=EF\_{\vec{f}}}^{LF\_{\vec{f}}} x\_{jmt} = 1, \forall j \in J \tag{11}$$

$$\forall x\_{jmt} \in \{0, 1\}, \forall j \in J, t \in FT \tag{12}$$

$$z\_{kt} = \begin{cases} \begin{array}{l} 1, \sum\_{i=1}^{I} \sum\_{s=1}^{S} v\_{isk}(t) > 0\\ \displaystyle 0, \sum\_{i=1}^{I} \sum\_{s=1}^{S} v\_{isk}(t) = 0 \end{array} \tag{13} \\ \begin{array}{l} 0, \sum\_{i=1}^{I} \sum\_{s=1}^{S} v\_{isk}(t) = 0 \end{array} \end{cases} \tag{13}$$

Constraint condition Formula (3) represents the resource constraint. Equation (4) represents that the total consumption of resource *k* in each time period cannot exceed its maximum supply capacity. Equation (5) is the predecessor constraint. Equation (6) represents the remaining amount of available resources at the end of each time period, which can be regarded as a state transition variable. Equation (7) indicates that, to maximize the utilization of resources, the resource surplus should be zero at the beginning and end of the project. Equation (8) indicates that the resource surplus at the end of each period is greater than or equal to zero, and cannot exceed the inventory capacity. Equation (9) indicates the construction period and budget constraint. Equation (10) represents the start and end times of each activity. Equations (11)–(13) are logical constraints: each activity should be executed within the range of the earliest and latest completion times, and only one activity mode can be executed. Meanwhile, there are also characteristic constraints among the decision variables.
