Programmable Architecture

-Towards Human Interactive, Cybernetic Architecture-

Kensuke Hotta (B.Eng, M.Eng, Msc)
Architectural Association School of Architecture, 2013

プログラマブル アーキテクチャ

ーヒューマンインタラクティブ、サイバネティックアーキテクチャーに向けてー

堀田憲祐, 英国建築協会建築学校 

Chapter 7

Experiment 2: Human-Assisted GA with Processing

第7章

実験2:プロセッシングによる、人間が援助する遺伝的アルゴリズム

7-1. Introduction

In the previous chapter, it was seen that Galapagos has several limitations. Especially in the case of a dynamic fitness landscape, the real-time kinetic candidate was unable to achieve an ideal result (the ‘kinetic ultimate’ candidate). In this chapter, using another program, Processing, which is a version of JAVA, a more flexible system will be created which allows user participation in the process.

7-1. 序論

 前章では、既存の遺伝的アルゴリズム、ガラパゴスの流用ではいくつかの限界があることが見えてきた。特に、動的な適応度地形の条件下で、リアルタイム・キネティック(随時計算・可動屋根)候補は、Ultimet-Kinetic候補の計上した理想的な結果を得ることができなかった。この章では、JAVAの一種であるプロセッシングという別のプログラムを使って、ユーザーがアルゴリズムのプロセスに参加できる、より柔軟なシステムを提案・作成する。

Fig.7-1,1 The screenshot of the execution windowThis figure shows the actual window shot of the program. There are 4 components of the proposed tensegrity structure in this experiment. Black bold lines show the compression sticks and brown thin lines show tension wire, Blue bars show suspension, and Green triangles show the membranes as roof, in tensegrity structure. Also, the black grid shows the ground plane. Yellow lines are the connection lines between the moving point and the crosspoint of the grid that indicates lies from the sun to the ground. The red triangles are the shadows of the green membranes. Those are dynamic systems.
図.7-1.1:実行画面のスクリーンショットこの図は、実際のプログラムのスクリーンショットである。この実験で提案されたテンセグリティー構造の構成要素は4つある。黒の太線は圧縮棒、茶の細線は張力ワイヤー、青の棒はサスペンション、緑の三角はルーフとなる膜を示し、テンセグリティー構造になっている。また、黒い格子は地上面を表している。黄色い線は、太陽から地面の格子を結ぶ接続線である。赤い三角形は、緑の膜の影を示している。これらは動的システムである。

7-2. The Model Concept

7-2.モデルの方針 

Fig.7-2,1: System DiagramThe proposed system consists of 2 inputs, one is a sensor and another is a device. Those data are treated and result in a shape change of the kinetic roof.
図.7-2,1 : システム図提案するシステムは2つの入力で構成されており、1つはセンサー、もう1つは人間が持つデバイスである。これらのデータは処理され、結果としてキネティックルーフの形状を変化させる。

The biggest difference and improvement from the previous model is the ‘Sandwich method’. While the previous model only allowed one input, namely the environmental input from the sun, this model has 2 inputs, one the top-down environmental input similar to the GA, and the other being a bottom-up user input explained below. Obviously, this is not a pure GA system, but rather a human-interactive evolutionary algorithm. To understand the system’s processes diagrams are used. The roof is made of a tensegrity structure which has the ability to change shape with shape memory alloy.

 前章でのモデルとの最大の違いと改良点は、「サンドイッチ方式」と呼ばれるハイブリッドシステムである。従来のモデルでは、太陽からの環境光をセンサーを通じてシステムに入力するという1系統入力であった。このモデルでは、前章と同様のトップダウン式の環境入力と、以下に説明するボトムアップ式のユーザー入力の2つの入力がある。明らかに、これは純粋なGAシステムではなく、人間と相互作用可能な進化的アルゴリズムである。システムのプロセスを理解するためにダイアグラムを用意した。屋根構造には、形状記憶合金で形状を変えることができるテンセグリティー構造が採用されている。

Fig.7-2, 2: Process Diagram Step1
図.7-2 , 2 : システム進行過程、ステップ1 

     Usually, a kinetic roof works as an automatic top-down system by using a Genetic Algorithm (GA). Each genome or gene is equal to the rest length of the tension member. Initially, each component has 12 genomes, each between 160 and 200 (dimensions in GA unit-less). The components are updated periodically, for instance, every 10 minutes, depending on the computational power of the computer. Each component has 12 genomes each between 160 <x<200 (= length of each wire). These numbers are set because they correspond with the values from the previous experiment. In chapter 6, each genome had a rest length between 0.80<x<1.00 where x represents their overall length. If a larger shrinking rate such as 0.60 or 0.40 of x were to be chosen, the system would obviously be able to achieve a higher score, but this would change the parameters of the experiment.

 通常時、キネティックルーフ(可動屋根)は遺伝的アルゴリズムを用いて、自動的にトップダウンシステムとして作動している。各遺伝子の数字は、張力部材の自然長である。初期状態では、各コンポーネントは160から200の間の12個のゲノムを持っている(アルゴリズムの内部で寸法は単位なし)。コンポーネント(建築単位)の状態は、コンピュータの計算能力に応じて、例えば10分ごとなど、定期的に更新される設定にしてある。各コンポーネントは各ワイヤーの長さ160<x<200の間に12個のゲノムをそれぞれ持っている。これらの数字は、前章の実験の値と一致している範囲で設定した。第6章では、各ゲノムの自然長を0.80<x<1.00(xは全長を表す)とした。もし、xの0.60や0.40といったより大きな縮小率を選択すれば、システムは当然より高いスコアを得ることができるが、それでは実験の前提条件が変わってしまうので注意した。

     Weighting is key to solving the conflicting input between individuals as well as the conflict between individual and global inputs. Each user is set a particular weighting by the system authority. This could be just temporary, and it could be changeable. This weighting translates into the number of components a user can control. When in a given area different inputs are encountered this weighting provides a compromise answer.

 重み付けは、人間の個人間の入力の干渉や、個人とグローバルの入力の衝突を解決する鍵となるテクニックである。各ユーザーには、システム権限者によって特定の重み付けが設定される。これは一時的なものかもしれないし、変更可能なものかもしれない。この重み付けは、ユーザーがコントロールできるコンポーネントの数につながる。とある領域で正負が異なる入力に遭遇した場合、この重み付けは妥協できる答えを提供する。

