1 Introduction

Water resources are getting scarce these days and decision makers are challenged to utilize them in the best possible way. The water stored in reservoirs behind dams is an important resource which can be utilized during critical or drought periods having in mind that storage volumes can be significantly decreased due to high evaporation losses, particularly in arid regions (Ehteram et al. 2018a; Johnson et al. 1993).

1.1 Background

Nowadays, reservoirs are often operated optimally with the aid of mathematical models such that water is released to meet demands to the greatest extent possible (Zhang et al. 2014, Ehteram et al. 2018b). Different mathematical models, such as meta-heuristic or evolutionary algorithms, have been developed for reservoir operation. These algorithms are able to determine optimal strategies for water release (Schardong and Simonovic, 2015; Bozorg-Hadad et al. 2016).

Akbari-Alashti et al. (2014) used genetic programming for optimizing reservoir operation and showed that it matched the downstream demand better than did the genetic algorithm. Based on genetic algorithms, Bolouri-Yazdeli et al. (2014) found that reservoir operation with higher order nonlinear rule curves supplied demands better than did lower order nonlinear curves. Results from an application of bat algorithm (BA) to reservoir operation showed that water demand supplies were less vulnerable (Bozorg-Hadad et al. 2014) but the algorithm may get trapped in local optima. Ahmadi et al. (2014) extracted adoption and non-adoption rule curves for the operation of a reservoir with a multi-objective genetic algorithm and showed that the adoption rule curve supplied demands well but more computation time was needed. Applying the weed optimization algorithm (WOA) to a multi reservoir system, Asgari et al. (2015) showed that it supplied demands with more resiliency and reliability and required less function evaluations than did genetic and particle swarm algorithms.

Biography-based optimization algorithm (BBOA) was used by Hadad et al. (2015) for reservoir operation with the aim to increase power generation in the downstream power plant. Results showed that, compared to other evolutionary algorithms, BBOA yielded solutions closer to the global solution. Using a genetic algorithm, Tayebian et al. (2016) employed different polices for reservoir operation and showed that the binary standard operating policy better met demands.

Moeini et al. (2017) used a constrained gravitational search algorithm for reservoir operation with the aim to decrease hydropower deficit and found it better than the honey bee mating optimization algorithm (HBMOA) and discrete dynamic programming. Using improved artificial bee colony optimization algorithm (IABCO), a multi-reservoir system with power plants was operated for increasing power generation in the downstream power plants. It was found that IABCO supplied hydropower demand with more reliability than did genetic algorithm (GA) and particle swarm optimization (PSOA) (Choong et al. 2017).

Ming et al. (2017) compared the search space reduction method (SSRM) with the cuckoo algorithm for reservoir operation in China and found that SSRM reached the global solution and was capable of solving the reservoir system problem with many constraints. Applying the shark algorithm for reservoir operation in Iran, Ehteram et al. (2017) showed that it decreased water deficit during critical periods more reliably than did other algorithms. Using the krill algorithm for reservoir operation with the aim to increase power generation in the downstream power plant, Ehteram et al. (2017) showed that the algorithm provided average solutions close to the global solution.

1.2 Problem Statement, Motivation and Novelty

The literature review in the previous section shows that the optimal operation of water resources based on new evolutionary algorithms has gained a lot of importance in recent years. The present study addresses the new evolutionary kidney algorithm for the optimal operation of a reservoir with the aim of decreasing irrigation deficits and the results will show that the KA algorithm leads to less computational time and to better objective function values when compared to other evolutionary algorithms. The study will demonstrate the better performance of the KA based on different multicriteria decision models and different indexes such as the volumetric reliability index, root mean square error and others. Thus, the main contribution of this paper is to introduce a mathematical model based on a new evolutionary algorithm (KA) for reservoir operation with irrigation aims. Also, the present article attempts to modify previous literature reviews for the optimal operation of water resources because past articles targeted at selecting the best models or methods based on some limited indexes such objective function, number of function evaluations or computational time while the present study considers the selection of the best method based on different multicretira decision models in order to achieve more comprehensive outcomes.

Reservoir operation entails a nonlinear non-convex objective function and requires a robust algorithm that can lead to the global solution and can extract rule curves for supplying demands, such as irrigation, hydropower and others. Optimal reservoir operation takes on an added significance in periods of drought and water scarcity. This requirement can be met with the use evolutionary algorithms. The kidney algorithm (KA) has been introduced as a successful optimization algorithm suitable for different engineering applications versus the other algorithms (Jaddi et al. 2017). The method was used by Jaddi et al. (2017) for benchmark mathematical functions but, to the authors’ knowledge, the KA has not been used to generate optimal operation rules for dam and reservoir water systems application. The benchmark mathematical functions were evaluated by the kidney algorithm and the method had the good results.

The other reasons for the selection of this algorithm were that it overcame problems of other algorithms, such as trapping in the local solutions, slow convergence, and lack of balance between exploration and exploitation. The kidney algorithm has the filtration operator which causes faster convergence. In fact, this operator identifies the best solution and helps expedite convergence. Also, a balance between exploration and exploitation is generated by filtration so that the algorithm searches the regions which have the solutions with better quality. The solutions with bad quality which may trap the algorithm in local solutions are removed by the secretion operator.

