網頁

2024年2月14日 星期三

看花人、夢

今天清晨看花人入了我的夢, 與幾個年輕人在酒店跳著科目三:)

其實不確定是科目三, 但感覺有點像, 夢中看花人一家人(很怪異, 包括怡凱在內, 有男有女)第一次到飯店表演, 有點生澀, 而我則是在那個時候在飯店用餐

我猜, 在睡覺時, 有些感官還是會接收到一些外界訊息, 這些輸入在大腦中激發某種生成的程序, 於是就像生成式AI一樣, 產生輸出的影像、聲音、觸覺, 甚至味覺

當然也包括文字, 我也曾經做過像看花人一樣閱讀的夢, 當時在看一篇說明日本浮世繪的文章, 夢中還可以反覆翻頁閱讀比較不理解的部分, 就好像真的有一本書在手上一樣。



父親、夢

 幾年前我父親過世後不久, 有兩次父親出現在夢中。

第一次是看見半夜父親從我們臥室中的更衣室走出來, 我從床上起來問他過得如何, 他用台語回答"有好, 有壞" (安哪賀, 安那敗), 我上前去握他的手, 感覺是冰涼的。

第二次夢中我和父親在一個很詭異的園區遊蕩, 經歷許多奇特的場景與情境, 最後來到一堵高牆, 當時感覺要離開這個詭異的地方就是翻過這堵牆, 父親在我前面翻過去了, 而我卻如何也過不去, 父親從牆頭伸手要拉我過去, 我想了一下, 跟他說, 你先過去, 我再試試看, 然後醒了。想起來有點詭異, 不知道如果當時翻過牆了, 那會怎麼樣?

2023年1月16日 星期一

 The Polynomial representation of SL block assembly

SL 積木組合的多項式表示法

國立台灣科技大學建築系  施宣光

SL 積木是一種由八個立方體連結的造型,可以無限組合成連鎖的構造並確保組合中所有的積木最多只有一個方向的自由度。其組合方式可以用幾何轉換來定義相鄰積木之間的對應關係,並以多項式來描述多個積木所形成的可能組合。演講將展示積木的組合與多項式表示方法,討論空間思維與符號思維之間的轉換關係,以及其在STEM教育中可能衍伸的意涵與應用策略。有關SL 積木的設計、組合、作品與論文請參照下列連結網址。


作品:

http://gallery.bridgesmathart.org/exhibitions/2018-bridges-conference/shen-guan-shih

http://gallery.bridgesmathart.org/exhibitions/2019-bridges-conference/shen-guan-shih

影片:

https://www.youtube.com/watch?v=dBJCg6t-Weo&list=PLxgpYVi-oSrPiWms5c87SmfmRK9Lq0-nY



2021年11月15日 星期一

夢中夢中的繪畫

夢中夢中的繪畫

剛做了夢, 先是一連串的飛行, 在一個鄉間的路上倒退滑行, 後來索性放開飛上天, 但不像年輕時可以飛得那麼高, 那麼快, 與強烈失重的感覺, 大致上就是在幾層樓的高度隨著地形與建築高低起伏。有時候碰上一堵建築物的高牆飛不過去, 還必須努力爬上去,爬上牆頭才能一飛俯衝而下。後來決定進去一幢建築物, 於是穿門而入, 感覺上像是廢棄了的工廠或是倉庫。有人走進來, 是一位著軍裝的女子, 面目清秀。我有想要親近她的念頭, 先是過去撫摸她的肩膀, 她似乎有感覺, 但不知道怎麼回事, 很疑惑的樣子。接下來我就不細說了, 有點春夢的味道, 還依稀可以聞到她的味道。接著又進來另一位女孩,我做了類似的事情, 也越來越大膽。我可以很肯定地說夢中有觸覺、嗅覺, 還包括口吸舌舔的感覺, 雖不如真實世界的強烈, 但在夢中的感受還是很真實的。


睡睡醒醒幾次, 翻了幾次場景, 後來在一個起居間中, 應該是在家裡。半睡半醒中我把夢中情景畫滿了一本小冊子。我一位大學同學走過來, 看到了這本小冊, 問說是不是我畫的。我回答說就是畫著夢中的景象。接著我哥哥也過來了, 我質疑的一再問他, 是否真的可以看到這本畫冊, 我自己也很驚訝說沒有繪畫天賦的我居然可以畫出那樣的素描。哥哥再三跟我肯定說有看到, 逐漸被他說服說這是真的。我告訴他說我還在半睡半醒的狀態, 一頁頁向他解釋圖畫的內容, 大致上就是夢中的街道與室內景物, 畫得很細緻。還有印象的是一幅畫中有一個壁爐, 爐中有半大不小的火苗。爐旁一位斜坐淺睡的女子, 我解釋說那是我的妻子。特別的是妻子後方牆上的壁紙, 目光一撇之下可以看到一個人的半側臉隱藏在狀似有序又無序的圖案之中, 轉眼又消失, 然後又出現, 連我自己都覺得很巧妙。

2021年10月5日 星期二

作夢都想不到的設計

 剛剛做夢, 趁還沒忘記趕快寫下來。夢中出現一個很特別, 作夢都想不到的設計, 喔, 不對, 那是做夢想到的...

前段忘了, 只記得去了某個地方坐朋友的車回程, 途中停下來買吃的, 是一種很大片的蔥油餅。我要他們等我去上個廁所, 我看了看往左邊人多的地方走去。賣餅的婦人喊聲說是在廟頭那邊, 這才發現右邊不遠是一間廟, 旁邊有條路。沿路走去看到廁所, 簡單、乾淨, 有點老舊, 首先看到兩個小便斗, 特別寬,第二個位置已經有人, 第一個位置空著, 前面擺著一個矮凳。當下並不覺得怪異,  這時一個男人跟我打了個歉,說他要陪朋友尿, 把矮凳搬走往左邊去, 我這才發現更裡面是一排比較簡陋, 一整列流水式的小便池。我去了第一個, 隔板有點歪斜, 石頭打磨出來的小便斗很特別, 有點像洗臉盆, 上頭一個特別設計的龍頭不停出水,形成一個很漂亮, 極薄的弧形水幕。我掏出小頭很痛快的就排放出來, 穿過水幕而去。很精巧的設計,水幕立馬就阻隔了味道還有回彈的尿液。一方面是我站得太靠近, 同時也是, 你們懂得的, 還感覺到水幕淋在小頭時的清涼。但總覺得這個方式怪怪的, 這才發現還有下面的一個斗, 而上頭的是洗手用的, 於是趕快往低處去, 同時很不好意思的看一下有沒有人注意到這種不雅的作法。這時想到為何先前擺了一個矮凳, 原來這是設計給人家坐下來方便的, 難怪位置那麼低。下面的斗也是很精巧, 同一注水幕穿過一條細縫繼續往下,看著黃色的尿液穿越而去, 消失在不停止的水流中....


附註:別問, 我沒尿床, 就是因為必須起來尿尿才能寫下這個夢境。

2021年8月14日 星期六

資訊工程觀點下的空間設計師

 一個場所(place)必須具備什麼條件才能算是dwelling? 我會翻成居所,家應該是很接近的概念。海德格有一段很棒的論述,給我很大的啟示。

海德格怎麼以天地神人來論述 "居所", 可以參閱他寫的這篇短文 (見以下附檔)。這不算是學術論文, 對我而言, 非常難懂, 應該說, 我就是看不懂他究竟在說甚麼, 但從天地神人, 我以資訊觀點切入是得到很大的啟發, 所以我說, 我被他啟發, 但我完全不知道他是否會認同我對其天地神人所做的詮釋。

對我來說, 天地指空間, 天是我們己身經驗無法觸及的空間, 地則是我們以自身的感官認知可以觸及的空間。神(divinities) 人(mortals) 是指時間, divinities 指的是人生命無法體驗的時間, 而mortals指的是一個人生命可及的時間, 整體來說, 天地神人就是指人的經驗可以觸及, 以及不可觸及的時間與空間。