Fig.7-2,3: Process Diagram Step2 
図.7-2,3: システム進行過程、ステップ2 
Fig.7-2,4: Process Diagram Step 3 
Fig.7-2,4: Process Diagram Step 3 

     Instead of a ‘random’ mutation, user input is used to seed the next generation. This will help reduce the calculation time. This may, however, create the tendency for the system to tend towards the local optimal solution, which would be considered a negative effect. In this experiment, the user input signal is a signal from a mobile as was demonstrated in the previous chapter. This can be of help as it is different from sensor input. Mobile device input provides an immediate channel of input which can be translated into a local deformation of the roof. However, this can affect the global GA, because global and local hierarchies are inter-connected to each other. 

 オリジナルのアルゴリズムで完全に「ランダム」な突然変異の代わりに、ユーザーの入力が次世代の種として使用される。これにより、計算時間を短縮することができるのではという仮説である。しかし、これはシステムが局所的な最適解に向かう傾向を生み出す可能性があり、ネガティブな効果も与えうる。この実験では、前章で示したように、ユーザーの入力信号をモバイルデバイスからの信号としている。これは、センサーからの入力とは異なるため、スコアの計算のために違った価値を持つ。モバイルデバイスからの入力は、ルーフの局所的な変形に即座に変換できる入力チャネルとなる。しかし、グローバル階層(全体)とローカル(局所)階層は相互に関連しているため、これは全体スケールで稼働している遺伝的アルゴリズムに影響を与える可能性がある。

Fig.7-2,5: Process Diagram, Step 4
図.7-2,5 : システム進行過程, ステップ4 

     In other words, a user can edit a system’s local genome which may have a future positive or negative effect. The central GA will decide whether this signal is useful or harmful. If deemed to be harmful, it will be eliminated sooner or later using a kill strategy [Note: kill strategy is a technical term in GA, which means “it will be made to disappear” ]. The user’s local input remains over several generations. Subsequently, vestiges of the input may or may not remain, depending on later calculations. This procedure is shown as a diffusion process. 

 言い換えれば、建築物の使用者はシステムの遺伝子を局所的に編集することができ、それが将来的に有益、あるいは有害な影響を与える可能性がある。しかし加えて、全体を司るGAは、この信号が役立つのか有害かを判断できる。有害と判断された場合は、キルストラテジー(注:キル戦略は遺伝的アルゴリズムの専門用語で、遺伝子的に「消滅させる」ことを意味する)を用いて、遅かれ早かれ排除されることになる。そうこうしながらも、建物使用者の局所的な入力の影響は、数世代にわたって残るだろう。その後の計算によって、入力の痕跡が残る場合と残らない場合がある。この手順を拡散過程と呼ぶ。

7-3. Before the Experiment, Preparation, and Model Details

7-3-1: Traer physics to simulate spring

In formal terms, the Particle System is defined as “a method for modeling fuzzy objects such as fire, clouds, and water. Particle systems model an object as a cloud of primitive particles that define its volume.”(Reeves, 1983) In this thesis, a library is used for expanding Processing’s functions, called Trær.Physics 3.0. This is a simple particle system physics engine for processing. Dr. Jeffrey Trær Bernstein (Bernstein) designed this to be application and domain- agnostic. Its creator said, “all this is supposed to do is let users make particles, apply forces and calculate the positions of particles over time in real-time.” This library consists of four parts; one is the Particle System which takes care of gravity, drag, making particles, applying force, and advancing the simulation. Another is the Particles that move around in 3D space based on forces you've applied to them. The third part is Springs which controls the interaction between two particles and the last is Attractions which also controls the interactions between two particles. Typical syntax referring to the Springs system is described below.

7-3 . 実験前の準備とモデルの詳細

7-3-1 : スプリングをシミュレートするためのトレイル物理学

形式的には、パーティクルシステムは”火、雲、水などのファジーなオブジェクトをモデリングするための手法と定義されている。パーティクルシステムは、物体をその体積を定義する初期の粒子の雲としてモデル化する”(リーブス, 1983年) この論文では、プロセッシングの機能を拡張するために、Trær.Physics 3.0というライブラリを使用している。これは、Prプロセッシング用のシンプルな粒子系物理エンジンである。ジェファリー トレイル バーンスタイン(バーンスタイン)博士が、アプリケーションやドメインに依存しないよう設計したものである。 製作者は、"これでできることは、ユーザーがパーティクルを作り、力を加え、時間経過によるパーティクルの位置をリアルタイムで計算することだ "と語っている。

このライブラリは、4つの部分から構成されている。1つは、パーティクル システムで、それは、重力、抗力、パーティクルの作成、力の適用そしてシミュレーションの進行などを行う。もう一つはパーティクルに加えられた力に基づいて3D空間内を動き回るパーティクルである。3つ目は2つの粒子間の相互作用を制御するスプリングで、最後は2つの粒子間の相互作用を制御するアトラクションズである。スプリングスシステムを言及する典型的なシンタックスを以下に示す。