Formulating this algorithm for reservoir operation for the first time in water resource management is the innovation of this paper as well as comparing it to bat, shark, weed, particle swarm and genetic algorithms. Also, some multi-criteria decision indexes, such as complex proportional assessment (COPRAS), technique for order preference by similarity to ideal solution (TOPSIS), modified technique for order preference by similarity to ideal solution (MTOPSIS), and weighted aggregates sum product assessment (WASPAS) were used for evaluation of different algorithms. In addition, the Borda social selection index based on all multi-criteria decision models was used to determine the best method for reservoir operation.

1.3 Objective

The main objective of this study is to investigate the potential of generating reservoir operation rules based on the kidney algorithm in order to minimize the irrigation water deficits. In addition, to examine the kidney algorithm performance over the most recent meta-heuristic algorithms, a comprehensive comparative analysis is carried out.

2 Material Methods

2.1 Kidney Algorithm

Kidneys are situated in the urinary system in the biological structure of a body. They remove waste and excess water from blood and have components, called nephrons, which have capillaries such as glomerular tubes that filter the fluids available in the kidneys. Kidneys have small tubes, known as tubules, which undertake two main functions of reabsorption and secretion. Reabsorption is a process which returns solutes from tubules to the blood, whereas secretion transforms solutes from the blood to the tubules which are then discharged by the urinary system. Different processes occurring in kidneys are defined below (Jaddi et al. 2017):

  1. 1-

    Filtration: transformation of solutes from the blood to tubules.

  2. 2-

    Reabsorption: process by which non-waste solutes move from tubules to the blood.

  3. 3-

    Secretion: process by which waste materials move from the blood to tubules.

  4. 4-

    Excretion: process by which all the waste from the above three processes are discharged from the body.

There are similarities between the kidney algorithm and other meta-heuristic algorithms. For example, an initial population is defined for this algorithm. The solutes are considered as initial population or candidate solutions. Then, new solutions are generated, based on the movement of current solutions to the best solutions. At the next level, the filtration operator is applied to solutions and the solutions are divided into two groups. The useful solutes are transferred to the filtered blood (FB) and the harmful solutes are considered as waste (W). The algorithm gives another opportunity to the solutes which are considered as waste so that these solutes can be returned to the FB, if they can satisfy the rate of filtration. If these solutes cannot use this opportunity, they are excreted and a random solute fills the place of the excreted solution. Also, if the solute is transferred to the FB, the solute quality should be compared to the available worst solute in the FB. If the quality of transferred solute to the FB is worse than the worst solute, the transferred solute is excreted or else if the quality of the worst solute is less than the transferred solute to the FB, the worst solute is excreted. All levels of the algorithm are detailed in the following sections.

2.1.1 Movement Solutes for Generation of New Positions

The movement of solutes for finding the best position with better quality results in new solutes at each iteration. Indeed, trying solutes for increasing their quality gives rise to new solutes. The generation of new solutes can be expressed as:

$$ {S}_{i+1}={S}_i+\mathit{\operatorname{rand}}\left({S}_{best}-{S}_i\right) $$
(1)

where Si: the i-th solute, Sbest: the best solute, rand: the random number, and Si + 1: the new solute. Equation 1 increases the population diversity which causes faster convergence.

2.1.2 Filtration

The filtration rate is an operator for identifying the worst solute and the best solute and can be computed as:

$$ fr=\alpha \times \frac{\sum \limits_{i=1}^pf\left({x}_i\right)}{p} $$
(2)

where, α: a constant value between 0 and 1, p: the population size, f (xi): the objective function, fr: the filtration rate and xi: decision variables.

The average of all objective function values is used for the computation of the filtration rate. If α equals zero, it means that there is no filtration and if αequals one, the rate of filtration equals the average of the objective function values. This process filtrates the solutes with the best quality from the solutes with the bad quality and thus improves the exploration process.

2.1.3 Reabsorption

When a solute is considered as waste, the reabsorption again gives an opportunity to the solute to join to the FB. This event happens if the new solute, based on Eq. 1, can satisfy the rate of filtration. This process improves the exploitation process.

2.1.4 Secretion

When a solution is transferred to the FB, its quality should be compared with the worst solute. If the quality of this solute is worse than the worst available quality in the FB, it is secreted, or else the worst solute will be secreted.

2.1.5 Excretion

When a solution cannot be given an opportunity again for joining the FB, it will be excreted and a random solute fills the place of the removed solute. Figure 1 shows the details of the kidney algorithm.

Fig. 1
figure 1

Kidney algorithm

To summarize, the following levels are considered for the kidney algorithm:

  1. 1-

    First, an initial population is considered for the algorithm and the solutes are considered as the initial solution.

  2. 2-

    The objective function is computed for each solute.

  3. 3-

    The rate of filtration is computed for each solute and the better solute is transformed to the filtered blood and other solutes are considered as waste.

  4. 4-

    Another chance is given to the waste and, if it uses this chance, it would join the FB. Otherwise, it is excreted and the random solute fills the excreted solute.

  5. 5-

    The transformed solute in the FB is compared with the worst solute in the FB and if it has bad quality compared to the worst solute, the solute will be secreted or else the worst solute will be secreted.

  6. 6-

    The solutes in the FB are sorted for the selection of the best solute.

  7. 7-

    The FB and W join each other to generate the new population.

2.2 Other Algorithms

2.2.1 Bat Algorithm

