**1. Introduction**

Short-term hydrothermal scheduling considers optimization horizon from one day to one week, involving the hour-by-hour generation planning of all generating units in the hydrothermal system, so that the total generation fuel cost of thermal units is minimized, while satisfying all constraints from hydropower plants, including hydroelectric power plant constraints, such as water discharge limits, volume reservoir limits, continuity water, generation limits, and thermal power plant constraints, including prohibited operating zone and generation limits. There is a fact that the load demand changes cyclically over one day or one week, and varies corresponding to the short-term scheduling horizon, which is in a range from one day to one week. A set of beginning conditions, consisting of initial and final reservoir volumes for the scheduling horizon, inflow into the reservoir, and the water amount to be used for the scheduling horizon, is assumed to be known. During the scheduling generation process, it is necessary to consider the capacity of the reservoir and inflow once they have significant impacts on the water head variations, and lead to being represented by different hydro models. In this paper, a fixed-head short-term hydrothermal scheduling with reservoir volume constraints is considered. The reservoir water head is supposed to be fixed during the scheduling horizon [1]. Therefore, the water discharge is still the second-order function of hydro generation and given coefficients. The total amount of water is not required to be calculated and constrained. However, the initial and final values of the Reservoir Volume Should Be met with the optimal operation of the hydrothermal system. The capacity of the reservoir to contain water during the operation must be observed and followed by the constrained values, such as minimum volume corresponding to the deadhead and maximum volume corresponding to the highest head. Moreover, the continuity of water is always constrained at each subinterval over the scheduling horizon. Other issues related to power transmission lines, such as power balance and power losses, are also taken into account for most test systems.

The problem has been studied so far and obtained many intentions from researchers. Several algorithms, such as Gradient Search Algorithm (GSA) [2], Newton–Raphson Method (NRM) [3], Hopfield Neural Networks (HNN) [4], Simulated Annealing Algorithm (SAA) [5], Evolutionary Programming Algorithm (EPA) [6–8], Genetic Algorithm (GA) [9], modified EPA (MEPA) [10], Fast Evolutionary Programming Algorithm (FEPA) [10], Improved FEPA (IFEPA) [10], Hybrid EPA (HEPA) [11], Particle Swarm Optimization (PSO) [12], Improved Bacterial Foraging Algorithm (IBFA) [13], Self-Organization Particle Swarm Optimization (SOPSO) [14], Running IFEPA (RIFEPA) [15], Improved Particle Swarm Optimization (IPSO) [16,17], Clonal Selection Optimization Algorithm (CSOA) [18], Full Information Particle Swarm Optimization (FIPSO) [19], One-Rank Cuckoo Search Algorithm with the applications of Cauchy (ORCSA-Cauchy) and <sup>L</sup>évy distribution (ORCSA-Lévy) [20], Cuckoo Search Algorithm with the applications of Gaussian distribution (CSA-Gauss), Cauchy distribution (CSA-Cauchy), and <sup>L</sup>évy distribution (CSA-Lévy) [21], Adaptive Cuckoo Search Algorithm (ACSA) [22], Improved Cuckoo Search Algorithm (ICSA) [23], Modified Cuckoo Search Algorithm (MCSA) [24], and Adaptive Selective Cuckoo Search Algorithm (ASCSA) [24] have been applied to solve the problem of hydrothermal scheduling. Almost all of the above-mentioned methods are mainly meta-heuristic algorithms, excluding GSA and NRM. Regarding the development history, GSA and NMR are the oldest methods, with the worst capabilities to deal with constraints and finding high-quality parameters of the problem, and they are applied for hydropower generation function with the piecewise linear form or polynomial approximation form. GSA cannot deal with the systems with complex constraints and also the systems with a large number of constraints and variables. NRM seems to be more effective than GSA when applied to systems where the approximation of the hydro generation cannot be performed. However, this method is fully dependent on the scale of the Jacobian matrix and the capability of taking the partial derivative of the Jacobian matrix with respect to each variable. On the contrary to GSA and NRM, population-based metaheuristic algorithms are successfully applied for solving the complicated problem. Among those methods, SAA and GA are the oldest methods and found low-quality solutions for hydropower plants and thermal power plants. Differently, PSO and EPA variants are more effective in reaching better solutions with faster speed. The improved versions of EPA are not verified, while they were claimed to be much better than conventional EPA. Only one-thermal and one-hydropower plant system and quadratic fuel cost function is employed as the case study for running those methods. In order to improve the conventional PSO successfully, weight factor [16] and constriction factor [17] are respectively used to update new velocity and new position. The improvement also leads to an optimal solution with shorter execution time, but the two research studies report an invalid optimal solution, since the water discharge violates the lower limit. In [19], the new version of the updated velocity of the FIPSO is proposed and tested on a system. However, the method reports an invalid solution violating the lower limit. IBFA [13] also shows an invalid optimal solution with more water than availability. CSOA is demonstrated to be stronger than GA, EP, and Differential Evolution (DE) for this problem. CSA variants [20–24]

