邏輯程式語的單一化
Unification:A
Multidisciplinary Survey
單一化的問題在電腦科學的許多相關領域中皆有出現,包括:定理證明 (theorem proving),邏輯程式 (logic programming),及自然語言處理 (natural language processing)。在此篇論文中許多與單一化有關的演算法與資料結構都被提出討論,然而在此我們將著重於與邏輯程式語言相關的部份做一簡單的介紹。
首先介紹何謂單一化問題:對於含有變數的兩個語辭(terms),是否有一適當的替代使得這兩個語辭變得相同?舉例來說:對於f(x, y) 及f(g(y, a), h(a))這兩個語辭來說,如果讓x以g(h(a),a)替代,y以h(a)替代,則這兩個語辭將變得相同,即:f(g(h(a), a), h(a))。
而在Prolog語言中何處會用到單一化呢?底下舉一個例子:
如何找到 X 同時滿足 likes(mary, X) 及 likes(john, X) 就需要單一化來解決。
因此單一化在邏輯程式語言這個領域來說就有幾個方向可以研究:
更詳細的內容可參閱參考文獻。
<¤W¤@¶> <¦^¥D¶> <¤U¤@¶>