The bat algorithm acts based on the echolocation ability that allows the bats to identify the obstacle from food based on pulses generated from bats and their return from the surroundings. In fact, they generate loud sounds and then receive the returned sounds from the surroundings.

The following assumptions are considered for the bat algorithm (Bozorg-Hadad et al. 2014, Karami et al. 2018):

  1. 1-

    All bats apply the echolocation ability for the identification of prey from food.

  2. 2-

    The bats fly randomly with velocity vl, loudness A0, wavelength λ, and frequency fmin at potion yl.

  3. 3-

    The loudness changes from A0 to Amin.

The frequency rate is between fmin and fmax and the wavelength changes between λmin and λmax. Also, the pulsation rate (rl) is between 0 and 1. The position, frequency, and velocity are updated as:

$$ {f}_l={f}_{\mathrm{min}}+\left({f}_{\mathrm{max}}-{f}_{\mathrm{min}}\right)\times \beta $$
(3)
$$ {v}_l(t)=\left[{y}_l^{t-1}-{Y}_{\ast}\right]\times {f}_l,t=1,\dots, T $$
(4)
$$ {y}_l(t)={y}_l\left(t-1\right)+{v}_l(t),t=1,..,T $$
(5)

where, yl(t − 1): the position at time t-1, β: the random value between 0, 1, Y: the global best position, and T: the total period of assessment.

Also, a random walk is used for local search as:

$$ y(t)=y\left(t-1\right)+\varepsilon A(t) $$
(6)

where ε: the random number between −1 and 1, and A (t): the average loudness of bats’ sound.

The loudness and pulsation rate should be updated for each iteration. When bats find preys, the loudness decreases and the pulsation rate increases. Also, the pulsation rate is expressed as:

$$ {r}_l^{t+1}={r}_l^0\left[1-\exp \left(-\gamma t\right)\right]{A}_l^{t+1}=\alpha {A}_l^t,\alpha\;\mathrm{and}\;\gamma\;\mathrm{constants} $$
(7)

Figure 2 shows different levels of the bat algorithm.

Fig. 2
figure 2

Bat algorithm

2.2.2 Weed Algorithm

Weeds are harmful for the development of agriculture and they adapt easily with their environment. Characteristics such as completion, growth, and reproduction, are seen among weeds. The weed algorithm has the following features (Asgari et al. 2015):

  1. 1-

    There are limited numbers of seeds for the extension of weeds.

  2. 2-

    Seeds can convert to weeds and weeds can produce seeds, based on their quality again.

  3. 3-

    The weed production continues until their number reaches the maximum. Also, there is a competition among weeds and the weeds with bad quality will be eliminated from the weed colony.

The following assumptions can be considered for the weed algorithm:

  1. 1-

    An initial population is considered for the algorithm (Pinitial) and it is distributed randomly in the solution space. In fact, each weed can be considered as a solution and its location can be considered as a decision variable.

  2. 2-

    Plants or weeds can produce seeds based on their quality. The members with bad quality in the evolutionary algorithm are eliminated but they can have important information which is useful during the algorithm operation. Thus, reproduction in the weed algorithm gives another chance to the member with bad quality to survive from the bad condition and grow in the better environment.

  3. 3-

    The weeds are distributed randomly in the search space, based on the normal distribution. The standard deviation of the weed distribution is based on the following equation and it starts from the maximum value to reach a minimum value:

$$ {\sigma}_{iter}=\frac{{\left({iter}_{\mathrm{max}}- iter\right)}^n}{{\left({iter}_{\mathrm{max}}\right)}^n}\left({\sigma}_{initial}-{\sigma}_{final}\right)+{\sigma}_{final} $$
(8)

where σiter: the standard deviation for current iteration, σinitial: the initial standard deviation, and σfinal: the final standard deviation.

  1. 4-

    When the number of weeds reaches Pmax, the seeds with bad quality should be removed. Figure 3 shows the weed algorithm.

Fig. 3
figure 3

Weed algorithm

2.2.3 Shark Algorithm

The olfactory system in sharks permits them to identify preys in the surroundings. In fact, smell receptors help them receive odor from the surroundings. The following assumptions are considered in the shark algorithm (Ehteram et al. 2017):

  1. 1-

    It is assumed that the fishes are shark prey and they are injured in the sea. The fish movement is slow because it is injured and, as a result, it is assumed that the location of prey has been fixed.

  2. 2-

    The fish body produces blood, because it is injured and, as a result, the smell receptor in the shark receives the blood odor from the injured fish.

  3. 3-

    It is assumed that there is one blood source around sharks which produces the blood.

First, the initial population \( \left[{X}_1^1,{X}_2^1,..,{X}_{NP}^1\right] \)(NP: population size) is considered for sharks. In fact, each X is considered as shark position and each position has some decision variables which can be expressed as

$$ {X}_i^l=\left[{x}_{i,1}^l,{x}_{i,l}^2,\dots, {x}_{i, ND}^l\right] $$
(9)

where, xi,jl: the j-th decision variable.

Each shark has the spatial velocity in the movement with \( \left[{V}_1^1,{V}_2^1,..,{V}_{NP}^1\right] \) being the velocity vector. Each vector includes \( \left[{v}_{i,1}^1,{v}_{i,2}^1,..{\mathrm{v}}_{i, ND}^1\right] \), ND being the number of decision variables. When the odor concentration increases, the velocity for shark increases and thus the gradient of the objective function is equal to velocity as