are developed for the problem and reached better results. Different distributions are tested to find the most appropriate one as compared to original distribution, which is <sup>L</sup>évy distribution. Cauchy and Gaussian distributions also result in the same best solution for the system with four hydropower plants and one thermal power plant, but the two distributions cope with a low possibility of finding the best solution.

In recent years, wind energy has been considered as a power source, together with conventional power plants, to supply electricity to loads. The optimal scheduling of thermal power plants and wind turbines is successfully solved using the Artificial Bee Colony Algorithm (ABCA) [25] and Wait-And-See Algorithm (WASA) [26]. Then, the wind-thermal system is expanded by integrating one more conventional power source, which is a hydropower plant, leading to the wind-hydro-thermal system. The optimal scheduling of the wind-hydro-thermal system is performed using different metaheuristic algorithms, such as Nondominated Sorting Genetic Algorithm-III (NSGA-III) [27], Multi-Objective Bee Colony Optimization Algorithm (MOBCOA) [28], Distributionally Robust Hydro-Thermal-Wind Economic Dispatch (DR-HTW-ED) method [29], nonlinear and dynamic Optimal Power Flow (OPF) method [30], Modified Particle Swarm Optimization (MPSO) [31], Mixed Binary and Real Number Differential Evolution (MBRNDE) [32], Mixed-Integer Programming (MIP) [33], Two-Stage Stochastic Programming Model Method (TSSPM) [34], and Sine Cosine Algorithm (SCA) [35]. In general, almost all applied methods are meta-heuristic algorithms and the purpose of those studies is to demonstrate the highly successful constraint handling capability of the applied metaheuristic algorithms, rather than showing high-quality solution searching capability.

In this paper, wind farms, together with the hydrothermal system, are considered to supply electricity to loads, in which the fixed-head short-term hydrothermal system is investigated. The objective of the Optimal Scheduling of Wind-Hydro-Thermal System (OSWHTS) problem is to minimize total electricity generation fuel cost of thermal power plants in a day, subject to the wind farms, reservoirs, and thermal units' constraints. In the fixed-head short-term model, water discharge is a second-order equation, with respect to the power output of the hydropower plant. In addition, hydraulic constraints are discharge limits, reservoir volume limits, initial reservoir volume, and end reservoir volume. In order to solve the OSWHTS problem successfully and effectively, a Modified Adaptive Selection Cuckoo Search Algorithm (MASCSA) is proposed by applying two new modifications on the Adaptive Selection Cuckoo Search Algorithm (ASCSA), which was first developed in [24]. In addition, other metaheuristic algorithms are implemented for comparisons. The implemented algorithms are CSA [36] and SDCSA [37]. CSA was first introduced by Yang and Deb in 2009 [36], and it has been widely applied for different optimization problems in electrical engineering. However, CSA is indicated to be less effective for large and complicated problems [24,37]. Hence, SDCSA and ASCSA are proposed. SDCSA is applied only for benchmark functions, while ASCSA is more widely applied for three complicated hydrothermal scheduling problems. ASCSA is superior to many existing meta-heuristic algorithms, such as GA, DE, and other CSA variants. ASCSA is an improved version of CSA, by implementing two more modifications, including a new selection technique and an adaptive mutation mechanism. ASCSA can reach high performance, but it suffers from long simulation time, due to the selection of mutation factor and threshold. Thus, in this paper, two new modifications, including setting the mutation factor to one and proposing a new condition for replacing the threshold, are applied.

