## 2 Methods and Materials
### Model Solving  
Fuzzy multi-mode construction period-cost-quality balance optimization of hydraulic engineering is a multi-objective optimization problem with multiple implementation modes for one operation. As result, the feasible solution space of the problem increases exponentially and becomes an NP-hard problem. Traditional algorithms based on mathematical programming techniques are inefficient, and finding optimal or suboptimal solutions is difficult. Particle-swarm optimization (PSO) has been widely used in the optimization field of construction period, cost, and quality balance due to its advantages of simple principle, strong robustness, easy implementation, and applicability to solving non-convex nonlinear problems [19; 20]. PSO first initializes the population before searching n-dimensional space with an m-particles particle swarm. During the search, each particle follows the optimal particle based on its own historical best point and the best points of the other particles in the group. The optimal solution is finally found after many iterations. The \(i\)th particle in the population can be expressed as \(x_{i}=(x_{i1},x_{i2},\ldots,x_{in})\); the best point of its history is expressed as \(p_{i}=(p_{i1},p_{i2},\ldots,p_{in})\); the best point experienced by all particles in the population is expressed as \(g=(g_{1},g_{2},\ldots,g_{n})\); and the particle velocity is expressed as \(v_{i}=(v_{i1},v_{i2},\ldots,v_{in})\). The updated formulas of particle velocity and position are shown in Equation (11).  
\[v_{i}^{Gen+1}=\omega v_{i}^{Gen}+c_{1}r_{1}\Big{(}p_{i}-x_{i}^{Gen}\Big{)}+c_{2 }r_{2}\Big{(}g-x_{i}^{Gen}\Big{)}x_{i}^{Gen+1}=x_{i}^{Gen}+v_{i}^{Gen+1} \tag{11}\]  
In the formula: _Gen_ is the number of iterations; \(\omega\) stands for the inertia weight, which determines how much the next generation particle inherits the velocity of the current particle; \(c_{1}\) and \(c_{2}\) denote the individual learning factor and the social learning factor, respectively. The learning factor enables the particle to have the ability to learn from the outstanding individuals in the group, to approach its historical optimal point and the historical optimal point within the group; and \(r_{1}\) and \(r_{2}\) represent the random numbers [0, 1].  
As can be seen from the above formula, the updated particle velocity consists of three parts: the first part represents the particle's current speed, and the use of the particle's current state can play a role in balancing the global and local search; the second part represents the particle's memory ability, which allows the particle to have a global search ability while avoiding falling into the local minimum point; and the third part is the cooperation.  
The PSO algorithm's calculation procedure is as follows:  
Step 1: Set the velocity and position of each particle in the population to zero;  
Step 2: Determine each particle's fitness value;  
Step 3: Determine the best position for the individual. Each particle's fitness value is compared to its own best fitness value, and if the current fitness value is high, the current position is updated to the individual's best position;  
Step 4: Determine the best position for the population. Each particle's fitness value is compared to the best fitness value experienced by all individuals, and if the current fitness value is higher, the current position is updated to the population's best position;  
Step 5: Update particle velocity and position. The velocity and position of the particles in the population are updated according to Equation (11);  
Step 6: Calculate the fitness value of the updated particles, compare the selections, and record the individual optimal position and population optimal position of the particle;  
Step 7: Determine whether the maximum number of iterations is met; if so, exit the loop and output the optimal solution; otherwise, return to Step 2.  
Note: for details about the main model of the PSO algorithm, kindly refer to the relevant literature.