Can a machine - a computer or a set of computers - design intricate infrastructure by itself? By Peter Bohacs, Transcend Product Owner Surely not (or so I thought)... the number of input data would be enormous and the experience and intelligence of the human engineer could not be replicated by software. There must be tasks in the design processes that cannot be described by a set of easy rules and pre-determined algorithms for a computer to follow, right? As a simple example, a human engineer knows what sort of buildings she needs to arrange on a given site and she knows the requirements for these buildings: their approximate shape, which one needs to be closer to which other ones, and approximately what order they should be arranged. However, there is a bit of uncertainty. She does not know exactly how to arrange the buildings right away. Nobody does. She starts with one arrangement and works her way through it, modifying it here and there to make it better. There is an evolution to her design. As it turns out, this evolutionary design method can be replicated by machines. Here is where computers, and more specifically, artificial intelligence comes into play. Evolutionary algorithms – in this application at least – basically try to mimic a very simplified human thinking model. We can tell the computer how many buildings we want, and we can give all them parameters, or more accurately: constraints. Nothing is fixed, all outcomes can be different, and there are no “this is good” and “this is bad” answers. There are “this is better than that” answers. Like: “This building should be at least 20 meters wide and the best length-width ratio is 1.5, worst is when it is below 1.2 or above 2.0.” There are obviously a lot of these rules. Like: “Best is when Building B connects to Building A to A’s north side, second best option is the west side, third best is the east, but never on the south.” Sounds impossible to get all them in order, right? It is not impossible, just complex. We must translate all of the rules and regulations, including good engineering practices and rules of thumb, conventions, constraints, and eventually assign weights (scores) to them. The number of constraints is high, but not infinite.
Once all these are there, software can start the evolution of the design, which is actually a very simple process. The starting set is a random set of the correct number of buildings. Then this is evaluated based on all the rules above where we get a fitness score. Then we change something randomly (introduce a mutation), like “move Building A 2 meters north” and see if the outcome becomes better or worse. If better, then we use this new mutation, if worse, we stick with the original. Allowing the computer to go through this process an incredible amount of times and the results will get better. None of the results will necessarily be perfect, but that is not a problem, since in most cases, there are a lot of good solutions to the same problem and there is no “perfect” solution. A human obviously makes less errors in the mutation of the design because there is purpose to the change, therefore a human typically arrives at a solution in less iterations of steps.
Although the lack of direction on the randomness with computers may seem to be a disadvantage, the speed and breadth of evaluation compensates for this 'randomness' and the randomness also removes any human bias in the process. The bias remains in the rules - unlike an engineer who has a preferred way to design and may not explore directions that could also result in good solutions. The algorithm may suggest something that nobody has done before but is actually very effective. The existence of the Transcend Design Generator is proof that these concepts work. Have we arrived at a higher level of Artificial Intelligence? The answer actually depends on the definition of the AI. If it is mimicking human-like decision making then the answer is actually yes.