$$ {\left.{V}_i^k={\eta}_k.{R}_1.\nabla (OF)\right|}_{X_i^k},i=1,.., NP,\mathrm{k}=1,..,{\mathrm{k}}_{\mathrm{max}} $$
(10)

where OF: the objective function, kmax: the number of sharks moving forward, ηk: a random value between 0 and 1, and R1: a random number between 0 and 1.

The shark movement has inertia and its velocity is limited so that the velocity equation is rewritten as:

$$ {\left.{v}_{i,j}^k={\eta}_k.{R}_1.\frac{\partial F}{\partial {x}_j}\right|}_{x_{i,j}^k}+{\alpha}_k{R}_2{v}_{i,j}^{k-1} $$
(11)

where αk: the momentum rate, and R2: a random value between 0 and 1.

The maximum and minimum velocities for the shark are, respectively, 80 km/h and 20 km/h. Thus, a velocity limiter βk is considered for velocity such that:

$$ \left|{v}_{i,j}^k\right|=\min \left[{\left|{\eta}_k.{R}_1.\frac{\sigma (OF)}{\partial {x}_j}\right|}_{x_{i,j}^k}+{\alpha}_k.{R}_2.{v}_{i,j}^{k-1}|,\left|{\beta}_k.{v}_{i,j}^{k-1}\right|\right] $$
(12)

Then, the shark position is updated as:

$$ {Y}_i^{k+1}={X}_i^k+{V}_i^k\Delta {t}_k $$
(13)

in which Δtk: time interval for each stage of movement.

Sharks have an important movement which is called rotational movement. This causes the shark algorithm to exit from local optima (Fig. 4):

Fig. 4
figure 4

Rotational movement

$$ {Z}_i^{k+1,m}={Y}_i^{k+1}+{R}_3.{Y}_i^{k+1} $$
(14)

where R3: random number, m: number of points in the local search around Yik + 1, and \( {Z}_i^{k+1,m} \): obtained position based on the rotational movement of sharks.

Finally, for maximization, the final solution is computed as:

$$ {X}_i^{k+1}=\arg \left[\max \left( OF\left({Y}_i^{k+1}\right), OF\left({Z}_i^{k+1,1}\right),\dots, OF\left({Z}_i^{k+1,M}\right)\right)\right] $$
(15)

Figure 5 shows the shark algorithm.

Fig. 5
figure 5

Shark algorithm

2.2.4 Particle Swarm Algorithm

The particle swarm optimization algorithm acts based on velocity and position, so that a dimensional vector Xi = (xi, 1, xi2, .., xiD)T shows the particle position and another vector Vi = (vi, 1, vi2, .., viD)T shows the particle velocity (Delice et al. 2017). Also, the best previously observed position of particles is shown with Pi = (pi, 1, pi2, .., piD)T. The g index shows the global solution as:

$$ {v}_{id}^{n+1}=\chi \left[{wv}_{id}^n+\frac{c_1{r}_1^n\left({p}_{id}^n-{x}_{id}^n\right)}{\Delta t}+{c}_2{r}_2^n\frac{\left({p}_{gd}^n-{x}_{gd}^n\right)}{\Delta t}\right] $$
(16)
$$ {x}_{id}^{n+1}={x}_{id}^n+\Delta {tv}_{id}^{n+1} $$
(17)

where χ: constriction coefficient; w: inertia weight; c1 and c2: acceleration coefficients; r1, r2: random values; n: time index; and Δt: time interval.

First, the initial velocity and position are defined. Then, the objective function is computed for each particle. The global and local leaders are computed, and velocity and position are updated, based on Eqs. 16 and 17. Finally, the termination criterion is checked.

2.2.5 Genetic algorithm

The real coded genetic algorithm is used frequently for optimization. Elitism together with crossover and mutation operators are used in this algorithm (Arikoglu 2017). The elitist strategy attempts to keep the best members in each generation. Thus, the chance of finding of the global solution increases. At the crossover level, two children \( {Y}^1=\left({y}_1^1,{y}_2^1,..,{y}_n^1\right) \) and \( {Y}^2=\left({y}_1^2,{y}_2^2,..,{y}_n^2\right) \) are considered, and \( {X}^1=\left({x}_1^1,{\mathrm{x}}_2^1,..,{\mathrm{x}}_n^1\right) \) and \( {X}^2=\left({x}_1^2,{\mathrm{x}}_2^2,..,{\mathrm{x}}_n^2\right) \) are considered as parents. First, a random number (u) is applied to generate the γ crossover parameter as a polynomial probability distribution:

$$ \gamma =\left[\begin{array}{l}{\left(\alpha u\right)}^{\frac{1}{\eta_c+1}}\leftarrow if(u)\le \frac{1}{\alpha}\\ {}{\left(\frac{1}{2-\alpha u}\right)}^{\frac{1}{\eta_c+1}}\leftarrow otherwise\end{array}\right] $$
(18)

with \( \alpha =2-{\beta}^{-\left({\eta}_c+1\right)} \)and βis computed by:

$$ \beta =1+\frac{2}{x_i^2-{x}_i^1}\min \left[\left({x}_i^1-{x}_i^l\right),\left({x}_i^u-{x}_i^2\right)\right] $$
(19)