Fig.7-3-1,1: Screenshot of simple pendulumThe code is working under 'Processing'
図.7-3-1,1: シンプルな振り子のスクリーンショットコードは「プロセッシング」のもとで作動する
Fig.7-3-1,2 : Sample syntax of 'Simple pendulum' 
図.7-3-1,2 : 「シンプルな振り子」のサンプルシンタックス 

This is a simple sample code which shows a dynamic spring pendulum from the Trær home page.(Bernstein). The procedure is discussed here in brief, only focusing on the spring part. Firstly in lines 3 and 4, two particles are made, one being free to move and the other having a fixed position. These are named ‘p’, and ‘anchor’ in this code. Secondly in line 14, these particles are connected by a spring using ‘physicsmakeSpring()’ equal to ‘Spring makeSpring( Particle a, Particle b, float strength, float damping, float restLength )’. This is the core line for a spring’s creation, the same as in the previous chapter. Following Hooke’s Law, the user needs to decide and control the spring’s strength and damping and rest length. Springs connect 2 particles and attempt to keep them a certain distance apart. The Spring has 3 properties:

1)Rest Length - the spring wants to be at this length and acts on the particles to push or pull them exactly this distance apart at all times.

2)Strength - If the spring is strong it acts like a stick; if it is weak it takes a long time to return to its rest length.

3)Damping - If a spring has a high damping it doesn’t overshoot and it settles down quickly, with low damping it oscillates.

In this instance Strength was set at 0.5, Damping was set at 0.1, Rest and Length were set at 75, (all numbers are unit less). Finally on line 35, this spring is drawn with a simple ‘line’ syntax, within the ‘void draw’. Then on the screen everyone can see how it behaves.

これは、トレイルのホームページに掲載されている動的なバネの振り子を示すシンプルなサンプルコードである。(バーンスタイン)。ここでは、その手順を簡単に説明し、スプリングの部分にのみ注目している。

まず3行目と4行目で、2つのパーティクルが作られる。1つは自由に動き、もう1つは位置が固定される。このコードでは、これらを’p’と’anchor’と名付けている。次に、14行目で、これらのパーティクルをスプリングで接続する。(フィジックスメイクスプイング()’は’スプリングメイクスプリング( パーティクル a, パーティクル b, フロート ストレングス, フロートダンピング, フロートレストレングス ) ’に相当する。これは、前章と同様に、スプリングを作るための核となるラインである。フックの法則にしたがって、ユーザーはスプリングの強さやダンピング、残りの長さを決めてコントロールする必要がある。スプリングは、2つの粒子をつなぎ、一定の距離を保とうとする。スプリングには3つの性質がある。

1)レスト レングス:スプリングはこの長さになることを望み、粒子に作用して常にこの距離を正確に保つよう押したり引いたりする。

2)強さ - スプリングが強ければ棒のように動き、弱ければ元の長さに戻るのに時間がかかる。

3)ダンピング:スプリングのダンピングが高いとオーバーシュートせず、すぐに落ち着が、ダンピングが低いと振動してしまう。

この例では、強さを0.5、ダンピングを0.1、レストと長さを75に設定した(すべての数値は単位がない)。最後に35行目で、このスプリングは’void draw’の中で、シンプルな’ライン’構文で描かれている。そして、画面上で誰もがその動作を確認することができる。

7-3-2 : The detail of GA in Processing

7-3-2 : GAのプロセッシングの詳細

Basically, almost all the setup is the same as the Grasshopper’s experiment in chapter 6, for experimental fairness. In brief the experiment was carried out with the sun set in the northern hemisphere, moving dynamically through 180 degrees. This number assumes that the sun rises from the east horizontal line moving to the top of the sky sphere before setting on the west horizontal line. The various arguments and parameters are detailed below. 

基本的には、第6章のグラスホッパーの実験と、実験の公平性のために、ほとんどすべての設定は同じである。簡単に言うと、実験は北半球で太陽が沈み、動的に180度移動しながら行われた。この数値は、太陽が東の水平線から昇り、天球の上部に移動してから西の水平線に沈むことを想定している。様々な議論とパラメータの詳細は以下の通りである。

1) In terms of frequent change parameters on the top (= Global parameters),

1)頂点で頻繁にパラメータを変更するという点では(=グローバルパラメータ)、 

Fig.7-3-2,1: A part of syntaxFor the initial setup, the number of generations and individuals is limited. Initially, max generations are set at 50 and individuals are set at 10. These parameters of course influence GA’s behavior, and will be altered later on.
図.7-3-2,1: シンタックスの1部初期設定では、世代と個体の数が制限されている。最初は、最大世代数は50、個体数は10に設定されている。これらのパラメータはもちろんGAの動作に影響するので、後で変更される。
Fig.7-3-2,2: A part of syntaxFor the initial setup a single measurement of the shadow area (red area) is taken as an average over 30 frames. As this mathematical model consists of a dynamically simulated spring, it has a damping factor so for measurement a delay is needed. This time gap is set in the above “hyouka_lim” at a millisecond.
図.7-3-2,2:   シンタックスの1部初期設定では、30枚のフレームの平均として、影の部分(赤い部分)を1回だけ測定する。 この数学モデルは動的にシミュレートされたスプリングで構成されているため、ダンピングファクターがあり、測定には遅れが必要である。この時間差は、上記の’hyouka_lim’で1ミリ秒に設定されている。

