Algorithm for constrained multi-objective land use allocation optimization under uncertainty
This dataset describes the software and data to quantify uncertainty in Pareto fronts arised from spatial data. This dataset contains the Python code for a multi-objective land use allocation optimization under uncertainty. The program is an extension to CoMOLA from Strauch et al. 2019 (https://doi.org/10.1016/j.envsoft.2019.05.003). For a detailed description of CoMOLA, we refer to the article. Before executing CoMOLA under uncertainty, extreme lower and upper bound samples need to be generated from the land use and soil fertility map with quantified uncertainty. That preprocessing is described reproducable with the following Mendeley Dataset: Hildemann, Moritz Jan; Verstegen, Judith (2021), “Sampling procedure of land use and soil fertility map under uncertainty”, Mendeley Data, V3, doi: 10.17632/6x6cccfc4x.3. For every produced extreme sample, CoMOLA needs to be performed with the corresponding land use and soil fertility map. As the computational effort and computation time are high (15-20 hours) and ten optimizations were performed for every extreme sample, the runs were performed in parallel on a high-performance Linux cluster (MEGWARE cluster with 15.120 cores, 412 nodes and Intel Xeon Gold 6140 18C 2.30GHz processors). The program is executable for Python 3.7 and 3.8 in a Linux environment. The changes compared to CoMOLA include: an update to Python 3.8, removal of R components in objecting the objective values, and the implementation of a seeding procedure to inject single-objective optima into the first generation of the Genetic Algorithm. The seeding procedure allowed faster and better convergence. The generated Pareto fronts can be used postprocessing to quantify the uncertainty in objective and solution space. Pseudo-random states are used to assure reproducibility despite the stochastic processes.
Steps to reproduce
1. Download the extreme samples from the Mendeley Dataset: Hildemann, Moritz Jan; Verstegen, Judith (2021), “Sampling procedure of land use and soil fertility map under uncertainty”, Mendeley Data, V3, doi: 10.17632/6x6cccfc4x.3, Download and unzip CoMOLA_Uncertainty_Linux. For a detailed description of CoMOLA, we recommend the referenced article from Strauch et al. and to the repository: https://github.com/michstrauch/CoMOLA 2. Every run generates a copy of the whole directory with a timestamp and execution number. The name can be specified for organizational purposes in line 94 in __init__.py. 3. Use a bash file to start the parallel computation. An example bash file is provided: "example_bashfile.sh". 4. Every "land_use.asc" in the extreme samples from the downloaded files in output\extreme_landusemaps needs to replace the "land_use.asc" in CoMOLA in the folder "input". Execute __init__.py. 5. Every "soil_fertility.asc" in the extreme samples from the downloaded files in output\extreme_soilfertilitymaps needs to replace the "soil_fertility.asc" in CoMOLA in the folder "models\SYM". Execute __init__.py. 6. For every land use and soil fertility map in the extreme samples from the downloaded files in output\extreme_from_combined_uncertainty, the soil fertility and land use map at the mentioned locations need to replaced. Execute __init__.py. 7. The Pareto fronts are stored in the folder "output" of the generated directory.