where \( {x}_i^u \): upper bound of the decision variables, and \( {x}_i^l \): lower bound of the of the decision variables. Also, \( {x}_i^1 \) and \( {x}_i^2 \) are first and second parents.

Children are generated as:

$$ {y}_i^1=0.50\left[\left({x}_i^1+{x}_i^2\right)-\gamma \left|{x}_i^2-{x}_i^1\right|\right] $$
(20)
$$ {y}_i^2=0.50\left[\left({x}_i^1+{x}_i^2\right)+\gamma \left|{x}_i^2-{x}_i^1\right|\right] $$
(21)

The mutation operator is applied to chromosomes for changing some genes. Thus, the mutated chromosome is expressed as:

$$ {x}_i^{\prime }=\left[\begin{array}{l}{x}_i+\Delta \left(t,{x}_i^u-{x}_i\right)\\ {}{x}_i-\Delta \left(t,{x}_i-{x}_i^l\right)\end{array}\right] $$
(22)

The function Δ(t, y) is computed as:

$$ \Delta \left(t,y\right)=y\left(1-{r}^{{\left(1-\frac{t}{t_{\mathrm{max}}}\right)}^b}\right) $$
(23)

where r: random number, and tmax: maximum number of iterations.

2.3 Case study

The Aydoghmoush dam is a rock fill dam located in eastern Azarbayejan province, Iran. The purpose of the dam is to supply water for irrigation demands. The average annual inflow for this reservoir is 228 × 103 m3/h and the maximum and minimum storages are, respectively, 145.7 × 103 and 8.9 × 103 m3. A period of 10 years (1991–2000) was considered for the study. Figure 6 shows the Aydoghmoush location and Fig. 7 shows the inflow to the reservoir.

Fig. 6
figure 6

Aydoghmoush dam

Fig. 7
figure 7

Inflow to Aydoghmoush dam

The objective function for reservoir operation was considered as the average of square relative differences between allocated volumes and irrigation demands:

$$ \mathit{\operatorname{Minimize}}(Def)=\frac{1}{T}\sum \limits_{t=1}^T{\left(\frac{D_t-{R}_t}{D_{\mathrm{max}}}\right)}^2 $$
(24)
$$ {S}_{t+1}={S}_t+{Q}_t-{R}_t-{sp}_t-\left(\frac{E_t\times {A}_t}{1,000}\right),t=1,..,T $$
(25)
$$ {S}_{\mathrm{min}}\le {S}_t\le {S}_{\mathrm{max}} $$
(26)
$$ 0\le {R}_t\le {D}_{\mathrm{max}} $$
(27)
$$ {sp}_t=\left[\begin{array}{l}{S}_t+{Q}_t-\left(\frac{E_t\times {A}_t}{1,000}\right)-{S}_{\mathrm{max}}\leftarrow if\left({S}_t+{Q}_t-\left(\frac{E_t\times {A}_t}{1,000}\right)\right)\ge {S}_{\mathrm{max}}\\ {}0\leftarrow otherwise\end{array}\right] $$
(28)

where Def: objective function based on deficit, Dt: irrigation demand during the operation periods, Rt: released water during the operation period, Dmax: maximum irrigation demand in the entire operation time period, St + 1: storage at time t + 1, Qt: inflow to reservoir, spt: overflow, T: time interval of operation, and A: surface area of reservoir.

Equations 26 and 27 should be satisfied and penalty functions were considered for more assurance:

$$ {p}_1=K{\left[\frac{\left|{S}_{\mathrm{min}}-{S}_t\right|}{S_{\mathrm{max}}-{S}_{\mathrm{min}}}\right]}^2+L $$
(29)
$$ {P}_2=C{\left[\frac{R_t-{D}_{\mathrm{max}}}{D_{\mathrm{max}}}\right]}^2+G $$
(30)
$$ {P}_3=Z\left(\frac{\left|{R}_t\right|}{D_t}\right)+N $$
(31)

where p: penalty function, and K, L, C, G, Z and N are the penalty constants. The penalty functions have been reported by Ashofteh et al. (2012) and the value of their coefficients have been computed based on sensibility analysis. The data collection for this study, used for evaluating the proposed model, is set for the period between 1991 and 2000. The main reason is that one of the major objective of the study is to compare the performance of the proposed model versus models that have been applied previously for the same case study. As long as those models were examined during this period, it was decided to examine the proposed model during the same time period (Bozorg-Hadad et al. 2014, 2016).

2.3.1 Investigation of reservoir performance by different indexes

The reliability index depicts the percentage of water supply as (Ashofteh et al. 2012):

$$ \alpha =\frac{N_{t=1}^T\left({D}_t\le {R}_t\right)}{T} $$
(32)

where α: reliability index, and \( {N}_{t=1}^T\left({D}_t\le {R}_t\right) \): number of periods of water supply. A high value for this index means a higher ability of the system in meeting the target demand during most of the time.

Another performance measure is the vulnerability index. This index shows the ratio of magnitude of the total failure to the total demand and was computed as (Ashofteh et al. 2012):

$$ \upsilon =\frac{\sum \limits_{t=1}^T\left({D}_t-{R}_t|{D}_t>{R}_t\right)}{\sum \limits_{t=1}^T{D}_t} $$
(33)