一個空間我們會不會視為居所與安全感有密切的關係,  而安全感來自我們所能掌握的資訊。資訊的定義就是uncover the uncertainty, 去除不確定性, 當我們對一個處所能掌握足夠的資訊以去除不確定性, 我們就可以感到安心, 而視之為居所。 天地神人指居所必須能夠提供我們經驗可觸及與不可觸及, 有關空間與時間的資訊, 我們才能去除足夠的不確定性, 而得以安居於此。

空間可以容物, 而物件的存在與不存在都可以是資訊的媒介。當我們處於一個居所, 我們的周遭環境的事物會帶來空間與時間的資訊, 而這些資訊足以讓我們感到安心, 而得以成為安身立命之所。何為空間的資訊?我舉個例子好了, 我第一次到威尼斯旅遊, 是晚上11點多, 拿著簡單的地圖, 憑藉剛下火車詢問所得的簡單資訊, 在島內迷宮般的路徑找尋一個不起眼的小旅館, 內心是很不安的, 而關鍵是甚麼?因為我沒有足夠的空間資訊來揭露足夠的不確定性, 每當我來到一個小廣場或院落, 面對個方向的路徑而徬徨不知何往, 威尼斯美則美矣, 但不會是能讓我安心的居所。

上述是經驗可及的空間資訊, 而經驗不可及的空間資訊同樣重要, 即使對所處的空間充分的熟悉, 但我們還是不知道會降災於己的瘟疫雷電颱風從何而來, 這種對經驗不可及空間資訊的匱乏就需要被填補, 而填補的內容來自信仰、神話與代代相傳, 來自祖先的傳說。這些資訊究竟有理, 無理, 對或錯其實無關緊要, 最重要的是【信】, 你只要信, 就能填補這個匱乏的資訊而帶來心安, 讓你所處之所在, 成為真正的居所。

時間資訊也是一樣。我們覺得心安, 因為我們安然度過前天, 上周, 與去年, 所以對於明天, 下周, 與明年也具備某種程度的信心, 而對於我麼經驗不可及的時間, 我們會聽來自長輩的敘述, 路口的牌坊沒有任何實際功能, 但卻紀錄先輩們的事蹟, 提醒我們自己的先祖代代安居於此, 也讓我們對自己的未來更有信心, 而更遙遠的過去與未來, 一樣藉由神話與信仰、傳說來填補匱乏。

這個詮釋與建築密切相關, 因為建築師是如假包換的資訊工程師, 一個人身處於一個空間中, 他能夠看到甚麼, 聽到甚麼, 摸到甚麼, 聞到甚麼, 甚至他有多少機會可以見到甚麼人, 和谁說話, 相當程度是被當初設計這個空間的建築師所決定了。我每天上班走在校園的動線, 進了建築物, 搭電梯, 走走廊, 以至於進了我的辦公室, 這一路上所見所聞, 所接觸的的人, 也就是我從周遭空間所能接收到的資訊, 相當程度是被當初規畫校園與設計建築物的建築師所操弄了。

建築師所操弄的元素, 牆、柱、樑、版與開口、門窗, 與其說是建築結構的元素, 也不妨說是空間資訊的擋板;匝道與媒介。牆壁阻隔教室與走廊之間的透過光線與聲音傳遞的資訊, 而門的存在又讓使用者得以局部的操控資訊的流通, 門上用噴砂玻璃覆蓋的開口, 又選擇性的以光線透露出門內教室的活動, 卻以噴砂模糊掉影像以保留部分隱私, 建築師選擇的空間設計, 動線, 開口, 材料, 可以很細膩的控制身處其中的使用者能夠接收到與傳遞出的資訊種類與數量, 而這些資訊, 與使用者是否能夠安身立命於此, 有著密切的關係, 此資訊觀點的詮釋也可以告訴建築系的學生, 為何我們要保存古蹟與歷史文物? 不必是千年的古物, 富麗堂皇的宮殿, 而即使是上一代所留下來不起眼的一道牆, 一扇窗, 都可以是跨越時間而傳遞、保存資訊的媒介, 是營造我們生活空間中天地神人四合一(fourfold unity)無可取代的元素。

2019年11月17日 星期日

MCTS 設計決策輔助

問題的定義
假設建築師必須做 n 個決策才能完成設計, 而每一個決策有 m個選項,因此所有可能決策的搜尋空間為 m 的 n 次方。一個成功的設計必須通過 x 個可以用程式定義並由電腦有效執行的設計品質檢測函數, 以及一個無法用電腦程式明確定義, 只能由建築師及業主取得主觀共識的檢測門檻。電腦的檢測需要等到所有決策項目都確定之後才能進行, 然而人為主觀檢測則不需要等候每一個決策都確定, 可以在部分決策時就進行檢測。每一設計方案在完成所有決策選項之後就可以極快速地由電腦判定x個可程式定義之檢測項目的得分, 然而人為主觀的檢測項目則需要繁複的溝通與會議才能判定是否通過。在此前提下, 如何運用MCTS提供建築師有效的資訊, 以協助其能更精準有效的完成一或多個成功的設計方案?

例如某建築物立面的帷幕牆共有256片帷幕單元需要設計, 而可供選擇的帷幕單元有兩種。因此 n= 256, m = 2, 共有 2的256次方種決策組合。每個帷幕牆的設計需要滿足 造價、節能與抗風三個可以由電腦程式判定之項目的檢測門檻, 還要能夠滿足建築師與業主對外觀美感的評價。此時MCTS的任務就是提供資訊協助建築師在這2的256次方種可能組合中尋找一個可以成功通過 k 個檢測函數門檻的設計。假設建築師每做一個決策需要 t 的時間, 因此完成一個設計需要 256 t 的時間。而電腦完成所有三項檢測的時間極短, 與256t 相較之下可以忽略不計。然而電腦需要等候所有的設計決策都確定之後才能進行有效的檢測。此外, 建築師與業主對外觀的評價需要繪圖與製作模型等輔助決策工作, 因此也是非常耗時, 假設以yt 的時間計算, y為一個不小的數字。 依此問題的設計, 電腦快速檢測的功能受限於建築師決策以及主觀評定所需的時間, 每檢驗一個設計決策需要 (256+y) t 的時間, 那麼要在 2的256次方可能設計方案中搜尋到極少數成功方案的的機會極其渺茫, 而電腦快速運算的功能絕大部分的時間都是閒置。

MCTS決策輔助:以一個長度為n的array D0代表完成一個設計所需要的所有設計決策。array中每一個item的值可以為 0, 代表建築師尚未針對該項進行決策,也可以是 i  (0 < i <= m),  代表建築師所選擇的設計選項。問題初始設定 array D0 的 每一個項目都是0。電腦隨即重複對n個設計選項進行隨機採樣之後進行m個項目的檢測, 記錄每一個項目每一次設計採樣通過的得分, 計算其平均值、通過機率與標準差, 並使用MCTS back propagation的回饋機制隨值更新。我建議電腦可以提供所有未決策項目每一個選項的期望得分、通過機率與標準差。

一旦建築師做了某些決策, 也就是為D0 的某些項目設定了非0的值, 電腦隨即針對所有未決策的項目進行隨機取樣, 並計算每一個未決策項目的每一個決策選項的成功機率、平均得分與標準差, 隨著採樣數目的增加隨時更新, 並等候建築師進行下一個決策。

以帷幕牆設計為例, 我建議開發第一個測試用程式如下:
int design[256]  = {0, 0, .....0};
void evaluateConstructionCost (int design[], double threshold, ref double score, ref bool pass){}
void evaluateStructure (int design[],
                                      double costDistribution[][],  // 每一個位置各類型帷幕版片之工程費用
                                      double threshold,  //設計目標門檻得分
                                      ref double score, //回傳該設計的得分
                                      ref bool pass){} //回傳該設計是否通過門檻

