Genetic programming for computationally efficient land use allocation optimization

Published: 10 May 2023| Version 3 | DOI: 10.17632/4tw223jvjv.3
Moritz Jan Hildemann


Land use allocation optimization is essential to identify ideal landscape compositions for the future. However, due to the solution encoding, standard land use allocation algorithms cannot cope with large land use allocation problems. Solutions are encoded as sequences of elements, where each element represents a land unit or a group of land units. As a consequence, computation times increase with every additional land unit. We present an alternative solution encoding: functions describing a variable in space. Function encoding yields the potential to evolve solutions detached from individual land units and evolve fields representing the landscape as a single object. In this study, we use a genetic programming algorithm to evolve functions representing continuous fields, which we then map to nominal land use maps. We compare the scalability of the new approach with the scalability of two state-of-the-art algorithms with standard encoding. We perform the benchmark on one raster and one vector land use allocation problem with multiple objectives and constraints, with ten problem sizes each. The results prove that the run times increase exponentially with the problem size for standard encoding schemes, while the increase is linear with genetic programming. Genetic programming was up to 722 times faster than the benchmark algorithm. The improvement in computation time does not reduce the algorithm performance in finding optimal solutions; often it even increases. 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 spatial input data and the constraint tables. It is separated 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 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 The figure numbers are given as a reference. If other land use problems are to be solved, it is necessary to first define the problem with all its constraints, objective functions, and methods to visualize the maps. If any problems occur, please don't hesitate to contact me via GitHub, my profile name is mohildemann.


Westfalische Wilhelms-Universitat Munster


Multi-Objective Optimization, Land Use Planning