# A Gradient-Based Cuckoo Search Algorithm for a Reservoir-Generation Scheduling Problem
## 1 Introduction  
The penetration of renewable power generation has increased substantially in recent years [1]. The use of renewable energy such as wind power and hydropower can reduce greenhouse gas emissions from fossil fuels. Wind power is one of the fastest-growing sources, however it is uncertain and cannot be scheduled due to its intrinsic dependence on varying weather conditions over many years [2, 3]. Solar power is less uncertain, but has higher variability compared to wind power [4]. Unlike wind energy, hydropower can be scheduled and has already played an important role in electricity supply all over the world. The long-term hydropower-generation scheduling (LHGS) of cascade reservoirs is of great importance to improving power grid stability. A suitable scheduling scheme can effectively increase the economic benefit of cascade reservoirs. The purpose of LHGS is to determine the water release of all reservoirs in a time period in order to maximize the benefit [5]. Many studies have been carried out [6, 7, 8] indicating that the LHGS is a non-linear and non-convex problem with very complicate constraints including water balancing, hydraulic connection, water-level limitations, water-release limitations and output capacity limitations [9]. In order to solve this problem, classical studies have taken many kinds of approaches, including dynamic programming(DP) [10; 11], linear programming (LP) [12; 13], the progressive optimality algorithm (POA) [14; 15], and discrete differential dynamic programming (DDDP) [16; 17]. However, these methods have their own shortcomings in dealing with the problems of large-scale cascade reservoirs [18]. In recent years, meta-heuristic algorithms have been popular in the search for a global optimum in non-convex problems [19]. Metaheuristics and their applications have wide application in artificial intelligence, e.g., water-distribution systems [20], transit network design problems [21], reservoir-operation optimization [22], and so forth. Many metaheuristics have included some form of stochastic optimization, so the searching efficiency is affected by the set of random variables generated [23]. By searching over a large numbers of feasible solutions, metaheuristics can often find good solutions near to the optimum solution with less computational effort [24]. Cuckoo search (CS) is one kind of metaheuristics developed by [PERSON] and [PERSON] in 2009 [25]. It was inspired by the behavior of some cuckoo species by laying eggs in the nests of other host birds. Compared to other artificial intelligence algorithms such as the genetic algorithm (GA) [26] and particle swarm optimization (PSO) [27], CS has the characteristics of higher solution quality, shorter computational time, and higher success rates [28]. It has been applied to various optimization problems. For example, [PERSON] et al. introduced it for the analysis of linear feedback shift register-based cryptosystems [29], [PERSON] et al. used CS for the cryptanalysis of vigenere [30], [PERSON] et al. used CS for intrinsic discriminant analysis-based face recognition [31]. Although CS has shown its advantages and has wide application in many areas, it still has some drawbacks. Proper computational time cannot be guaranteed in large-scale systems [32]. In this paper, some improvements are proposed to the original CS using four strategies: (1) a dynamic parameter adjustment of the parameter; (2) a boundary value perturbation strategy for boundary value adjustment; (3) a differential strategy for Levy flight; (4) a different way to update solutions. When applying CS to the LHGS problem, we find that the converge speed and the results are not satisfactory. What's more, solutions generated by a random search have the characteristic of large fluctuations in water level. Thus, a gradient strategy is designed especially for the LHGS problem. This gradient strategy improves the local search ability of the algorithm by fine-tuning the water level process.