2) In the “Class dna”, an array named ‘genes’ is prepared with 12 cells. The number of cells in this array is equal to the number of individuals in GA. These genomes-g1 through g12-contain the rest length values of the 12 springs, and their available range is restricted to between 160~200 (The rest length geometry of the springs is 200, the muscle wire (shape memory alloy) has an 80% shrinking rate, so the genome value is set at between a 100% and 80% shrinking rate). By changing the 12 spring’s lengths, the associated patch of roof changes its shape, causing the membrane to lean towards the sun or away from the sun depending on the goal. This different shape is called the phenotype. Of course this affects the shadow area on the ground, which in turn affects the fitness. The fitness criteria is set to maximize the projected shadow, the ground is set to Z=-200, which is visualized as a red area in the execution window. A random value between 160~200 is put into a prepared array, by using the ‘array’ syntax. This process generates the first generation called generation-0. 

2)’クラスdna’では、’遺伝子’という名前の配列が12個のセルで用意されている。この配列の セルの数は、GAの個体数と同じである。これらのゲノム-g1〜g12には、12個のスプリングの残りの長さの値が含まれており、その利用可能な範囲は160〜200に制限されている(スプリングの残りの長さの幾何学は200で、筋線(形状記憶合金)の収縮率は80%なので、ゲノムの値は100%〜80%の収縮率に設定されている)。12本のスプリングの長さを変えることで、関連するルーフの形状が変わり、そのゴールに応じて膜が太陽の方向に傾いたり、太陽から遠ざかったりする。この異なる形状を表現型と呼ぶ。もちろん、これは地上での影のエリアに影響し、適応度にも影響する。適合基準は投影された影が最大になるように設定され、地面はZ=200に設定され、実行ウィンドウでは赤いエリアとして可視化されている。160~200の間のランダムな値を、’配列’シンタックスを用いて用意した配列に入れる。この処理により、ジェネレーション-0と呼ばれる最初の世代が生成される。 

Fig.7-3-2, 3: A part of syntax 
図.7-3-2, 3:シンタックスの1部 

3) For generation-0, ten individuals are initially generated, and then they are represented in the simulated 3D world as a phenotype. This procedure tests each one in order and measures its fitness.

3) ジェネレーション-0では、最初に10個の個体が生成され、それが表現型としてシミュレーションされた3D世界に表現される。この手順では、それぞれの個体を順番にテストし、その適応度を測定する。

4) After the system gets the fitness results from all members, it moves on to mating and generates the next generation. The selection is done by a roulette selection. From the value of the fit on each individual, make a ‘total’ value by conducting minus minimum fit value. Then make a ‘papa_r’, ‘mama_r’ with random integers in a range between 0~total. In this way, the parents’ genes are decided.


4) システムはすべてのメンバーから適応度の結果を得た後、交配に移り、次の世代を生成する。その選択はルーレットで行う。各個体の適応の値から、適応の最小値を引いて’合計’の値を作る。

そして、0~totalの範囲のランダムな整数で’papa_r’’mama_r’を作る。このようにして、両親の遺伝子が決まる。

Fig.7-3-2, 4: A table and chart that explains selection These figures indicate ways of making biased selection. The value the fitness means the area of shadow . That is calculated by the number of red pixels in this case. The bigger value is the better , and the more fit. The green values (Fit_g) are the difference between the each value of fitness and minimum score (id2: 5009 in this case). From graph, id3 , id6 and id7 have high fitness, and also it is natural to have bigger difference too. 
図.7-3-2, 4:選択を説明する表とグラフこれらの図は、偏った選択の方法を表している。適応度の値は、影の面積を意味している。これは、この場合、赤いピクセルの数で計算される。値が大きいほど、より良く、より適応していることを意味する。緑色の値(Fit_g)は、適応度の各値と最小スコア(この場合はid2:5009)との違いである。グラフを見ると、id3、id6、id7の適合度が高く、違いも大きいのが自然である。
Fig.7-3-2, 5: A part of syntax : selection
図.7-3-2, 5: シンタックスの1部:選択
Fig.7-3-2, 6: A Diagram of different mating probability in roulette selection In the left chart, each bar is equal to the green part (The difference between fitness and minimum fitness), but coloured different way for better understanding. These numbers will be the source of the roulette. The length of the right colorful bar shows each ratio of candidates of the parents. The higher fit individuals tend to have a wide range in this diagram, it means The higher fit individual has a higher probability of mating.
図.7-3-2, 6:ルーレット選択におけるの交配確率の違いを示す図 左の図では、それぞれの棒が緑の部分(適応度と最小適応度の差)と同じだが、理解しやすいように色を変えている。この数字がルーレットの元になる。右のカラフルな棒の長さは、両親の候補の各比率を表している。この図では、適応の高い個体ほど幅が広い傾向にあり、適応の高い個体の方が交配の確率が高いことを意味している。

From the value of the fit on each individual, make a ‘total’ value by conducting minus minimum fit value. Then make a ‘papa_r’, ‘mama_r’ with random integers in a range between 0~total. Then parents’ genes are decided. 

各個体の適合度の値から、適合度の最小値を引いて「合計」の値を作る。次に'papa_r', 'mama_r'を0〜totalの範囲でランダムな整数で作成する。そして両親の遺伝子を決定する。 

Fig.7-3-2, 7: A part of syntax: mating 
図.7-3-2, 7:シンタックスの1部:交配 

5) The system will figure out whether the next execution is needed using end rule or divergence calculations.

Based on the selected parents, the system generates the next generation with one point crossover. In addition one of the best fit genes and one random gene are translated to the next generation.

This is repeated ‘generation_lim’ times, and its convergence can be observed.

5) システムは、エンドルールや発散計算により、次の実行が必要かどうかを考える。