void evaluateStructure  (int design[],
                                      double windLoadDistribution[][],  // 每一個位置各類型帷幕版片之得分
                                      double threshold, //設計目標門檻得分
                                      ref double score, //回傳該設計的得分
                                      ref bool pass){}//回傳該設計是否通過門檻

void evaluateEnergy   (int design[],
                                      double RadiationDistribution[][],  // 每一個位置各類型帷幕版片之得分
                                      double threshold, //設計目標門檻得分
                                      ref double score, //回傳該設計的得分
                                      ref bool pass){}//回傳該設計是否通過門檻

2019年10月13日 星期日

Cost estimation of curtain wall in early design stages


This note discusses only the cost that can be localized within a limited context. Global attributes such as type diversity and configuration complexity that might add on  cost in fabrication and installation are not included.

Consider three components,  the locking devices, supporting frames and panels. 
  1. locking devices to the structure system
    Considering the entire facade as one piece, the locking devices that are required to firm the entire facade to the structure system are depend on the vertical loads caused by gravity and horizontal loads caused by wind pressure. For this, the cost estimation can be summarized as a function on the panel type and area of the curtain wall system. For each type of panel, consider its weight of unit area. However, this part of cost can be integrated to supporting frame and avoid double counting.
  2. supporting frame
    Supporting frame is most likely coincident with the panel vertices and edges.  Edge length would be an important factor linearly related to the cost for material, fixation, seaming, insulation and so on. Panels are supported by the frames and the weight and wind load would be important factors to design profiles for the supporting frame. Vertices would add on some cost for cutting, joining or  locking devices that would take materials, machining and time for fabrication. The panel area and type would also contribute to the cost of supporting frame due to the weight and wind load. The construction cost of each panel can be linearly proportional to the edge length of each panel.

    I would consider summarizing the construction cost as a weighted linear sum of
    numberOfVertices
    totalEdgeLength
    panelSurfaceArea
    panelType: which is attributed with estimated weighting factors for the above parameters, and weight per unit area for the panel.
    The calculation also needs reference to windLoadContourMap , which is supposed to be derived by some simulation or regulations.
  3. panel
    The panel type and surface area would be the most important factors. For each type of panels, the  cost of material, coating, paints, insulation, ... are proportional to area. Installation would takes one basic cost plus a part that is proportional to the weight and dimension. The dimension can be abbreviated with the sum of width and length for its bounding rectangle. Cost for fixation and seaming have been counted in the supporting frame and are ignored for panel. Wind load would add on some cost that is proportional to the surface area.

    I would consider summarizing the construction cost of each panel as a weighted linear sum of
    surfaceArea
    widthOfBoundingRectangle
    lengthOfBoundingRectangle
    panelType: , which is attributed with estimated weighting factors for the above parameters, and weight per unit area for the panel. The calculation also needs reference to windLoadcontourmap, which is supposed to be derived by some simulation or regulations.

Note for curtain wall

Facade curtain wall design

(for example: Given a 16 floor height building facade for curtain wall design. The structure frame has four 7.2m width spans with 3.6m for floor heights. )

A more general description for coding:

class Facade:
Mesh panelDissection
int[] panelTypes # -1 represent undecided
double[] panelInsulationLevel,
double[][] panelConstructionCostParameters
double[][] windLoadContourMap
double[][] solarRadiationContourMap)
DecisionTree dtree

def constructionCostEvaluation
def solarRadiationHeatGain

The architect needs to make decisions on the followings:

1. Dissections of the curtain wall
The choices for vertical dissections are one, two or three divisions for each span between columns. (just for example, can be any mesh though)
The choices for horizontal dissections are one, two or three divisions for each floor. (just for example, can be any mesh though)
The facade can be represented as a Mesh, with faces as panels on the curtain wall, edges as the supporting frame and vertices as the joints.

2. For each panel, the architect need to make choices among types of panels.
glazing with low E coating or regular
metal panel with high insulation or regular insulation

Evaluation

1. Construction cost evaluation: a function of panel geometry
double facadeConstructionCost( Mesh facade,
int[] panelType,
double[][] panelConstructionCostParameters
double[][] windLoadContourMap)

Construction cost of each panel depends on number of vertices, total edge length, surface area, and panel type.
For panels that need to withstand high wind pressure, extra cost proportional to the panel area is applied to the original cost.
A contour map on the estimated wind load is given. The wind load requirement for each panel is estimated with the surface integral of the wind load.

2. Energy consumption against solar radiation.
double facadeHeatGain( Mesh facade,
int[] panelType,
double[] panelInsulationLevel,
double[][] solarRadiationContourMap)

Total score is graded as the amount of heat gained directly or indirectly from solar radiation.
The insulation level of each type of panel is measured based on some experimental analysis.
Given a contour map that shows intensity distribution of solar radiation on the facade based on some simulations.
The head-gained of a panel is estimated as the product of its insulation level and the surface integral of solar radiation.
This is assuming the situation in the stage of conceptual design, when the architect has to decide the building mass with some concepts about the outlook. In most cases, building mass concerns site situations, urban code regulations and design objectives. The architect might come up with a few design alternatives for building mass, each of which would accommodate enough floor areas for required functional spaces and could be associated with some conceptual design schemes for the overall outlook of the building, probably illustrated with some sketches over the main facade or the entire building. The described setup starts at when the architect has decided the building mass and works on the elevations. When curtain wall has been chosen as one of the possible constructions for the part of the envelope, the architect might take her hands on decisions upon surface dissections and materials, for that would largely define how the building look like after constructed.
The architect may start to think about curtain wall dissections and materials with some knowledge regarding how building envelope may greatly affect the construction cost and energy consumption for the operation of the building. However, estimations on construction cost and energy consumption rely on surface material properties, distributions and quantities, which are unavailable until the design of building envelope system is completed.

