第五章 例題驗證


 5.1 系統特性:

 

 5.2 系統限制

 

 5.3 系統操作簡介:

 

系統資料表

 

 5.4 系統執行流程

-本研究的目的在於結合專家系統的經驗性知識與傳統程序性程式的解題方式,故系統的解題環境即分為兩個部份:一為專家系統;另一為以程序性外部程式執行細節的部份。其中專家系統的部份是以工作站中的人工智慧軟體環境下所完成的,其語法為LISP語言;而在程序性程式的部份是以FORTRAN及C語言所編寫。 -我們可以用黑板式專家系統依經驗所推論出來的箱型樑斷面結果,由現有的程序性程式做更詳細的分析,最後再把外部程式所計算出來的數據,放回黑板上,再由限制檢覆器判斷是否符合設計條件,是否需要做重設計的工作。在這個動作中,系統有下列的優點: - 1. 能夠在設計階段中,交互利用專家系統的邏輯推理解題方式與傳統程序性程式的精確運算功能。 2. 系統提供自選設計方法功能,使用者可依情形推翻系統之設計建議,使用不同的設計方式;例如使用黑板系統依經驗公式推論,或者使用外部程式。除了有黑板系統本身的機會式解題方式,亦表現了系統可隨時更改作業方式的彈性設計。 3. 在專家系統提供了初步的解答以後,亦可將專家系統提供的解答再利用程序性程式作更精確地分析。 所以,此系統的功能不但可以使用專家系統的經驗性知識做推論,甚至可以選擇不使用專家系統而選用執行外部程式,取得所需的值後再繼續恢復作業;或者由專家系統推論出初步的解答,再由此答案做其他計算或分析。如此不僅可以縮短計算時間,更可降低程式發展的成本。 本研究之知識庫系統是以在工作站中的人工智慧軟體環境下所完成的,其語法為LISP;而外部程式是以程序性語言,如FORTRAN及C所完成的。本系統基本的軟硬體設備有: 硬體部份: § HP工作站。 § 128Mb swap space。 § 64Mb ram。 軟體部份: § X-window作業環境。 § KEE version 4.1。 § Lucid Command Lisp version 4.0.2。 § Fortran program language。 § C program language。 -本研究對懸臂施工橋分析時所做的限制為: § 適用於平衡式懸臂施工法。 § 系統的程序性程式只計算分析懸臂式橋樑的步驟一(也就是懸臂階段,節塊從每個支承處以懸臂方式架設出去,並加拉了懸臂鋼腱)的部份,且不考慮工作載重。而對於步驟二(節塊在末端支承處架設完畢,並加拉了端跨連續鋼腱)及步驟三(節塊在跨徑中點處架設完畢,並加拉了跨徑中央連續鋼腱)的部份並未討論。 § 懸臂鋼腱配置為內定形態,在知識庫內只存放了一般常用的鋼腱型式,並無考慮較少使用到的型式。而且在鋼腱數目及擺設位置的配置上是假設以橋墩處開始,每向外增加一個節塊便在節塊兩邊各施拉一根鋼腱,一直至橋樑中點處為止。 -本系統的操作是經由內建之黑板介面來進行,如圖5-1所示。首先介紹鍵盤上的兩個特殊鍵,在系統出現超過一個以上的可執行動作時,可按下鍵盤上的英文字母"O"鍵(代表覆蓋overwrite),此時系統便會自動浮現可執行動作的選擇表,使用者便可選擇其所欲執行的動作。當使用者想在系統完成解題前先行結束系統運作,此時使用者可按下英文字母"S"鍵(代表停止stop),系統便會停止解題並在控制黑板狀態中顯示停止系統運作的訊息。以下就對黑板介面的各個部份加以說明。 § 系統開始(RESTART):經由滑鼠按下此部份(灰色區域內)後,系統便會將黑板上舊有的設計解答、計畫與目標移走,重新開始解題程序。 § 繼續執行(CONTINUE):當使用者按下英文字母"S"鍵後(即系統停止解題),如果想再繼續解題,便可按下此鍵重回原來的設計過程。 § 顯示目前設計值(DISPLAY):按下此鍵後,系統便會將目前儲存於黑板中的設計值於KEE內建之輸出視窗(output window)列出,使用者並可對任何的設計解答要求解釋其獲得的原因。 § 週期(Cycle):顯示黑板系統目前的解題週期數。 § 控制黑板狀態(Control Status):顯示控制黑板的目前狀態。 § 計畫(Plans):顯示目前控制黑板中可進行的計畫,計畫前的數字代表計畫的層數,後面中括弧的數字代表計畫的權重(weighting)。 § 目標(Goals):顯示目前控制黑板中可進行的目標,數字部份與計畫相同,代表目標之層數與權重。 § 非案例式設計動作(Design-Independent Excutable Actions):顯示經由目前黑板狀態可執行的動作(即經過誘發、例證、以及確認步驟後可執行的KSAR),而在每個可執行動作後皆有其相對的評分,評分的高低是由一連串的評分計算所得、評分愈高的動作表示其被系統所視的重要性愈高。 § 最高評分動作(Highest Rated Action):顯示目前在黑板中,評分最高的動作。 § 執行歷程(Execution History):顯示過去黑板所執行過的動作,每個動作前的數字代表此動作被執行的週期。 使用者在使用本系統時,首先按下重新開始鍵,系統便會將黑板狀態完全更新,並移走所有舊有的資料,以便重新進行另一次設計及運算過程。因而黑板也會陸續出現目前黑板所採用的計畫與目標並列出黑板上可執行的動作,而在KEE的原稿視窗(KEE typescript window)中會列出系統所建議的執行動作(此動作為評分最高之KSAR)。使用者此時便可按下鍵盤上的空白鍵來確認執行,或以"O"鍵(overwrite)推翻系統的建議,系統便會浮現出可執行動作的選擇表,使用者便可選擇其所欲執行的動作。當使用者想在系統完成解題前先行結束系統運作,此時使用者可按下英文字母"S"鍵,系統便會停止解題並在控制黑板狀態中顯示停止系統運作(STOPPED)的訊息。依此解題過程執行一系列的動作直至設計完成。
本系統的解題流程是在每一個解題循環過程中,系統根據黑板上的狀況以及知識庫中的知識源,機動性地執行最適合解決目前問題的KSAR,是使用專家系統依經驗知識推理呢?或是使用傳統程式做詳細的分析呢?此時系統便表現出機會式推理的風格。本系統的解題流程,如圖5-2所示。


 

 5.5 設計實例