The novelties of the paper are the integration of wind turbines and the fixed-head short-term hydrothermal system and a proposed CSA, called MASCSA. Thanks to the novelties, the main contributions of the study are the most appropriate selection of control variables for the optimal scheduling of the wind-hydro-thermal system, the effective constraint handling method, and the high performance proposed MASCSA method.

The rest of the paper is organized as follows. The formulation of the OSWHTS problem is given in Section 2. The details of the proposed method are described in Section 3. The search process of MASCSA for the OSWHTS problem is presented in Section 4. The comparison results of the two test systems are given in Section 5. Finally, the conclusions are summarized in Section 6.

### **2. Formulation of Optimal Scheduling of Wind-Hydro-Thermal System**

In this section, the optimal scheduling problem of the wind-hydro-thermal system with the fixed-head short-term model of a hydropower plant is mathematically expressed considering the objective function and constraints. A typical wind-hydro-thermal system is shown in Figure 1. From the figure, *Nh* hydropower plants, *Nt* thermal power plants, and *Nw* turbines in a wind farm are generating and supplying electricity to loads via di fferent buses. The purpose of the system is to minimize the total electricity generation cost of *Nt* thermal power plants, considering the available water in reservoirs and the intermittent nature of wind power. The cost of generated power by hydropower plants and the wind farm is neglected, but all constraints from the plants are supervised. The objective function and all constraints can be mathematically formulated as follows:

**Figure 1.** A typical wind-hydro-thermal system.

### *2.1. Total Electricity Generation Fuel Cost Reduction Objective*

Total fuel cost for generating electricity from all thermal power plants is considered as a major part that needs to be minimized as much as possible. The objective is shown as follows:

$$TFC = \sum\_{j=1}^{N\_s} \sum\_{tp=1}^{N\_l} t\_i \Big( k\_{tp} + m\_{tp} PT\_{tp,i} + n\_{tp,i} \Big( PT\_{tp,i} \Big)^2 + \Big| \alpha\_{tp} \times \sin \Big( \beta\_{tp} \times \Big( PT\_{tp,min} - PT\_{tp,i} \Big) \Big) \Big| \Big) \tag{1}$$

### *2.2. Set of Constraints and Wind Model*

### 2.2.1. Constraints from Hydropower Plants

Hydropower plants are constrained by limits of reservoirs, turbines, and generators. The detail is expressed as follows:

*Water Balance Constraint:* The reservoir volume at the *ith* considered subinterval is always related to the volume of previous subinterval, water inflow, and water discharge. All the parameters must be supervised so that the following equality is exactly met.

$$RV\_{hp,i-1} - RV\_{hp,i} + \mathcal{W}I\_{hp,i} - Q\_{hp,i} = 0, \; i = 1, \; 2, \dots, N\_s \tag{2}$$

Note that *RVhp,i*−<sup>1</sup> is equal to *Vhp,0*, if *i* = 1, and *RVhp,i* is equal to *RVhp,Ns*, if *i* = *Ns*.

*Initial and Final Volumes Constraints: Vhp,0* and *Vhp,Ns* in constraint (2) should be equal to two given parameters, as shown in the model below.

$$RV\_{hp,0} = RV\_{hp,start} \tag{3}$$

$$RV\_{lpp,N\_s} = V\_{lpp,cmd} \tag{4}$$

For each operating day, initial volume, *RVhp,start*, and final volume, *RVhp,end*, of each reservoir are required to be always exactly met.

*Reservoir Operation Limits:* Water volume of reservoirs must be within the upper and lower limits in order to assure that the water head is always in operation limits. Therefore, the following inequality is an important constraint.

