網頁

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)後, 對建築設計的不確定性減少了, 就知道如何與建築師進行協同作業。這就是跨專業溝通的一個典型。

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