例題的輸入條件如下: 跨距長 300 ft 橋樑寬 60 ft 混凝土強度 5500 psi 首先按下RESTART鍵,系統便會重新開始新的設計,使用者在每個設計週期中,皆可選擇系統建議執行動作或以"O"鍵選擇自己所要的執行動作。其中系統建議在設計縱斷面、橫斷面形式、節塊數與節塊長及最後的檢覆工作皆使用外部程式;或使用者選擇自己所要的執行動作,便是使用專家的經驗性知識。以下將本例題各個設計週期所執行的設計動作列於表5-1中,再於表後分別敘述各個執行動作所代表的意義。

執 行 動 作

-user.select.system.plans
-problem.input
-expand.goal.1.2.into.cantilever.bridge.design.subplan.1
-user.select.construction.method
-system.generate.longitudinal.profile
-expand.goal.2.3.into.foreign.program
-expand.goal.2.3.into.cantilever.bridge.design.subplan.2
-use.18.as.pier.span.depth.ratio
-use.40.as.midspan.depth.ratio
-use.36.inches.as.pier.bottom.slab.thickness
-use.12.inches.as.midspan.bottom.slab.thickness
-run.section.type.c.program
-read.section.type.c.out.data
-run.segment.number.length.program
-read.segment.number.length.out.data
-system.generate.segments.action
-expand.goal.2.4.into.cantilever.bridge.design.subplan.3
-system.select.segment.to.be.checked
-calculate.segmental.mapping.variables(1、8、15)
-calculate.segmental.section.properties(1、8、15)
-system.evaluate.required.tendon.force
-calculate.segmental.tendon.force.and.moment(1、8、15)
-generate.segmental.constraints(1、8、15)
-user.specify.major.constraints
-check.constraints(bottom、top)stress(1、8、15)
-check.constraint.experiments
-run.variable.d.seg.property.program
-create.segment.output.file.obj
-read.segment.properties.data (1~15)
-generate.moment.constraints (1~15)
-user.specify.major.constraints
-check.constraint(bottom、top)-moment-(1~15)
-end.design
-例題之各週期的執行動作
 