選択された親をもとに、システムは1点のクロスオーバーで次世代を生成する。さらに、もっとも適応する遺伝子の1つとランダムな遺伝子の1つが次世代に移る。

これは’generation_lim’を繰り返し、その収束を観察することができる。

Fig.7-3-2, 8: A part of syntax 
図.7-3-2,8:シンタックスの1部 

7-3-3 : The Pre-conditions

Before the final experiment starts, confirmation is needed that the basic system is working properly. This system needs to be operating under the same conditions as chapter 6’s grasshopper based system. This means that the ‘Realtime kinetic’ candidate can have a slightly better score than the ‘fixed’ candidate, but it obviously cannot achieve the ideal score of the ’Kinetic ultimate’ candidate within normal GA. It is unfortunately not easy to handle algorithms on GA so this system has been manually constructed by the author. The actual data, which was measured with this system, is shown as a graph below and a table in the appendix (see appendix).

7-3-3 : 前提条件

最終的な実験を開始する前に、基本システムが正常に作動していることを確認する必要がある。このシステムは、第6章のグラスホッパーをもとにしたシステムと同じ条件で作動する必要がある。これは、’リアルタイムキネティック’候補は’固定’候補よりも若干良いスコアを得ることができるが、通常のGAでは’最終キネティック’候補の理想的なスコアを得ることができないのは明らかである。残念ながらGA上でアルゴリズムを扱うことは容易ではないので、このシステムは筆者が手動で構築したものである。このシステムで測定された実際のデータは、下のグラフと別紙の表で示されている(別紙参照)。

Fig.7-3-3,1 Three candidates comparison

図.7-3-3,1 3つの候補の比較

This graph mainly depicts the same information as in chapter 6, firstly the vertical axis shows the number of pixels in shadow which is equal to the shadow area (the numbers for the shadow are bigger than those in chapter 6 because of a different counting method. The units can be ignored.). The horizontal axis shows the angle of the sun from 0 degrees to 180 degrees. This indicates the movement of the sun from the east horizontal line to the west horizontal line in the northern hemisphere. The candidates are set up as in chapter 6. The ‘Fixed Score’ candidate which is shown as a gray line is the fixed roof. These values are used as the most basic benchmark for comparison with the kinetic roof. The blue line shows the ’Realtime Kinetic’ candidate, as the roof which adjusts in real time using GA. The last line represents the ideal condition, called the ‘Kinetic ultimate’. Those scores are measured in one degree increments; each degree being executed over 170 generations. This took almost 30 minutes per degree to calculate. The author’s reasoning behind deciding to assume that 170 generations are enough for execution is elucidated below.

このグラフは、主に第6章と同じ情報を表している。まず、縦軸は影の面積に相当する影のピクセル数を表している(カウント方法が異なるため、第6章よりも影の数値が大きくなっている。単位は無視して構わない)。横軸は、0度から180度までの太陽の角度を示す。これは、北半球の東の水平線から西の水平線への太陽の動きを示している。候補は6章と同様に設定されている。グレーの線で表示されている’固定スコア’候補が固定ルーフである。これらの値は、キネティックルーフと比較するための最も基本的な水準点として使用される。

青い線は’リアルタイムキネティック’と呼ばれる候補で、GAを使ってリアルタイムに調整されるルーフを示している。最後の線は理想的な状態を表し、’最終キネティック’と呼ばれている。これらのスコアは、1度単位で測定される;1度ごとに170世代にわたって実行される。これには1度あたり30分近くの計算時間がかかった。170世代もあれば十分だと判断した筆者の理由を以下に説明する。

Fig.7-3-3, 2: The difference of each two candidate  
図.7-3-3, 2: ふたつの候補の違い 

For a variety of reasons, the differences of each candidate look small in the above graph(fig 7-3-3), therefore, other representations were used for clarity’s sake. The difference between the ‘Kinetic Ultimate’ candidate and the ‘Fixed’ candidate was set as blue and between the ‘Kinetic ultimate’ candidate and the ‘Realtime kinetic’ candidate as red in figure 7-3-4. It is obvious from the graph, that the blue area is bigger than the red. This shows that while the ‘Realtime kinetic’ candidate has a better result than the ‘Fixed’ candidate there is still a gap between it and the ideal result. This gives the same result as in chapter 6 thus confirming this experimental model as equivalent to that in chapter 6.

様々な理由により、上のグラフ(図7-3-3)では各候補の差が小さく見えてしまうため、分かりやすくするために他の表示を用いた。図7-3-4では、’最終キネティック’候補と’固定’候補の差を青に、’最終キネティック’候補と’リアルタタイムキネティック’候補の差を赤に設定した。このグラフから明らかなように、青い部分が赤い部分よりも大きくなっている。これは、’リアルタイムキネティック’候補が’固定’候補よりも良い結果を出しているものの、理想的な結果との間にはまだギャップがあることを表している。 これにより、6章と同じ結果が得られ、この実験モデルが6章と同等であることが確認された。

7-3-4 : Deciding how to finish calculations

Many sources point to the difficulty in trying to decide how much calculation time is enough for GA. These graphs (fig 7-3-4,1) are an example of the GA calculations after 300 generations (Tables are in the appendix.). These results were obtained by having the sun-fixed at 50 degrees in each generation which has 10 individuals and repeating it 10 times using the same settings. From this pre-experiment, it is obvious that GA is for some reason an unstable algorithm. Even after 300 generations using the same settings, the highest mark varied. Calculation time, however, has to be decided in actual use, therefore, an appropriate time duration needs to be decided. Green dots show the unique highest mark point. Blue dots are the highest points in the two dimensional approximation. The average value of the green dots is 143.9 generations, and blue dots’ average is 160.8 generations. From these two data it seems clear that anything over 160 generations is enough for this setting thus 170 generations is more than adequate.

