Calculation of Assembly Sequence of Complex System based on Recursive Algorithm
Hao Li
T-ADS 1
Calculation of Assembly Sequence of Complex System based on Recursive Algorithm
Obuchi Laboratory Advanced design Studio Graduate School of Engineering Hao Li Primary Advisor: Yusuke Obuchi Collaborative Advisor: Professor Tomohiro Tachi Professor Jun Sato Course Assistant: Shuta Takagi Masaaki Miki
2
3
16 18 18 20 28 28 30 32 34 36 38 40 42 44 46 48 50 50 50 52 54 56 58 60 62 62 68 70 70 72 74 80 82 82 84 86
1. Introduction 1.1 Background 1.1.1 Traditional assembly sequence problem 1.1.2 Traditional assembly way of construction 1.1.3 The application of computer 1.1.4 The application in architecture 1.2 The main target of the research 2. Introduction of Hos Project 2.1 Background 2.1.1 Composition of pavillion 2.1.2 Catenary production 2.1.3 Optimization of catenaries management 2.1.4 Catenary assembly 2.1.5 Catenary generation 2.1.6 Material research 2.2 The whole process 2.3 The relationship between this paper and Hos project 2.3.1 Paper’s location in Hos project 2.3.2 Problem I focused on
90
5. Conclusion and expectation
96
6. Reference
100 102 104 104 110
7. Appendix 7.1 Dealing with the material 7.2 Material research 7.2.1 Water storage capacity research 7.2.2 Clay comparision research
3. Caculation of the Assembly Sequence Based on Recursive Algorithm 3.1 The mathematical model 3.1.1 Abstract and simplify the practical problem 3.1.2 Build up the mathematical model 3.1.3 Extension of the model 3.2 Introduction of the Recursive Algorithm 3.2.1 Invention and development 3.2.2 An simple example of the algorithm 3.2.3 Advantage of using recursive algorithm in Hos project 3.2.4 Other availble algorithm 4. The practical application of the algorithm in the Hos project 4.1 Build up the relationship list in GH for rhino 4.2 Visulization of the sequence result 4.3 Calculate the assembly sequence in Python 4.2.1 Source code 4.2.2 Diagram 4.2.3 Source code explanation
5
6
7
8
9
10
11
12
13
14
15
INTRODUCTION
17
Background Fig. 1-3 Traditional Chinese tenon assembly sequence.
Traditional assembly sequence problem
1.1.1
magnificent architectures, statues, and artworks. I notice one interesting thing that no matter what kind of subtle design is supposed to be perceptible. In other words, if people can not understand this structure or idea, we can not build it. A classical example will be tenon. Tenon could be very complicated in some way, but still, it's under some kind of logic system which can be understandable by a human, even sometimes it takes time to learn and catch it. So what will happen if the computer comes to help us design? The algorithm we use normally base on an exhaustive method. For sure, we can set boundary conditions to select the answer which fulfills our requirement. But here comes a problem that the result is good enough as a design, but how can we understand the design and figure out the assembly sequence by ourselves? As you can see from the right picture, it's a result run by an octopus, there is no logical system behind generation, but the result is good enough. At this time, what kind of ability do we depend on to solve this puzzle?
18
Fig. 4 A "puzzle" generated by computer, how do people understand it and figure out the assembly sequence?
? 19
Traditional assembly way of construction 1. The most common way of construction
1.1.2
Fig.5 is a diagram showing that the common assembly sequence of construction. As you can see, we dig the mud, lay the foundation, build up the frame, assembly the wall, construct the roof frame, and finally finish the decoration part. This is the easiest or the most acceptable way of construction, people learn from the experience and sum up a set of methods to help them teach people and assist themselves understand how to build. Apparently, the first people who thought of induction would meet lots of problems and made a large amount of mistakes, but now, we don't have to make the mistake again. What we need to do is just learn from the experienced people who learn from their teachers. This is how human experience transfer from one generation to another generation.
Fig. 5 The most common way of assemly sequence.
20
21
2. Prefabricated way of construction
Fig. 6 Prefabricated way of construction.
Fig.6 shows a prefabricated way of construction. As you can see, all of the pieces of the house are like components, we can build them separately and assembly them directly in the foundation. This absolutely progresses in the construction field.
22
23
3. Top down construction way Fig.7 is a top-down construction way. The advantage of this way is that we can construct the building above the ground and under the ground at the same time. Normally, we have the dig the foundation to the bottom we want to build the basement and construct from there. According to some research, it will cost double time than the top-down construction way. So this way of construction can save lots of time and money.
Fig. 7 Construction from top down diagram.
24
25
4. Pop up architecture
Fig. 8 Pop up building.
This kind of building is very interesting since we don't build it. It's just like a NASA spacecraft which imitates origami, after they enter the space, the origami will just pop up and become a spacecraft. By doing this, people can save space for storage and manpower for installing.
26
27
The application of computer
1.1.3
Nowadays, computers become more and more important not only in our daily life but also in every working field. Logistics company programmed to help them calculate the shortest path, maximum use of the machine, and monitor the whole logistics process. Undoubtedly, the computer can integrate more information at the same time than the human brain, and it will not make a mistake because of long working hours or not in a good mood. In another field 'Go game'. Alphago proved computers can beat the human brain in the competence of calculation. The application in architecture
1.1.4
The Industrial Revolution drove the development of all walks of life, but architecture always slows one step. The time that AI will be in charge of most of the repetitive work will come in the future.
Fig. 9 The usage of machine to help logistics, people just need to move the goods.
Fig. 10 Ke Jie are playing go game with Alphago
For instance, ETH has been focusing on parametric design and robot arm construction for many years, they are trying to program to solve every problem in architecture. From my point of view, maybe one day the computer will generate the 'design' for us, but it's a different system from what we are familiar with. We can't use our brain to understand it, but is there any way we can use to construct it? That's the point I want to discuss in this article.
28
29
The main target of the research
Let's assume that one day, we will try to understand what our computer tries to transfer to us. For sure, we programed the whole generation process, but we don't really can catch up with every step of the program, we just set up the standard or parameter, but we can not hundred percent control the result. On the other hand, if we can a hundred percent control the result, why would we use the program to help us? The only reason we turn to computers searching for help is that we admit the computer can give us something unexpected or out of our brain.
Fig. 11 A "puzzle" generated by computer, how do people understand it and figure out the assembly sequence?
Fig. 12 The assembly sequence solved by the calculation system.
So definitely we have to understand the result, it's born from our program, but also, it's not something we can understand naturally. For instance, Fig-7 is an example to show that how we understand the result, and figure out the assembly sequence, only from here, we can say, yes, we understand what computer tries to tell us. Before that, this result model is useless, because nobody knows how to build it. So my main target is to build up a program for calculating the assembly sequence in a complicated system.
30
31
INTRODUCTION OF HOS PROJECT
33
Background
Fig. 13 Site model of Hos project.
This is a project authorized by the Swiss Embassy, which is Olympic in Tokyo in 2020. Now it is going to be built in 2021 because of the coronavirus. We Obuchi lab on behalf of the University of Tokyo collaborates with ETH to make a whole project. Obuchi lab focus on how to use digital technology as a way to help human being construct, we want people with the least skills to produce something the most diverse. So we will make our own tools and program to make the production. Now our final proposal is Fig.14 pavilion. We will build a cube with the frame and the catenary wall which will serve as a microclimate adjustor, stairs to the ETH project, and aesthetics product itself. There are 2 reasons why we choose catenary: 1. The force situation of Catenary is the most natural and average for the reason that the generation process makes use of gravity, so the clay will not crack because of the unbalanced force.
Fig. 14 The final proposal we have for Hos project.
2. It's easy to make this shape, the constructors don't have to be professional, they just need to move their arms, shoulders, and hands, following our guiding, then we can get the shape we want.
34
35
Composition of pavillion
2.1.1
The pavilion consists of the three main elements such as the mist system, the steel frame structure and the clay part. The mist system has cooperated with Panasonic, and they have built the mock-up for the cooling effect test. According to the preliminary test result, the clay part is needed to be dense as much as possible to prevent the mist from dissipating by the wind, and to cast a shadow. And also, the dense clay part is preferable in terms of structural. The steel frame structure is also under development with the Shimizu corporation. For a design of the clay part, there are three issues to be considered as follows. I.OPTIMIZATION OF CATENARIES ARRANGEMENT (GEOMETRY DESIGN) II.CATENARIES ASSEMBLY III.CATENARY GENERATION
Fig. 15 The final proposal we have for Hos project.
36
37
Catenary production
2.1.2
We have two sizes of the kiln. One is 1600cm x 2200cm, the other is 1000cm x 1000cm. Because of the budget, we can use the large one for one time, the small one for two times. So the maximum number of the catenaries will be 30 for one wall. The size of the catenary will also be constrained by the size of the kiln. Sometimes there will be some cracks on the surface of some catenaries, which means the average number of catenaries for each wall may reduce more.
Fig. 16 The final proposal we have for Hos project.
38
39
Optimization of catenaries management
2.1.3
Fig.17 The final proposal we have for Hos project.
We may use a plank as a basement for hanging all the catenaries. The plank is 5000cm long, 500cm wide, 100cm thick maybe. There are two ways to manage all the catenaries, one is parallel, the other is disordered. At last, we chose the latter one as our final proposal and that's what I focused on to solve this complicated assembly sequence problem. We are thinking about adding some joints between different pieces of catenary if they touch each other which will stabilize the whole structure. The more joints we have, the more stable the structure will be.
40
41
Catenary assembly
2.1.4
Another problem we face is how we connect the plank and the catenaries. We proposed that we can drill some holes whose radius is a little bit larger than the catenaries for the reason that the size of catenary might not be precise during the whole generation, baking and cooling. After we stick the catenaries into the holes, we will use some filler to reinforce it to make sure it will not fall. The assembly sequence of this diagram is not accurate, I will introduce the final version of the assembly sequence later in this article.
Fig. 18 The final proposal we have for Hos project.
42
43
Fig. 19 The final proposal we have for Hos project.
Catenary generation
2.1.5
This is a diagram for showing how humans will help generate the catenaries. There are several reasons to choose this as a generic way: 1. We mix clay and the rope to get the curve, if the load situation is not average, there will be many cracks on the surface of the clay. So the catenary is structurally wise because the load situation is always the same or it will not be balanced until it finds its best location to be a catenary. 2. It's easy for people to help, they don't have to be very professional, the guiding system could be very simple as well, which fits the criteria of Obuchi Lab. We Obuchi Lab always want to explore more possibility that how machine assists human to do more things rather than replace people. 3. This way is simple but efficient, we can generate various types of catenary from it, and it is enough for us to build a beautiful catenary wall.
44
45
Material research
2.1.6
We did lots of research on clay, about its porosity, load situation, the ability of water storage, different material samples, and so forth. Fig.20 - Fig.22 shows part of our research results, if you are interested, there will be more in the appendix part, which will introduce the water storage experiments and different material sample research in detail.
Fig. 20 Pur the clay pipe into water for 12hs.
Fig. 21 Compare the weight before and after absorbing.
By doing this research, we have a deep understanding of characteristics of clay, so at last, we choose catenary as a final proposal for the reason that catenary can show the unique value of clay and fits its load force characteristics that if the load situation is not average, the clay will crack.
Fig.22 The Comparision of different clay samples.
46
47
The Whole process
Fig. 23 The whole process
48
49
The relationship between this paper and Hos project
Paper’s location in Hos project
2.3.1
As you can see from the right picture Fig.24, the red rectangle shows where my paper's location is. It's at a relatively early stage of the second plane. Problem I focused on
2.3.2
One of my teammates will program to generate the geometry, which will fit several criteria, such as the most joints number, and the most coverage area. After that, I will check if there is any counterexample which might cause the failure of construction. For example, some catenaries are inter looped and constrained to some objective factors, we can only construct one catenary for one time. While the inter looped catenaries can only be constructed at the same time, or there will always be one catenary which can not be constructed at the right place. And another mission is that I will program to calculate the assembly sequence by Python for rhino and Grasshopper. This part I will introduce more details later in this article.
Fig.24 The whole process
50
51
CALCULATION OF THE ASSEMBLY SEQUENCE
53
The Mathematical Model
Abstract and simplify the practical problem
3.1.1 - 1
Our main structure is like a cube, and the catenary wall will be hanged to the structure, the four sides of the wall will all be different. As you can see, Fig.25 shows that it is a very complicated combination way. We humans can not understand the whole structure by our brain directly, and it will take too long to understand part of this catenary wall as well. For instance, I, at the very beginning, thought that we can construct the smallest or the topmost catenary first, and it turns out that there will always be a counterexample, sometimes, the small one should be constructed after a larger one.
Fig.25 The final proposal we have for Hos project.
And I tried to move the catenaries one by one, but I found that I can not understand a 3D model, since the human will translate the 3D information to 2D, and by understanding the 2D information, we can know what happened in a 3d world. So my concern is that if we can build up a mathematical model, and we can analyze it to find a solution to this assembly sequence problem.
54
Fig. 26 The "puzzle" generated by computer.
55
Abstract and simplify the practical problem
3.1.1
I decide to start from a simple model made of 4 catenaries, and I try to understand if we want to get the right assembly sequence, what kind of information do we need. Build up the mathematical model
Fig.27 The simplified version of puzzle.
3.1.2
The Fig.27 is the relationship list of the 4 different catenaries. '>' means one catenary is on the top of another catenary. The relationship of overlapping could be checked from the top view, Fig.14 shows that by projection, we can know the relationship between every two pieces of the catenary. So what I did is comparing every two pieces of catenary and get the relationship and make it as a list. The Fig.29 is the relationship list, from this list we can know the relationship more clearly than looking at the model directly. It's kind of a transformation of information, we translate the 3D information which we can't understand directly to a relationship list which we can comprehend more easily. Fig. 28 The simplified version of puzzle.
Fig.29 The relationship list of the puzzle.
56
57
Formula: A = max ( B ( A > B ) ) + 1 Build up the mathematical model
3.1.2 - 2
We can see from the right simulation process that the main formula is A = max( B (if A > B ) ) + 1. The A and B mean the assembly sequence order. This formula means that, if in the relationship list, the relationship between A and B is '>", then A should be constructed after B. Obviously, under the situation I mentioned above, if we construct A first, we could not construct B anymore unless we deconstruct A again. Basing on this logic, Y will be the first one to be constructed, since Y is larger than nothing, which means Y is the topmost part of the catenary wall, so it will not influence any other catenaries. So catenaries like Y will always be the first ones to be constructed, and the value of Y will be 1.
Y = max() + 1 = 0 + 1 = 1 (which means Y is the lowest part) G = max(Y or R or B) + 1 R = max(Y) +1 = 1 + 1 = 2 B = max(Y or R) +1 = 2 + 1 = 3 G = max(Y or R or B) + 1 = 3 + 1 =4 G=4Y=1R=2B=3 Extension: We have N pieces of catenaries. Order(x) = max ( order ( y ( If y > x) ) ) + 1
( x,y belongs to N )
Then, we go to another catenaries. R is only larger than Y, R = Y + 1 = 1 + 1 = 2. B is larger than Y and R, B = max ( Y or R ) + 1 = max ( 1 or 2 ) + 1 =3 G is larger than Y and R and B G = max ( Y or R or B ) + 1 = max ( 1 or 2 or 3 ) + 1 =4 Of course, when we calculate the sequence, most of the time it will not go well like this, sometimes we will calculate G first, at that time, we don't know the value of Y or R or B, so we can't get the value of G. How to solve this problem? I will introduce it in the following chapter.
58
Fig. 29 The relationship list of the puzzle.
59
Formula: A = max ( B ( A > B ) ) + 1 Extension of the Model The extension of the math model will be like this. Fig.30 shows the relationship list of the extension model, and the formula will be: Order(x) = max ( order ( y ( If y > x) ) ) + 1 ( x,y belongs to N ) With this math model, we now can try to solve the assembly sequence problem. A large amount of relationship information decides that we can not calculate the sequence by our brain, even we can use a pen and paper to do it. So the program will be the best choice for us. Fig. 30 The relationship list of the extension version.
60
3.1.3
Y = max() + 1 = 0 + 1 = 1 (which means Y is the lowest part) G = max(Y or R or B) + 1 R = max(Y) +1 = 1 + 1 = 2 B = max(Y or R) +1 = 2 + 1 = 3 G = max(Y or R or B) + 1 = 3 + 1 =4 G=4Y=1R=2B=3 Extension: We have N pieces of catenaries. Order(x) = max ( order ( y ( If y > x) ) ) + 1
( x,y belongs to N )
61
Introduction of the Recursive Algorithm
Invention and development
In 1923, Scholem (Thoralf Skolem, 1887-1963, Norwegian mathematician) put forward the concept of a recursive function and prove the relationship between addition, multiplication, and power, and subtraction and division are recursive functions. "Recursive" uses Norwegian "rekurrierend".
3.2.1
In programming terms, a recursive function can be defined as a routine that calls itself directly or indirectly. Using a recursive algorithm, certain problems can be solved quite easily. Recursive algorithms are ancient mathematical calculation methods. In the West, it was used at least during the Euclidean period. The well-known Fibonacci sequence was created by Leonardo of Pisa, also known as the Fibonacci (Leonardo Pisano, FiBonacci, Leonardo Bigollo, 1175-1250) used recursive calculations. About the history of the recursive function definition. History can be traced back to Dedekind (Richard Dedekind, 1831-1916), who proved addition, multiplication, and multiplication in 1888. Fang Du applies a "unique" function, which is equivalent to the recursive method compound function defined later. According to Robin Gandy (1919-1995), the first person to use the term "recursive" was Hilbert (David Hilbert, 1862-1943). In 1904 and 1923, Hilbert used recurrent and recursion, which means "recursive" and "recursive" in German.
62
"Recursion" first appeared in English in 1928 and was used by Frank Plumpton Ramsey (1903-1930). In Latin, the root meaning of recursive and recursion is "return", which means "return" and "return", which obviously refers to the calculation method of the calculation result of the function and then the calculation method of the function variable, which is the original intention of the recursive method. At present, the widely accepted category of recursive functions is μ-recursive functions, which follow Kurt Godel (1906-1978). The definition of the original recursive function in 1931 and the μ-operator in 1938 (Stephen Kleene, 1909-1994). The original is constructed by the original function in the following two ways (composite and recursive). Known functions h(y1,...,yk), g1(x1,...,xn ), g2 (x1,...,xn ),..., gk (x1,...,xn ), then, composite The function (composite way) is f(x1,...,xn) = h(g1 (x1,...,xn ), g2 (x1,...,xn),..., gk(x1,..., xn)) (1) That is, f is obtained by combining h and g, and writing f = h。g. Given the functions g(x), h(x, y, z), where x is a vector, call the function f f(x, 0) = g(x) (2) f(x, y + 1) = h(x, y, f(x, y)) (3) It is obtained by recursive (composite method) from h and g, where x is x 1 ,..., x n.
63
In these two construction methods, the first way is to directly replace the basic function with a variable of another basic function (g brought into y in h); can be considered as the degradation of the second way, ie, formula (2) and formula (3)-in formula (2) and formula (3) Medium g also brings y in h. The construction method of formula (2) and formula (3), that is, the recursive construction method, more clearly embodies the definition of Scolon's recursive function, that is, it well reflects the two basic characteristics of the recursive function, that is, gradually Calculation and decomposition calculation. The so-called "step-by-step calculation" means that the value of the yth + 1st variable of f is determined by the yth variable of the initial variable y =0. The so-called "decomposition calculation" means that f is decomposed into two functions of g and h, and the calculation of h is decomposed into calculations of different variables, and f becomes a function of calculating the h variable, which is a local calculation of h, so it is also a decomposition calculation. Before Gödel, the above-mentioned use of the concept of recursive functions and their definitions have limitations, which are reflected in three aspects: (i) Neither f nor g is strictly defined. (ii) The domain of this definition is limited to natural numbers, and there is still no definition for subtraction and division calculations. (iii) This "recursive function" (original recursive function) does not generalize all recursive functions.
64
Limitation (i) was overcome by Gödel in 1931. Gödel defined the types of f and g. He defined f and g as three kinds of functions: constant value function (map an element in the domain to a constant value), successor function (Map an element in the domain to its next number) and a projection function (map an element in the domain to a variable Quantity), and these three functions are called basic functions. Basic function through-type composition (see formula (1)) and recursion (see formula (2) And (3)) two ways of construction. Limitations (i i) result in calculations that may exceed the domain of definition. For example, the calculation results for subtraction and division exceed The field of natural numbers, especially the infinite calculations that cannot be divided, cannot be performed. If the infinite calculation is unconditional, for Turing calculation, this means that the computing device will never stop. According to the definition of Turing calculation later, this non-stop calculation process is not regarded as a recursive operation. This requires an approximate calculation function, which is calculated deterministically like addition and multiplication. This work was done by Klin. In 1938, Klin added a minimum function (referred to as "μ-operator" or "μ-operator"). This function determines the minimum value of the inverse operation of addition and multiplication by determining the minimum value of the error. So that if there is an infinite loop, the loop calculation can be terminated within a minimum error range, so as to obtain a most approximate function value, replacing the exact or infinite loop function value. After adding μ-operator, Kling used the concept of “μ-recursive function” in 1959 and 1963 as the function class including the original recursive function and μ-operator.
65
Limitation (iii) was overcome by Gödel in 1934. Whereas in 1928, Ackermann (Wilhelm Ackermann, 1896-1962) has constructed a non-primitive recursive function-Ackerman function ———The recursive function. Functions perform bivariate recursion, therefore, a general (broad) definition containing various recursive functions needs to be proposed . In this context, Gödel according to Hebron (Jacques Herbrand, 1908-1931) letter to him in 1931. The proposal in the paper proposes a more extensive recursive function in addition to the original recursive function-"Generalized Recursive Function" or "General Recursive
With the four usages, the "recursion" that represents the recursive function should be the third (3) usage, that is, the current "recursive function" is refering to the "generalized recursive function (general recursive function)" defined by Gödel in 1934. This meaning is very clear: "A set A is recursively enumerable if A is 0 or it belongs to a generalized recursive function. "
Function": "Let φ be a known function, ψ 1, ψ 2, ..., ψ k is a recursive function. Knowing the function, if the sequence of ψ and φ can be replaced by equivalents in the most general way, and φ has a unique solution, it is called φ is a recursive function. "Here, the recursive function refers to the generalized recursive function. In 1936, Qiu Qi and Kelin both accepted this formulation. In this way, the concept of "recursive function" is actually a concept that has been gradually abstracted and generalized in history. In the course of history, the concept of "recursive function" has been finalized and has been widely accepted. "Recursive" "recur-"The current meaning of "sion" is summarized into four usages: (1) for the semantically original meaning of "return"; (2) only used in the term "recursively defined", which means that the definition is defined step by step procedurally; (3) is equivalent to 1934 Gödel, the meaning of "generalized recursion" used by Qiu Qi and Ke Lin in 1936; (4) informal application, which means "computable".
66
67
A simple example of algorithm As you can see from this process diagram, the printFun function is repeated for 4 times until it reaches the boundary condition that i<1, and it will return by the same path. Before that, everything remains unsolved.
68
3.2.2 Another advantage of the recursive algorithm is that we don't need to understand how the process goes on, what we need to do is to understand the repeated process and figure out the core function. The computer will calculate the complicated process for us.
69
Advantages of using recursive algorithm in Hos project 3.2.3 1. A recursive algorithm is not the most efficient algorithm, sometimes we will develop it to reduce the computational complexity, but in the Hos project, the calculation is tiny(30*30), which is very easy and fast for a computer, simple but suitable. 2. To solve the puzzle, it is very complicated, while we can simplify this model to a repeated math model. So we can use a recursive algorithm to help us solve this impossible mission for us. Normally, we can not handle this kind of calculation by ourselves.
Painter algorithm
3. This math model will come up with a different phase result, if the catenaries are in the same phase, then they do not influence each other. Besides, the previous phase will provide the later phases with structural support if we add some joints. And that is what we want to do for stabilizing the whole strucOther available algorithm 3.2.4 painter algorithm is known as a priority fill, is one of the simplest solutions to the visibility problem in 3D computer graphics. When projecting a 3D scene onto a 2D plane, it is necessary at some point to decide which polygons are visible, and which are hidden.
Newell's algorithm
Newell's Algorithm is a 3D computer graphics procedure for the elimination of polygon cycles in the depth sorting required in hidden surface removal problems. It was proposed in 1972 by brothers Martin Newell and Dick Newell, and Tom Sancha. In computer graphics, z-buffering, also known as depth buffering, is the management of image depth coordinates in 3D graphics, usually done in hardware, sometimes in software. It is one solution to the visibility problem, which is the problem of deciding which elements of a rendered scene are visible, and 70
Z-buffering algorithm Fig. 31 Available algorithm 71
THE APPLICATION OF THE ALGORITHM
73
Build Up The Relationship List
Fig. 32 Rhino screenshot.
Fig.34 Rhino screenshot.
Fig. 33 Grasshopper component screenshot.
Fig. 35 Grasshopper component screenshot.
Step 1 Generate the catenary from the original curve, which comes from White’s system. Duplicate the data for a later intersection.
74
Step 2 Project the curve on to the XY plane. Offset the center line twice to generate the rectangle as the projection of the pipe.
75
Fig. 36 Rhino screenshot.
Fig. 38 Grasshopper component screenshot.
76
Fig.37 Rhino screenshot.
Abstract and simplify the practical problem
3.1.1 - 1
Fig. 39 Grasshopper component screenshot.
Step 3
Step 4
Calculate the intersection area of each two different pieces.
Generate a Z Vector from each centroid of the intersection area.
If there is an intersection part, get the centroid.
Get the points of the intersection between the Z vector and the catenary.
77
Visulization of the sequence Step 5 Compare the z value of point intersected, to check which point is on the top of another one. By doing this, we can know the relationship between the two catenaries. Repeat this process, at last, we will get the relationship list.
The last part is a visualization of the assembly sequence, as you can see from Fig.31, the different color means different construction phase. There is no difference to construct any of the catenaries if they are the same color, which means they do not influence each other.
Fig.43 The puzzle waiting for solving.
Fig. 40 Grasshopper screenshot.
Fig. 42 Grasshopper component screenshot. 78
Fig. 41 Relationship list.
Fig.44 Visualization of assembly sequence. 79
Fig.45 Visualization of assembly sequence.
Fig.46 shows the six different phases of the assembly sequence. This might be a good way to construct since basically, the catenaries we construct first will be the smaller one, so after we finished the smaller one, the larger one will be stabilized by the smaller one if we use sone joints to connect them.
Fig.46 Different phase of assembly sequence.
80
Phase 1
Phase 2
Phase 3
Phase 4
Phase 5
Phase 6 81
Calculate the assembly sequence Source code
Fig. 13 The simplified version of puzzle.
4.2.1
Fig. 14 The simplified version of puzzle.
Fig. 47 Part one of the code. 82
Fig. 48 Part two of the code.
83
Diagram
4.2.1
Fig. 49 The graphic of counter example.
84
85
Source code explanation
4.2.3
Line 13-18: This is a definition of several different lists, for saving different data. Judge list: store the data on the relationship list. Order list: store the Sequence. Cir list: Abbreviation of circulation, for judging if the recursive algorithm goes into an infinite loop. Goo list: Judge if we need to break the function. Loop list: store the index of catenaries that are into a loop. Line 20-25: Translate the relationship list into a 2d list, saved as a judge list. Since 1d list is hard to fetch the data we need, for example, judge[i][j] can be defined as the relationship between catenary - i and catenary - j, if we want to use 1d list to save, it will be judge[i*cnt+j] which will be more complicated. Line 30-39: This is the recursive function for searching the sequence order. Judge if the function is in an infinite loop if so, break the function. This is trying to avoid the situation of Fig.35, the red part diagram shows the infinite loop error, which will cause a runtime error, so the software may crash without saving.
Fig. 50 Part one of the code. 86
87
Fig. 13 The simplified version of puzzle.
Line 41-54: This is the main part of the recursive algorithm. The basic logic is: if the order[j] has updated, which means the function has checked index-j, so we don’t have to check it again; if not, we check the index-j. Now list: for j in range(cnt): if judge[i][j] == true now[i] = max( order[j] ) +1
order[i] = now[i]
Line 57-64: Formula: A = max(B(A>B)) + 1 Y = max() + 1 = 0 + 1 = 1 (which means Y is the lowest part) G = max(Y or R or B) + 1 R = max(Y) +1 = 1 + 1 = 2
Fig. 14 The simplified version of puzzle.
B = max(Y or R) +1 = 2 + 1 = 3 G = max(Y or R or B) + 1 = 3 + 1 =4 Line 67-87: Check(i): scan all the relationship list. Out: out = 1 means there exist an infinite loop Loop: save the index of the catenaries which are in a loop
Fig. 51 Part two of the code. 88
89
CONCLUSION AND EXPECTATION
91
Conclusion
My concern is that if we have to understand what the computer tries to transfer to us, what should we do? My answer will be that we use the computer to help us understand the result generated by the computer. Because people can not comprehend a complicated system and deal with too much information at the same time.
We are at a historical node that computer science is developing rapidly while computer science in architecture is still lagging. Of course, we have lots of precious experience from our great predecessors, on the other hand, we will be the predecessors for the next generation. So think about the relationship between previous experience and the future is important for now. As I mentioned at the beginning of this article, we have invented lots of assembly sequences for different purposes and situations, such as top-down, prefabrication, pop up, and so forth. While there is no research on how to solve the assembly sequence problem for the design generated by the computer. How do we understand the result that the computer provides us with? How do we look at the relationship between computers and human beings? What's our role as an architect in the future?
But what we can do is abstracting the problem and simplify it to a simple model, after we figure out the simple one, we can extend it to a universally applicable one. We could say we understand how this system works, but we don't know how exactly the computer will run the program. Every time if the income changes, the process, and the outcome will change intensely. People is doing much worse calculation work than a computer, that's why we need a computer even after we understand the whole math model, we can't get the result. Assembly sequence problem is a very classical problem that we turn to the computer for help. It's a little bit similar to logistics, the sequence problem. We will deal with lots of complicated relationships, the calculation will be huge, and there are lots of sequence results that may fit our requirement. So why not embrace the technology, take advantage of it and our experience, make architecture a better future?
There problems all waiting for us to explore and discuss, and at last the result will have a far-reaching influence on every part of our life and work.
92
93
Expectation
Another advantage of using algorithms in architecture is that we don't have to think too much about effectiveness. For instance, in the Hos project, one wall will consist of most 31 catenaries, which means the time complexity is just 31*31, or we can say, it could be ignored even the number goes to 100 since the computer has a very powerful calculation ability.
This article just explored the opportunity of the recursive algorithm of the application of the architecture field. The recursive algorithm is a relatively primary algorithm of computer science, but it can solve a very practical but complicated problem in architecture, which suggests that there are lots of potentials to explore more. The development of algorithms encouraged by a more and more complicated problem, but in architecture, we don't go that way since most of the works are without professional knowledge, they can not understand too difficult guiding, so keep simple and understandable become the most important mission. I assume in the future, the design will become delicate and practical, which requires the designer's
So sometimes, some simple algorithms can still work, we don't need to spend too much time improving algorithm efficiency which might be quite important in some fields like WeChat information storage. The storage is a very simple mission, while when the number goes to billions, everything will be slow and unprecise. Here, architecture never goes to that way, the problem is very practical, specific, and concrete, what we need to do is find a proper algorithm and use it to help us solve the problem. I believe that more and more problems will be able to be solved by the program if we tried to, and this is going to free architects from the repeated calculation, we can have more time on emotional exploration and self digging.
higher ability in controlling the whole process and communicate with a different team. How can we explain a sophisticated design or a system to a worker? We have to break down the system, and show them the most understandable instructions, like what I mentioned in the visualization of the sequence, everybody can understand the result, and they have no need to understand how the result comes out.
94
95
REFERENCE
97
[1]Robin Gandy. The Confluence of Ideas in 1936[C]/ /The Universal Turing Machine/A Half - Century Survey,Springer - verlag,Wien New York,1994,1995.
[13]Dershowitz,Yuri Gurevich. A natural axiomatization of computability and proof of Church's Thesis[J]. Bulletin of Symbolic Logic,2008,14(3).
[2]Robert I,Soare. Computability and Recursion[J]. Bulletin of Symbolic Logic / Volume 2 / Issue 03/September,1996.
[14]Marvin Lee Minsky. Computation: Finite and Infinite Machines[M]. Prentice - Hall,1967.
[3]Thoralf Skolem. The foundation of elementary arithmetic established by means of the recursion mode of thought,without the use of apparent variables ranging over infinite domains[C]/ /From Frege to Godel/ /A Source Book in Mathematical Logic,1879—1931. Havard University Press,1977.
[15]莫绍揆. 递归函数/中国大百科全书[M]. 北京:中国大百科全书出版社,1988. [16]丁德成. 递归函数/数学大辞典[M]. 北京:科学出版社,2010.
[4]Kurt Godel. On Formally Undecidable Propositions of Principia Mathematica and Related System I. From Frege to Godel[M]. Harvard University Press,1967.
[18]Nigel Cutland,. Computability - An Introduction to Recursive Function Theory[M]. Canbridge University Press,1980.
[5]哥德尔. 论《数学原理》及其相关系统的形式不可判定命题(I)[C]/ /张寅生. 证明方法与 理论. 北京:国防工业出版社,2015.
[19]李勋. 基于遗传算法的装配序列规划研究与应用[D].东北大学,2011.
[17]宋方敏. 计算模型导引[M]. 北京:高等教育出版社,2012.
[20]geek:https://www.geekplus.jp/news/news_20180706.html 15th.July.2020 [6]S. C 克林. 元数学导论[M]. 莫绍揆,译. 北京:科学出版社,1985. [21]alfago:https://www.thenewslens.com/article/69221 16th.July.2020 [7]Stephen Kleene(1952)Introduction to Metamathematics[C]/ /Walters - Noordhoff & North - Holland. with corrections (6th imprint 1971); Tenth impression 1991. [8]Wilhelm Ackermann,On Hilbert's construction of the real numbers[C]/ /From Frege to Godel/ /A Source Book in Mathematical Logic,1879 -1931. Havard University Press,1977.
[22]geeks:https://www.geeksforgeeks.org/recursion/ 20th.July.2020 [23]Hironori Yoshida, Takeo Igarashi, Yusuke Obuchi, Yosuke Takami, Jun Sato, Mika Araki, Masaaki Miki, Kosuke Nagata, Kazuhide Sakai, and Syunsuke Igarashi. 2015. Architecture-scale human-assisted additive manufacturing. ACM Trans. Graph. 34, 4, Article 88 (August 2015), 8 pages. DOI:https://doi.org/10.1145/2766951
[9]Wilfried Sieg. Only Two Letters: The Correspondence between Herbrand and Godel[J]. The Bulletin of Symbolic Logic,2005,11(2). [10]张寅生. 计算理论解析[M]. 北京:清华大学出版社,2016. [11]Alan Turing. On Computable Numbers,with an application to the Entscheidungsproblem[J].Proceedings of the London Mathematical Society,42(1936 -37). [12]Stephen C. Kleene. Turing's Analysis of Computability,and Major Applications of It[J]. The Universal Turing Machine/A Half - Century Survey,Springer - verlag,Wien New York,1994,1995.
98
99
APPENDIX
101
Dealing with the material
102
103
Material research
Water storage capacity research
7.2.1
Porosity test is carried out to find out the water absorption ability of each sample for better passive cooling effect. The collected data is used for comparison and decision making in terms of the suitability of baking temperature and percentage of mixing in the recipe. Each sample is completely soaked into water and left for 24hours. The sample's weight before and after soaking in water is measured and then the diference is calculated to get the percentage of increase in weight. Two types of clay that baked at different temperatures istest: 1.) Industrail Clay 2.) Artist's Clay Tenjiku Coarse(Sample A) & Fine (Sample B) Yamatsuchi Coarse(Sample C) & Fine(Sample D) Sample C from Artist's clay that baked in between 1000°C to 1100°C provide the most favorite conditions taking into the consideration of strength compared with other samples. Two different ways of testing are suggested for future improvements. First, the sample's weight can be measured by taking out the sample soon after it was soaked completely in the water to know the speed of water absorption. Second, to find out the strength of capillary action on each sample by soaking only parts of the sample into water.
104
Fig. 9 The final proposal we have for Hos project.
105
106
107
108
109
Clay comparision research
7.2.1
Porosity test is carried out to find out the water absorption ability of each sample for better passive cooling effect. The collected data is used for comparison and decision making in terms of the suitability of baking temperature and percentage of mixing in the recipe. Each sample is completely soaked into water and left for 24hours. The sample's weight before and after soaking in water is measured and then the diference is calculated to get the percentage of increase in weight.
110
111
112
113
114
115
116
117
T-ADS 118