統動力學模型的框架,展示如何在實際中使用系統動力學模型。例子的背景是關於如何提高當地汽車代理權的問題,其中的關鍵決策都是非常真實的,在很多現實業務中也很常見。
第12章加速系統思考到目前為止,本書一直在強調如何使用系統思考來提升我們對複雜系統的理解,幫助我們建立起擁有整體而非區域性視角的信心;透過清晰闡明、共享和欣賞彼此的思維模式來建立團隊;獲取深刻的見地,從而制定睿智的政策,使其能夠經歷住時間的考驗,並避免因不可預期的環境變化而遭受損失。同時,我們也了解了系統思考是如何在各個層面上有效發揮作用的—從特定業務的細節(例如內勤系統和電視公司的例子),到對業務戰略的支援(情景規劃案例),到重大公共政策的制定(全球變暖),等等。 我們的主要方法就是繪製系統迴圈圖,藉助於相互連線的增強迴路和調節回路所組成的網路,把系統內在的因果關係表示出來。增強迴路的作用是導致指數增長或者指數衰退,而調節迴路的作用是抑制增強迴路的旋轉,有時則粉演了驅使系統朝向特定的任務或者目標靠近的角色,這些任務和目標通常以政策輸入懸擺的形式來表示。 就像我們多次看到的那樣,即便是非常簡單的系統迴圈圖也可能表現出非常複雜的動態特性。在此之前,我們很難理解這一點,而且也無從預言任何確定性。 管理的作用在於借鑑過去,制定當前的決策,並儘可能地影響未來,使之達到我們的目標和目的。控制業務和組織系統的動態特性是我們的主要目標。儘管系統迴圈圖對於瞭解內在的因果關係非常有用,但是很少有人能夠想像,在由競爭、政府行為和消費需求構成的高度複雜的環境下,那些關鍵變數(諸如客戶群和市場份額、員工士氣和流失率、股價和聲望等)的動態特性隨時間變化大致會是什麼樣子。 這就是基於計算機的模擬模型的意義所在,計算機模型可以稱為“未來實驗室”,幫助擴充套件你的思維能力,使你能夠在政策或決策付諸實施前檢驗其結果。 有大量的定製軟體包可以幫助你完成這些事情,繪製系統迴圈圖,或者對業已存在的模型進行處理,將其轉換成能夠對系統時間特性進行模擬的計算機模型。 模擬的結果是一組二維圖形,水平軸是時間,垂直軸是關注的變數(客戶、利潤、 聲望或者其他任何指標)。這樣就可以瞭解在系統迴圈圖所描述的邏輯下,這些變數隨時間的變化趨勢。如果對其中的某些變數做出更改,例如增加廣告投人, 在一段時滯後,將會產生新的客戶,從而增加利潤,模型可以模擬出這些變化, 並展示出以下結果:在客戶和銷售經歷了一段時期的增長後,會有短暫的回落, 這是因為員工招聘和培訓的速度無法滿足客戶群的增長需要,從而導致服務質量第12章加速系統思考的下降,使得客戶滿意率開始變低——這就是廣告投人所帶來的一系列變化。 本章的目的在於介紹如何基幹系統迴圈圖得到計算機模擬模型。作為例子, 我們所使用的軟體產品是ithink,當然這並不是惟一的選擇,同樣著名的還有 Powersim和Vensim。和所有軟體工具一樣,必須掌握很多的技巧才能有效地使用它們。然而,我的目的並不在於寫一本程式使用手冊(ithink本身的產品手冊已經相當完美了),而只是讓大家去見識一下這些產品是如何使用的。 12.1 系統動力學用於支援系統思考的計算機模型有其特有的名稱—系統動力學。如同系統思考一樣,系統動力學有一段漫長的歷史,第一代專門的系統動力學程式語言, 如Dynamo產生於20世紀五六十年代。在系統動力學的發展過程中,傑伊•佛睿斯特起了關鍵性的作用。佛睿斯特原本的專業是電子工程,一個與正負反饋概念有緊密聯絡的學科。基於這樣的背景,他在研究國防系統的複雜性時形成了有關系統動力學的最初想法。系統動力學的主要概念總結如下。 系統動力學系統動力學是一項計算機建模技術,能夠對真實系統進行模擬,得出其時間特性。因此,藉助於系統動力學,靜態的系統迴圈圖可以轉化為動態的“未來實驗室” 類似於系統思考,系統動力學闡明瞭許多重要的發現,例如所有的變數在事實上都可以分成兩類:存量和流量。 • 存量(Stocks)是隨時間累積的變數,它的值能夠在任意一個時間,點上被測量。 • 流量(Flows)增加或減少存量的值,其本身的值只能在一段時間內統計得出。 系統動力學可以涵蓋所有財務料目,資產負債科目是存量,而損益料目則是流量。當然,系統動力學所能辦到的遠不止財務分析和財務建模,很多財務模型所不能包括的變數也能夠在系統動力學模型中輕鬆地表達出來。像“知識”、 “員工士氣”以及“容戶滿意度”這些變數絕對是經營業務的重要驅動力,但卻很少能夠在正式出版的年鑑或會計報表中得以體現。 同一個系統內,存量和流量之間的內在聯絡可以用 “水管圖”(plumbing diagram)或者“存量一流量圖”(stock-and-flow diagram)加以描述。水管圖完全可以在系統迴圈圖的基礎上移植得出,但通常需要更多的變數和更為精確的語言。 水管圖是計算機模擬的基礎,展現了系統隨時間的變化情況。 12.2 系統動力學和電子資料表計算機建模技術,特別是使用電子資料表軟體(如Microsoft Excel),如今已
198 第四部分建立“未來實驗室” 經被業務經理們廣泛使用。考慮到電子資料表格的無所不在,人們自然會問: “為什麼還要費力氣去理會別的建模技術?難道Excel還有什麼辦不到的嗎?”當然,到今天止,不管是Excel,還是ithink,或者其他相關軟體,都是程式語言。 我們也確信,它們都具有足夠的靈活性去解決各種難題。但打個比方,儘管我們可以想方設法使用錘子起螺釘,但如果直接用改錐則會方便的多。所以,不同的工具總是針對不同目的設計的,手工器械如此,軟體也是一樣。接下來就讓我們花點時間瞭解系統動力學模型和電子資料表之間的區別。 首先是應用範圍的不同。電子資料表更多被用來進行資料分析,處理來源於生產、市場和流通環節的大量資料,建立起通用的會計賬目,從而為下一年的預算做好準備。電子資料表向“下”能注意到任何增長的細節,向“裡”則透視到組織機構內的每一個角落。與之相反的是,系統動力學模型的角度是向“上”和向 “外”: 向上——嘗試瞭解宏觀的概念,打破邊界的限制,從整體角度看問題;向外—超越組織自身,考察市場以及與業務相關的整個環境。系統動力學模型可以用來計算資產負債和損益賬目,但它所能做的遠不限於此。本書中所提到的任何系統迴圈圖, 都可以看成是構建一個系統動力學模型的模板,從而實現對相應系統動態特性的深刻理解。而在電子資料表裡,我們能得到多少類似的資訊呢? 其次是結構上的區別。儘管從電子資料表中也可以洞察反饋迴路,但事實上卻很少這樣做,通常也很難。系統動力學則不然,它天生就是用來幹這個的。系統動力學可以方便快捷地抓住業務增長的本質,對基本增強迴路的驅動力以及調節迴路的剎車效應進行模擬。為了對此有個更直觀的感受,先讓我們回想一下大多數電子資料表是如何組織和工作的。 Excel及其之前的產品,如Lotus 1-2-3、Supercalc以及Visicalc,是最為常見的電子資料表軟體,它們是由行、列組成的網格構成的會計賬頁的電子化形式。 通常列代表連續的時間分塊(周、月或者其他),行則用來表示相關變數,如 “客戶”、“銷售量”、“單位生產成本”、“淨利潤”、“稅率”等等。電子資料表中的每個單元格(行列交叉的地方)既可以是輸人的資料,也可以是某一數學計算公式,如“將該列第七行的銷售量,乘以該列第八行的單位價格,其結果即銷售收入,填入這個單元格”。軟體並不如此囉嗦,你所要做的只是在單元格D9(對應於D列中的第9行,代表了某個月的“銷售收入”)中填入“=D7*D8” 電子資料表具有各種功能,比如將某一列的規則複製到其他列中。舉個例子來說,“2月”(列D)的規則和 “3月”(列E)的規則很可能完全一樣,其他各月也是如此。因此,在為第一列每個單元格設定好自己的邏輯之後,就很容易將這種邏輯複製到其他各列中去。 在大部分情況下,電子資料表會首先沿著第一列計算所有的行,然後計算下一列,如此繼續下去。這種逐列計算的方式(從1月到2月,然後是3月、4月、5月•••••) 被稱為序時模擬(time slice simulation)。這種模型遵照電子資料表中定義的規則, 以指定的時間間隔(在這裡是一個月)劃分時序,來對系統行為進行模擬。 在大多數電子資料表中,計算規則主要用來操作同一列裡的不同行(“銷售收入”=“銷售量”*“單位價格”,每個月都是如此),對任意時間段裡的所有第12章加速系統思考 199 計算制定統一規範。當然,除此之外,還有些(通常比較少見)規則是與不同的列相關的,用來定義模型隨時間是如何執行的。這些規則通常有兩種型別:第一種,將某一列的期末餘額(如債務、債權、資產等)轉換成下一列的期初餘額; 第二種,是一些預先確定的規則,例如“銷售量每月增長1.5%”,“一般管理費隨著通貨膨脹每月增長”等。在電子資料表中,第二種型別的規則主要透過對同一行中相鄰列之間標註函式關係進行表達。以銷售增長例,我們可以對列E (“3月”)中的第七行(“銷售量”)指定其與列D(“2月”)的相關函式: E7= D7*(1+0.015) 增長率(這裡是每月1.5%)通常是需要輸入的變數,具體值可以來源於市場研究、評價或者是實際需求。 在結構上,大多數電子資料表有兩組邏輯規則:一組沿著列展開,另一組則是基於水平穿越資料表的行展開,如圖12-1所示。 1月 2月 3月 4月銷售量平均單價銷售收人銷售成本毛利廣告費其他管理費用淨利潤圖 12-1 系統動力學模型同樣使用序時模擬,但是它用另一種不同的方式。正如上文提到的,電子資料表計算3月份的銷售量,是在2月份的銷售量基礎上,透過給定的增長率進行計算後得出的。而典型的系統動力學模型的計算方式不是這樣,它綜合考慮各種因素的效果,如2月份(或者更早)的廣告費用,然後透過某種模糊變數進行計算,比如“廣告對客戶增長的作用”。系統動力學模型正是透過這種方式,刻畫實際推動業務發展的反饋迴路,見圖12-2。 由此可見,和電子資料表相比,系統動力學模型的結構截然不同。正如我們已經提到的,它所涉及的範圍更廣,包含了電子資料表很少關注的概念和變數。 所以,為了使本章及後續章節發揮最大功效,你應該把從電子資料表中所學到的一切都忘掉。 忘掉電子資料表忘掉所有的行、列以及單元格。 忘掉所有的公式,例如D9=D7*D8。
200 第四部分建立“未來實驗室” 代替它們的是“存量”和“流量”。 1月 2月 3月 4月銷售量平均單價銷售收入銷售成本毛利廣告費其他管理費用淨利潤圖 12-2 12.3 存量和流量存量和流量是系統思考中的基本概念。 存量和流量存量是任何隨時間累積的變數。 流量是任何導致存量增加或減少的變數。 想像一下給一個底部塞子漏水的浴缸加水。你開啟水龍頭,水流進浴缸,但因為塞子漏水,水同時也會流出浴缸。如果水龍頭的流量大於漏水的流量,浴缸的水位會逐漸上升。如果關掉水龍頭,水位就會逐漸下降。某一時刻,當你覺得水位剛剛好的時候,只要調節水龍頭使入水流量和漏水流量相平衡,浴缸的水位就能保持在一個恆定位置。 根據系統動力學,在任何時候,“浴缸的水量”(單位是立方米)和“浴缸的水位”(單位是釐米)都是存量——它們是隨時間累積的變數;而“水龍頭入水的流量”(單位是立方米/分鐘)和“塞子漏水的流量”(單位也是立方米/分鐘) 都是流量——它們導致了上面兩個存量的增加或減少。 上述系統可以用通用的符號圖形化表述出來:方框代表存量,帶有龍頭的管道代表流量,見圖12-3。 浴缸的水位水龍頭人水的流量塞子漏水的流量圖12-3
第12章加速系統思考 •201 圖12-3中兩端的“雲”代表輸人流量的源頭或者輸出流量的去向,屬於被考察的系統邊界外的內容。的確,水龍頭的水肯定來自某個地方,從塞子漏出去的水也必定流向了某處,但僅就研究浴缸這個系統來說,我們不用理會這些細節—一畢竟, 水龍頭總是能提供足夠的水量,而漏出去的水也永遠不可能把下水道裝滿。 當時間停止時會發生什麼? 想像一下,時間突然停止。在這一瞬間測量一下這些變數,你會得到什麼? • 浴紅的水量? •浴缸的水位? •水龍頭入水的流量? •塞子漏水的流量? 在時間停止的一瞬間,兩個存量可以得到測量值。“浴缸的水量”或許是0.25 立方米,“浴缸的水位”則是23釐米。但是,在時間停止的時候,兩個流量卻無法測量。本質上,流量是依附於時間的變數,在某個靜止的瞬間,不具有任何值。 區分存量和流量的另一種方法存量可以在某個時間點被測量流量只能在一段時間內被測量通常來說,任何存量至少都有一個輸人流量和一個輸出流量,很多實際的存量都有多個輸入流量和輸出流量。有些偶然情況,在某一特殊環境下,你可能會看到只有一個輸入流量或只有一個輸出流量的存量。 存量、流量、浴缸、水龍頭、下水道和人下面這段文字引自2001年3月5日的《時代》雜誌: 扎得湖曾經是非洲第四大湖,但在過去的38年裡,它的容量減少了近95%。 氣候變化和用水需求的不斷增長,使得這個湖泊的面積不斷減小,到現在幾乎只能用“水坑”來形容它。扎得湖流域為其周圍的國家,包括扎得、尼日、 奈及利亞、喀麥隆、蘇丹、中非共和國,總計至少兩千萬人口提供了寶貴的淡水黃源。但不幸的是,扎得湖流域是一個封閉的水系,只能靠李風帶來的雨水補充更新。湖底很淺,這意味著水位隨雨水的增減變化很大。在20世紀60年代早期,當地經歷了一次大規模的降雨,險些引發洪水。 12.4 商業中的存量和流量在商業中有哪些存量和流量呢? 試著想一下,在商業中有哪些存量?對應的流量是什麼?把你所想到的填入下面的表格裡。
202 第四部分建立“未來實驗室” 存量輸入流量輸出流量商業中最明顯的存量就是庫存,包括“產成品”、“半成品” 或者“原材料” 的實物庫存。任何—個工廠經理都知道,即便時間停止,庫存依舊在那兒,並且是實實在在可以測量的。根據庫存所處的環境不同,它的輸入流量和輸出流量可以有不同的名字。如果你是一個零售商,你的庫存就是“待售商品”;輸出流量包括“每月商品銷售數量”,“每月商品過期數量”和“每月商品失竊數量”;輸人流量則是“每月供應商供貨數量”,或許還包括“每月客戶退貨數量”。對生產而言,“原材料”庫存的輸入流量是“每週從供應商收貨數量”和“每週生產車間退料數量”;輸出流量則包括“每週往生產車間發料數量”、“每週向供應商退貨數量”以及“每週原材料損耗數量”。在所有這些例子中,存量都不受時間的約束,而流量都是對於一段時間而言的。 圖12-4顯示了“原材料”庫存主要的輸入輸出流量。“每週往生產車間發料數量”的輸入物件是“半成品”,它同時也是“每週生產車間退料數量”的來源。 這樣,“原材料”和“半成品”這兩個存量就聯絡起來了。同樣,“每週原材料損耗數量”和“每週半成品損耗數量”都增加了“損耗數量”,需要企業對其做進一步的處理。還有,透過“每週產成品生產數量”,將“半成品”的數量轉成 “產成品”數量(如圖12-5所示)。 每週從供應商收貨數量原材料每週向供應商退貨數量每週往生產車間發料每週生產車間退料數量毎周原材料損耗圖 12-4 這種表述了存量和流量之間內在聯絡的圖形,被稱之為“存量一流量圖” (stock-and-flow diagrams),更通俗的叫法是“水管圖” (plumbing diagrams)。 我們稍後就會看到,水管圖和系統迴圈圖之間有著非常緊密的聯絡。 系統動力學建模需要精確的思維和清晰的語言表述。舉例來說,在日常語言中,“損耗”一詞既可以被用來表示一種存量(堆在工廠後面的報廢料庫存),也可以指一個流量(每週材料報廢的數量)。而在繪製水管圖時,需要區分到底是存量還是流量,並且恰當地描述變數。有時候用文字來表述會顯得十分笨拙,但卻保證了圖形的清晰性。 要區分一個變數是存量還是流量,可以想想你平時是怎樣去度量這些變數的。
第12章加速系統思考 203 當描述一個存量時,通常使用的詞語包括“材料數量”、“噸”等;而對於流量, 描述的詞語換成了“每週報廢的材料數量”。這裡,“每週”這個詞突出了流量的特性。在日常業務中,存在很多詞語既可以指存量,也可以指流量。所以,在實際問題中,必須掌握每個詞的確切意義,否則很容易搞混。 毎周從供應商收貨數量原材料每週往生產車間發料數量產成品半成品每週產成品生產數量每週生產車間退料數量每週向供應商退貨數量每週原材料損耗損耗每週半成品損耗圖12-5 存量、流量以及計量單位如同實物庫存那個例子所示,存量和流量所應用的計量單位是不同的。舉例來說,葡萄酒批發商的庫存通常以產品的單位來計量,如12箱;而銷售量則用單位時間的產品數量來計量,如每週3箱。正因為流量是依附於時間的變數, 所以,選擇多長的時間段來統計就非常重要。一旦統計的時間段改變,流量的具體值也會隨之變化—一例如,每週3箱、每月12箱或每年150箱。 存量的數值則不依時間的變化而改變。庫存數量在一年中任何時候,一週、 一個月、一個事度或者是一年之後都維持在12箱(當然,這是建立在一個非常精確的庫存控制系統之上的!)。這也成為區分存量和流量的一個標準:如果變數的值隨時間段的變化而改變,那麼它就是流量,否則就是存量。 實物庫存僅僅是企業存量的一個例子。表12-1列出了其他一些存量,對與之相關的流量,我們姑且用最常見的“每月”作為計量的時間段。 表 12-1 存量庫存員工固定資產固定資產淨值借方常見的每月流人量採購/收貨招聘/轉正採購採購銷售常見的每月流出量銷售/發貨離職/開除報廢報廢、折舊現金收入
204 第四部分建立 “未來實驗室^ (續) 存量客廣數量知識價格利率稅率品牌形象常見的每月流入量新客戶數培訓和經驗提價利率上:升稅率提高品牌形象提高常見的毎月流出量客戶流失數量人員老化降價利率下降稅率降低品牌形象降低存量,流量和會計科目所有的資產負債類科日都是存量。 所有的損益類科目都是流量。 以上陳述是基本的事實,並且已經在會計術語中得到確認:資產負債類科目反映的是特定時間點(某一天)的狀況,而損益類科目則反映一段時期內的盈虧狀況(強調在某個時間段上的統計)。任何形式的會計賬戶都可以用系統動力學模型加以描述,而正如表12-1中所示,系統動力學所能做的遠比會計賬戶要多得多。例如,對於“知識”,在很多業務中都是非常重要的存量,但先前卻很少有人能認識其價值。 雖然“知識”很難被度量,但不能因為我們缺乏足夠的能力去衡量它,就去忽視知識是存量這一事實。即便時間停止,“知識”依舊在那裡,能夠以一種目前不為我們所知的方法測量。“知識”的水平可以透過“培訓和經驗”來獲得提高,也會隨著“人員老化”而逐漸退化、流失,為了防止退化導致的思維能力下降,可以增加閱讀專業著作、參加會議或者增強同事間的相互交流。 利夫•埃徳溫松知識或許難以度量,但也並非完全不可能。迄今為止,在評價智力資本方面,20世紀90年代的瑞典產生了很多極富創新性的工作,其中特別突出的是斯堪的納保險公司(Skandia)。在1991年的一些相關研究基礎之上,斯堪的納公司於1995年成為世界上第一個同時出版兩份正式財務報告的機構:一份是傳統的財務報告,包括常見的管理措施和會計報表;另一份是補克報告,叫做智力資本圖,主要用來評價企業的智力資本。現在,斯堪的納公司的這兩份報告每 6個月出版一次。 這一開創性工作背後的推動力來自利夫•埃德溫松(Leif Edvinsson),他是斯堪的那維亞公司的副總栽,同時也是智力資本方面的主管。作為該領域世界公認的專家,利夫,埃德溫松目前是隆德大學知識經濟專業的教授。他經常在各類相關學術會議上發表演講,並且與邁克爾•馬隆(Michael Malone)合著了《智力資本:透過測量隱形智慧來創造真正的企業價值》(Intellectual Capital: The Proven Way to Establish Your Company's Real Value by Measuring its
第12章加速系統思考 205 Hidden Brainpower)一書。 如果需要了解更多斯堪的納公司的相關資訊,可以參考其網站 WWW. skandia. com;想要進一步瞭解智力資本評價方面的內容,可以登陸網站www. intellectualcapital.org. 如同“公司聲譽”一樣,“員工士氣”同樣是一個存量。從更實際的層面看, “價格”是最為重要的存量之一。即便時間停止,價格依舊存在並且可被度量。 但是因為沒有特有的詞描述與“價格”相對應的流量,所以不得不將其表示為 “提價”或“降價”。 另一個重要的存量是“利率”,因為“率”字常常在流量的名稱中出現,這容易引起混淆。再加上利率的定義通常也總是和時間聯絡在一起,例如“年利率 6%”,所以更增加了混淆的可能性。事實上,“年利率”是存量,因為它所扮演的角色其實就是價格,是錢的價格。這裡,“率”並不指與時間有關的速率,而是指與資金總數相關的比率:“年利率”決定了每100英鎊每年的利息數。 如果還不夠清楚,請試著用我剛剛在“存量、流量以及計量單位”那個文字框中介紹的方法。如上所述,隨著統計的時間段不同,流量的值也會發生改變。 而在6%的固定年利率下,無論你把錢存6個月還是12個月,“年利率”依舊是6%, 不發生任何變化。改變的只是某段時間內所獲得的利息數量。例如,如果你按照 6%的年利率存入100美元,那麼,3個月後能得到1.5美元的利息;6個月是3.00美元;12個月是6.00美元。這裡,“資金總量”是一個存量,“每年所獲利息”是輸人流量;“年利率”是另一個存量,它每年所獲利息資金總筆將參與決定輸入流量的值,見圖12-6。 細心的讀者會發現,這張水管圖包含了新的元素,“曲線箭頭”或稱為 “聯結器”(connector),用來表示圖中的變數是怎麼聯絡的。從“年利率”和 “資金總量”指向“每年所獲利息”的年利率曲線箭頭表明,“每年所獲利息”的大小是由“年利率” 以及“存款總量”所圖12-6 決定的。圖中並沒有指明三者之間的具體關係,但可以在ithink軟體的“方程視圖”中指定如下: 每年所獲利息=資金總量 × 年利率/100 類似地,稅率也是存量,而非流量,在這裡,“率”所指的同樣不是與時間有關的速率,而是指每100美元所應交納的稅款。總之,“率”這個詞容易造成誤解:所有的流量都是“率”,而“率”並不都是流量。 12.5 另外兩個概念任何一個變數,不是存量,就是流量。
206 第四部分建立 “未來實驗室” 這又是一個系統思考中令人吃驚的觀點,換句話說,在系統動力學中,所有的變數不是存量,就是流量,除此以外沒有別的型別。下面是另外一個觀點: 存量,流量、目標和措施大多數的經營目標(實際上囊括了所有相對重要的部分)可以表示為對存量集合的最佳化。 而管理者所能夠採取的措施,便是實現對流量的調整。 或許需要思考一下這個觀點正確與否,但它的確是對的。大多數的經營目標都可以歸納為諸如“市場份額最大化”、“股東利益最大化”、“良好的公司聲譽” 或者“保持員工士氣高昂”等,這些全都是存量。對其中某個存量的最佳化,可能會與其他存量的最佳化相矛盾,因此,有必要將所有的存量統籌考慮,並做出權衡。 與之對照的是,管理者所能採取的措施,例如招聘、解聘、購買資產、設立公司、花錢做廣告等等,都是流量。這就好像在管理一組由水管、水龍頭和下水道組成的複雜網路相連線起來的浴缸。我們的目標是保證每個浴缸裡的水同時保持一定的水位,或者更理想地,能夠同時穩定上升。但是,我們所能做的只是通過調節水龍頭和塞子,從而控制水的流量而已。 這個比喻十分類似於我們在第10章中關於控制桿和成果的討論,只是前者從系統動力學的角度,後者則是在系統思考的框架下。業務成果都是存量,而行動控制桿都是流量。 12.6 系統迴圈圖和水管圖圖12-7所示的系統迴圈圖,我們曾在上一死亡率章中見過這張圖。其中的哪些變數是存量?哪些是流量? 死亡人數這張圖有三個存量和兩個流量。存量是 “人口”,“出生率”和“死亡率”;而流量是人口 “(每年)出生人數”和“(每年)死亡人數”, 它們分別增加或減少了“人口”這一存量的值。 出生人數類似於利率,不要去管“出生率”或“死亡率” 這兩個詞裡面出現的“率”字,它們是存量而非流量。在這裡,“率”不是指與時間有關的速出生率率,而是指與總人口數相關的比率—— “出生圖12-7 率”是指每千人每年的新增人口數,“死亡率”也類似。可以用下面的數學方程來表示它們之間的關係: 年出生人數=人口x 出生率/1000 年死亡人數=人口×死亡率/1000 圖12-8用水管圖表示了這種關係。
第12章加速系統思考 2077 年出生人數入口年死亡人數出本率死亡率圖12-8 曲線箭頭指明瞭量化關係,例如,從“出生率”和“人口”指向“年出生人數”的曲線箭頭,表明了“年出生人數”是由“出生率”和“人口”決定的,正如上面的數學公式描述的那樣。 比較系統迴圈圖和水管圖仔細觀察這兩幅圖,直到你確信它們是一致的為止。特別注意兩個反饋環和兩個懸擺。系統迴圈圖是如何刻畫S型連線,特別是O型連線的呢? 在水管圖中,我們用流量和曲線箭頭的組合來表示系統迴圈圖中的兩個反饋迴路:從“年出生人數”指向“人口”的流量,再透過曲線箭頭返回;“年死亡人數”和“人口”也類似這樣。兩個懸擺,“出生率”和“死亡率”,在兩幅圖中都很清楚。在系統迴圈圖中,由“年出生人數”指向“人口”的S型連線表明 “人口”會隨著“年出生人數”的增長而增長,因此,“年出生人數”是“人口” 的輸入流量。類似地,由“年死亡人數”指向 “人口”的O型連線表明,“人口” 會隨著“年出生人數”的增長而減少,反映在水管圖中,“年死亡人數”就是 “人口”的輸出流量。在系統迴圈圖中,由“出生率”指向“年出生人數”、由 “死亡率”指向“年死亡人數”的S型連線沒有在水管圖中精確描繪出來,但會借助相關的數學方程進行表達。 通常來說,所有水管圖中的輸入流量與相應的系統迴圈圖中的S型連線相對應;所有的輸出流量與O型連線相對應。除此以外的S型連線和O型連線,並不一定在水管圖中精確描繪,這需要根據上下文推斷,或者藉助於隱含的數學公式表達。 回顧單向連線在圖4-7和圖8-12中,我們曾介紹過兩個特別的系統迴圈圖。第一個是關於倒咖啡的過程,反映了“向杯中倒入咖啡”與“當前杯中咖啡水位”之間的聯系;另一個則描述了“出生人數”和“城市人口”之間的聯絡。這些聯絡的特別之處在於,它們只在一個方向上起作用。以人口出生為例,當“出生人數” 增加時,“城市人口”隨之增長,表明了這是一個S型連線;但當“出生人數” 減少時,“城市人口”還是會增長,只不過增長的速度變慢了而已,這就又不是S型連線了。
208 第四部分建立“未來實驗室” 在此,我用真實世界內在的單向性來解釋這些反常現象。向杯中倒入咖啡只可能增加杯中咖啡的量,決不會減少它;同樣,出生人口也只能使人口總量增加,而非減少。既然真實世界表現出了這種單向性,那麼相應的系統迴圈圖也必然是單向的。 這些反常現象能夠用存量和流量來做更為簡潔地說明。這兩個例子所涉及的都是存量的輸人流量。“向杯中倒入咖啡”是“當前杯中咖啡水位”這個存量的輸入流量,而每年的“出生人數”也是“城市人口”的輸入流量。更進一步, 這些流量只能在一個方向上起作用—-它們必定都是單向流量。作為輸入流量, 它們的角色是使相對應的存量增長,因此在系統迴圈圖中是S型連線。但是因為這些流量只能在一個方向上起作用,相應的系統迴圈圖也就只是單向連線。 同樣,輸出流量也會出現單向流量的情況,例如每年“死亡人數”。在圖 12-7的系統迴圈圖中,當每年“死亡人數”增加時,“人口” 數量會下降,兩者反方向變化表明了這是一個O型連線。而當“死亡人數”減少時,“人口”數量還是會下降,只不過下降的速度更慢了。顯然,這是一個單向的O型連線,因為“死亡人數”只能使人口數量下降,而非增加。體現在水管圖中,每年的 “死亡人數”就是“城市人口”的輸出流量;而在系統迴圈圖中,這是一個從 “死亡人數”指向“人口”的O型連線。因為年 “死亡人數”必定是一個單向流量,系統迴圈圖也必然只在一個方向上起作用。 以上陳述表明,早在系統迴圈圖中把流量和相應的存量連在一起時,這個流量是否是單向流量、是單向的S型連線還是O型連線就已經被決定了。如果是輸入流量,就是S型連線;反之則是O型連線。因為流重是單向的,系統迴圈圖也就只能在流量所規定的方向上起作用。順便說一下,並不是所有的流量都是單向的,比如圖13-19。 在圖12-8所示的水管圖中,“出生率”和“死亡率”這兩個存量並沒有與之相對應的流量。對於這種情況,在水管圖中通常約定用另一種圓圈符號表示,稱之為“轉換器”(converter)或“輔助變數”(auxiliary)。實際上,按照慣例,它表示不必加以區分的變數,既可能是存量,也可能是流量,見圖12-9。 年出生人數人口年死亡人數出生率死亡率圖12-9 儘管所有的變數要麼是存量,要麼是流量,二者必選其一,但水管圖實際上使用三種符號:方框代表存量,帶有龍頭的管道代表流量,圓圈代表輔助變數。 儘管存量或者流量可以被清晰地表達,而輔助變數則多少需要主觀判斷,但通常第12章加速系統思考 208 來說,在實際應用中,最好把明確認定為存量的個數降到最低,而把餘下的都用輔助變數表示。根據選定的存量,確定出需要明確認定為流量的變數,其他的也可以表示輔助變數。 一方面,水管圖必須與相應的系統迴圈圖結構一致,包括具有相同的反饋回路和所有相同的變數。但另一方面,除了形狀迥異之外,這兩者還有如下兩個重要的不同。 首先,在本章餘下部分我們將看到,水管圖通常比相應的系統迴圈圖具有更多的變數。造成這一點的原因在於,系統迴圈圖只需關注主要變數之間的因果作用關係,見圖12-10;但水管圖則必須清楚地定義每個連線的屬性,所以必然需要增加額外的變數,例如 “毛利率”(見圖12-11): 本月銷售額毛利率銷售利潤本月利潤圖12-10 圖12-11 這樣,“本月利潤”(毛利)就可以根據“本月銷售額” 和“毛利率”計算出來。 其次,水管圖對變數名的命名要求更為精確。舉例來說,在系統迴圈圖中, 表明人口增長只需標註“出生人數”,而在水管圖中則要指明“每年出生人數”, 以此強調流量的時間屬性。這同樣反映了對建模的精確性要求。 12.7 用ithink建模 ithink是專用的系統動力學建模軟體,它所能做的包括: •根據模型繪製水管圖。 •給變數定義輸入值。 • 定義變數之間的關係。 •得到圖表形式的輸出結果。 一旦完成對水管圖的繪製、指定輸入變數,並定義好變數間的聯絡,我們就可以對模型進行模擬,模擬系統的時間特性,並輸出結果。 在用ithink建模的過程中,最開始(同時也是最重要)的步驟並不需要軟體的參與,實際上這一步與計算機無關。它的主要任務是問題分析,進而繪製用來獲取系統關鍵因素的系統迴圈圖,也就是本書所強調的主要部分。只有在這些工作
210 第四部分建立 “未來實驗室” 徹底完成,並且系統迴圈圖也已被相關團隊確認之後,計算機建模才真正開始。 可見,系統迴圈圖是建立ithink模型的基礎。當然,正如我們已經提到的, 因為採用水管圖的形式,ithink模型通常需要更多的變數。 在ithink的主檢視中,你可以很輕鬆地繪製水管圖。軟體提供的各種主要符號 (方框、帶龍頭的管道、圓圈以及曲線箭頭)能夠被任意拖放。此外還有其他一些工具,其中特別值得一提的是“魔杖”,藉助這項功能你能夠“建立”新的符號。 圖形繪製完之後,接下來要做的就是給變數賦值以及定義變數之間的聯絡。 需要賦值的變數包括: • 所有存量的初始值 •所有輸人懸擺的值其他的變數則根據水管圖中所定義的變數間的聯絡,透過數學關係來表示。 ithink可以自動“識別”這些聯絡,因而能很方便地對其進行定義。 為了進一步表達清楚,下面以簡單的人口增長模型《圖12-12)為例進行說明。 年出生人數人口年死亡人數出生率死亡率圖12-12 “人口”是存量,因此需要給定一個初值:假定在2000年初時,某地區有 10 000人口。“出生率”是一個輸入懸擺,假定每年每1000人中會新出生15人; 同樣,“死亡率”也是一個輸人懸擺,假定每年每1000人中死亡12人。“年出生人數”和“年死亡人數”則根據以下方程計算得出: 年出生人數= 人口 ×年出生率/1000 年死亡人數 = 人口x年死亡率/1000 在ithink中,變數賦值以及定義代數式都在“隱藏”在水管圖後的“方程視圖”中進行。在人口這個例子中,方程檢視是這樣的: 人口(t) 人口(dt)+(出生死亡)*d -初始值人 =10 000 輸入流: O 出生人 *年出生率/1000 輸出流: 死亡=人口*年死亡率/1000 〇年出生率=15 〇年死亡率=12
第12章加速系統思考 2! 第一行看起來顯得有些複雜,但實際上卻非常簡單。它定義了“人口”是怎樣計算的:當前(t)的人口數等於之前某個時間(t-dt)的人口數,再加上這段時期d內輸人流量與輸出流量的差(年出生人數一年死亡人數)。例如,2005 年末的人H數等於2004年底(也就是2005年初)的人口數,加上2005年全年出生人數與死亡人數的差。 這些在會計師眼中看起來似曾相識:某科目的期末餘額等於該科目的期初餘額,加上核算期內的變動淨值。而在數學家眼中,這是一個有限微分方程。從更為直觀的角度看,這就像是5分鐘以後浴缸裡的水量,等於現在的水量加上5分鐘內流入的水,再減去5分鐘內流出去的水。 接下來的那行給出了“人口”的初始值(2000年初時有10000人),再往下的兩行定義了“年出生人數”和“年死亡人數”是如何計算的。最下面的兩行給出了 “出生率”(每年每千人中出生15人)和“死亡率”(每年每千人中死亡12人)的值。 模型根據以上這些演算法計算每年的人口數。在給定了2000年初的“人口”初始值的基礎上,模型首先計算2000年一年裡的流量,總共是150個新增人口和120 個死亡人口。因此,這一年裡的人口淨增長(“年出生人數”- “年死亡人數”) 就是30人。接著,根據第一行定義的方程,就可以計算出2000年末的“人口”, 也就是10000+(150-120)*1=10030。其他年份依此類推。 這些計算是自動完成的,只要輸人資料並定義相關的方程(這通常很容易), 模型就能自動執行,你也不必再去管那些方程了。我們只需要定義一組方程,而不用像在電子資料表中那樣去到處複製。程式能隨著時間的延伸自動複製這些方程。 現在讓我們感興趣的是,模型執行的結果會是什麼樣子?圖12-13展現了仿真時間為50年的結果。指數增長竟然演變成了線性! 12 000 人口 11 000 10000 2000 2025 年 2050 圖12-13 假定你是一位研究太平洋中某個島嶼上人口變化的人類學家。在建立了關於這個島嶼的模型之後,你或許會想著把它用到別處、別的島嶼,而這些島嶼的人口初始值、出生率和死亡率都不盡相同。那麼,有沒有什麼更簡便的方法去輸入這些基礎資料呢? 的確有這樣的方法,叫做“控制面板”,在這個例子中可能是如圖12-14所示
212 第四部分建立 “未來實驗室” 的那樣。這幅圖是直接從計算機屏上複製下來的,上面有一個圓盤形的旋鈕和兩個滑動杆。旋鈕上標明的是“人口初始值”,用來指定初始人口的數量,當前指向10 000;兩個滑動杆分別是“出生率”和“死亡率”,當前指向每年每千人出生15人和每年每千人死亡12人。 人口初始值 100002 出生率死亡率 100 200 10 200 圖12-14 這樣,當你在臨近的島嶼使用這個模型時,只需要調整旋鈕和滑動杆就可以了,如圖12-15所示。 人口初始值 10500 10000 16000 出生率死亡率 100 20.0 100 -20.0 圖12-15 當你調整旋鈕或者滑動杆時,有個小小的U形符號會出現在控制面板上,用來提示你原先的設定已經被改變。如果這時候單擊這個U形符號,會恢復原先的設定。假設臨近的島嶼“初始人口”稍高(10 500),但食物卻相對匱乏,“出生率”和“死亡率”分別是每千人每年13.5和12.5。調整了旋鈕和滑動杆之後,模型會顯示出兩個島嶼不同的執行結果(見圖12-16)。 圖12-16表明,如果這兩個島嶼的 “出生率”和“死亡率”都保持恆定,那麼大約25年之後,第一個島嶼的人口數量會超過第二個島嶼。 那麼,如果“出生率”和“死亡率”不隨時間保持恆定,會出現怎樣的情況第12章加速系統思考呢?假設第二個島嶼在接受了一個旨在提高居民營養水平的專案援助後,“出生率”開始提高,而“死亡率”則出現下降。 12000 人口 11 000 第二個島第一個島 10 000 2000 2025 2050 年圖12-16 這裡,第二個島嶼的“出生率”和“死亡率”不再隨時間保持恆定。我們可以直接用滑鼠在計算機螢幕上畫出這兩個變數的變化曲線,如圖12-17和圖12-18所示。 17.00 出生率布 / 千亼 15.00 13.00 2000 2005 年 2050 圖 12-17 13.00 出生 11.50 亼 10.50 2000 2005 年 2050 圖12-18
214 第四部分建立“未來實驗室” 模型執行時,根據這兩條曲線獲取每年的“出生率”和“死亡率”,然後進行計算。執行結果如圖12-19所示。 12 000 第二個島 (接受援助專案後) 人口 11 000 第二個島 (接受援助專案前) 第一個島 10 000 2000 2025 年 2050 圖12-19 這時候控制面板也已經不同了,原先的滑動杆被剛才輸人的曲線所代替,見圖12-20。 人口初始值 10000 10000 15000 出生事死匚系圖12-20 這些輸入的曲線表示了一種特殊的變數隨時間變化的方式。裡面惟一確定的資料是2000年的“出生率”和“死亡率”,其餘的部分都出自人的主觀推斷。當然, 不同的人會有不同的看法、不同的思維模式。也許有人會認為,隨著營養水平的提高,年輕婦女的健康水平也不斷提高,因此,“出生率”應該增長得更快一些。 也有人或許會認為,營養水平提高所帶來的最直接效果應該是“死亡率”的下降。 事實上,有誰能夠說清楚25年的時間裡會發生什麼呢?更不要說50年了。 這些觀點並無對錯之分,只是人們各自的取向不同罷了。因為能夠輕鬆地通過改變輸入曲線來具體定義不同的變數,ithink可以方便地檢驗基於不同的假設、
第12章加速系統思考 219 不同的觀點、不同的思維方式所產生的結果。也許這些觀點的不同對模型輸出結果的影響微乎其微;也許又是異常明顯——要想了解模型在不同條件下的特性, 最好的方法就是把它們都試一遍。正是這樣,系統動力學提供了一個非常強大的實驗室,在政策付諸實施前去檢驗它們的效果。正如同飛行員透過模擬飛行器進行訓練、會計師需要大量的靈敏度分析資料去進行投資估價一樣,明智的管理者們應該對他們的業務進行全面的系統動力學建模。 儘管這個例子非常簡單,與商業的聯絡亦不緊密,但它的確展現了系統動力學建模過程中所有主要的部分。當然,實際的模型要更為龐大,並且複雜得多, 但所遵循的基本原則也就是我們提到的這些,再次概括如下: 系統動力學建模所有的變數都可以劃分成存量—隨時間累積的變數,或者流量—增加或減少存量的值。 真實系統是由存量和流量相互連線而成的複雜網路,就像用水管圖所描述的那樣。 水管圖總是與相應的系統迴圈圖保持一致,但通常包括更多細節,同時也更為精確。 ithink建模軟體在操作上分三個層次。最主要的是圖形檢視,用來顯示所關注系統的水管圖。“隱藏”在圖形檢視之後的是方程檢視,用來定義模型執行所需的所有計算規則。圖形檢視“之上”的是控制面板,它提供了諸如旋鈕或滑動杆之類的控制元件,以方便定義或更改輸入變數的值。 另一個有用的功能是,我們可以用圖形檢視來定義變數,這樣就能夠任意去定義一些特殊的、隨時間改變的輸入變數。實際上,大多數真實系統都包含了大量的隨時間而改變的變數,但變化的規律卻很難用數學方程來描述。但不管怎樣,我們至少對這些規律心中有數——是上升還是下降?變化得快還是慢?趨於穩定還是繼續變化?這些圖形是主觀的,是思維模式的反映,而你對這些圖形所持的觀,點將支援你的決策或措施。系統動力學建模能讓你精確描述這些“模糊變數”,展現不同措施的效果。這有助於我們制定出明智的政策, 並就如何採取措施取得一致。
第13章業務增長建模