where υ: vulnerability index and \( \sum \limits_{t=1}^T\left({D}_t-{R}_t|{D}_t>{R}_t\right) \): cumulative deficit during the operation period. A low value of vulnerability means that, when there is a failure, its magnitude is not so intense, i.e., a fraction of demand (although not the full target) can still me met.

The resiliency index was considered as:

$$ \beta =\frac{N_{t=1}^T\left({D}_{t+1}\le {R}_{t+1}|{D}_t>{R}_t\right)}{N_{t=1}^T\left({D}_t>{R}_t\right)} $$
(34)

where β: resiliency index, and \( {N}_{t=1}^T\left({D}_{t+1}\le {R}_{t+1}|{D}_t>{R}_t\right) \): number of system successes after a failure.

Also, the root mean square (RMSE) between demand and value assigned to irrigation was computed as:

$$ RMSE=\sqrt{\sum \limits_{t=1}^T\frac{{\left({D}_t-{R}_t\right)}^2}{T}} $$
(35)

The mean absolute error (MAE) for allocated water and demand was computed as:

$$ MAE=\frac{\sum \limits_{t=1}^T\left|{D}_t-{R}_t\right|}{T} $$
(36)

The Nash-Sutcliffe efficiency (NSE) was computed as:

$$ NSE=1-\frac{\sum \limits_{t=1}^T{\left({D}_t-{R}_t\right)}^2}{\sum \limits_{t=1}^T{\left({D}_t-{\overline{D}}_t\right)}^2} $$
(37)

\( {\overline{D}}_t \): average demand.

Additionally, the formulation of the kidney algorithm for solving the reservoir operation was based on the following steps:

  1. 1-

    Water release values were considered as decision variables for simplifying the solution of the problem. Thus, release values were defined as the initial population.

  2. 2-

    Initially, the constraints for the problem (Eqs. 26 and 27 and continuity equation) were checked and if they were not satisfied, penalty functions were considered.

  3. 3-

    The objective function for each member of the population was computed.

  4. 4-

    The rate of filtration based on the computed objective function was computed.

  5. 5-

    In this level, filtration, secretion and excretion were applied to these solutes based on the kidney algorithm.

  6. 6-

    If the convergence criterion was satisfied, the algorithm was terminated or else another loop would start from level 2.

2.4 Multi-criteria decision

In this study, some methods are based on different indexes so one of the methods should be selected as the best strategy for reservoir operation. Thus, some multi-criteria decision models were employed. First, a decision variable matrix was considered which included the computed value of each index for each method and each variable was denoted by xij, i being the i-th method and j the j-th index. Then, these variables were normalized as:

$$ {\tilde{x}}_{ij}=\frac{\left({x}_{ij}-{x}_j^{-}\right)}{x_j^{+}-{x}_j^{-}} $$
(38)
$$ {\tilde{x}}_{ij}=\frac{\left({x}_j^{-}-{x}_{ij}\right)}{\left({x_j}^{-}-{x}_j^{+}\right)} $$
(39)

where, x: lowest value of index jth, and x+: highest value of index jth.

2.4.1 Complex proportional assessment (COPRAS)

In COPRAS, maximizing and minimizing evaluation criteria are computed separately within the computational process. The following steps were considered for using the model (Viteikiene and Zavadskas 2007):

  1. 1-

    The computed values of different indexes in the decision variable matrix based on Eq. 36 and 37 were normalized.

  2. 2-

    The total weight of the evaluation criteria was computed as:

$$ {S}_{+i}=\sum \limits_{j=1}^k\left({\tilde{x}}_{ij}\times {q}_j\right) $$
(40)
$$ {S}_{-i}=\sum \limits_{j=k+1}^m\left({\tilde{x}}_{ij}\times {q}_{ij}\right) $$
(41)

where k = number of beneficial criteria, m: number of non-beneficial criteria, q: assigned weight, S+i and Si: are the sum of the maximizing and minimizing the criteria, respectively.

  1. 3-

    The relative weight Qi was computed as:

$$ {Q}_i={S}_{+i}+\frac{\sum \limits_{i=1}^n{S}_{-i}}{S_{-i}\sum \limits_{i=1}^n\left(\frac{1}{S_{-i}}\right)} $$
(42)
  1. 4-

    The rank Ni of each method was computed as:

$$ {N}_i=\frac{Q_i}{\max \left({Q}_i\right)}\times 100 $$
(43)

2.4.2 Technique for order preference by similarity to ideal solution (TOPSIS)

This method acted based on the proximity of each solution to the positive ideal solution (\( {D}_i^{+} \)) and the distance from the negative ideal solution (\( {D}_i^{-} \)):

$$ {D}_i^{+}=\sqrt{\sum \limits_{j=1}^m{\left({x}_{ij}-{x}_j^{+}\right)}^2} $$
(44)
$$ {D}_i^{-}=\sqrt{\sum \limits_{j=1}^m{\left({x}_{ij}-{x}_j^{-}\right)}^2} $$
(45)
$$ {C}_i=\frac{D_i^{-}}{D_i^{-}+{D}_i^{+}} $$
(46)

The value of Ci was arranged based on the descending arrangement for determining the rank of each method. Also, \( {D}_i^{+} \) is the distance from the ideal solution, \( {D}_i^{-} \) is the distance from a negative-ideal solution and Ciis the similarity ratio.

