Optimizing Structural Integrity of Rigid Block Structures against a Constant Force with a Genetic Algorithm

Akimitsu Hogge

An important question for architects in disaster prone cities is how high a building can be built while still ensuring that it is safe. For my science project this year, I set out to make a computer program that would find out which type of building structures would hold up best against natural disasters. My inspiration to research this field came when I was in Japan over the summer. I noticed that although Tokyo was very built-up, the towers were not very tall, except in the densest regions. I pondered over the balance between space-efficiency versus safety. Later that year, I studied genetic algorithms, and decided to connect the two fields: construction and optimization.

My goal was to construct a program using a genetic algorithm to find building structures which could hold up best against a constant force while also meeting height requirements. The advantage of a genetic algorithm in this problem is that it is heuristic, meaning that the algorithm makes a random guess, and then improves upon it, as opposed to a standard analytical algorithm, where an optimum is found using mathematics. Genetic algorithms start by creating a random population of organisms, with random genes. Then, the organisms are put through tests to determine their fitness. The low-performing organisms are culled, while the best organisms "mate" to create a new population. This new population is similar to the best of the last population, except with small mutations introduced for variety. This process is repeated, hopefully increasing the quality of the organisms.

My experiment had two parts: a genetic algorithm and a simulation using physics principles. In this experiment, 100 random 2-dimensional buildings were created on the computer and put through a simulation to see how well they could stand up to a force. Scores were calculated using a variable ratio called the "height to safety emphasis ratio," which determined relative values to height versus structural stability. The ratios were developed to reflect environmental variables of a building site. The best organisms in each trial were put through a crossing algorithm and a mutation algorithm to create a new population of 100 organisms. The process was run for 20 generations.

I developed the physics simulation in C++, using the SDL graphics library for output. All of the physics formulae were applied inside of the C++ program. I had developed the physics simulations inside of a C++ environment because C++ is fast and displays graphics well. However, Visual Basic was much better as a graphical user interface and for data manipulation. Therefore, I used Visual Basic for the genetic algorithm and C++ for the physics. The hardest part was to synchronize the two programs to share data. Because the physics coding is adaptable, constants can be easily changed. Material properties, such as the mass and frictional coefficients of the blocks, can be adjusted. In this experiment, force applied to the structure was constant, like a steady wind or tsunami. However, oscillating forces, such as seismic activity, or variable forces, such as wind gusts, could be simulated.

Although the data from this experiment is not suitable for real construction, the concepts and programs that were developed are a good basis for further investigation. A program like this with an input for how important space is to safety, the "height to safety emphasis ratio" could be very useful for builders, who need to find that right balance for a geographic area. This method could be used to save many lives, as well as resources.