7-3-4 : 計算の終え方を決める

GAの計算時間をどの程度にするかの難しさは、多くの資料で指摘されている。これらのグラフ(図7-3-4,1)は、300世代後のGAの計算結果の一例である(表は別紙)。この結果は、10個体からなる各世代で、太陽を50度に固定し、同じ設定で10回繰り返すことで得られた。

この事前実験から、GAは何らかの理由で不安定なアルゴリズムであることが明らかになった。同じ設定で300世代経過しても、最高点にばらつきがあった。しかし、計算時間は実際に使ってみないとわからないので、適切な時間を決める必要がある。緑の点は、ユニークな最高点を示している。青色の点は、2次元近似の最高点を示している。緑の点の平均値は143.9世代、青の点の平均値は160.8世代である。

この2つのデータから、この設定では160世代以上であれば十分であり、170世代であれば十分以上であることがわかる。

Fig.7-3-4,1 : Ten trial of GA in 300 generations 
図.7-3-4,1 :300世代でGAを10回試行 

7-4. Model Execution and Evaluation

7-4.モデルの作成と評価

fig 7-4,1: Program Execution Interface

Fig.7-4,1: Program Execution Interface

The figure (fig 7-4,1) shows an actual display shot during the program’s execution. When the user clicks ‘Run’ in the main code window, other windows will show up, one is the control window, another is the execution window. In this Program mainly 4 things are happening;

1) Physical tensegrity simulation,

2) GA for shape optimization,

3) User interruption(help) controlled by a slider and

4) Area Calculation of shadows.

It attempts to keep the conditions as identical as possible with the previous experiments in chapter 6, but it was not possible to preserve all of the settings.

On the following pages, 5 different executions are shown as graphs. Each graph shows a unique 'GA + Human' method, the three candidates: (Fixed, Real-time-Kinetic, Kinetic-Ultimate) are the same. Each 'GA + Human’ method’s score depends on the proficiency of the human and the timing (number of interventions.) Five different cases are shown here to give a representative overview.

図(図7-4,1)は、プログラムの実行中に実際に表示されたものである。ユーザーがメインコードウィンドウで’実行’をクリックすると、別のウィンドウが表示され、ひとつはコントロールウィンドウ、もうひとつは実行ウィンドウが表示される。このプログラムでは、主に4つのことが行われている。

1) 物理的なテンセグリティー シミュレーション,

2)形状最適化のためのGA,

3) スライダーで操作するユーザーインタラプション(ヘルプ)と

4)影の面積計算。

第6章の過去の実験とできる限り同じ条件になるようにしているが、すべての設定を残すことはできなかった。

次のページでは、5種類の実行結果がグラフで表されている。それぞれのグラフは、ユニークな’GA+人間’の手法を表しているが、3つの候補(固定, リアルタイムキネティック、最終キネティック)は同じである。 GA+人間の各手法のスコアは、人間の習熟度とタイミング(介入回数)による。ここでは、代表的なものとして5種類のケースを紹介する。

Fig.7-4,2: Chap7 Experiment Result, Execution-1
図.7-4,2: 7章 実験結果、実行-1
Fig.7-4,3: Chap7 Experiment Result, Execution-.2
図7-4,3: 7章 実験結果、実行-2

Fig.7-4,4: Chap7 Experiment Result, Execution-3 

図.7-4,4: 7章 実験結果、実行-3 

Fig.7-4,5: Chap7 Experiment Result, Execution-4 

図.7-4,5: 7章 実験結果、実行-4 

Fig.7-4,6: Chap7 Experiment Result, Execution-5 
図.7-4,6: 7章 実験結果、実行-5 

For consideration

1) When human input works properly, ‘GA+ Human’ method almost approaches the ideal score of ‘Kinetic ultimate’ for certain periods. Moreover in some instances, ‘GA+ Human’ exceeds the ‘Kinetic ultimate’ for short periods of time. One can assume that human intelligence can predict what is going to happen next within a short time span. However, GA cannot predict, and calculation is executed in a discrete model. Hence the ‘GA+ Human’ method can exceed the ‘Kinetic ultimate’, momentarily. The ‘Kinetic-Ultimate’ methods are ideal scores, but it does not mean they are the best scores. There are two reasons why this happens. One is that the ‘Kinetic-Ultimate’ does not achieve the best answer. As was explained in the previous chapter, there is no end mark for finishing a calculation. In this case each degree is shown as the result of 300 generations of calculations, but this number may not be enough. Another reason is this GA’s settings may not be appropriate to get the best score. There are many parameters and methods in GA, and the result is sensitive. Because of the limitations of the time, the concern about GA itself is left for further investigation.

考察

1)人間の入力が適切に働いた場合、’GA+人間’の方式は、ある期間、理想的なスコアである

’最終キネティック’にほぼ近づく。さらに、’GA+人間’が短時間で’最終キネティック’を上回る場合もある。人間の知能は、短い時間内に次に何が起こるかを予測できると考えることができる。しかし、GAは予測することができず、計算は離散的なモデルで実行される。そのため、’GA+人間’の方式は、瞬間的には’最終キネティック’を超えることができる。

’最終キネティック’方式は理想的なスコアではあるが、ベストスコアであるとは限らない。このようなことが起こる理由は2つある。1つは、’最終キネティック’ではベストアンサーを達成できないこと。前章で説明したように、計算を終了するエンドマークはない。この場合、各度は300世代の計算結果として表示されるが、この数では足りないかもしれない。

