OPT-i An International Conference on Engineering and Applied Sciences Optimization M. Papadrakakis, M.G. Karlaftis, N.D. Lagaros (eds.) Kos Island, Greece, 4-6, June 2014
DEVELOPING A HARMONY-BASED OPTIMIZATION TOOLBOX: APPLICATION ON RENEWABLE ENERGY PRODUCTION. Ioannis Kougias1 , Diamantis Karakatsanis2 , Apostolos Malatras3 and Nicolaos Theodossiou4 1 EC
Joint Research Centre, Institute for Energy and Transport, Renewable Energies Unit, 21027 Ispra (VA), Italy e-mail:
[email protected]
2,4
Aristotle University of Thessaloniki, Department of Civil Engineering Division of Hydraulics and Environmental Engineering, 54124 Thessaloniki, Greece 2 e-mail:
[email protected] 4 e-mail:
[email protected] 3
EC Joint Research Centre, Institute for Protection and Security of the Citizen, Digital Citizen Security Unit, 21027 Ispra (VA), Italy e-mail:
[email protected]
Keywords: Metaheuristics, Harmony Search Algorithm, Optimization Toolbox, Renewable Energy, Hydropower Optimization. Abstract. The present study aims to develop a problem-independent, generic optimization toolkit applicable to engineering optimization problems. The authors designed a program in MATLAB environment, using a Harmony Search Algorithm (HSA) in its core. A Java-based Optimization Toolkit has also been developed, taking advantage of the inherent features of object-oriented Java. Both programs allow for optimization using the HSA, which is a recent development among metaheuristics, inspired from the music creation process. Since its presentation in 2001, HSA has attracted the interest of those involved in the optimization field and thus has been successfully applied in different implementations. HSA was initially designed to optimize urban water distribution networks. Since then its application has has expanded to a remarkably wide range of scientific disciplines. Although the authors’ intention is to address water engineering, hydroelectric energy production and renewable energy related problems, the created tool is generic and can be applied to any scientific field. In section 2 the authors present the up-to-date related work i.e. recent approaches in developing tools to facilitate optimization processes. The architecture of both Toolkits is presented in detail along with the main characteristics of the programs in Section 3. In Section 4 a renewable energy production problem is optimized using HSA Toolkit. This problem deals with maximizing the benefits derived from electricity production of a mini-scale hydroelectric station in a rural area. The successful convergence to best management practices proves that in addition to being user-friendly, the created tool is also very effective.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
1
INTRODUCTION
During the second half of 20th century, metaheuristics have attracted the interest of researchers, scientists and engineers trying to find optimal solutions for their problems. Research concerning algorithmic design and structure developed in parallel to the introduction of new optimization techniques. Most of the metaheuristic algorithms imitate natural or artificial procedures in order to carry out their internal search process. Music composition inspired Geem et al. [?] to introduce Harmony Search Algorithm (HSA). Initially, HSA was applied in urban water systems. Since then, there has been sustained and increasing interest in HSA applications. In the current literature, except from water engineering optimization problems, HSA has been used on a vast variety of implementations [?]. The reason for the wide use of HSA is that it combines efficiency with the extra advantage of having a simple structure. As already mentioned, HSA was inspired by the way a musician plays within a music group. During a concert, a musician has different choices: • To play the known melody of the song. • To slightly change the melody, by enriching the piece with notes never played before. • To start an improvization by selecting new note sequences. HSA is imitating the aforementioned choices and uses them in order to optimize a specific problem. First of all, the Algorithm fills the Harmony Memory with random values. HSA applies its three procedures in every iteration. HSA belongs to the category of ”neighborhood metaheuristics” that produce one possible solution per iteration. The algorithm ends when the predefined total number of iterations has been achieved. The absence of a generic HSA-based optimization tool has led to the creation of ad hoc programs. Each of these programs corresponds to the specifics of each problem and application. However, this is not only time-consuming but also imposes barriers to users with limited programming skills. In the present paper, the authors present HSA Toolkit, a user-friendly optimization tool. The main purpose of HSA Toolkit is to overcome the aforementioned barriers and provide an interface, where the user will be able to input the objective function and the constraints in normal mathematical formula, in an easy, fast and effective way. 2
RELATED WORK
There exists a great variety of optimization toolkits and frameworks aimed at supporting end-users and researchers alike in conducting optimization experiments and analyzing their results. This variety is attributed to the plethora of available optimization algorithms, as well as to the diversity of the problems to which these algorithms are applied. In particular, different configuration parameters for each of the considered algorithms and a problem-specific scope that reflects lack of conformity in regards to the definition of constraints and goals, both motivate the large number of available optimization toolkits. As far as optimization is concerned, the seminal work presented in [?] validated that there is no optimal solution for all types of problems and that the performance of each algorithm greatly depends on the considered problem. Accordingly, for an optimization toolkit to be rendered broadly useful, a major functional requirement is its generality in terms of its support for various optimization algorithms. Additionally, other requirements include extensibility in supporting additional and possibly new algorithms and problems, portability in regards to its operational environment and usability in that it should be user-friendly [?].
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
Early approaches in developing solutions to facilitate optimization processes mostly considered high-level programming interfaces (APIs) that would enable users to built their own optimization tools. Accordingly, PSOt [?] is a MATLAB-based Particle Swarm Optimization (PSO) toolkit that includes a suite of targeted custom function calls and low-level commands. The lack of flexibility and the narrow focus of this toolkit hinder its wide applicability, nevertheless other similar approaches were also proposed. Indicatively, PSOTS [?] is a SciLab toolbox with a Tcl/Tk interface that aims at single- and multi-objective optimization and in particular exploits PSO variants, OPT++ [?] is a C++ library for nonlinear optimization, whereas the ParadiseEO [?] software framework provides a generic C++ API for multi-objective metaheuristic algorithms with the goal of supporting minimal programming on behalf of the users and a reusable design. Evidently, such approaches require a programming background and significant efforts from the users, while additionally aspects such as extensibility and generality are difficult to achieve using these interfaces. Accordingly, works such as pyOPT [?] (Python-based object-oriented framework for nonlinear constrained optimization) and PISA [?] (generic interface for search algorithms) identified the previously mentioned limitations and proposed generic interfaces to support optimization processes independently of the underlying platforms and programming languages. Moreover, the considered decoupling of optimization constraints from application-specific formulations compensates to a great extent the lack of extensibility of such approaches. The work by Fang and Horstemeyer [?] goes one step further in this direction by introducing a generic API for all multi-objective optimization problems with the goal of reducing the need for user programming. While both the object-oriented approach undertaken and the measured performance (less than 8% additional optimization time compared to hard-coded, optimizer-specific solutions) are promising, this work suffers from the fact that it does not actually achieve its goal and users need to be savvy in programming to perform optimization tasks. To alleviate such concerns, GUI-based (Graphical User Interface) solutions were introduced in order to hide and abstract the complexity of optimization algorithms from the users and allow them to focus only on the functional behavior of these algorithms. The first generation of graphical optimization toolkits consisted of algorithm- or problem-specific solutions that lack generic nature. In this line of work, TSPAntSim [?] is a web-based optimization software with a narrow focus on using Ant Colony Optimization (ACO) as the optimizer and on solving problems that are based on the Traveling Salesman Problem (TSP). While it is modular and extensible due to its object-oriented Java-based implementation, its scope is very limited to be widely used. Another object-oriented toolkit for optimization is iOpt [?], which separates presentation from program logic by making use of the Model-View-Controller (MVC) software pattern to present an interactive GUI that allows constraint-based problem modeling and optimization. Despite the fact that this work lacks experimental evaluation, it was one of the earliest developments of GUI-based optimization toolkits together with commercial systems such as VisualDOC [?], which provides a wealth of features, e.g. third party tool integration, database backend, variety of supported algorithms (Genetic Algorithms, Evolutionary Algorithms, PSO, Gradientbased optimization), albeit at a high cost and requiring excess computational resources. Further GUI-based optimization toolkits include EVA2 [?] (Java-based, client-server optimization framework for evolutionary metaheuristic algorithms), OPT4j [?] (modular metaheuristic optimization framework), I-EMO [?] (optimization tool for genetic algorithms supporting their parametrization and results’ visualization) and HeuristicLab [?] (optimizer-independent and highly modular and extensible optimization environment supporting a great variety of evolutionary algorithms, such as ACO, PSO and Simulated Annealing), while it should be noted that
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
this listing is not meant to be exhaustive. Recently, more advanced toolkits emerged that have extended functionality and address the majority of the aforementioned requirements. In this respect, jMetal [?] is a Java-based multiobjective optimization framework that supports a variety of evolutionary optimization algorithms and its object-oriented design and implementation inherently allow for code reusability, extensibility and modularity. Moreover, it provides benchmark tests and quality indicators for performance assessment of various algorithms over a series of problems. A drawback of this framework is its lack of interactivity and the minimal support for decision-making, two aspects which are the focus of the toolbox presented in [?]. The latter involves users in the process of deciding on the optimal solution (also seen in the HuGS middleware platform [?] that supports rapid prototyping of optimization systems) by means of a MATLAB-based GUI, but suffers from poor execution time compared to C/C++ based solutions and currently only supports a small number of evolutionary algorithms with limited extensibility. However, the fact that it allows for interactive, real-time optimization is a highly desirable feature. A similar approach is followed by the µGP evolutionary optimization toolkit [?] that is built using C++, but provides no GUI to end users and utilizes cumbersome XML configuration files to introduce problem constraints and algorithmic parameters. Its key feature is the fact that it involves end users in the optimization process by allowing them to set real-world constraints and thus guide the process towards the optimal solution. One of the most interesting and comprehensive opensource software environments for optimization is LiGer [?]. It comprises a visual programming language that enables users to design their optimization problems as workflows, the execution of which yields the optimal solution. This Qt-based environment is quite extensible and has a focus on evolutionary optimization. Nonetheless, the latest prototype provides limited support for optimizers, namely differential evolution and PSO. Having examined the related literature as far as toolkits for optimization are concerned, we identified the major functional requirements to take into account in our proposed toolkit. In this respect, extensibility, generic nature both in terms of optimizers and problem definition, portability, efficiency and usability are the key elements of our toolkit. In the following section we describe in detail the design and implementation of our toolkit. 3
HSA OPTIMIZATION TOOLKIT
One of the main driving factors behind the development of our toolkit was to programmatically support the HSA algorithm by means of a GUI-based software framework, since to date there has been no similar effort. Another design goal was to be able to support a variety of problems, namely by allowing the unrestricted definition of variables and constraints. Evidently, the focus of the toolkit should not be on a sole algorithm since as mentioned in Section 2 there is no ideal optimizer targeted at all types of problems. In this respect, the first version of our toolkit was built using MATLAB to benefit from its increased performance in dealing with advanced mathematical computations and it considered only HSA and certain variations of it for optimization. In its second version, the toolkit was ported to Java to benefit from its inherent portability and extensibility and the possibility to include further optimizers was additionally integrated. The combination of both toolkits promotes flexibility and allows users to select the optimal one for their needs.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
3.1
MATLAB-based HSA Optimization Toolkit
The core functionalities and benefits of MATLAB in efficiently performing large-scale computations and calculcations has led to its wide use in optimization problems. MATLAB itself supports optimization through the Optimization Toolbox [?], whereas many research works seen in the previous section have also utilized the facilities that MATLAB has to offer to build optimization toolkits. Accordingly, we designed and developed a software environment to define and solve optimization problems using the HSA optimization algorithm. To the best of our knowledge, this is the first effort of the kind to support the HSA algorithm. The toolkit allows for parametrization of the algorithm using an interactive graphical environment, for the definition of problem constraints and of the objective function, as well as the visualization of the results regarding the discovered optimal solution.
Figure 1: Architecture of the MATLAB-based HSA Optimization Toolkit.
Figure 1 presents the architecture of the MATLAB-based HSA Optimization Toolkit. All functional components of the toolkit are built on and make use of MATLAB function calls for their operation. The Optimization Toolkit GUI is the entry point for the users and the main component from which the optimization process commences. Subject to the users having entered the desired algorithmic parameters, the objective function and problem constraints, there exist dedicated components to handle these variables. In particular, the Constraint Handler is in charge of parsing the constraints, while the Parameter Handler is responsible for parsing the parameters. Both constraints and parameters are marshalled into data objects to be passed to the Algorithm Engine component of the toolkit. The latter component is fundamental in invoking the user-defined HSA variation and performing the actual optimization process according to the received constraints and parameters. Assuming successful completion of the optimization process, the Solution Finder component collects the list of results and displays it to the user.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
Figure 2: Main view of the Graphical User Interface of the MATLAB-based HSA Optimization Toolkit.
The user interface of the toolkit is based on the established Model-View-Controller paradigm [?], therefore separating the internal representation of information to the actual presentation of the information to the users. As illustrated in Figure 2 the user is given the option to modify the values for the key parameters of the HSA algorithm. Moreover, the user enters the definition for the objective function to be optimized, as well as the constraints to be taken into account during the optimization process. The current implementation supports 3 variations of the HSA in regards to the handling of variables’ values according to constraints, out of which the user needs to select the active variation to be applied for optimization. The three variations that we consider include: • HSA by choice: in this case both the harmonic memory and every new harmony are assigned values that strictly adhere to the constraints, thus averting the use of values that do not respect the constraints. • HSA by penalty: in this case there is no restriction in considering values for the harmonic memory and every new harmony can assume values that negate the constraints. However, their evaluation as far as the objective function is concerned is subject to a penalty. • HSA by range: in this case the constraints are completely ignored and the different variables are assigned random values from within a range of values arbitrarily defined by the user.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
It should be noted that the toolkit also allows to display and optionally store the results of an optimization process. The latest version of the HSA Optimization Toolkit is a software of around 7000 lines of code and requires a MATLAB Compiler Runtime for its execution. While its performance is quite promising (execution time in the case study of Section 4 was less than 1min.), the toolkit suffers from a limited scope in terms of the considered optimization algorithms. Moreover, the MATLAB-based implementation hinders extensibility in incorporating novel optimizers and modifying aspects of the toolkit. These kind of limitations motivated our work on expanding the presented HSA toolkit into an enhanced Java-based Optimization Toolkit. 3.2
Java-based Optimization Toolkit
Our Java-based Optimization Toolkit builds on the aforementioned architecture and takes advantage of the inherent features of object-oriented Java to promote modularity, extensibility and generality [?]. Java, through its cross-platform JVM (Java Virtual Machine) that is used as an execution platform for programs, is interoperable and quite extensible, thus making it an ideal candidate for our toolkit in supporting the integration of novel optimization algorithms. Moreover, through the JNI (Java Native Interface) feature it allows for utilization of code from other languages, e.g. C, C++, MATLAB. This fact when taken into account together with the inherent modularity of Java, clearly facilitates the (re-)configuration of the toolkit. Lastly, whereas Java might not have the same computational efficiency as MATLAB-based or C-based implementations, its underlying memory model supports parallelism and concurrency thus promoting performance in terms of fast processing time. Additionally, the automatic memory management of Java provides reliability especially when also considering its sandbox execution mode and the safety checking of the bytecode.
Figure 3: Architecture of the HSA Optimization Toolkit.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
Figure 3 describes the extended architecture of the toolkit, where the differences compared to the first version are evident. It needs to be underlined that the Java-based Optimization Toolkit provides the base functionality of the MATLAB-based HSA Optimization Toolkit, which it extends to include a series of novel functional features, namely the incorporating of more optimization algorithms, the support for benchmark suite tests to be performed, as well as a dedicated storage repository for the management of related data and results. The Optimization Toolkit component is the main element of the architecture and its functionality involves invoking the GUI for the user to interact with the toolkit, as well as to manage the user interaction. There exist two options as far as optimization processes are concerned: • Standard optimization problem: similarly to the majority of existing optimization toolkits and our previous work, this option allows the users to first select their desired optimization algorithm, define the problem (objective function, constraints, algorithmic parametrization) and subsequently solve it. • Test suite: in this case the user can decide to perform a test suite over an optimization problem, i.e. conduct comparative experiments for a series of optimization algorithms to assess their performance and compare the results. The Optimization Engine component is responsible for the former option, whereas the Suite tester component for the latter one. As can be seen in Figure 3, the Optimization Engine is the core component in charge of the optimization process. The Suite tester actually operates by sequentially calling distinct instances of the Optimization Engine, one for each of the algorithms to be compared. Internally, the Optimization Engine has a dedicated component, the Manager, to control the optimization process. First, the constraints are parsed by the Constraint Handler, followed by the parsing of the parameters by the Parameter Handler. The selection of the appropriate optimization algorithm (e.g. HSA, ACO, PSO, SA, etc.) according to user selection is the task of the Algorithm Engine component. It takes as input the generic algorithmic parameters and converts them to a format suitable to the corresponding optimizer. Accordingly, the optimizer logic is invoked to commence the problem optimization, the results of which are passed on to the Solution Finder component that wraps them up in a unified format and returns them to the Optimization Engine Manager. Results are displayed to the user through the GUI, while additionally they can be stored in the persistent Data Repository using the functionalities offered by the Storage Manager. The latter is also used to retrieve past results, as well as to derive statistical properties of results stemming from test suites. The Java-based Optimization Toolkit is under development and the initial versions of the prototype exhibit promising results in terms of performance and computational overhead. We are also working on building a generic JNI interface to facilitate the integration of third-party optimization algorithms with minimal user involvement to promote its usefulness and to ensure compatibility with other optimization toolkits.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
4
CASE STUDY
In the following the authors present the optimum management of a mini hydroelectric station using the HSA Optimization Toolkit. The aim of the process is to maximize the benefits gained by selling the produced energy to the national energy provider. 4.1
Studied Area
The optimization toolbox has been applied to a recently built hydropower dam in NorthWestern Greece. This dam was constructed in 2010 to cover water storage needs and contribute to the local energy production. This earth-fill type dam is located in a high elevation and collects the water run-off on Verno mountain (also known as Vitsi) in the North-Western part of Greece. The name of both the catchment and the adjacent rivulet that inflows to the reservoir is Ano Mela. Usually, such dam projects and the corresponding multi-purpose reservoirs are important parts of water resources management at the river basin scale, because they satisfy water needs in different sectors such as energy, drinking water and irrigation. Planning such projects requires their optimum management, while at the same time demonstrating their economic viability and beneficial returns during their lifetime [?]. In order to plan and design the hydropower project, the water flow of the rivulet that inflows to the dam has been observed and recorded for three consecutive years (1999-2002). The flow varies significantly throughout the year (Figure 4) and during the summer months it becomes very low. Naturally, the dam is being filled with water during the high-flow period (DecemberFebruary) and contributes to the local needs during summer, when the flow is minimized (JulySeptember). Considering that the active storage of the reservoir is 140.000m3 , the average water flow that the reservoir contributes during the low-flow period is 0.02m3 /sec. Respectively, during the high-flow period an equal water flow is filling the reservoir and serves for water storage purposes.
Figure 4: Mean Monthly Inflow to Ano Mela Reservoir
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
4.2
Environmental Flow
Apart from economic considerations, water managers should also concern themselves with the environmental protection. This approach, the integrated water resources management at catchment scale, combines economic issues together with technical reliability in order to meet environmental and social objectives. Environmental Flow (EF) is a very important factor for the sustainability of the ecosystem. The EF regimes reflect the volume of water that the ecosystem needs for its own functionalities. Its determination secures healthy river ecosystems. Specifically, the Environmental Flow answers the following question: Up to what extent can the flow of a river change in terms of natural hydrological features and water resources management for human use, maintaining at the same time important ecological features of the river? [?] Environmental legislation usually defines simplistic, static EF rules to resolve pressures on river ecosystems. Some scientists argue that this approach is misguided and might ultimately contribute to further degradation of the ecosystems [?]. In their recent work [?] the authors estimated a uniform value for the Environmental Flow of Ano Mela rivulet equal to 0.07m3 /sec, according to the current legislation. 4.3
Optimum operation of the Hydroelectric Station
The designed hydroelectric station has a Power capacity of 120kW and is classified as a mini-scale hydropower project [?]. The turbine type is Crossflow and the available Hydraulic Head is 20m. Considering a typical value of the turbine’s efficiency equal to 85%, the design maximum discharge is equal to: Qmax = 0.72m3 /sec. 4.3.1
Water Availability
The optimum reservoir management involves the best use of the available stored water. However, as shown in Figure 4, the available water quantities vary significantly throughout the year. The minimum discharge appears in September, being as low as QSep = 0.05m3 /sec. Comparing September’s available discharge with the minimum flow necessary for ecological conservation (i.e. the Environmental Flow EF = 0.07m3 /sec) it is evident that the available water can not cover the ecological needs. Thus, in September the whole amount of the rivulet’s flow increased by the stored water flow (Q = 0.02m3 /sec) will be exclusively used for ecological conservation. As a result during September the hydroelectric station will remain idle. In Table 1, the average monthly water availability is presented in detail. The second column corresponds to the average rivulet’s Inflow to the reservoir. The third column illustrates the necessary water amount for ecological conservation (EF regimes). The fourth column shows the water flow that contributes to water storage (negative sign) or the amount of stored water that is being consumed (positive sign). The last column refers to the total flow, available for hydroelectric energy production.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
Month October November December January February March April May June July August September
River’s Inflow Env. Flow Stored Water 0.22 -0.07 0 0.30 -0.07 0 0.40 -0.07 -0.02 0.50 -0.07 -0.02 0.425 -0.07 -0.02 0.30 -0.07 0 0.22 -0.07 0 0.12 -0.07 0 0.1 -0.07 0 0.1 -0.07 +0.02 0.08 -0.07 +0.02 0.05 -0.07 +0.02
Total 0.15 0.23 0.31 0.41 0.335 0.23 0.15 0.05 0.03 0.05 0.03 0
Table 1: Monthly Water Availability (m3 /sec)
4.3.2
Energy Prices
The objective of the optimization process is to maximize the benefits gained by energy production. The created model optimized by HSA Toolkit, aims to maximize energy production using the available water quantities (Table 1 – column 5). In this respect, a highly-important factor is the energy pricing pattern. Accordingly, it is desirable to maximize the production at the period of the day that the energy prices are higher and minimize the production when energy is sold in lower price. Thus, the reclamation of the available resource (water) will result in increased economic benefits. Energy prices mainly depend on the demand and they fluctuate during the hours of the day. There is also an additional, seasonal alteration of the energy prices that depends on the different demand patterns between summer and winter periods. These fluctuations are illustrated in Figure 5.
Figure 5: Summer and Winter hourly electricity prices used in the analysis
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
Summer pricing is applied to five months (from May to September), whereas during the rest of the year the winter tariff is being applied. It is interesting to note that according to Table 1, water availability is identical in some months: i. October – April: 0.15m3 /sec ii. November – March: 0.23m3 /sec iii. May – July: 0.05m3 /sec iv. June – August: 0.03m3 /sec Coincidentally, equal monthly water availabilities also correspond to equal pricing policies (the first two to the Winter tariff and the second two to the Summer one). Obviously the optimum management for these months will be the same. In other words, since the available water and pricing policy is the same for October and April, the optimization process will converge to identical solution for both months. 4.4
Results: Optimization using HSA Toolbox
The authors have chosen a time step for the optimization process equal to 4 hours. As a result the inflow to the hydroelectric station will change six times every day in order to maximize the benefits. This decision was taken based on the following reasons: • Hydropower stations need time to adapt to flow changes. • The shape of the pricing curves can be sufficiently represented in 6 steps. • Keeping the optimization problem simple results in improved performance. Initially, the parameters of each month/period have been inserted to the HSA Toolkit. These included the different water flows, the energy tariff of the consecutive period and the constraints (e.g. non-negative values of flows). After executing several runs for each period, HSA Toolkit detected the best management practices. These practices suggest small variations in the operation of the hydroelectric station. Hence the water discharge (Q) that runs the turbine will gradually change throughout the day, thus increasing daily benefits. This optimum management strategy suggests small flow fluctuations for several months. Especially for the period between December and February, the flow that runs the hydro-turbine is almost uniform. This is illustrated in Figure 6 and can be explained by considering that in these months the energy production is higher and the cost tariff smoother. However, in the period between April and October the HSA Toolkit suggests significant water flow changes throughout the day. This is explained by the fact that these months have a lower water availability and subsequently a lower energy production. Thus, due to the reduced energy production, energy prices and tariff structure play the major role in maximizing the benefits. That is why the curves in Figure 6 clearly correspond to one peak demand, maximizing water flow (and subsequently the energy production) during the hours with maximum energy consumption. Taking into account the tariff schemes of Figure 5, the annual revenues from renewable energy production are e 9308.1. Thus, the proposed management using HSA Toolkit results in increased benefits.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
Figure 6: Hourly variation of water flow to the Hydroelectric station
5
CONCLUSIONS
From the analysis presented, it is obvious that HSA Toolkit is effective and can be easily used for the solution of complex engineering problems. Its user-friendly environment, along with the good performance and the graphical results make it a very useful tool. The under-development Java tool promises to further improve these characteristics. Including other Harmony Search variants in the same tool (e.g. Global Best HSA - Figure 1) will offer the ability to compare solutions obtained by different algorithms and locate global optimum solutions. The authors believe that the more complex the problems to be optimized, the more intense the necessity to use user-friendly, efficient programs such as the HSA Toolkit. REFERENCES [1] Z.W. Geem, J.H. Kim, and G.V. Loganathan. A new heuristic optimization algorithm: harmony search. Simulation, 76(2):60–68, 2001. [2] I. Kougias and N. Theodosiou. A new music-inspired harmony based optimization algorithm. theory and applications. In International Conference On Protection and Restoration of the Environment X, Corfu, 2010. [3] D.H. Wolpert and W.G. Macready. No free lunch theorems for optimization. Evolutionary Computation, IEEE Transactions on, 1(1):67–82, Apr 1997. [4] B. Houska, H.J. Ferreau, and M. Diehl. Acado toolkit. an open-source framework for automatic control and dynamic optimization. Optimal Control Applications and Methods, 32(3):298–312, 2011. [5] B. Birge. Psot - a particle swarm optimization toolbox for use with matlab. In Swarm Intelligence Symposium, 2003. SIS ’03. Proceedings of the 2003 IEEE, pages 182–186, April 2003.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
[6] Qi Rui, Hu Baogang, and P.H. Cournede. Psots: A particle swarm optimization toolbox in scilab. In Open-source Software for Scientific Computation (OSSC), 2009 IEEE International Workshop on, pages 107–114, Sept 2009. [7] J.C. Meza, R.A. Oliva, P.D. Hough, and P.J. Williams. Opt++: An object-oriented toolkit for nonlinear optimization. ACM Trans. Math. Softw., 33(2), June 2007. [8] A. Liefooghe, M. Basseur, L. Jourdan, and E.G. Talbi. Paradiseo-moeo: A framework for evolutionary multi-objective optimization. In Proceedings of the 4th International Conference on Evolutionary Multi-criterion Optimization, EMO’07, pages 386–400, Berlin, Heidelberg, 2007. Springer-Verlag. [9] R.E. Perez, P.W. Jansen, and J.R. Martins. pyopt: A python-based object-oriented framework for nonlinear constrained optimization. Struct. Multidiscip. Optim., 45(1):101–118, January 2012. [10] S. Bleuler, M. Laumanns, L. Thiele, and E. Zitzler. Pisa: A platform and programming language independent interface for search algorithms. In Proceedings of the 2Nd International Conference on Evolutionary Multi-criterion Optimization, EMO’03, pages 494– 508, Berlin, Heidelberg, 2003. Springer-Verlag. [11] H. Fang and M.F. Horstemeyer. A generic optimizer interface for programming-free optimization systems. Adv. Eng. Softw., 37(6):360–369, June 2006. [12] Aybars U. and Doˇ g an A. An interactive simulation and analysis software for solving TSP using ant colony optimization algorithms. Advances in Engineering Software, 40(5):341 – 349, 2009. [13] C. Voudouris, R. Dorne, D. Lesaint, and A. Liret. iopt: A software toolkit for heuristic search methods. In Proceedings of the 7th International Conference on Principles and Practice of Constraint Programming, CP ’01, pages 716–719, London, UK, UK, 2001. Springer-Verlag. [14] V. Balabanov, C. Charpentier, D. Ghosh, G. Quinn, and G. Venter. Visualdoc: A software system for general purpose integration and design optimization. In 9th AIAA/ISSMO Symposium on Multidisciplinary Analysis and Optimization, 2002. [15] M. Kronfeld, H. Planatscher, and A. Zell. The eva2 optimization framework. In Proceedings of the 4th International Conference on Learning and Intelligent Optimization, LION’10, pages 247–250, Berlin, Heidelberg, 2010. Springer-Verlag. [16] M. Lukasiewycz, M. Glaß, F. Reimann, and J. Teich. Opt4j: A modular framework for meta-heuristic optimization. In Proceedings of the 13th Annual Conference on Genetic and Evolutionary Computation, GECCO ’11, pages 1723–1730, New York, NY, USA, 2011. ACM. [17] K. Deb and S. Chaudhuri. I-emo: An interactive evolutionary multi-objective optimization tool. In Proceedings of the First International Conference on Pattern Recognition and Machine Intelligence, PReMI’05, pages 690–695, Berlin, Heidelberg, 2005. Springer-Verlag.
I. Kougias, D. Karakatsanis, A. Malatras and N. Theodossiou
[18] S. Wagner and M. Affenzeller. Heuristiclab: A generic and extensible optimization environment. In B. Ribeiro, R. Albrecht, A. Dobnikar, D. Pearson, and N. Steele, editors, Adaptive and Natural Computing Algorithms, pages 538–541. Springer Vienna, 2005. [19] J.J. Durill and A. Nebro. jMetal: A java framework for multi-objective optimization. Advances in Engineering Software, 42(10):760 – 771, 2011. [20] K. C. Tan, T.H. Lee, D. Khoo, and E. F. Khor. A multiobjective evolutionary algorithm toolbox for computer-aided multiobjective optimization. Systems, Man, and Cybernetics, Part B: Cybernetics, IEEE Transactions on, 31(4):537–556, Aug 2001. [21] G.W. Klau, N. Lesh, J. Marks, M. Mitzenmacher, and G.T. Schafer. The hugs platform: A toolkit for interactive optimization. In Proceedings of the Working Conference on Advanced Visual Interfaces, AVI ’02, pages 324–330, New York, NY, USA, 2002. ACM. [22] E. Sanchez, M. Schillaci, and G. Squillero. Evolutionary Optimization: The µGP Toolkit. Springer Science+Business Media, LLC, Boston, MA, 2011. [23] I. Giagkiozis, R.J. Lygoe, and P.J. Fleming. Liger: An open source integrated optimization environment. In Proceedings of the 15th Annual Conference Companion on Genetic and Evolutionary Computation, GECCO ’13 Companion, pages 1089–1096, New York, NY, USA, 2013. ACM. [24] T. Coleman and Y. Zhang. Matlab optimization toolbox users guide v. r2014a, 2014. [25] G.E. Krasner and S.T. Pope. A cookbook for using the model-view controller user interface paradigm in smalltalk-80. J. Object Oriented Program., 1(3):26–49, August 1988. [26] J. Gosling, B. Joy, G. Steele, G. Bracha, and A. Buckley. Java (tm) language specification, the (java se 7 edition, ), 2013. [27] Ch. Skoulikaris, J. Ganoulis, and J.M. Monget. Integrated modelling of a new dam: a case study from the help mesta/nestos river. In 18th World IMACS Congress and MODSIM09 International Congress on Modelling and Simulation. Modelling and Simulation Society of Australia and New Zealand and International Association for Mathematics and Computers in Simulation, pages 4050–4056, 2009. [28] T. Patsialis, I. Kougias, J. Ganoulis, and N. Theodossiou. Sustainable development of existing irrigation dams towards renewable energy production. Economics of Water Management in Agriculture, pages 270–294, 2014. [29] A.H. Arthington, S.E. Bunn, N.L. Poff, and R.J. Naiman. The challenge of providing environmental flow rules to sustain river ecosystems. Ecological Applications, 16(4):1311– 1318, 2006. [30] I. Kougias, T. Patsialis, N. Theodossiou, and J. Ganoulis. Hydropower projects within a municipal water supply system: Optimum allocation and management. Exploring Innovative and Successful Applications of Soft Computing, page 59, 2013.