MCTS
void mcts( List facades, 
List 
double[][] constructionCostParameters,
double[][] solarRadiationContourMap,
double[][] windLoadContourMap,
The objective is to find good facade designs that fulfill both construction cost and energy saving criteria. The search starts with a facade’s unfinished design as a mesh, with none or some panels assigned with panel types. The search process starts to do expansion, simulation and back propagation and continuously updates and shows the expected value of current partial design. The designer may run serval design alternatives at the same time. The designer may choose any of the design alternative to go on for more detail design, which is to assign some panels with some specific types. The process goes on until the designer finally choose types for every panels.

2019年5月3日 星期五

Monte Carlo Tree Search Assisted Design Decision Making

Monte Carlo Tree Search Assisted Design Decision Making

這個程式是為了模擬一個建築師進行設計時, 要在多個決策選項的搜尋空間中找到能夠被多個評估函數全部接受的決策組合。這些評估函數分為兩種, 有一種是能夠在所有決策都確定以後用電腦進行分析而得到結果的, 例如法規、結構、耗能與工程預算。另一組評估函數是需要專家判斷, 目前無法交由電腦執行, 例如美感、業主偏好、藝術價值等等評估。建築師的任務是要找到能夠通過所有評估項目的決策組合。以下描述兩組MCTS分別描述電腦與設計團隊的作業, 這個研究希望探討MCTS是不是可以提供有用的資訊協助建築設計團隊在設計過程中進行決策。

以下以建築立面的設計為例進行說明:假設建築物立面被分為 n 個區域, 每個區域必須選擇其外牆構造單元, 每個單元有 m 個選項, 因此整個決策空間是由 n 個  m 元選項所構成。每一個構造單元的選用會影響到外牆的結構、工程預算、耗能、採光、隔音等等, 假設目前都已經可以使用電腦運算進行評估, 前提是每一個決策必須都已經確定。建築師另外還需要考慮其他的條件, 必須人為判斷而無法使用電腦評估的, 例如客戶偏好、藝術價值…. 在此情境下, MCTS是否可以發揮其功能, 讓電腦評估的結果可以最大的協助建築師進行決策。建築師需要為n個選項全部決定

搜尋空間:MCTS的搜尋空間是一個16*16的Boolean array, 陣列內256個值給定一個搜尋決策排序之後就定義了一個二元的搜尋樹。搜尋結果必須通過n個檢測函數, 每個檢測函數都通過才算合格。

檢測函數:每一個檢測函數會使用一或多組16*16的Boolean array作為標的, 與受檢測的array逐一進行比對。 每一次比對計算受檢測array與標的array的相似度任一次的比對結果若超過門檻則檢測停止並回傳通過該函數的檢測。

MCTS的搜尋從選擇最優先的決策值開始, 進行expand, simulation之後進行檢測, 檢測結果就進行back propagate, 計算並更新每個決策值的成功率, 一直到被使用者終止為止。

使用者參考各個決策選項的成功率後決定採用某一個或多個決策, 設定其值, MCTS就繼續往下搜尋, 更新後繼未定之決策各選項的成功率。使用者的決策不一定依照所給定的搜尋順序。

以上是第一個執行模式。第二個執行模式則加入第二組MCTS來模擬使用者的決策。第二組所依據的搜尋決策排序未必與第一組相同, 且所使用的評估函數也不相同。第二組進行MCTS, 更新其決策選項之成功率後選定某些決策並設定其值後, 交給第一組MCTS繼續進行程序, 兩組MCTS可以同步進行。第二組在選定決策項目時可以參考第一組MCTS的決策選項成功率, 優先選擇兩組MCTS模擬結果成功率都比較高的選項作為決策, 此部分的決定方式需進一步討論, 初步可以將兩組的成功率乘上權重相加作為選擇依據。

檢測的函數可以選用圖片, sample成16*16矩陣。做法是拿許多張圖片, 定一個16*16的方格, 每一個方格中隨機取一點求rgb的平均, 大或等於128就算白, 小於128就算黑

MCTS其實就是統計取樣, 這個例子中建築師需要做256個二元決策, 如果等到所有的決策都做了才能進行評估, 那一輩子也找不到好設計。MCTS 可以幫建築師用隨機取樣的方式填補其尚未做的決策, 檢測後統計成功率, 告訴建築師目前的決策預期的成功率有多大, 有沒有其他決策選項會有更高的成功率。 254個決策的決策空間如果過於龐大無法在有效時間內運算, 可以縮小。其搜尋困難度可以藉由評估函數的通過率來調整。

實際進行時, 人所組成的設計團隊和電腦同步作業。人在做決策的期間, 電腦24小時不間斷就還未決定的決策進行取樣, 評估後更新決策樹之節點的成功率, 提供給設計者參考。人所構成的設計團隊可能需要幾天的時間, 或許還要開會討論, 在目前階段未定的決策中, 選擇一部份進行決策, 再交給電腦繼續做MCTS

如此來回進行幾個回合之後, 設計團隊確認所有的決策選項, 如果最後的結果可以符合所有的檢測項目就算成功。如果這部分可行, 可以繼續加入優化的功能。就是在所有的評估函數中選擇一個做為優化的目標函數, 原先通不通過的輸出改為得分, 決策樹節點的成功率就變成目標函數的期望值, 設計團隊就可以選擇較高期望值的節點繼續探索更好的設計方案

人和電腦合作的設計流程好像是沒有對手的alphago, 人一步一步把設計做完, 過程中參考電腦提供的各個走法的成功率來做下一步的決策, 與alphago的差別是電腦並不能掌握全部的評估函數, 有一部份是在人的腦中無法用程式處理的。因此我們在電腦模擬時就用兩組檢測函數, 第二組代表人腦冥冥之中的黑箱檢測。最後如果能夠找到設計方案完全符合兩組的檢測函數, 就算勝利。

選擇MCTS的主要原因之一是夠robust, 我們不需要了解搜尋的檢測函數的特性, 有任何需要的評估函數隨時都可以加入搜尋的條件, 也可以隨時撤離不需要的函數。我們也不需要在意搜尋空間太大, 基本上比圍棋小的空間都可以處理, 因此不需要分析搜尋空間的結構以縮小搜尋樹。這兩個特徵都符合設計問題的處理, 也是過去各種方法所遭遇的困境。

2019年4月29日 星期一

筆記:以MCTS協助設計決策

結合MCTS的流程就是每一個設計階段由電腦進行MCTS, 提供資訊給外牆系統設計師與整個團隊, 包括建築師, 業主, 各技術顧問做參考, 由他們執行下一階段的selection動作, 做部分的決策, 例如選定某些區域, 確定設計的系統。 電腦24小時不間斷作業一直更新隨機採樣帶來的訊息, 設計團隊做了Selection後, 繼續往下發展, 也替設計團隊所做的決策進行可行性評估, 告訴設計團隊這樣的決策將來的成功率, 也就是同時滿足所有電腦可以進行評估的項目的成功機率

電腦的評估我們就用抽象化的作法, 假設每一個項目的評估, 在冥冥之中有一個, 或多個最佳決策, 可以得滿分。每一個決策用一張有256格子的圖面表示, 黑白兩色。圖片隨便找, 有複雜的, 有簡單的。

遊戲一開始, 256個格子全部是灰色, 代表還沒做決策, 電腦開始做MCTS, 可以先隨機selection, 選擇從某個方格開始。設計團隊也可以先選定一個或多個方格做決策, 把灰色改成黑或白, 電腦就從這開始進行expand, simulate 和 backpropagation

電腦評估的方式就是在對未決定的方格隨機採樣之後比對先前為每一項評估的項目準備的圖片, 如果黑白一致的就得分, 看256格共可得幾分, 是否通過預設門檻, 假設是80分, 通過所有門檻表示成功, 計算成功機率後backpropagation

如果一個項目有多張圖片, 那麼就比對所有的圖片, 只要有一張圖片通過門檻, 該項目就通過門檻

另外電腦無法決定, 必須由設計團隊決策的部分其實也可以用同樣的方法, 也是MCTS來模擬, 也就是用另外一組圖片來做評估, 選出該組決策成功率最高的決策選項, 來讓電腦組的MCTS估計電腦組的成功率, 電腦組與設計組交替進行, 去模擬設計團隊與電腦如何協同作業

最後, 如果能夠成功找到某些設計方案能夠通過所有的評估項目, 那就算成功了, 先不用管最佳化好了, 反正, 如果通過的方案不難找到, 我們可以提高部分項目的門檻, 這樣也可以找到越來越好的方案

這個程式這樣已經很清楚了, 可以開始寫, 我問問看有沒有人可以幫忙, 你了解整個想法後可以開始寫論文, 看要如何說明

2的256次方, 這個問題空間也夠大讓MCTS去發揮的了

搜尋空間大約相當於一個16*16的圍棋棋盤, 每個格子必須決定是下黑子還是白子

如果MCTS可以幫助電腦下贏柯潔, 那應該也可以幫設計團隊找到勝算最大的下法

與圍棋不同的是圍棋完全可以用規則決定勝負, 所以電腦可以跟電腦下, 而設計的勝負有一部份是人來決定的, 所以電腦無法取代人, 但可以取代另一部份, 就是電腦可能做得比人更好的, 另一個差異就是博奕是雙方對抗, 你贏我輸, 而設計遊戲是追求雙贏, 也就是電腦評估和人的評估必須都通過才算贏, 但這個差異完全不影響運算, 因為我們只要把電腦方輸贏的定義反過來就好了

模擬設計團隊的那個部分做了backpropagation之後選擇下個階段成功率比較高的決策中, 電腦模擬成功率也高的決策作為selection。我們可以使用pareto set的方法來挑選幾組設計方案分別往下發展, 一開始選擇比較多組, 到設計階段的越後期方案越少, 最後只留一組

我們把問題再放大好了, 用16*16的方格, 這樣是正方形, 好處理, 評估函數就找許多張照片, 通通轉成16*16的黑白陣列

Sg:
你用任何兩張照片都可以, 程式中的image sampler點兩下選擇照片

Sg:
我們可以不必真正去做潔能分析或預算分析, 因為任何的evaluation就是取得一組輸入參數 (在這個例子中就是256個0 或 1的決策), 然後輸出通過或者不通過

Sg:
中間運算過程可能非常複雜, 可能非常簡單, 但是這個評估函數就是把輸入的資料對應到0 或 1, 代表通過與否

Sg:
就象徵意義上而言, 如果這個評估函數很複雜, 代表背後的圖形很難猜測, 而且可能錯一小部分就全錯。要模擬這種評估項目, 我們只要提高門檻值, 例如256需要答對255以上, 錯兩題就不通過。但這樣成功率太低, 很可能根本找不答案, 為了提高成功率, 可以用很多張圖片, 各不相關, 每張的門檻都很高, 例如我們總共有一萬張這種圖片, 只要任何一張通過, 就算通過。

Sg:
有些評估很簡單, 例如假設造價只與選材料有關的話, 那麼最佳的決策就是全部採用最低價的材料, 那就用一張全黑的圖片, 全部都是0, 然後設一個門檻, 例如 128, 因此, 如果設計者採用一半以上的低價材料, 那麼這個評估就會過關

Sg:
必須由設計團隊決定的評估項目也一樣。每一個決策成員心中可能有一把尺, 在團隊成員討論過程中可能也各有影響力, 反正到底甚麼方案才會被接受沒有人知道, 但上帝知道, 我們就扮演上帝, 挑選一些圖片代表上帝。

Sg:
[圖片]

Sg:
設計的問題和圍棋比起來還有一項差異, 就是設計方案的評估比圍棋的勝負複雜很多, 因此程式在進行MCTS過程中會花大量的時間在評估造價、耗能、結構等分析或模擬上, 要在短時間進行大量的採樣會很困難

Sg:
但電腦的好處就是不用休息, 設計團隊進行人為決策可能需要時間, 可能還需要開會討論, 這個週期可能好幾天, 而這段時間電腦根據前期的決策24小時不間斷的進行MCTS給設計團隊做決策參考


木:
我的理解是不是將評估的問題簡化成對生成圖片判斷的0,1問題?

Sg:
不能說是簡化, 因為所產生的函數可能更複雜。整個研究的重點並不在能源評估或預算 (我想, 這可能是我們之前的盲點, 把重點放在預算上, 因此會被以專業的角度來評審), 而是提供一個方法讓電腦的分析與模擬能夠真正幫大忙

Sg:
對預算的幫助是這樣, 因為如果設計做完了, 每一部分的設計都確定, 材料數量都明確, 工程造價就可以評估了, 但設計初期是無法做這種評估的, 所以很可能在設計過程中對預算就失控了, 不只是預算, 對節能或物理環境品質也是這樣

Sg:
很可能最後碰到預算問題, 就只好做各種可能的調整, 把原先設計的品質都失去了

Sg:
MCTS對Alphago的最大意義就是不必尋求在中盤, 甚至布局階段就評估勝負的辦法, 因為那是不可能做到的。但是圍棋如果下完每一子, 最後的勝負卻很容易評估。建築設計某些方面也是如此, 基本設計方案很難評估耗能, 但等細部設計都做完了, 每一片玻璃的參數都確定, 那麼耗能就可以評估了。

Sg:
在研究方法上, 我們等於提出一個架構, 在這個架構下設計師可以採用任何的電腦分析模擬軟體來做評估, equest, ecotect, 或任何其他軟體都行, 反正每一個軟體就像一個函數, 給她輸入的參數, 她就會告訴妳合格或不合格。因此, 我們可以給予任何函數 (在我們的例子當中, 就用圖案比對來當作這些函數), 完全無損其 generality

Sg:
關於用圖片作為模擬分析評估的函數, 我認為完全具有正當性, 因為任何一個評估軟體, 針對一個有256個二選一決策的設計方案, 一定有一些決策的組合是最理想的, 這些理想的決策組合就可以用一張張的圖片來表示。因此, 用圖片評估根用真正的分析程式去評估是等價的, 關鍵是圖片的數量和內容, 只要找到正確的圖片, 用足夠的數量, 那麼兩個程式可以有相同的輸入和輸出, 那麼兩個程式就沒甚麼差別了

Monte Carlo Tree Search Assisted Multi-criteria Design Decision Making


11:24 sgs 每一個檢測函數基本上就是一個 Boolean function, 其input是一個256位元的矩陣, output就是0或1, 代表檢測通過或不通過。我們先不急著用真實的建築性能評估函數, 而是用一個16*16的目標矩陣來模擬各種可能的評估。我建議就比對input的矩陣與目標矩陣, 就其正確率設一個門檻, 高於門檻就通過, 低於門檻就不通過

11:38 sgs 舉個例, 我們設計一個帷幕牆, 總共有16*16個窗格。設計師必須為每一個窗格選用A材料或者B材料。A材料每扇1元, B材料每扇2元。假設建築預算是300元, 那麼模擬的評估函數就可以利用一個全部為A的矩陣來和輸入矩陣比對。函數的輸入矩陣為設計師所決定(或者monte carlo隨機取樣)各個窗格的選擇材料A或B, 比對之後如果正確率超過212/256, (212+(256-212)*2 = 300)就代表預算不會超過300, 因此可以通過檢測。如果檢測函數更複雜, 那麼可以用多個目標矩陣, 用and 或 or 連結起來進行模擬。這件事很難對學建築的人說明, 他們可能無法接受自己學了這麼久的專業, 居然可以用影像比對來模擬。但學數學的人應該就知道是可行的。

11:44 sgs 因為搜尋空間是有限的, 因此, 在最極端的情況也可以用窮舉法來模擬。

11:46 sgs 因此, 我們在理論測試階段就隨便找一堆圖片, 轉換成16*16的二元矩陣用來定一評估函數, 在MCTS搜尋過程中用來計算設計方案是否達到預期的品質

2018年9月8日 星期六

將建築視為溝通流程 (三) - 蓋房子怎麼能夠被看成是解碼?

我相信多數人不能接受我把蓋房子看成是工程圖面的解碼, 總是被質問, 解碼與編碼都是虛擬的, 蓋房子是實體的, 如何能混為一談?我經驗中跟資工系的教授也很難就這點取得共識。

對我來說information 是虛擬的, 無法透過任何channel進行傳輸, 因此我們必須經由encode的程序轉成signal, 而signal必須是實體的, 否則無法被紀錄、傳輸與偵測。收訊端接收到通路所傳來的signal之後, 開啟了解碼的程序, 那也是一連串實體狀態的mapping。例如我們透過電線傳輸摩斯碼, 電線傳來斷斷續續電流就是signal, 收報機將斷斷續續的電流轉換成為收報員可以了解的長短聲音, 或者波型, 或者開關動作, 總之, 都是實體狀態的mapping。收報員讀懂了長短組合的訊號後, 轉換成為他腦袋中神經細胞的某種激發的模式, 這也是實體狀態, 然後用鉛筆寫下所傳來摩斯碼所代表的字母。如此一來, 原先電線中斷斷續續的電流, 被解碼成為滯留在紙張纖維間的碳粉微粒, 這個過程全部都是實體世界狀態的轉換, 無一例外。

如果收報員拿起鉛筆在紙張上堆砌出能夠代表所傳達訊息的碳粉微粒是解碼過程中的一個步驟, 而最後交給收訊者閱讀的電報是解碼的結果, 請問你怎麼能夠說砌磚工人按照圖面拿起一塊塊的磚頭堆疊起來不是在做解碼的工作呢?而其所蓋出來的房屋不是解碼的結果?

將建築視為溝通流程 (二) - 業主希望蓋一棟房子讓家人能住得好, 這件事如何解讀成需要傳輸的資訊?

業主希望蓋一棟房子讓其三代的家人能住得好, 這件事如何解讀成需要傳輸的資訊?

根據information theory 的定義, 資訊就是不確定性(uncertainty) 的揭露 (uncover)。有效的溝通, 可以傳輸適當的資訊, 讓不確定性因被相關資訊所揭露而降低。

業主希望擁有一棟可以讓其家人住得好的房屋, 卻充滿了不確定性。他找了營造商來蓋房子, 但在沒有任何溝通資訊的情況下, 這個房子完工後能夠讓其家人住得好的機率可能非常低, 代表不確定性極大。為了降低不確定性, 他找了建築師, 經過某種流程, 這我稱之為編碼, 就是業主希望透過成功的溝通流程, 把適當的資訊傳輸到收訊端, 因而降低收訊端對所接收資訊的不確定性。

假設集合S代表營造商可能蓋出的所有房屋, S1是S的部分集合, 代表所有可能被蓋出來的房屋中能夠適合業主一家人居住的房屋所形成的部分集合。業主希望透過溝通流程傳輸的資訊來提高能夠找到屬於S1集合中某個房屋的機率, 其成功與否就是看所傳輸的資訊是否能夠揭露在尋找好房屋過程中的不確定性。

我在先前對話中資訊強調就是為了分辨, 適當的資訊可以幫助我們分辨S1 與 "非S1", 在這個例子中, 溝通的資訊並不需要表示建築物所有的細節, 只要能夠分辨符合需要的和不符合需要的就可以了。業主與建築師在設計過程中所做的努力, 就是為了把業主希望傳遞的資訊做最好的編碼, 轉換成設計圖面, 經過傳輸, 然後在解碼過程中把"獲得適合居住的房屋的不確定性" 降到最低。

將建築視為溝通流程 (一)

建築工程是一種溝通過程, 建築師將其設計進行編碼, 其結果就是各種工程圖面與文件, 透過資訊通路傳給營建工程師。工程師根據建築師的設計圖說進行解碼, 其結果就是建築物。

將建築看成溝通流程的話, 我曾困惑於為何建築物所蘊含的資訊似乎比建築師的設計圖說大得多, 而shannon告訴我們解碼所得的資訊只會小於, 至多等於資訊來源, 也就是設計圖說。原來我誤以為編碼必須將所有相關資訊編進去, 而事實上編碼只需要能夠"分辨出差異", 也就是說成功的溝通並不需要把所有相關的資訊傳過去, 而只需要傳遞足夠的訊息, 讓收訊方能夠分辨出差異。

這我們可以用傳訊與收訊方共有的密碼本來解釋, 假設雙方都有一本共通的字典, 或甚至"句典", 每個字或每一句都有編號, 傳訊時我們只需要傳編號, 並不需要傳整個字或整句,我想這是最基礎的概念。建築師和營建工程師之間也有一本這樣的字典, 也就是彼此雙方共有的專業知識。建築師的圖面和文字標註的好比是字句的編號, 而工程師收訊後就照著編號根據其工程專業知識進行解碼, 解碼後的成果也就是建築物。建築物看起來比所傳輸的設計圖面豐富很多, 但就資訊量而言並沒有違背Shannon的數學模型。

我對資訊理論關心的重點並非資訊的量, 因為我是學建築的, 對資訊量的計算一知半解,讓我受益最大的是Shannon數學模型的延伸, 我發現可以用這個模型來探討建築。

老王賣瓜一下, 前一陣子我一位博士班學生 (她是交大資工系畢業 然後台大資工所的碩士, 找我當指導老師) 和我合寫了一篇論文, 試圖用Shannon的模型來分析建築工程的複雜度, 我們認為建築設計的entropy可以用來作為工程可建性 (constructability)的一個指標。 我邀請台大資工所吳家鱗教授(在台大開information theory課程), 台科大資工所鮑興國教授 (運算理論), 台大土木系謝尚賢主任(工程資訊), 還有時任營建研究院院長的台科大營建系楊亦東教授 , 總之, 我可能找不到更tough的人選來當她的論文口試委員。尤其是吳家麟教授, 他是很大的權威, 我們曾與他仔細的討論過這個做法, 也得到他的認同。

在美國某些人煙稀少的地區可能方圓五百公里內找不到建築師, 某些公司開發了建築型錄, 讓想要蓋房子的業主可以圈選各種全套的建築設計圖面, 並可以或增或減某些選項, 然後營建商就可以根據地主的選擇進行施工。溝通過程只需要幾個選項就解決了。這和使用字典來編碼如出一轍。業主只要傳輸很少量的資訊, 營造商就可以根據這極少量的資訊把一棟複雜的建築物建造起來。如果施工正確, 也就是解碼過程沒有失誤, 這棟建築物就會符合業主所圈選的設計方案以及增減的選項。

就建築設計而言, 按圖施工這一個層級相當於Weaver [1]在其文章中所提示的technical 層級, 如果類比到運算理論, 我會說這屬於語法 (syntax)的層級。Weaver 提示的第二層級稱為語意(semantics), 用在建築上, 我將其解讀為建築師對建築物的預期品質, 例如結構安全, 美觀, 保暖, 通風等等與建築相關的品質。建築師希望設計出一棟安全、美觀又舒適的建築物給業主, 並試圖將這個"建築的語意"進行編碼, 成為建築專業的圖面與文件, 並透過資訊通路傳給營造商。根據工程合約, 營造商的職責是正確的將這份工程圖說進行解碼, 根據其所描述的規格建造房屋, 如果這個過程沒有瑕疵, 而建築物卻還是不安全, 不美觀, 不舒適, 代表建築師在編碼過程失敗了, 沒有能夠將其想傳達的建築語意成功的編進其所傳輸的工程圖說。

Weaver的第三個層級是 utility, 如果對應到建築, 我的解讀是業主對建築物的期待。假設建築師成功的將建築語意編碼成工程圖說, 而營造商也成功的解碼, 建造了一棟安全, 美觀又舒適的建築物交給業主。可是業主住進去之後卻發現並不合用, 可能臥室少了一間, 或者沒地方可以打麻將.....這些層級可以一層層往上加, 但無論多少層級, 就溝通的數學模型而言, 每一個層級代表一次mapping, 把每個層級間的mapping都合併起來, 最後就成為一個層級, 也就是Shannon的模型所建立的架構。例如若把上述三個層級合併, 那麼這個溝通流程就成為如下的情況:

業主希望蓋一棟房屋給其三代的家人共同生活, 這個期待就是需要被編碼、傳輸, 並解碼的資訊。編碼的過程雖然複雜, 但就是一連串可以被合併的mapping, 我們可以跳過細節直接來到編碼的結果, 也就是建築設計圖面與文件。這些圖面文件透過資訊通路的傳輸交給營造商聘請的工程師進行解碼, 同樣的解碼的過程可能很複雜, 例如擬定施工計畫, 進行採購, 工程管理......但說穿了就是一連串的mapping, 最後解碼完成, 建築物蓋好了。

整個溝通過程是否成功, 輸出的資訊是否透過編碼, 傳輸與解碼之後還能保留?能保留多少就是是否成功的指標。對業主而言, 溝通成功代表他們住進去之後, 完全符合他們在使用上的期待。但如果不完全成功, 其失誤可能發生在各個環節, 例如業主沒有提醒建築師說他們一家人都喜歡打麻將, 或者建築師委託的技師結構計算錯誤, 把鋼筋配少了, 或者是繪圖員圖面尺寸標註錯誤, 這分別屬於編碼過程中, 在utility, semantics, 與 technical (或者我喜歡稱之為 syntax)的失誤, 無法成功的將上一個層級的編碼mapping到下一個層級的編碼。

失誤也可能發生在傳輸的過程, 例如圖面流失, 或者因雜訊而讓收訊者收不到正確的圖面, 之後就是解碼的過程, 其順序反過來, 從syntax, 而 semantics, 最後才是utility。解碼過程的syntax是指所傳輸的工程圖面是否被正確的解讀, 並mapping到正確的施工計畫、採購、與工程。營造商工作到此為止, 成功的解碼會讓建築物被蓋出來後完全符合建築設計圖面所規範的規格。但是這棟建築物是否美觀、安全、舒適, 還必須有第二層, 也就是semantics, 的decode來從建築物mapping到建築的品質, 這需要大自然透過物理、化學定律的解讀, 例如若鋼筋設計不足, 那完全盡責的營造商也還是蓋不出安全的房屋。最後一層的解碼就是業主住進去之後, 建築物是否能一如其所期許的, 提供所需要的生活環境給三代的家人。

說到這裡, 可能許多人會不認同, 三代家人要住房和需要傳輸的資訊怎麼就湊成一件事?蓋房子和解碼有何關係?..我相信有很多問題, 容我在下篇文章中進行說明。

[1] Claude E. Shannon and Warren Weaver (1963). The Mathematical Theory of Communication. University of Illinois Press. ISBN 0-252-72548-4.

2018年5月23日 星期三

建築的信息建設 - 從BIM、參數化與建築的工業4.0談起

建築的信息建設 - 從BIM、參數化與建築的工業4.0談起

從規劃設計、營造到營運, 每一棟建築物在其實體的背後都必須由龐大而複雜的信息建設來支撐, 不僅如此, 甚至建築的目的與功能也就是生活環境的信息建設。參數化、BIM與建築工業4.0等等數字化技術的應用極其光采奪目, 以至於遮蔽了建築的本質, 然而剝除了信息科技的表層應用之後, 我們發現建築與信息在本質上是如此接近, 甚至融為一體。以下以三個技術應用主題切入, 討論建築的信息建設。

  1. 建築設計就是信息設計與信息工程
  2. BIM的神話、藝術與實踐
  3. 程序對稱性、參數化與建築的工業4.0
我希望以上的內容能夠啟發同學們探索數字化技術的熱忱, 同時不忘記或輕忽建築固有的本質, 並找到能夠結合兩者的方向。


講員:施宣光

經歷:
台灣科技大學建築系教授、博士生導師
曾經擔任台灣科技大學創造力中心主任、建築系主任

學歷:
瑞士聯邦科技大學(ETH Zurich)博士
美國卡內基美隆大學(CMU, Carnegie-Mellon University)碩士
台灣東海大學建築學士

2018年5月8日 星期二

資訊的宣示性與程序性表示

將資訊用宣示性(declarative)的方式表述轉換成程序性(procedural)可以把繁複的資料變簡約。一個明顯的案例就是Postscript程式語言, 當初是被用來描述電腦排版的內容。一開始我很不解, 為何用程式語言來記錄版面?例如你寫的一本論文, 包括各種圖片, 字體, 表格....在你用word編排之後送到印表機時, 電腦送出去的資料竟然是以Postscript所編寫的程式。曾經有一陣子, Postscript是印表機通用的格式, 這一段歷史你可能不熟悉, 在以前, 每一家公司的印表機有自己的格式, 你用word 打文件, 裝了HP的印表機, 就必須把你的排版內容用HP的格式送出, 印表機才知道如何印出來, 因此每一步電腦都必須為每一個印表機安裝driver。

在此背景下Postscript被發展出來成為印表機的通用語言。Postscript的檔案通常很大, 那是因為是ASCII的編碼, 為了通用性才這麼做。格式本身包含了程序性的敘述, 因此就是種程式語言。我們都以為程式語言就是要寫程式, 其實本質上, 程式語言就是資訊的表述格式, 可以利用程序性的敘述, 藉以利用對稱性讓所需的資料變得精簡, 將資訊用最精簡的資料加以表述。要了解這點, 就必須從資訊理論的基礎談起, 對資訊與資料的區別必須很清楚, 對於資訊的計量, 其與對稱性的關聯性就是核心知識, 我和美智的論文就是基於這點。

把這個概念從版面設計轉到建築設計其實差距並不大。目前建築的圖面主要還是由宣示性的資料表述, 你如果了解AutoCAD的DXF格式內容, 或者IFC資料格式就會了解。不過應該沒有任何一種資訊的表述資料是全然宣示性或者程序性的, 因為資料必需被解讀, 而解讀就是一種程序, 理論上這個程序必須被包含在資料裡面的。

我們用grasshopper的程式建一個模型, 就相當於用一個Postscript的程式做版面設計。程式設計的關鍵概念就是掌握所欲表述資訊的對稱性, 將資訊用最精簡的方式以某種資料進行表述。有的表述方式沒有適當的掌握對稱性, 就會充滿重複、贅餘, 之後需要修改時, 造成矛盾與缺漏的機率會增加, 這都是我們在設計的過程中會遭遇到的。

為何程序性的資料比較容易做跨領域的溝通?這跟當年PostScript被用來做為不同廠牌型式印表機之間的通用語言的道理可能有相通之處。每一家公司生產的印表機各有其硬體的設計, 列印時所需的控制參數、硬體限制、列印流程可能都不一樣, 因此驅動印表機進行列印的資料也不會一樣, 例如我們在word程式中安裝HP9000的driver, 其任務就是將word儲存資料的格式轉換成為控制印表機的資料。開發文字處理程式的公司, 例如Microsoft, 為了開發市場, 就必須針對市面上常見的每一種印表機提供driver, 反過來, 每一家印表機廠商, 例如HP, 也必須提供其與市面上常見的文字處理程式之間的driver供客戶安裝使用。這就是目前建築師使用設計圖面與各個專業顧問溝通的模式。每一個專業轉換到另一個專業, 都需要有特定的driver。

溝通是一種把信息(information)轉換成資料(data). 再透過某種通路(channel)將代表資料的訊號傳輸到受信者的感官的過程。信息的兩個要素(信 與 息)其中的 "息" 必須經由編碼 (coding)的程序編寫成資料, 受信端接收後, 再透過解碼(decoding)的程序解讀。("信"的部分牽涉到另一個層次的問題, 不在此談)。 "息"的目的是揭露(uncover)不確定性(uncertainty), 是希望減少受信者對所溝通事物的不確定性。例如營造廠原先不確定建築師設計的建築物有多大, 多高, 用甚麼材料, 但收到建築師的設計圖(息), 經過專業圖面的解讀(decode)後, 對建築設計的不確定性減少了, 就知道如何與建築師進行協同作業。這就是跨專業溝通的一個典型。

是否適合做為跨專業溝通的語言, 就必須思考編碼與解碼的過程是不是能讓雙方都流暢的操作。編碼通常是比較困難的過程, 要找到有效率的編碼方式更是困難。對稱性是有效率的編碼必須要掌握的, 任何建築設計作品必定有高度的對稱性, 所以建築專業間的溝通語言必須能夠讓設計師充分運用對稱性的結構來進行編碼。平立剖的專業圖面就是利用大多數建築物在特定軸向平移時形式的對稱性而設計出來的編碼方式。隨著曲面與更複雜的造型出現, 這種軸向平移的對稱性往往被破壞, 而必須用更高層次的對稱性來進行編碼, 有點像二次曲線雖然不具備線性的對稱性, 但微分求斜率之後就呈現出其線性的對稱性, 建築師在編碼過程如果能描述這種較高層次的對稱性, 就可以做出更有效率的編碼了。

2017年9月30日 星期六

關於Zaha 建築展的一點筆記 - 背景

Zaha最引人矚目的就是造型。為了瞭解其背景,我覺得可以先談一下建築外殼演進的歷史, 這我上周建築皮層課程有帶過。傳統建築建築的外殼通常就是結構系統的一部份, 因此立面的構成元素就是牆、柱、樑和開口。開口又由窗台、窗(門)楣以及開口的邊框與上蓋等元素構成, 這些元素原本都有材料、構造、工程及功能上的因緣, 經過沿襲承續之後成為裝飾的元素。這種把建築結構、構造及工程作為建築立面形式主體的作法在文藝復興乃至於巴洛克建築發展到一個極致, 乃至於柱樑等結構元件都成了建築立面的裝飾元素, 很多都脫離了原本結構的意義, 而許多形式特徵原是承襲自木構造與磚石結構在工程上必要的細部, 也脫離了構造的目的而成為立面裝飾的元素。

現代建築由於材料、結構技術以及空間的使用方式的演進, 把建築外殼與結構系統脫離之後在設計上產生了很多的可能性, 對景觀、採光、通風、造型等等都變得更自由, 因此產生了帷幕的概念, 算是建築物的skin, 建築的外殼脫離了作為結構系統一部份的角色, 因此可以有大面積、水平的開窗, 梁柱等結構元素不必成為立面主要的特徵, 同時某種程度的脫離直線與直角的束縛。這算是ZAHA前一代與前前一代國際樣式建築大師們面對的時代背景。

二十世紀現代建築皮層從結構解脫, 但無法完全脫離直線、圓弧與直角, 比較淺層的解釋就是繪圖與施工技術問題, 深層的解釋就是資訊處理。建築皮層雖然從結構系統解脫出來, 但在設計與工程上還是面臨一個重大的限制, 就是資訊處理的技術。資訊必須付出代價, 做任何事情如果需要處理的資訊越少, 那麼代價就越低, 反之如果需要處理的資訊超乎我們的能力, 那麼事情就做不成。因為對稱性的關係, 直線與圓弧在資訊上是很簡約的(曲率不變, 是一種對稱性), 角度則以360度的簡單整數能夠整除為原則, 例如180, 120, 90, 60, 45 等等, 這些不只是跟建築師畫圖有關, 影響更大的是工人在工地如何放樣, 工廠如何製造的問題。... 這些都是ZAHA的前一代, 或前前代建築師面臨的問題。GAUDI是特例, 因為他是奇葩, 只有真正能夠整合設計、結構與工程的建築師才作得到, 建築史上最值得注意的有兩位, 除了GAUDI之外就是Brunelleschi (https://en.wikipedia.org/wiki/Filippo_Brunelleschi)。

曲線曲面的設計與工程需要克服的關鍵問題就是製圖、放樣、製造與施工的技術。其在工程界的應用需要關注一個重要事件, 就是1962年法國雷諾汽車公司工程師Bezier發表曲線的放樣方法 (Bezier curve https://en.wikipedia.org/wiki/B%C3%A9zier_curve) 。而法國Citron汽車公司的工程師 Paul de Casteljau 也於1959年使用De Castaljau算法進行數值分析。電腦圖學技術的應用開啟了曲線曲面繪圖以及工程放樣技術的新紀元。二十世紀80年代開始陸續許多建築師應用電腦繪圖技術設計了許多曲線曲面的建築物, 造型與結構、工程乃至於建築性能的整合則可以說是蹣跚前行, 產生了許多值得討論乃至於爭議的問題。隨著資訊技術的前進, 以及其所引發建築產業結構的變革,2010年以後,這些問題已經聚焦於實現技術的開發與實踐。或許可以說這也是Zaha創造許多建築設計的背景。


zaha 展覽筆記

  Zaha展覽中這一系列模型似乎是在探討造型產生的方法。我認為是跟GAUDI的方法有關, 底部是多邊形, 然後旋轉同時拉伸。GAUDI採取的是連續的旋轉拉伸, Zaha則是離散的 (descrete), 也可以說是數位時代的反應吧。這在幾何上或許可以稱為discrete rotational extrusion. 基本上是以一個多邊形開始, 向上拉伸同時旋轉, 到一個特定高度與角度之後定格, 然後和先前的多邊形做直線連結, 然後再向上拉伸同時旋轉, 做出另一段的量體。GAUDI也做過類似的設計, 不過是採取連續的拉伸與旋轉, 因此可以稱為continuous rotational extrusion. GAUDI 還會把兩相反方向旋轉拉伸出來的量體做交集來設計出最後的造型, 可以參考 ( https://designcomputing2016.wordpress.com/2016/02/28/gaudi-columns-ceren-gocmen/ ) (https://vimeo.com/66331245)
的說明。至於當年GAUDI如何在沒有電腦的前提下繪製圖面, 製作模型, 工人如何放樣, 定位與施工 則是非常了不起的, 證明GAUDI是整合設計與施工的絕代高手。



2016年2月5日 星期五

元件知識庫

元件知識庫的研究我希望能夠真正提升到知識管理的層次,知識管理是我大約15年前投入的一個領域,我認為元件是一個可以把知識管理理論實踐的一個場域。能否成功實現我不敢說,但我認為理論架構早已到位,跟建研所提出一個整體構想方案不會有問題。我陸續會把一些想法和大家分享。

我想要把幾個在不同領域被提出來, 但我認為相關的理論整合一起, 形成一種知識庫的架構,讓我們可以在雲端平台上實現。wikipedia的成功讓我相信這是可行的,我們可以建立一個以元件為基本架構的知識庫,是一個多方交流,而不僅僅是供應商與消費者或設計人員的單向流動。以下是我想結合的幾個理論, 先不談細節:

野中郁次郎 (のなか いくじろう nonaka ikujiro ) 的知識創新螺旋理論, http://wiki.mbalib.com/zh-tw/%E7%9F%A5%E8%AF%86%E8%9E%BA%E6%97%8B

Christopher Alexander (https://en.wikipedia.org/wiki/Christopher_Alexander) 的 pattern language.  這是建築界的一個怪咖, 他在上世紀70年代就提出理論, 但始終沒有被建築界真正擁抱, 反而在資訊領域被肯定, 甚至其在柏克來建築系發表的博士論文曾是資訊領域的教科書,pattern language 也成為軟體開發的顯學。

另外一個是Herbert Simon (https://en.wikipedia.org/wiki/Herbert_A._Simon) ,他是建立認知心理學與人工智慧領域的大師,諾貝爾經濟獎得主。他有關設計方面的理論一直到現在還是唯一真正能為設計提出一個有系統的基本理論。他的有些想法我認為和Alexander的想法非常接近,也因此讓我對他們更有信心。

Nonaka的知識創新螺旋我認為可以更簡化,可以幫助我們構想出相對應的知識平台架構與運作方式,Alexander和Simon的理論幫助我們能夠把和建築設計知識相關的內容轉換成格式化的架構, 這才能完成Nonaka知識創新螺旋中外顯知識的部分。這是我大致的想法,我會陸續和大家分享, 並聽取大家的意見。

2016年2月1日 星期一

建築資訊建模元件知識庫


  1. 何謂元件知識庫?
  2.  元件知識庫與元件庫最大的差異點在何處?
  3. 從元件庫中要如何提升轉為元件知識庫,其最大的優勢為何?
  4. 元件知識庫能夠為未來設計端或是執行端會有什麼改變?

這四個問題一起回答。維基百科為知識庫下的定義如下:
知識庫是用於知識管理的一種特殊的資料庫,以便於有關領域知識的採集、整理以及提取。知識庫中的知識源於領域專家,它是求解問題所需領域知識的集合,包括基本事實、規則和其它有關信息。   https://zh.wikipedia.org/wiki/%E7%9F%A5%E8%AF%86%E5%BA%93
知識庫的運作是雙向的,使用知識庫的人也就是建立知識庫的人。我們希望知識庫的建立可以協助一群人共同來使用, 並打造這個知識庫。元件庫比較是單向的, 也就是某些人提供資料建立了元件庫,讓人下載使用。

維基百科可說是知識庫運作最成功者之一。知識庫必須把使用者也一併納入, 成為一個系統的一部份。維基百科是由全世界無數志願者投入所寫出來的,其運作方式也是知識庫的一部份。

Nonaka (野中郁次郎) 提出的知識創新螺旋是知識管理中一個知名的理論基礎,可以用來作為設計知識庫的參考架構。

先談到這裡,我有時間再進一步說明。