もう1つの理由は、GAの設定がベストスコアを得るために適切でない可能性があるからである。GAには多くのパラメータや手法があり、結果は微妙なものになる。

時間の制約があるため、GA自体の懸念については今後の検討課題とする。

2) When the ‘Kinetic GA’ is observed with the human eye, it is obvious that sometimes the roof takes an inefficient form to maximum the shaped area. This is a necessary step of GA for evaluating genes, but this results in noise in real time. The line of the ‘Real-time Kinetic’ (Simple GA) does not show a temporal fluctuation since it is an ongoing calculation, so the score sometimes does not follow the ideal value (Kinetic Ultimate).

2) ‘キネティックGA’を人間の目で観察すると、明らかにルーフの形をした部分を最大化するために非効率的な形をとることがあることがわかる。これは、遺伝子を評価するためのGAの必要なステップだが、これがリアルタイムではノイズになってしまう。’リアルタイムキネティック’(Simple GA)のラインは、継続的な計算であるため時間的な変動が見られず、スコアが理想的な値(最終キネティック)に沿わないことがある。 

3) The positive effects of human intervention: There are two mountains in this graph generally. The ‘GA+ Human’ method's value tends to exceed the ‘Real-time Kinetic’ method's value (vertical axis), when the inclination changes. It doesn't happen on the top of the mountain or on the bottom of the valley, but at the beginning and end of them, for example at 20 degrees and 111 degrees on the horizontal axis. The inclination of the line indicates the degree of change. This perhaps demonstrates that human interventions help GA to follow rapid alterations in illumination in this experiment. GA alone cannot adapt rapidly or suddenly to environmental changes. 

3)人間が介入することによるプラスの効果: このグラフには通常2つの山がある。傾きが変わると、’GA+ 人間’の方式の値が’リアルタイムキネティック’方式の値を上回る傾向がある(縦軸)。それは山の頂上や谷の底ではなく、それらの始まりと終わり、例えば横軸の20度と111度のところで起こる。線の傾きは変化の度合いを示している。この実験では、多分人が介入することで、GAが照明の急激な変化に付いていくようになったことを表している。GAだけでは、環境の変化に迅速かつ急激に適応することはできない。 

4) The negative effects of human intervention: There are some points where the ‘GA+ Human’ method makes a temporary negative fluctuation. This is frequently seen when two events happen at the same time: At just after a transformation by intervention, and when a huge environmental change has happened, around 150 degrees on the horizontal axis is one of these representative durations. Interventions are a double-sided tool, sometimes working effectively, but sometimes harming the gene due to timing. 

4)人間が介在することによる弊害: ’GA+人間’の方式では、一時的にマイナスの変動をするポイントがある。これは、2つの出来事が同時に起こったときによく見られる現象である:介入による変換の直後と、大きな環境変化が起きたとき、横軸の150度前後がその代表的な期間である。介入は両面性のあるツールで、効果的に働くこともあれば、タイミングによっては遺伝子に害を与えることもある。 

Fig.7-4,7: Total sum of each method in the 5 Experiment in chapter7 

図.7-4,7: 第7章の5つの実験の各手法の合計値 

When it is seen as the sum of the scores, generally the scores of ‘GA+ Human’ are unstable. However roughly it is also the fact that the score of ‘GA+ Human’ is better than that of the ‘Fixed’ method, and sometimes exceeds the ‘Real-time Kinetic’ method which consists of simple GA. But it has little possibility of exceeding the ‘kinetic ultimate’ method overall.

スコアの合計として見ると、一般的に’GA+人間’のスコアは不安定である。しかしおおまかには、’GA+人間’のスコアは’固定’の方式よりも良く、単純なGAで構成された’リアルタイムキネティック’方式を超えることもあるという事実もある。しかし、総合的に見て’最終キネティック’方式を超える可能性はほとんどない。 

7-5 . Argument and Conclusion

Discrepancy points between the first model (Chapter 6) and this model (Chapter 7) are raised below. In this thesis, these discrepancies are not a part of the central argument, therefore can be ignored. A completely different model would have sufficed for the proposition set in Chapter 3 but the key was the step by step exploration of this model. The Grasshopper experiment raised issues and then it made hypotheses that have been tested in this chapter. In this chapter the mathematical model (Processing code) confirmed the same minimum set of points; showing that normal GA does not work effectively where dynamic fitness calculations are required. Here a model using Interactive Evolutionary Computation (IEC) was designed and tested. While reaching similar conclusions these chapters could be said to be logically independent.

7-5 .議論と結論

最初のモデル(第6章)とこのモデル(第7章)の間の一致しない点を以下に挙げる。この論文では、これらの不一致は中心的な議論の一部ではないので、無視することができる。

第3章で設定した提案に対しては、まったく別のモデルでもよかったが、このモデルを段階的に探っていくことがポイントだった。グラスホッパーの実験では、問題点を指摘した上で、本章で検証した仮説を立てた。この章では、数学モデル(プロセッシング コード)が同じ最小のポイントのセットを確認した。これは、動的な適応度計算が必要な場合、通常のGAが効果的に機能しないことを表している。ここでは、IEC(相互作用可能な 進化的計算)を用いたモデルの設計とテストが行われた。同様の結論に達しているが、これらの章は論理的に独立していると言える。

The first key difference relates to the physical tensegrity simulations themselves. Firstly, the gravities between the first model (Grasshopper definition in Chapter 6) and the second model (Processing in chapter 7) are different. Both physical engines (Kangaroo and Traer physics3.0) are unit-less. In addition their materials are massless and it leads to weight-less calculation. In addition, the scale factor is ignored. For architecture, this property is important from the structural point of view. However in this situation, it doesn’t affect the shadow area and it was just adjusted manually as appropriate, similar to the deformation adjustments. Secondly, the available spring parameters are different, and they are set at different values. For example, a spring’s character is decided by three parameters-strength, damping and rest-length. These settings are different in each model, but checked to insure they behave in a similar way visually. There is no way to validate the values therefore the data is necessarily equivalent between the two models.

