Optimizing Building Shape with DEAP
Let’s tackle an optimization problem where we optimize the shape of a building to balance structural efficiency and aesthetic design using $DEAP$.
This type of problem is known as architectural form optimization and is crucial in fields like sustainable design and engineering.
Problem: Shape Optimization of a Building
The goal is to optimize the shape of a building to minimize the material cost and maximize structural efficiency, while also adhering to aesthetic constraints.
The building’s shape is represented by a set of geometric parameters, such as the dimensions of floors and curvature of the walls.
Objective
We aim to balance the following objectives:
- Structural efficiency: The building must be stable, with minimal stress in critical areas.
- Material cost: The total amount of building material used should be minimized.
- Aesthetic constraints: The building should maintain a desired aesthetic, such as symmetry or a specified curvature.
Problem Definition
We will consider a simple tower with the following shape variables:
- Height $( h )$ (ranging between $50$ to $200$ meters).
- Base radius $( r_b )$ (ranging between $10$ to $50$ meters).
- Top radius $( r_t )$ (ranging between $5$ to $30$ meters).
The building’s structure will be a tapering cylindrical shape, where the top radius might be smaller than the base radius. The cost function incorporates structural stress and material usage.
Total Material Volume (Cost):
The material cost is proportional to the volume of the structure:
$$
V(h, r_b, r_t) = \pi \times h \times \frac{r_b^2 + r_b r_t + r_t^2}{3}
$$
Structural Efficiency:
We define structural efficiency as inversely proportional to the maximum stress in the building.
The stress depends on the height, base, and top radius:
$$
S(h, r_b, r_t) = \frac{h}{r_b + r_t}
$$
The objective is to minimize the material volume while maintaining structural efficiency by ensuring that the stress $( S )$ does not exceed a given threshold.
Aesthetic Constraint:
To maintain symmetry and aesthetic appeal, the base and top radii must be proportionally related, and a penalty is applied if the relationship deviates too much from a desired ratio $( r_b/r_t \approx 2 )$.
Multi-Objective Optimization:
We want to:
- Minimize the material volume $( V(h, r_b, r_t) )$,
- Maximize the structural efficiency $( \frac{1}{S(h, r_b, r_t)} )$,
- Respect the aesthetic constraint $( \frac{r_b}{r_t} \approx 2 )$.
DEAP Implementation
We will use $DEAP$ to solve this multi-objective optimization problem.
Each individual will represent a set of parameters $( (h, r_b, r_t) )$, and $DEAP$ will evolve the population over generations to find the optimal balance between structural efficiency, material cost, and aesthetic constraints.
Here’s how we can model this using $DEAP$:
1 | import random |
Explanation of the Code
- Fitness Function: We define the fitness function to minimize the building’s material volume and maximize its structural efficiency.
We also include an aesthetic penalty for deviating from the desired ratio between the base and top radii. - Multi-Objective Optimization: Since this is a multi-objective problem (minimizing volume while maximizing efficiency), we use the NSGA-II algorithm (
selNSGA2
) to handle the trade-offs between conflicting objectives. - Constraints: Bounds are enforced on the height, base radius, and top radius to ensure the building remains within practical limits.
- Crossover and Mutation: The algorithm uses blend crossover (
cxBlend
) and Gaussian mutation (mutGaussian
) to evolve the population.
These operators modify the building parameters slightly in each generation. - Evolutionary Process: Over $200$ generations, the algorithm evolves the population, selecting individuals based on their fitness in both objectives (volume and structural efficiency).
Running the Algorithm
When you run the genetic algorithm, $DEAP$ will evolve the population of building designs over generations.
The algorithm will return the best-performing design (the individual with the optimal combination of height, base radius, and top radius), balancing material cost, structural efficiency, and aesthetic constraints.
Real-World Applications
- Skyscraper Design: Optimizing the structural form of tall buildings for both cost-efficiency and stability.
- Sustainable Architecture: Minimizing the environmental impact of construction by reducing material use while maintaining aesthetic integrity.
- Bridge Design: Optimizing the shape of bridges to ensure they can support loads efficiently without using excessive materials.
Conclusion
This example demonstrates how $DEAP$ can be used for multi-objective optimization in architectural design, balancing structural efficiency, cost, and aesthetics.
By evolving the shape of the building over generations, the genetic algorithm helps identify an optimal design that satisfies multiple conflicting objectives.
Output
gen nevals avg min max 0 100 30.2031 -4.58459 84.9431 1 57 45.4312 -1.22051 98.6147 2 52 60.872 19.0426 96.3292 3 55 73.3576 32.0905 102.15 4 65 83.0544 56.0338 104.981 5 45 90.9604 70.2838 109.471 6 59 96.4952 64.7244 109.471 7 63 101.721 87.239 109.868 8 66 104.533 86.682 110 9 60 106.674 90.7454 110 10 64 108.301 102.908 110 11 62 108.925 92.2664 110 12 62 109.677 96.9721 110 13 56 109.771 102.924 110 14 56 109.285 84.0149 110 15 65 109.414 90.0117 110 16 56 109.357 95.1722 110 17 56 109.342 85.5902 110 18 58 109.865 105.307 110 19 53 109.69 88.9731 110 20 61 109.469 95.8403 110 21 64 109.958 107.5 110 22 63 109.67 87.5967 110 23 56 109.629 92.1763 110 24 65 109.545 85.6428 110 25 72 109.739 93.9295 110 26 53 109.845 102.354 110 27 56 109.65 100.067 110 28 68 109.394 85.0092 110 29 63 109.1 81.3666 110 30 49 109.887 102.778 110 31 68 109.54 89.2593 110 32 67 109.845 100.159 110 33 59 109.464 88.0685 110 34 62 109.652 100.051 110 35 63 109.398 95.8296 110 36 56 109.734 96.4426 110 37 62 109.999 109.915 110 38 63 109.203 78.4034 110 39 61 109.808 96.6963 110 40 57 109.668 101.347 110 41 63 109.872 107.208 110 42 61 109.653 97.3602 110 43 54 109.733 97.9184 110 44 47 109.461 87.6114 110 45 55 109.545 95.4545 110 46 49 109.942 106.151 110 47 60 109.823 98.3643 110 48 53 109.587 96.8339 110 49 57 109.353 90.8686 110 50 64 109.675 93.9186 110 51 58 109.565 90.6717 110 52 76 109.601 97.3458 110 53 53 109.642 91.4243 110 54 64 109.417 93.5573 110 55 60 109.766 99.543 110 56 50 109.572 90.7425 110 57 65 109.86 98.1754 110 58 59 109.617 89.4655 110 59 55 109.805 103.898 110 60 58 109.668 94.2321 110 61 57 109.912 101.181 110 62 64 109.521 97.1337 110 63 60 109.672 97.3061 110 64 51 109.646 94.9934 110 65 62 109.774 97.9661 110 66 44 109.683 92.1023 110 67 69 109.404 76.2358 110 68 62 109.533 80.385 110 69 45 109.706 100.829 110 70 62 109.833 102.379 110 71 51 109.57 86.7019 110 72 59 109.619 93.0737 110 73 59 109.696 90.8966 110 74 57 109.765 92.5364 110 75 65 109.544 83.7875 110 76 61 109.884 105.476 110 77 58 109.503 91.5296 110 78 57 109.686 95.8519 110 79 69 109.523 97.5127 110 80 64 109.629 96.7788 110 81 63 109.349 85.8037 110 82 70 109.662 92.9332 110 83 49 109.545 97.5696 110 84 60 109.412 94.8316 110 85 59 109.823 92.2895 110 86 63 109.833 105.039 110 87 59 109.535 93.0147 110 88 60 109.643 96.5255 110 89 55 109.706 94.9962 110 90 67 109.206 83.6985 110 91 48 109.709 98.124 110 92 58 109.753 101.298 110 93 61 109.767 101.255 110 94 64 109.901 105.363 110 95 56 109.76 98.3865 110 96 60 109.738 103.642 110 97 64 109.803 98.8248 110 98 58 109.666 89.6437 110 99 54 109.666 95.8321 110 100 61 109.494 95.486 110 101 70 109.799 102.967 110 102 62 109.739 96.9402 110 103 77 109.744 95.1285 110 104 55 109.836 102.75 110 105 57 109.779 99.3039 110 106 53 109.911 105.227 110 107 55 109.342 84.6381 110 108 45 109.846 100.018 110 109 58 109.971 107.067 110 110 58 109.298 86.8772 110 111 56 109.623 100.785 110 112 53 109.906 105.962 110 113 54 109.747 100.471 110 114 66 109.883 98.2764 110 115 64 109.809 102.77 110 116 57 109.386 91.1257 110 117 60 109.796 97.8844 110 118 59 109.678 86.3709 110 119 55 109.831 97.5534 110 120 58 109.741 98.9108 110 121 57 109.523 99.0968 110 122 52 109.607 94.825 110 123 61 109.661 88.0185 110 124 61 109.837 103.542 110 125 54 109.643 93.0993 110 126 59 109.741 99.6697 110 127 58 109.695 89.2412 110 128 54 109.622 98.3891 110 129 49 109.716 97.0653 110 130 63 109.523 98.014 110 131 52 109.444 82.8089 110 132 56 109.718 97.7141 110 133 73 109.786 105.672 110 134 59 109.58 94.2797 110 135 56 109.758 99.9133 110 136 62 109.707 91.8893 110 137 68 109.718 97.7743 110 138 49 109.568 94.7746 110 139 50 109.557 99.0476 110 140 63 109.539 97.9216 110 141 69 109.219 90.5617 110 142 66 109.706 92.9352 110 143 48 109.864 103.266 110 144 65 109.988 108.774 110 145 49 109.276 92.3438 110 146 58 109.734 90.2498 110 147 64 109.842 100.694 110 148 62 109.648 96.0825 110 149 56 109.837 103.081 110 150 56 109.998 109.78 110 151 55 109.734 93.7204 110 152 58 109.81 103.322 110 153 62 109.856 102.386 110 154 64 109.664 98.9855 110 155 65 109.701 93.7264 110 156 70 108.383 82.8439 110 157 75 109.94 106.813 110 158 57 109.714 95.7672 110 159 62 109.714 92.9867 110 160 66 109.644 100.39 110 161 54 109.674 96.3835 110 162 61 109.658 85.0905 110 163 52 109.751 97.0785 110 164 55 109.879 102.546 110 165 67 109.638 91.7032 110 166 63 109.824 103.369 110 167 53 109.996 109.668 110 168 62 109.42 93.4978 110 169 65 109.597 92.6122 110 170 60 109.621 98.15 110 171 68 109.636 87.6776 110 172 77 109.754 92.5824 110 173 58 109.789 97.1111 110 174 62 109.629 100.315 110 175 54 109.752 100.745 110 176 62 109.832 103.505 110 177 57 109.92 106.379 110 178 59 109.983 108.311 110 179 61 109.792 103.147 110 180 56 109.834 103.666 110 181 59 109.694 96.045 110 182 67 109.418 93.1862 110 183 67 109.998 109.839 110 184 57 109.965 106.474 110 185 68 109.543 91.7126 110 186 63 109.413 83.4402 110 187 65 109.892 104.356 110 188 60 109.546 92.2867 110 189 51 109.722 87.5918 110 190 65 109.593 102.811 110 191 55 109.83 101.872 110 192 66 109.792 98.9256 110 193 47 109.844 103.942 110 194 69 109.899 103.538 110 195 64 109.94 106.832 110 196 57 109.635 99.4751 110 197 57 109.624 94.0766 110 198 70 109.483 101.174 110 199 70 109.393 80.3783 110 200 65 109.685 94.4924 110 Best individual: [10, 10.0, 10] Best fitness: 110.0
The results show the progress of a genetic algorithm over $200$ generations.
Here’s a brief summary:
- Initial Generation (0): The population starts with an average fitness of around $30.2$, and the best individual has a fitness of about $84.9$.
- Generation 1-5: The average fitness steadily increases from $45.4$ to $90.9$.
The maximum fitness improves, reaching values above $100$. - Generations 6-20: The average fitness continues to increase and stabilizes around $109$, with the best fitness consistently at $110$.
- Generations 21-200: The algorithm converges, maintaining a maximum fitness of $110$ in almost every generation.
The best individual found has a fitness of 110.0, indicating an optimal solution in this context.