Genetic Programming for Land use allocation optimization
Land use allocation optimization is essential to identify ideal landscape compositions for the future. However, standard land use allocation optimization algorithms require long computation times. Solutions to land use allocation problems are encoded as sequences of elements, where each element represents a land unit or a group of land units. The manipulation solutions with this encoding result in long computation times that increase with every additional land unit. Therefore, we present an alternative solution encoding: functions describing a variable in space. The encoding yields the potential to evolve solutions detached from the single land units and evolve fields representing the landscape as one object. In this study, we test the scaling potential of evolving functions to solve land use allocation problems. We use a Genetic Programming algorithm to evolve functions representing continuous fields, which we then map to nominal land use maps. We compare the new approach with two state-of-the-art algorithms that use standard encoding. We perform the benchmark on one raster and one vector land use allocation problem with multi-objectives and constraints, with 10 problem sizes each. The results prove that Genetic Programming alleviates the problem of exponentially increasing run times of the traditional encoding scheme. On the largest raster problem, Genetic Programming was up to 722 times faster than the benchmark algorithm, with 27 seconds in contrast to 325 minutes. The improvement in computation time does not affect the algorithm performance in finding optimal solutions; Genetic Programming outperforms the benchmark algorithms on both problems. Due to the function encoding, Genetic Programming can produce land use maps with spatial patterns that are unlikely to obtain with the standard encoding. We conclude that evolving functions enables more efficient land use allocation planning and yields much potential for other spatial optimization applications.
Steps to reproduce
1) The input data folder contains the input data and the constraint tables for the raster and vector land use allocation problems. 2) The optimization parameter settings, the objective functions, the constraint functions, the problem formulation and the translation functions (program tree/function -> continuous field -> nominal land use map) are defined in the folder optimization_setup. The optimization output data are saved as pickle files. 3)To run the experiments, run LUA_GP.py for the Genetic Programming optimization, or LUA_NSGA3 for the benchmark. You can choose whether to perform the run time analysis (run_time_analysis()) or a normal optimization (main()). 4) For reproducing the figures from the associated manuscript, run post_optimization_analysis.py. The figure numbers are given as a reference.