最初の重要な違いは、物理的なテンセグリティー・シミュレーションそのものに関するものである。第1に、1つ目のモデル(第6章のグラスホッパーの定義)と2つ目のモデル(第7章のプロセッシング)の間の重力が異なる。物理エンジン(カンガルーとトレイルフィジックス3.0)はどちらもユニットレスである。また、材料は質量を持たないため、重量を伴わない計算になる。また、スケールファクターも無視される。建築の場合、この性質は構造的に重要である。しかし、この状況では、影の部分には影響しないので、変形の調整と同様に適切に手動で調整しただけある。第2に、使用できるスプリングのパラメータが異なり、その設定値も異なっている。例えば、スプリングの特性は、強さ、ダンピング、残り長さの3つのパラメータで決まる。これらの設定は各モデルで異なるが、視覚的に同じような動作をするようにチェックされている。この値を検証する方法はないので、2つのモデル間でデータは必ずしも同等ではない。 

The second key issue relates to the software used. In GA, as explained before, the algorithm consists of a number of procedures, and each procedure has a number of settings and parameters. Essentially it is impossible to remake the same GA engine unless it  were completely open source. Although the author tried to make the GA in chapter 7 the same as in Galapagos, they are different. Moreover, Galapagos is of course a better, more polished engine but it is impossible to say whether it’s solutions are better or worse than the other. It is not possible to define the word ‘best solution’ here, as it depends on the set objective.

It creates a dilemma between having as accurate an answer as possible by sacrificing a short calculation time, or having as quick as possible an answer by limiting its accuracy. This requires adjusting the settings to achieve an appropriate compromise solution. This dilemma, however, does not affect the final conclusions of this thesis. Even in the GA which had worse efficiency it managed to generate scores across all model types. The two models performed experiments independently making comparison of actual scores difficult. The more important scores, therefore, are the proportional scores between the ‘Fixed Roof Score’, the ‘Pure GA score’ and the ‘human- helped GA score’, when compared to the ‘Ultimate Score’ which is set to the objective of 100% shade coverage.

2つ目の重要な問題は、使用するソフトウェアに関するものである。GAでは、先に説明したように、アルゴリズムはいくつかの手続きで構成されており、それぞれの手続きにはいくつもの設定やパラメータがある。本来、同じGAエンジンを作り直すことは、完全なオープンソースでない限り不可能である。筆者は第7章のGAをGalapagosと同じにしようとしたが、両者は別物である。また、Galapagosはもちろんより洗練された良いエンジンだが、その解が他より優れているか劣っているかは、何とも言えない。ここでいう「ベストソリューション」は、設定された目的によって異なるため、定義することはできない。

短い計算時間を犠牲にしてできるだけ正確な答えを出すか、精度を抑えてできるだけ速い答えを出すか、ジレンマが生じる。そのため、適切な妥協解を得るために、設定を調整する必要がある。しかし、このジレンマは本論文の最終的な結論に影響を与えない。効率が悪いGAでも、すべてのモデルタイプでスコアを生成することができた。2 つのモデルは独立して実験を行ったため、実際のスコアの比較は困難であった。したがって、より重要なスコアは、「固定ルーフスコア」、「純粋なGAスコア」、「人間が支援したGAスコア」の比例スコアであり、日陰被覆率100%を目標とした「究極スコア」と比較した場合である。

The final key difference between the models relates to the area calculation of shadows. The total area of shadow and its range are different because the way of measuring it is different. There are several reasons for this. The Grasshopper component called ‘exposure’ is a sort of black box and the evaluation mesh plane was arbitrarily set as a rectangle in Grasshopper. In Processing, however, instead of mesh subdivisions, pixels are counted in the execution window. This problem can be solved by using logarithmic calculations and the final result is not affected by the value range as, again, it is the proportion between maximum values and measured data which is critical.

最後に、両モデルの大きな違いは、影の面積の計算に関するものである。影の総面積とその範囲が異なるのは、その測定方法が異なるからだ。これにはいくつかの理由がある。Grasshopperの「露光」というコンポーネントは一種のブラックボックスで、評価用のメッシュ面はGrasshopperでは任意に長方形として設定されていた。ところがProcessingでは、メッシュの細分化ではなく、ピクセルが実行ウィンドウにカウントされる。この問題は対数計算で解決でき、やはり最大値と実測値の割合が重要なので、最終結果は値域に影響されない。 

Conclusion

Human-assisted GA achieves a better score than a pure GA system. As the score indicates the objective function, the shaded area is always maximum with human-assisted GA. In other words, the environment underneath the roof is darker. Human-input can overcome GA’s weak point; unassisted GA is not effective for the ever changing fitness landscape of a real time kinetic roof. Rather than a completely autonomous system that is randomly seeded, some outer intelligence can help to improve the architectural system.

結論

人間支援型GAは、純粋なGAシステムよりも良いスコアを達成した。スコアは目的関数を示しているため、人間支援型GAでは常に陰の部分が最大となる。つまり、屋根の下の環境はより暗くなる。人間による入力は、GAの弱点を克服することができる。リアルタイムで変化するキネティックルーフのフィットネスランドスケープには、アシストなしのGAは効果的ではない。ランダムに種をまく完全な自律型システムではなく、外側の何らかの知能が建築システムの改善に役立つのである。