第一週期 設計問題:user.select.system.plan由使用者選擇設計的計劃。而cantilever.bridge.design.plan這個設計計畫將會出現在黑板上,表示目前的設計問題為「懸臂施工橋設計計畫」,此計畫為本設計問題的主計畫(系統的第一層計畫),系統會以目前在這個計畫中所啟用的設計目標來對每個可執行的KSAR進行評分。這個設計計畫包含了六個設計目標,並且依照所填入的目標順序執行: 1. 「問題輸入」(input.variables) 2. 「懸臂施工橋設計」(cantilever.bridge.design) 3. 「檢核主要限制條件」(check.major.constraints) 4. 「啟用先前放鬆的限制條件」(activate.pre-relaxed.constraints) 5. 「執行詳細的外部分析程式」(run.detailed.analysis) 6. 「結束設計程序」(end.design.session)。 第二週期 問題輸入:本週期利用懸臂施工橋設計的第一個目標-「問題輸入」,對各個可執行的KSAR作評分,而目前最高評分的動作為problem.input(問題輸入),執行此動作後所有隸屬使用者詢問這個設計變數類別的實例,均會在KEE的原稿視窗中出現以便詢問使用者輸入其值,本例之輸入值如前所述,當所有的輸入完畢後,此目標便滿足而自動消失。 第三週期 目標擴展:因第一層計畫的第二個設計目標-「懸臂施工橋設計」,這個設計目標與「懸臂施工橋設計第一子計畫」(cantilever.bridge.design.subplan.1)的意向相同,故內建的通用知識源expand.goal會將「懸臂施工橋設計」這個設計目標,擴展成「懸臂施工橋設計第一子計畫」。此計畫便成了第二層的計畫(詳見圖5-3),這個計畫代表了知識庫中懸臂施工橋的設計程序,其目標擴展圖詳見圖5-3。此計畫包含四個設計目標: 1. 「選擇施工方法」(choose.construction.method) 2. 「選擇橋樑縱斷面」(choose.longitudial.profile) 3. 「設計節塊」(design.segments) 4. 「計算節塊斷面性質」(generate.segments)。 第四週期 使用者選擇施工方法:因上一週其已擴展成「懸臂施工橋設計第一子計畫」,所以執行其第一個目標-「選擇施工方法」(見圖5-3),對可執行的KSAR進行評分,其中『使用者選擇施工方法』這個動作評分最高。執行此動作後,使用者可從浮現的表格中選擇所欲使用的施工方法。本例中,選擇場鑄節塊(cast-in-place)為施工方法。 第五週期 系統自動選取縱斷面:執行至此週期時,原本可以選擇使用外部程式計算縱斷面型式,亦可由系統依經驗知識選擇斷面,但為了測試本協力式系統交互使用的解題方式,故在此使用系統的經驗性知識。本週期利用懸臂施工法設計第一子計劃的第二個目標-「選擇縱斷面」,對各個可執行的KSAR評分。而得分最高的執行動作為由『system.generate.longitudinal.profile』所產生之KSAR(如圖5-4所示)。執行此動作後,系統由輸入值或目前所產生的設計值利用知識庫中的知識加以推論出橋樑之縱斷面。本例中,程式執行的結果為變深度(variable-depth)之縱斷面。 圖 5-3 例題之目標擴展示意圖 第六週期 目標擴展:目前黑板執行目標為第一子計畫(亦為第二層計劃)的第三個設計目標-「設計節塊」,這個設計目標與「外部程式計劃」(foreign.program.plan.)的意向相同,故內建的通用知識源expand.goal會將「節塊設計」這個設計目標,擴展成「外部程式計畫」。此計畫便成了第三層的計畫(見圖5-3),這個計畫代表了執行外部程式的知識與程序。此計畫包含二個設計目標: 1. 「計算橫斷面形式」(calculate.section) 2. 「計算節塊數目」(calculate.segment.number)。 第七週期 目標擴展:目前黑板執行目標為第一子計畫(亦為第二層計劃)的第三個設計目標-「設計節塊」,這個設計目標與「懸臂施工法設計第二子計劃」(cantilever.bridge.design.subplan.2)的意向亦相同,故內建的通用知識源expand.goal會將「節塊設計」這個設計目標,擴展成「懸臂施工法設計第二子計劃」。此計畫便成了另一個第三層的計畫(見圖5-3),此計劃包含了四個設計目標(如下列),同一設計目標列同時被視為目前黑板上可執行的設計目標,如圖5-3列出目標後面所示的數字大小表示權重及其重要性,此計畫包含四個設計目標: 1. 「選擇節塊斷面」(choose.section.section)、「選擇橋樑跨深比」(choose.span.depth.ratio)、「選擇節塊底板厚度」(choose.bottom.slab.thickness)。 2. 「選擇節塊腹板厚度」(choose.web.thickness)。 3. 「選擇節塊頂板厚度」(choose.top.slab.thickness)。 4. 「選擇節塊數目」(choose.segment.number)。 第八週期 用18作為橋墩處之跨深比:本週期中,經由目前黑板上的設計目標「選擇橋樑跨深比」評分後,得分最高的設計動作為由system.generate.variable.depthspan.depth.ratio所產生的KSAR,這個知識源會產生兩個KSAR。本例中,背景變數分別束制成18和40(分別代表目前推論橋墩處與橋樑中點處的最佳跨深比),KSAR的名稱就分別為『用18作為橋墩處之跨深比』與『用40作為跨度中點處之跨深比』。執行此動作,代表系統推論橋墩處節塊之跨深比定為18是最合適的值。 圖 5-4 執行橫斷面外部程式黑板示意圖 圖 5-5 讀取縱斷面資料之黑板示意圖 第九週期 用40作為跨度中點處之跨深比:與前一動作是相同知識源所產生之KSAR。執行此動作,代表系統推論出跨徑中點處節塊之跨深比定在40是最合適的值。 第十週期 使用36英吋作為橋墩處之底板厚度:本週期中,經由目前黑板上的設計目標「選取節塊底板厚度」評分後,得分最高的設計動作為由『system.generate.bottom.slab.thickness』所產生的KSAR,這個知識源是以所收集案例的設計值歸納出的經驗公式所寫成,它會因背景變數被束制成兩組,而產生兩個KSAR。本例中,背景變數分別束制成36和12(分別代表目前推論橋墩處與橋樑中點處最佳的底板厚度值),KSAR為『使用36英吋作為橋墩處之底板厚度』與『使用12英吋作為跨度中點處之底板厚度』。執行此動作,代表系統推論橋墩處節塊之底板厚度設計值定為36英吋是最合適的值。 第十一週期 使用12英吋作為跨度中點處之底板厚度:與前一動作是相同知識源所產生之KSAR。執行此動作,代表系統推論跨徑中點處,節塊之底板厚度設計值定為12英吋是最合適的值。 第十二週期 執行設計橫斷面的外部程式:執行至本週期,可以有上述的兩種解題方式(系統經驗知識與外部執行程式)一起出現在黑板上,經由目前黑板上的設計目標評分後,得分最高的執行動作為由『run.section.type.c.program』所產生之KSAR。執行此動作後,系統由目前所產生的設計值寫成C程式執行所需的參數,並執行此程式,計算得出橋樑之橫斷面形式。本例中,程式執行的結果為三孔型(three-cell)之橫斷面形式、底板寬為288英吋、腹板間距為276英吋、頂板厚度為10英吋(見3.4.2節所示)。 第十三週期 讀取橫斷面的外部程式資料:本週期中,經由目前黑板上的設計目標評分後,得分最高的執行動作為由『read.section.type.c.out.data』所產生之KSAR。執行此動作後,橫斷面型式的外部程式計算所得之設計值,由系統自輸出檔依指定位置(position)讀回,並放置於相關的槽(slot)內。例如本例中,輸出檔的(1 1)、(3 1)、(5 1)、(7 1)位置讀取回來並分別放置於bridge-section、bottom-slab-width、web-spacing、top-slab-thickness槽內,各別的值為"three-cell"、"288"、"276"、"10" (見3.4.3節所述)。 第十四週期 執行設計節塊數目與長度的外部程式:本週期中,經由目前黑板上的設計目標評分後,得分最高的執行動作為由『run.segment.number.length.program』所產生之KSAR。執行此動作後,系統由使用者輸入的跨徑長寫成程式執行所需輸入檔的資料,並執行此程式,計算得出橋樑之節塊數目與節塊長度。本例中,程式執行的結果為30個節塊數,每個節塊長10英呎(見3.4.3節所述)。 第十五週期 讀取節塊數與長度的外部程式資料:本週期中,經由目前黑板上的設計目標評分後,得分最高的執行動作為由『read.segment.number.length.out.data』所產生之KSAR。執行此動作後,節塊數目與長度的外部程式計算所得之設計值,由系統自輸出檔依指定位置(position)讀回,並放置於相關的槽(slot)內。例如本例中,輸出檔的(1 1)、(1 5)位置讀取回來並分別放置於segment-number及segment-length槽內,值分別為"30"、"10"。 第十六週期 自動產生節塊性質:本週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『system.generate.segments』所產生的KSAR。執行此動作代表,系統自動建立節塊性質於系統已建立之斷面變數下,並由設計的節塊數目多寡建立相同組數的實例,斷面性質後的數字表示節塊的次序(1表示橋墩處的節塊,依此類推,最後一個數字表跨徑中點的節塊。本例中,橋墩處為1,跨徑中點為15)。本例中,每個系統所建之設計變數子類別下,皆會產生15組的實例。 第十七週期 目標擴展:當第一子計畫的第三個設計目標-「設計節塊」完成後,系統便進入了設計第一子計畫的第四個設計目標-「計算節塊斷面性質」,並且擴展成「懸臂施工橋設計第三子計畫」(cantilever.bridge.design.subplan.3),因其意向相同,此計畫便是目前的第三層計畫(詳見圖5-3),包含兩個設計目標: 1. 「寫入節塊斷面變數」(assert.section.variables) 2. 「寫入預力量與預力鋼鍵」(assert.tendon.force.and.moment)。 第十八週期 自動選取檢覈應力之節塊:本週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『system.select.segment.to.be.checked』所產生的KSAR。執行此動作後,系統會選取橋墩處、跨徑中點處與兩者之間的三個節塊作為檢覈應力之節塊。使用者也可推翻系統建議,選擇『使用者選擇檢覈應力之節塊』這個動作,此動作可讓使用者自己選擇要檢覈應力的節塊號碼。 第十九至二十一週期 此三週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『generate.data.for.mapping.variable』所產生的KSAR。本例中,背景變數分別變成1、8和15(分別代表目前要檢覈應力的節塊號碼),KSAR分別為計算此三節塊的映射變數。執行此三動作,將所選取節塊之映射變數的值填入所對應節塊的映射變數實例中。 第二十二至二十四週期 此三週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『generate.segmental.section. properties.for.three-cell』所產生的KSAR。本例中,背景變數分別變成1、8和15(分別代表目前要檢覈應力的節塊號碼),KSAR分別為計算此三節塊的函數變數。執行此三動作,將所選取節塊之函數變數的值填入所對應節塊的函數變數實例中。 第二十五週期 預估鋼鍵量:本週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『system.evaluate.required.tendon.force』所產生的KSAR。執行此動作後,系統會從案例中所歸納的經驗知識,推論出橋樑在懸臂階段中所須之鋼腱用量,並在知識庫中搜尋最適合得鋼腱型態與所須之鋼腱數目。 第二十六至二十八週期 計算所選取節塊之預力量與預力彎矩:此三週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『generate.tendon.force.and.moment』所產生的KSAR。本例中,背景變數分別變成1、8和15(分別代表目前要檢覈應力的節塊號碼),KSAR分別為計算此三節塊的預力量與預力彎矩。執行此三動作,系統會依先前所推論出橋樑所須之鋼鍵用量,將所選取節塊之預力量與預力彎矩所代表的函數變數的值,填入所對應節塊的函數變數實例中。 第二十九至三十一週期 建立選取節塊之檢覈限制條件:當限制條件中,設計變數所須之公式皆已填入妥當,便可建立相關之限制條件。在此三週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為『system.generate.constraint』所產生的KSAR。本例中,背景變數分別變成1、8和15(分別代表目前要檢覈應力的節塊號碼),KSAR分別為建立此三節塊的限制條件。執行此動作後,系統會依所選取之節塊,建立每個節塊之檢覈限制條件(每個節塊包括了頂部預力與底部預力的兩個限制條件)。 第三十二週期 使用者選擇主要限制條件:執行此動作後系統會自動浮現包含各個限制條件的表格供使用者選取,本例中選取所有的限制條件作為主要的限制條件,因此黑板上便會因系統內建之"檢覈限制條件"這個知識源產生七個檢覈限制條件之設計目標(本例中有七個限制條件)。 第三十三至三十八週期 檢覈限制條件:分別執行各檢覈限制條件動作,如果限制條件滿足將會進行下一個限制條件的檢核,倘若有限制條件不滿足則系統會可能開始重新設計程序。於本例中,所有的限制條件皆會滿足。 第三十九週期 檢覈經驗限制條件:系統因原有被移的設計值已經有了新的設計值,便可以再次檢覈限制條件,故系統便執行檢覈經驗限制條件是否能被滿足。如果限制條件能被滿足則系統繼續執行後續動作;但若限制條件不能被滿足則系統則會再次回溯限可能影響限制條件的設計值,以便重新設計。執行完畢後,可選擇『執行變深度節塊性質程式』以程序性程式做更詳細的檢覆或者選擇『結束設計』。本例題選擇繼續執行外部的程序性程式做詳細的設計及檢覆動作,藉以驗證由專家系統依經驗知識推論出的建議解答,是否可以接受。 第四十週期 執行變深度節塊分析程式:此時的設計動作由『run.variable.d.seg.property.program』所產生的KSAR來進行,此時會啟動外部之FORTRAN程式以計算橋樑各個節塊的性質,如:面積、慣性矩、斷面模數、節塊頂部及底部纖維應力與彎矩、AASHTO規範的頂部及底部的應力與彎矩等,同時根據分析的結果進行規範的查驗。 第四十一週期 建立外部程式輸出檔案物件:此時的設計動作由『create.segment.output.file.obj』所產生的KSAR來進行。執行此一動作後,系統自動建立節塊性質於系統內建之外部程式輸出檔案物件下,並依設計的節塊數目多寡建立相同組數的實例,節塊性質後的數字表示節塊的次序,1表示橋墩處的節塊,依此類推,最後一個數字表跨徑中點的節塊。本例中,系統所建之節塊資料類別下,會產生15組的實例。橋墩處為1,跨徑中點處為15,如圖5-6所示。 圖 5-6 建立節塊性質物件數狀圖 第四十二至五十六週期 讀取節塊斷面性質的資料:此十五週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為由『read.segment.properties.data』所產生的KSAR所執行,如圖5-7所示。。KSAR分別讀取此十五節塊的節塊資料(如頂、底部纖維彎矩及是否符合規範的規定)。執行此十五動作,系統會依先前所寫成的方法(method)與條件,先建立相對應的節塊性質實例,並讀取外部程式的輸出檔中特定位置的計算值,並填入所對應節塊的函數變數實例中。 圖 5-7 讀取斷面資料之黑板示意圖 第五十七至七十一週期 建立選取節塊之檢覈限制條件:當讀取完外部程式的輸出檔資料後,程式詳細的分析結果都已傳回黑板系統中,接著便可建立相關之限制條件。在此十五週期中,經由目前黑板上的設計目標評分後,得分最高的設計動作為『generate.moment.constraint』所產生的KSAR。本例中,知識源的背景變數被分別束制成1至15(分別代表目前要檢覈應力的節塊號碼),15個KSAR由此產生(詳見3.4.2節),每個KSAR負責建立一個節塊的兩個限制條件。在此之前已由外部程式檢驗了每個節塊的頂部纖維彎矩與底部纖維彎矩的兩個限制條件,現在只是將此結果傳回黑板系統中,並得出了符合規範:"OK!"或不符合規範:"FALSE!"的結論。 第七十二週期 使用者選擇主要限制條件:此執行動作與第三十二週期的解題動作是相同的,差異處在於第三十二週期是由系統自動選擇節塊限制條件依經驗性知識檢覆;而此處為每個節塊依外部程式詳細檢驗。執行此動作後系統會自動浮現包含各個限制條件的表格供使用者選取,本例中選取所有的限制條件作為主要的限制條件,本例中因有十五個節塊,而每個節塊包括了有頂部及底部彎矩,故有三十個限制條件。這個知識源產生三十個檢覈限制條件之設計目標。 第七十三至一百零二週期 檢覈限制條件:分別執行各檢覈限制條件動作,如果限制條件滿足將會進行下一個限制條件的檢核,倘若有限制條件不滿足則系統會可能開始重新設計程序。於本例中,所有的限制條件皆會滿足。 第一百零三週期 設計結束:當滿足了所有的限制條件後,表示設計斷面之應力值在容許的範圍內,故結束此設計程序並列出此次設計所得之設計值。 例題中(由系統依經驗知識推論及外部程式計算所得出的輸出畫面詳見圖5-8、圖5-9、圖5-10所示)。可見到整個設計過程中保有的設計的協力式與機會式的推理方式,並在例題中驗證了下列系統特有的性質: § 協力式與機會式的解題:因為解題的狀態已被分解成好幾個副工作,而每個副工作(知識源)皆經由競爭解決目前黑板的問題,此即表現了機會式的解題;而在第五週期及第八的解題週期中,分別利用到經驗性推論與連結外部程式的解題技巧,亦表現了協力式的解題方式。當然,亦可依情況由使用者自己選擇執行的動作。 § 推論機制與知識庫的分離:在例題中可明顯地看出系統的機會式推理機制與解題知識是分離的。其中,知識源譯釋、KSAR評分排程、黑板更新、目標擴展等屬於推論機制;而控制物件、解題物件、行為物件及外部程式物件則屬於解題知識。 § 控制知識與設計知識的分離:控制知識是以明確的知識表示法表示於目標與計劃物件之中;設計知識則表現於知識庫之中。利用設計計劃與設計目標來控制整個設計的流程,如此可將領域專家解題時的控制知識融入其中來模擬人類專家的思維模式。 § 數值運算與經驗性知識的分離:以控制知識來控制數值運算與經驗性知識的分離。例如本例題的懸臂橋樑設計第二子計劃「cantilever.bridge.design.subplan.2」代表了經驗性知識;而外部程式計劃「foreign.program.plan」代表了數值運算知識。如此使得系統更明確,也更容易維護與擴充。 § 設計計畫與設計目標的多元性:不僅在設計計畫中可包含單獨的設計目標,也可囊括設計目標列,並可利用目標擴展的特性來模擬設計程序的多元性。 § 動態的物件產生方式:在系統中如節塊數目已經確定,系統可立即產生與節塊數目相同組數的設計變數。 圖 5-8 例題之輸出畫面一 圖 5-9 例題之輸出畫面二 圖 5-10 例題之輸出畫面三

  
回主目錄  第四章  第六章