2007年11月10日 星期六

Forward chaining


Forward chaining 用於專家系統前式鍊結法,撰寫一圖形介面讓使用者輸入任意 N 個資料庫單元符號和任意 M 個規則,並於圖形介面中印出出每一回合資料庫改變的狀態。
舉例來說:
If X croaks and eats flies - Then X is a frog
If X chirps and sings - Then X is a canary
If X is a frog - Then X is green
If X is a canary - Then X is yellow

database:
a
b
c
d
rule:
a->x
b->y
xy->z
y->w
w->q

output:
第 1 回合 ..
增加 x.
增加 y.
第 2 回合 ..
增加 z.
增加 w.
第 3 回合 ..
增加 q.
第 4 回合 ..

困難度:**
時間複雜度:O(n^2)
程式語言:C#
預估時間:2 小時

解題原理:
1. 設計一介面讓使用者可以輸入任意 N 個資料庫單元和 M 個規則
2. 每一回合走訪所有的規則,若推論存在,則加入推論結果到資料庫中
3. 重複步驟3,直到所有規則皆不會產生推論
4. 完成

程式下載

原碼下載