2.4.3 Modified technique for order preference by similarity to ideal solution (MTOPSIS)

Ren et al. (2007) suggested the following equation instead of computing the Ci value:

$$ {R}_i=\sqrt{\left({D}_i^{+}-\min {\left({D}_i^{+}\right)}^2+{\left({D}_i^{-}-\max \left({D}_i^{-}\right)\right)}^2\right)} $$
(47)

Each method with higher value for Ri has a higher rank and this parameter is known as the similarity ratio.

2.4.4 Weighted aggregates sum for product assessment (WASPAS)

Zavadskas et al. (2012) suggested the model based on weighted sum mode and weighted product mode:

$$ {A}_i=\lambda \sum \limits_{j=1}^m\left({x}_{ij}\times {q}_j\right)+\left(1-\lambda \right)\prod \limits_{j=1}^m\left({x}_{ij}\times {q}_j\right) $$
(48)

where the value of λ was equal to 1 (Zavadskas et al. 2012) and each method with higher value for Ai is better ranked.

2.4.5 Borda method

When different multi-criteria decision models are used, they may assign different ranks to each method. Thus, it was important to select the best method, based on the computed ranks of different models for each method. First, each method based on its rank in each multi-criteria decision model had an initial score. This score for each method equaled the difference between the total number of methods with assigned rank number and that method by a multi-criteria decision model. For example, there were n = 6 methods in a study. If the rank of one method was 1 in a multi-criteria decision model, its score would be 5 (or n - 1), the method with rank 2 would score 4 (or n - 2), and the worst method would have 0 (or n - n) score. Then, different scores of each method in different multi-criteria decision models were summed with each other to determine the best method.

3 Results and discussion

Table 1 shows the sensitivity analysis for all algorithms. The best population size for the kidney algorithm was 50 and α = 0.50. The population size for shark algorithm was 50 with M = 30 and α= 0.6. The population size for the bat algorithm was 50 and the maximum frequency and loudness were, respectively, 5 and 0.60. Other parameters can be seen in Table 1. For example, the crossover and mutation probabilities for the genetic algorithm were 0.50 and 0.60, respectively.

Table 1 Sensitivity analysis for different algorithms a: kidney algorithm, b: shark algorithm, c: bat algorithm, d: particle swarm algorithm, e: genetic algorithm and f: weed algorithm

Table 2 shows ten random results for all the investigated algorithms. The value of objective function for 10 runs of KA was 0.789 and it decreased the objective function by 44%, 28%, 55%, 54 and 52% compared to BA, SA, GA, PSA and WA, respectively. Also, the coefficient of variation for KA was 26, i.e. 2.5, 36, 2.6 and 25 (ratios) smaller than BA, SA, GA, PSA and WA, respectively. Thus, the results for KA based on one program run were reliable, since the coefficient of variation was small for this algorithm. Also, the LINGO software, an engineering optimization algorithm, was used for evaluating the different algorithms (Lingo.8. 1997) because the solution of LINGO based on nonlinear programming method can be close to the global solution. The average KA solution was 0.99 of the one found by LINGO. This value resulted based on the ratio of 0.785 (average solution for KA) to 0.789 (LINGO solution). Of course, the computed solution based on LINGO and nonlinear programming due to the high match with the global solution was considered as the global solution and all algorithms were compared with this solution. This ratio was 0.55, 0.70, 0.43, 0.44 and 0.47 for BA, SA, GA, PSA and WA, respectively. The computational time for the KA was 34 s and it was 3 s, 2 s, 4 s, 6 s and 3 s less than those for BA, SA, GA, PSA and WA, respectively. Thus, it was observed that:

  1. 1-

    KA provided the least value for the objective function

  2. 2-

    KA provided the least value for the coefficient of variation

  3. 3-

    KA provided an average solution close to the global solution

  4. 4-

    GA provided the worst or most value for the objective function

Table 2 10 random results for different algorithms

Table 3 shows results of performance indexes for all evaluated algorithms. The least value of RMSE was for the KA (2.12 × 106 m3) and the RMSE for the KA was 74%, 61%, 68%, 33 and 54% less than those for GA, SA, WA, BA and PSA, respectively. In fact, the released water volume for the KA had good match with the demands. The greatest value of the reliability index was also for KA (95%). The reliability index for the KA was 50%, 18%, 41%, 8 and 42% higher that those for GA, SA, WA, BA and PSA, respectively. It means that the released water volume based on KA could supply the demand better than the other methods. BA provided the best value of resiliency (46%) whereas the resiliency for KA was 44%. The ability of the system to recover from failures (critical periods), i.e., the resiliency for the BA was 2% more than that of KA and meaning that the system based on BA can recover itself faster than if it is based on other evolutionary algorithms. Also, KA yielded better objective function than the other methods and SA had the least value for MAE (1.45 × 106 m3). The MAE based on KA was 48%, 34%, 35 and 48% less than those from GA, WA, BA, and PSA, respectively. KA, with a value of 0.89, had the best NSE index. Thus, it can be seen that different methods provided different conditions, based on the different indexes used. High reliability or low vulnerability is important but the best method should also satisfy other indexes. Although the kidney algorithm had more favorable indexes, the multi-criteria decision helped to make a better decision for model selection. Garousi-Nejad et al. (2016) studied this dam based on the firefly algorithm (FFA). The average value for the FFA was 3.60 while the average value from the present study and KA was 0.789 and signifying that the KA performs better for minimizing the objective function. Also, the standard deviation for the KA was 0.0008 while the parameter for the FFA was 0.06. The number of functional evaluation for the KA from the present study (Fig. 9) was 10,000 while it was 20,000 for the FFA. Thus, the Kidney algorithm can optimize the objective function with higher quality and faster than FFA.

