DOI: 10.6084/m9.figshare.3863466
title: Multi-objective optimization of distributed stormwater harvesting systems

description: Written by Michael Di Matteo, University of Adelaide, Australia18 July 2016email: mdimatteo.main@gmail.com[] denotes code or data set available<br>ENUMERATION<br>Once the case study optimization problem was formulated [MUSIC_EVERGREEN_SIM], we enumerated the problem's solutions. Enumeration involved evaluating every possible solution's objective function values. With all solutions evaluated, we could determine the global Pareto front. We checked that the NSGA-II indeed finds global Pareto optimal solutions. <br>For Scenario 1, all candidate solutions were simulated using MUSIC [MUSIC_EVERGREEN_SIM; ENUMERATE_EVERGREEN_DDRIVE] on a cluster of desktop computers. Since this took a very long time (approx 12.5 seconds per simulation), for Scenario 2 and 3 only the solutions that met practical constraints were evaluated in MUSIC. To do this, a list of all solutions was run through a program that checked for practical constraints, and wrote the feasible solutions to a file. These solutions were then evaluated using MUSIC [MUSIC_EVERGREEN_SIM; ENUMERATE_EVERGREEN_DDRIVE_DEMAND2]. The results of all MUSIC runs were written to text files [ENUMERATE_EVERGREEN; Scenario 1 results in series 00000 (with some errors) and 100000 (that replace 00000 errors), Scenario 2 results in series 200000, and Scenario 3 results in series 300000].<br>Once MUSIC was run for all scenarios, objective function values and constrained performance values for each solution were evaluated. To do this, a program [ENUMERATE_EVERGREEN_DATA_FORMATTING] firstly read in the MUSIC results and a cost table. The program then calculated the BMP lifecycle costs and transfer infrastructure costs, the total pollutant reduction performance for each target pollutant, and calculated the total volumetric reliability of each solution. These objective function values and target pollutant performance values were stored in text files [\ENUMERATE_EVERGREEN_DATA_FORMATTING: Scenario 1 in /Results_d1_structurally_constrained; Scenario 2 in /Results_d2_StructFeas_PerfInfeas; /Results_d3_StructFeas_PerfInfeas]. The non-dominated solutions were identified for each scenario, which were the global Pareto solutions.<br>MULTI-OBJECTIVE OPTIMISATION<br>The multi-objective optimisation algorithm, NSGA-II [visualstudio2013_ASCII_NSGA2], was then calibrated. This was done by running NSGA-II on the Scenario 1 problem using different parameter combinations (80 runs in total). The best parameter combination was the one that resulted in the NSGA-II identifing the most global Pareto optimal solutions. The calibration results were stored in text files [EVERGREEN_REUSE_NSGA2_RESULTS; Parameter calibration results].<br>Using the best parameter combination, the NSGA-II [visualstudio2013_ASCII_NSGA2] was run from 10 different initial populations per scenario [EVERGREEN_REUSE_NSGA2]. When the NSGA-II generated a candidate solution, the solution was evaluated by calling a program [ENUMERATE_EVERGREEN_RESULTS_LOOKUP] that checked whether the solution was practical, and if so looked up the objective function and constraint values in a text file. If the solution was not practical or did not meet performance constraints then a penalty was applied. The results were stored in text files [EVERGREEN_REUSE_NSGA2_RESULTS; Published results].<br>