Multi-Objective Optimization : Crafting Sustainable Urban Futures

Imagine a scenario where a city planner is tasked with developing a new urban area within a smart city. The goal is to optimize for both environmental sustainability and economic development, two objectives that often find themselves at odds.

Advancedor Academy
Operations Research Bit
4 min readFeb 2, 2024

--

Scenario: Sustainable Urban Planning for a Smart City

Background

The planner must consider multiple factors, including green space allocation, infrastructure development, and economic incentives, to create a plan that balances these objectives.

Objectives

  1. Maximize Environmental Sustainability: This objective focuses on increasing green spaces, reducing carbon emissions, and promoting eco-friendly transportation and energy solutions.
  2. Maximize Economic Development: This objective aims to enhance the city’s economic growth through infrastructure development, attracting businesses, and creating jobs.

Decision Variables

  • x1 : Percentage of land allocated for green spaces (parks, urban farms, etc.)
  • x2 : Investment in eco-friendly transportation infrastructure (in millions of dollars)
  • x3 : Investment in renewable energy infrastructure (in millions of dollars)
  • x4 : Land allocated for commercial development (percentage of total area)

Constraints

  1. Total land allocation (for green spaces and commercial development) cannot exceed 100%.
  2. Total investment (in transportation and energy) cannot exceed the budget of $100 million.
  3. Minimum green space requirement of 20% to ensure environmental sustainability.

Mathematically, the constraints can be represented as:

  • x1 + x4 ≤100
  • x2 + x3 ≤100
  • x2 ≥ 20

Mathematical Model

The objectives can be modeled as follows, where both are to be maximized:

quicklatex.com

Python Implementation

For this scenario, we’ll simulate the data and use the pymoo library, a versatile tool for multi-objective optimization in Python.

Step 1: Install pymoo

Ensure pymoo is installed in your Python environment:

pip install pymoo

Step 2: Define the Problem

from pymoo.core.problem import ElementwiseProblem
from pymoo.optimize import minimize
from pymoo.algorithms.moo.nsga2 import NSGA2
from pymoo.factory import get_sampling, get_crossover, get_mutation

class UrbanPlanningProblem(ElementwiseProblem):
def __init__(self):
super().__init__(n_var=4, # Number of decision variables
n_obj=2, # Number of objectives
n_constr=3, # Number of constraints
xl=[0, 0, 0, 0], # Lower bounds for decision variables
xu=[100, 100, 100, 100]) # Upper bounds for decision variables

def _evaluate(self, x, out, *args, **kwargs):
x1, x2, x3, x4 = x

# Objectives
f1 = 2*x1 + 1.5*x2 + 2*x3 # Environmental Sustainability
f2 = 3*x4 + 1.2*x2 + 1.3*x3 # Economic Development

# Constraints
g1 = x1 + x4 - 100 # Land allocation constraint
g2 = x2 + x3 - 100 # Investment constraint
g3 = 20 - x1 # Minimum green space requirement

out["F"] = [-f1, -f2] # Note: pymoo minimizes by default, so we negate to maximize
out["G"] = [g1, g2, g3]

# Optimization algorithm
algorithm = NSGA2(pop_size=100,
sampling=get_sampling("real_random"),
crossover=get_crossover("real_sbx", prob=0.9, eta=15),
mutation=get_mutation("real_pm", eta=20),
eliminate_duplicates=True)

# Problem instance
problem = UrbanPlanningProblem()

# Optimization process
res = minimize(problem,
algorithm,
('n_gen', 100),
verbose=True,
seed=1)

# Results
print("Best solutions (Decision Variables):")
for solution in res.X[:5]:
print(solution)

print("\nCorresponding Objectives (Environmental, Economic):")
for solution in res.F[:5]:
print(-solution) # Negating again to show original maximization objectives

Analyzing the Results

  1. Environmental vs. Economic Priorities
  • The first solution prioritizes environmental sustainability with a high allocation to green spaces and renewable energy investment but offers less for economic development.
  • Conversely, the second solution leans towards maximizing economic development with significant land allocation for commercial use, slightly compromising on environmental aspects.

2. Balanced Solutions

  • The remaining solutions provide a mix of environmental and economic benefits, showcasing the power of NSGA-II in finding a range of optimal solutions that balance between the two objectives.

Decision Variables Breakdown:

  • Green Space Allocation (x1​): Ranges from about 20% to nearly 100%, reflecting different priorities in environmental sustainability.
  • Eco-friendly Transportation Investment (x2​): Generally low across solutions, suggesting a lesser impact on the objectives within the given budget constraints.
  • Renewable Energy Investment (x3​): High in most solutions, indicating its importance in achieving environmental sustainability.
  • Commercial Development Land Allocation (x4​): Varies widely, showing the trade-off between economic development and maintaining green spaces.

Objectives Outcome:

  • Solutions with higher Environmental Sustainability Scores tend to allocate more towards green spaces and renewable energy, while those with higher Economic Development Scores favor commercial development.

Conclusion: Towards Informed Urban Development

In my previous article, I provided an introduction to MOO. This article elaborated a little more on MOO and took it one step further. The application of MOO in sustainable urban planning illustrates its potential to transform complex decision-making processes. By offering a clear view of the trade-offs between different objectives, MOO enables policymakers and planners to make more informed choices, paving the way for urban development that is both economically and environmentally sustainable.

As cities continue to grow and evolve, the principles of MOO will become increasingly important in crafting urban futures that are resilient, sustainable, and thriving. Through careful analysis and strategic planning, we can navigate the complexities of urban development, ensuring that our cities remain vibrant and livable for generations to come.

Note

If you are interested in this content, you can check out my courses on Udemy and strengthen your CV with interesting projects.

Link : https://www.udemy.com/course/operations-research-optimization-projects-with-python/

--

--