Table 3 Computed indexes based on different methods

Table 4 shows different ranks for the methods based on the multi-criteria decision models. For example, COPRAS suggested a rank of 1 for BA and of 2 for KA, while TOPSIS suggested a rank of 1 for KA and of 3 for BA. Such conditions were seen for different methods in different multi-criteria decision models. It is obvious that relying on COPRAS and TOPSIS to attain a solid conclusion on the best model performance is unclear and undistinguishable, therefore, there is a need to find out more proper method for evaluating the model. In this context, a model able to consider different indexes and multi-criteria decisions could be more effective to judge the performance achieved from the optimization models in more adequate procedure and satisfactory routine in order to implement proper comparison process. In fact, a major weakness of the previous literature is related to the evaluating of different methods based on limited indexes such as objective function, computational time or coefficient of variation while the present article gives a good insight for the water engineers on how to conduct accurate evaluation of the different evolutionary algorithms.

Table 4 Computed scores of different methods based on multi criteria decision models

The usefulness of Borda method is that its aptitude to provide particular score based the examined index for each algorithm and therefore, the summation of all scores based all indexes for particular algorithm is the final score. Subsequently, sorting the attained score for each algorithm is the basic value for comparison among the examined algorithms. The comparison procedure is simply carried out as the higher value of the score reflects the higher rank order of the algorithm. Table 5 shows ranks calculated for the different methods and it is seen that KA with a score of 18 was the best among the other algorithms. On the other hand, it could be observed that the second best is the BA and worst is GA.

Table 5 Computed scores based on Borda index and final rank for different methods

Figure 8 shows the correlation of the predicated ranks as presented in Table 5 between the Borda and the other different models. It could be depicted that M-TOPSIS entirely completely matched with the decision index attained using Borda model. On the other hand, both COPRAS and WASPAS models had the lowest correlation value with the Borda index. Thus, the findings from the current study show that the kidney algorithm can be a good selection for optimization dam and reservoir operation problems. Objective function value and computational time as well as different indexes such as RMSE or MAE showed good results when compared to other algorithms often used in the literature like WA, GA, etc. Another aspect was the use of different multi-criteria decision models, which have not comprehensively appeared in past studies for solving similar problems.

Fig. 8
figure 8

Correlation of predicated ranks between Borda and a COPRAS; b TOPSIS; c M-TOPSIS; and d WASPAS

Figure 9 shows the convergence of the different algorithms and indicates that the kidney algorithm converged earlier than the other evolutionary algorithms. Also, the maximum and minimum solutions had converged to each other well (see Fig. 9b) revealing the high performance of kidney algorithm. In fact, while utilizing certain optimization algorithm, in case that the mean, average and maximum convergence procedure to the optimal solutions have the identical convergence pattern and same end value of the objective function, it indirectly means that the used optimization algorithm experienced the fastest convergence rate achieving the optimal solution. In addition, as shown in Fig. 9b, it could be observed that three convergence procedure are almost identical when examine the KA, the small value of the variation shows the superiority of KA compared to the other algorithms.

Fig. 9
figure 9

a Convergence of the different algorithms; b Convergence of kidney algorithm

Figure 10 shows the water release and storage for the three best methods. It is clear that the water release and storage were within the permissible bounds so they did not violate the maximum water release and reservoir storage. Also, the average water release and storage were 12.74 MCM and 98.89 MCM for the kidney algorithm, respectively. The water release for KA was 15% more than the one for WA, which provided the least release. The less released water volume for the other algorithms (BA, PSA, SA and WA) increased the value of RMSE and vulnerability and decreased the volumetric reliability and resiliency indexes because a less percentage of demands were supplied by the algorithms. The practical aspects of the present study show that engineers should consider different factors for the managing water resources. The application of one mathematical model based on some limited indexes may not guarantee good results.

Fig. 10
figure 10

a Release (MCM) and b storage (MCM)

4 Conclusions

Water resource management is an important research field for engineers. The optimal operation of reservoirs is one of the most studied topics in the water resource management field. The current study dealt with irrigation reservoir operation optimization by means of the new evolutionary KA algorithm. KA is based on advanced operators such as filtration and reabsorption in order to search for the best solutions. The results showed that average objective function values and computational time for KA were all less than those found by GA, SA, WA, BA and PSA. Previous research considered limited indexes for the selection of the best models while this article considered different multi-criteria decision models to give a rank based on different indexes. Although, the KA had the highest rank based traditional performance indices, more comprehensive evaluation method has been applied to help in identifying the selection of the best performance model. In this context, Borda method was applied and showed that the KA had the best performance achieving the first rank among other models. In fact, the current study showed that KA outperformed the other algorithms and overcome their drawbacks to generate optimal operation rule for reservoir system and decision making aspects. Future researches may consider the reservoir operation based on the KA and coupled with reservoir inflow uncertainties and evaporation losses especially for reservoir systems in arid region to obtain more comprehensive optimal release policy from the reservoir system,