$$RV\_{lp,min} \le RV\_{lp,i} \le RV\_{lp,max} \quad \left\{ \begin{array}{l} lp = 1, \ 2, \dots, N\_h \\ i = 1, \ 2, \dots, N\_h \end{array} \right.\tag{5}$$

*Limits of Discharge Through Turbines:* Turbines of each hydropower plant is safe, if the water discharge through them does not exceed the limits. Both upper and lower limits have a huge meaning for the safety and stable operation of turbines. Thus, the following constraints are considered.

$$q\_{\rm lp,min} \le q\_{\rm lp,i} \le q\_{\rm lp,max} \left\{ \begin{array}{l} \text{lp} = 1, \, 2, \ldots, \, N\_{\rm l} \\ \text{i} = 1, \, 2, \ldots, N\_{\rm s} \end{array} \right. \tag{6}$$

where *qhp,i* is determined as follows:

$$q\_{lpp,i} = x\_{lpp} + y\_{lpp} P H\_{lp,i} + z\_{lpp} \left( P H\_{lpp,i} \right)^2 \tag{7}$$

In addition, the total discharge of each subinterval is determined as follows:

$$Q\_{lp,i} = t\_i \eta\_{lp,i} \tag{8}$$

*Limits of Hydropower Plant Generators:* The power generation of each hydropower plant must follow the inequality below, to assure the safe operation of generators all the time.

$$\text{PH}\_{\text{lp},\text{min}} \le \text{PH}\_{\text{lp},\text{i}} \le \text{PH}\_{\text{lp},\text{max}}, \left\{ \begin{array}{l} \text{lp} = 1, \, 2, \ldots, N\_{\text{h}}\\ \text{i} = 1, \, 2, \ldots, N\_{\text{s}} \end{array} \right. \tag{9}$$

### 2.2.2. Constraint of Thermal Power Plant

It is supposed that thermal power plants have plentiful fossil fuel and their energy is not constrained. However, thermal power plant generators have to satisfy physical limits similar to generators of hydropower plants. Namely, the power generation is limited as follows:

$$PT\_{tp, \min} \le PT\_{tp, i} \le PT\_{tp, \max} \left\{ \begin{array}{c} tp = 1, \ 2, \ldots, N\_{\text{l}} \\ i = 1, \ 2, \ldots, N\_{\text{s}} \end{array} \right. \tag{10}$$

### 2.2.3. Constraints of Power Systems

Power systems require the balance between the generated and consumed power for the stable voltage and frequency in power systems [38–43]. The power generation of all hydropower plants and thermal power plants, and power consumed by load and lines must follow the equality below:

$$\sum\_{tp=1}^{N\_l} PT\_{tp,i} \sum\_{hp=1}^{N\_h} PH\_{hp,i} + \sum\_{w=1}^{N\_w} PW\_{w,i} - P\_{L,i} - P\_{TL,i} = 0 \tag{11}$$

### 2.2.4. Modeling of Wind Uncertainty

Basically, electricity power from wind turbines is highly dependent on wind speed. The operation characteristics of a typical wind turbine are shown in Figure 2. For the figure, wind turbines cannot generate electricity when the wind speed is lower than *WVin* and higher than *WVout*. The generated power by wind turbines, shown in Figure 2, can be also formulated as follows [43,44]:

$$PW\_w = \begin{cases} 0, & \left(\mathcal{W}V\_w \prec \mathcal{W}V\_{\text{in}} \text{ and } \mathcal{W}V\_w > \mathcal{W}V\_{\text{out}}\right) \\ \frac{\left(\mathcal{W}V\_w - \mathcal{W}V\_{\text{in}}\right)}{\left(\mathcal{W}V\_r - \mathcal{W}V\_{\text{in}}\right)} \times PW\_{w,\text{ntr}\prime} & \left(\mathcal{W}V\_{\text{in}} \le \mathcal{W}V\_w \le \mathcal{W}V\_r\right) \\ PW\_{w,r\prime} & \left(\mathcal{W}V\_r \le \mathcal{W}V\_w \le \mathcal{W}V\_{\text{out}}\right) \end{cases} \tag{12}$$

**Figure 2.** A typical wind turbine characteristic.

### **3. The Proposed Method**

### *3.1. Conventional Cuckoo Search Algorithm (CSA)*

CSA is comprised of two techniques for updating new solutions. The first technique is based on <sup>L</sup>évy flights to expand searching space considering very large step sizes. On the contrary, the second technique narrows searching space nearby current solutions, using a mutation operation similar to that in the DE algorithm. Due to different strategies, the first technique is called the exploration phase, whereas the second technique is known as the exploitation phase. The exploration phase is mathematically expressed as follows:

$$\text{Los}\_{\text{s}}^{\text{new}} = \text{So}\_{\text{s}} + a \times (\text{So}\_{\text{s}} - \text{So}\_{\text{Glest}}) \otimes \text{Lévy}(\beta) \tag{13}$$

where α is the positive scale factor, which can be selected within the range of 0 and 1; Lévy(β) is the <sup>L</sup>évy distribution function [21], and *SoGbest* is the best solution of the previous iteration.

The exploitation phase can be mathematically expressed as the following mutation technique:

$$\begin{cases} So\_s^{new} = \begin{cases} So\_s + \delta \times (So\_1 - So\_2), & rd\_s < MF\\ So\_s & \text{otherwise} \end{cases} \end{cases} \tag{14}$$

where *So1* and *So2* are two randomly generated solutions from the current solutions, *rds* is a randomly generated number within zero and 1, and *MF* is the mutation factor, which is selected within the range of 0 and 1.

In the exploitation phase, there is a possibility that new solutions cannot be updated, i.e., new solutions and old solutions can be the same. This is particularly the case, given that the mutation factor, *MF*, is selected to be close to zero, and therefore the possibility that the phenomenon happens is very high. Additionally, it is obvious that new solutions are absolutely updated, if *MF* is selected to be close to 1.0. Consequently, the searching performance of CSA is highly dependent on the most appropriate value of *MF*.

### *3.2. Modified Adaptive Selective Cuckoo Search Algorithm (MASCSA)*

The main shortcomings of CSA are indicated in [24], by presenting and analyzing the selection mechanism and mutation mechanism. The two main shortcomings are to miss promising solutions due to the selection mechanism and generate new solutions with low quality, due to the same updated step size of the mutation mechanism. As a result, two modifications are proposed to be the new selection mechanism and the adaptive mutation mechanism. The selection mechanism and the adaptive mutation mechanism are presented in detail as follows:

### 3.2.1. New Selection Mechanism (NSM)

The selection mechanism in [24] is proposed to retain better solutions in the old and new solution sets. Thus, before implementing the selection between new and old solutions, the old and new solution sets with twice the population are grouped into one. Then, the fitness function is used to sort solutions from the best one to the worst one. Finally, the first population is retained and another one is abandoned.

### 3.2.2. Adaptive Mutation Mechanism (AMM)

AMM in [24] is applied to use two different sizes of the updated step. In Equation (14), only the step with the deviation between two random solutions is applied. Consequently, the mechanism applies two different sizes for each considered solution, in which the small step size is established by using two solutions, and the large step size is calculated by using four di fferent solutions. The small size and the large size support the formation of new solutions, as shown in the following equations:

$$\rm{Sos}\_{\rm s}^{\rm{new}} = \rm{Sos}\_{\rm s} + \delta \times \left(\rm{So}\_{1} - \rm{So}\_{2}\right) \tag{15}$$

$$\rm{S}o\_s^{\rm{uvw}} = \rm{So}\_s + \delta \times (\rm{So}\_1 - \rm{So}\_2) + \delta \times (\rm{So}\_3 - \rm{So}\_4) \tag{16}$$

However, ASCSA has still applied the condition of the comparison between *rds* and *MF*, shown in Equation (14). Thus, either Equation (15) or Equation (16) is not used if *rds* is higher than *MF*. Clearly, there is a high possibility that new solutions are not generated if *MF* is set to close to zero. In order to avoid this shortcoming, *MF* is set to one in the proposed MASCSA method.

Furthermore, in order to determine the use of either Equation (15) or Equation (16), ASCSA has applied a condition much dependent on a high number of selections. A ratio of fitness function of each considered solution to the fitness function of the best solution is calculated and then the ratio is compared to a threshold, which is suggested to be <sup>10</sup>−5, <sup>10</sup>−4, <sup>10</sup>−3, <sup>10</sup>−2, and 10−1. If the ratio is less than the threshold, Equation (15) is used. Otherwise, Equation (16) is selected. Clearly, the condition is time-consuming, due to the selection of five values for the threshold. Consequently, in order to tackle the main disadvantage of ASCSA, a modified adaptive mutation mechanism is proposed and shown in the next section.

### 3.2.3. The Modified Adaptive Mutation Mechanism (MAMM)

In the MAMM, the adaptive mutation mechanism in [24] is applied, together with a proposed condition for determining the use of small size or large size in Equations (15) and (16). The fitness function of each solution is determined and defined as *FFs*. The fitness function is used to calculate the effective index of each solution and the average e ffective index of the solutions. The e ffective index of the *sth* solution, *EIs*, and the average e ffective index of the whole population, *EIa*, are calculated as follows:

$$El\_s = FF\_{best} / FF\_s \tag{17}$$

$$EI\_a = FF\_{best} / FF\_a \tag{18}$$

where *FFbest* and *FFa* are the fitness function of the best solution and the average fitness function of the whole population. In the case that the e ffective index of the *sth* solution is less than that of the whole population, the *sth* solution is still far from the so-far best solution and small size should be used for the *sth* solution. On the contrary, the *sth* solution may be close to the so-far best solution and the large size is preferred. In summary, the modified adaptive mutation mechanism can be implemented by the five following steps:

Step 1: Set mutation factor *MF* to one

Step 2: Calculate the fitness function of the *sth* solution, *FFs* and determine the lowest one, *FFbest*

Step 3: Calculate the mean fitness function of all current solutions, *FFa*

Step 4: Calculate *EIs* and *EIa* using Equations (17) and (18)

Step 5: Compare *EIs* and *EIa*

If *EIs* < *EIa*, apply Equation (15) for the *sth* solution.

Otherwise, apply Equation (16) for the *sth* solution.

Using the AMM [34], ASCSA can jump to promising search zones with appropriate step size, as shown in Equations (15) and (16). However, the condition for applying either Equation (15) or Equation (16) is time-consuming, due to the many values of threshold, including <sup>10</sup>−5, <sup>10</sup>−4, <sup>10</sup>−3, <sup>10</sup>−2, and 10−1. In addition, the mutation factor is also set to the range from 0.1 to 1.0 with ten values. Therefore, it should try (5×10) = 50 values for the ASCSA. This becomes a serious issue of ASCSA in finding the best solution. Therefore, the application of the new condition can enable MASCSA to reach high performance, but the shortcomings of the time-consuming manner can be solved easily.

### **4. The Application of the Proposed MASCSA Method for OSWHT Problem**

### *4.1. Decision Variables Selection*

Solution methods can be applied for an optimization problem with the first step of determining decision variables, which are included in each candidate solution. In the problem, the decision variables are selected to be as follows:


### *4.2. Handling Constraints of Hydropower Plants*

From the constraint of water balance in Equation (2), the total discharge of each subinterval is obtained as follows:

$$Q\_{lp,i} = V\_{lp,i-1} - V\_{hp,i} + \mathcal{W}I\_{lp,i}, \; i = 1, \; 2, \dots, \; N\_{\\$} \tag{19}$$

Then, the discharge of each hour is determined using Equation (8), as follows:

$$\eta\_{\rm lp,i} = \frac{\mathbb{Q}\_{\rm llp,i}}{t\_{\rm i}}, \left\{ \begin{array}{c} \ln p = 1, \ 2, \ldots, N\_{\rm l} \\ i = 1, \ 2, \ldots, N\_{\rm s} \end{array} \right. \tag{20}$$

As a result, the power generation of hydropower plants can be found using Equation (7).

### *4.3. Handling Power Balance Constraint*

From the power balance constraint shown in (11), the power generation of the *Ntth* thermal power plant is determined as follows:

$$PT\_{N\_l,i} = P\_{L,i} + P\_{TL,i} - \sum\_{tp=1}^{N\_l-1} PT\_{tp,i} - \sum\_{hp=1}^{N\_h} PH\_{hp,i} - \sum\_{w=1}^{N\_w} PW\_{w,i} \tag{21}$$

### *4.4. Fitness Function*

The fitness function of each solution is determined to evaluate the quality of the solution. Therefore, the total electricity fuel cost of all thermal power plants and all constraints that have the possibility to be violated are the major terms of the fitness function. As shown in Section 4.1, reservoir volume and power generation of the first (*Nt* − 1) thermal power plants are the decision variables. Hence, they never violate the limits. However, the discharge of each hour and power generation of hydropower plants, and the last thermal power plant, have a high possibility of violating both the upper and lower limits. Derived from the meaning, the solution quality evaluation function is established as follows:

$$FF\_s = TFC + PF\_1 \times \sum\_{lp=1}^{N\_h} \sum\_{i=1}^{N\_e} \Delta q\_{lp,i} ^2 + PF\_2 \times \sum\_{lp=1}^{N\_h} \sum\_{i=1}^{N\_s} \Delta PH\_{lp,i} ^2 + PF\_3 \times \sum\_{i=1}^{N\_S} \Delta PT\_{N\_l,i} ^2 \tag{22}$$

where *PF1*, *PF2*, and *PF3* are the penalty factors corresponding to the violation of discharge, power generation of hydropower, and power generation of the last thermal power plant, respectively. <sup>Δ</sup>*qhp,i*, <sup>Δ</sup>*PHhp,i*, and Δ*PTNt,i* are the penalty terms of discharge, power generation of hydropower plants, and

power generation of the last thermal power plants. The penalty terms in Equation (22) are determined as follows:

$$
\Delta q\_{lp,i} = \begin{cases}
(q\_{lp,i} - q\_{lp,max}), & q\_{lp,i} > q\_{lp,max} \\
(q\_{lp,min} - q\_{lp,i}), & q\_{lp,i} < q\_{lp,min} \\
0, & 
otherwise
\end{cases} \tag{23}
$$

$$\Delta PH\_{lp,i} = \begin{cases} \left(PH\_{l\_p,i} - PH\_{l\_p,max}\right)\_\prime & PH\_{l\_p,i} > PH\_{l\_p,max} \\ \left(PH\_{l\_p,min} - PH\_{lp,i}\right)\_\prime & PH\_{l\_p,i} < PH\_{lp,min} \\ 0\_\prime & \text{otherwise} \end{cases} \tag{24}$$

$$\Delta PT\_{N\_l,i} = \begin{cases} (PT\_{N\_l,i} - PT\_{N\_l,\max})\_\prime & PT\_{N\_l,i} > PT\_{N\_l,\max} \\ (PH\_{N\_l,\min} - PT\_{N\_l,i})\_\prime & PT\_{N\_l,i} < PT\_{N\_l,\min} \\ 0, & otherwise \end{cases} \tag{25}$$

### *4.5. The Whole Application Procedure of MASCSA for OSWHT Problem*

The whole solution process of the optimal scheduling of the wind-hydro-thermal system with the fixed-head short-term model is described in Figure 3, as follows:


Step 5: Calculate *PTNt,i* using Equation (21)

Step 6: Calculate the fitness function using Equations (22)–(25)

Step 7: Determine *SoGbest* and set current iteration to 1 (*Iter*=1)

Step 8: Generate new solutions using Equation (13) and correct the solutions

Step 9: Calculate *Qhp,i*, *qhp,i*, and *PHhp,i* using Equation (19), (20), and (7).

Step 10: Calculate *PTNt,i* using Equation (21)

Step 11: Calculate fitness function using Equations (22)–(25)

Step 12: Compare *FFnew s* and *FFs* to keep better solutions

Step 13: Generate new solutions using MAMM and correct the solutions

Step 14: Calculate *Qhp,i*, *qhp,i*, and *PHhp,i* using Equations (19), (20), and (7).

Step 15: Calculate *PTNt,i* using Equation (21)

Step 16: Calculate fitness function using Equations (22)–(25)

Step 17: Apply NSM in Section 3.2.1.

Step 18: Determine *SoGbest*

Step 19: If *Iter*= *Itermax*, stop the solution searching algorithm. Otherwise, set *Iter*= *Iter*+1 and go back to Step 8

**Figure 3.** The flowchart for implementing MASCSA for OSWHT problem.
