老實說,我一直覺得類似深度學習的純數值方法(那些個neural-symbolic其實也是意識流的掩耳盜鈴,完全沒有理論基礎,全靠"藝術創作")實在難以勝任邏輯推理,乙個可行的、有希望實現計算地進行邏輯推理的方案就是借助構造一種抽象代數結構(最後借助代數結構間的同態性來實現);最終目的是更好地進行邏輯推理,詳細地講:
現在我們可以將謂詞命題邏輯看做乙個環結構(l,
∨,∧,
→)(\mathcal,\lor,\land,\rightarrow)
(l,∨,∧
,→);
如何推理:引入其它的環
構造邏輯環僅僅完成了對命題的表徵,而最終的目的是推理,因此我們必須有賦值:
環之間的單同態
因此我們可以構造l,r
[x1⋯
xn],
e\mathcal,\mathbb[x_1 \cdots x_n],\mathcal
l,r[x1
⋯xn
],e
之間的單同態來實現謂詞邏輯命題的computation:
在這個圖中有ψ=φ
∘φ\psi = \phi \circ \varphi
ψ=φ∘
φ乙個漏洞
至此,這一切似乎已經很完美了,但是我發現這個邏輯環並不能滿足環的定義,試著帶入環的定義:
那麼問題來了:到底t,f
t,ft,
f哪個是乘法么元/加法零元,進而乘法逆元/加法逆元又是什麼(最終我們會發現怎麼都不能滿足);
現在我們換一種思路,我們已經知道謂詞邏輯代數(l,
∨,∧,
→)(\mathcal,\lor,\land,\rightarrow)
(l,∨,∧
,→)根本不是環,那我們嘗試去定義一種"取巧"的泛代數結構s
\mathcal
s,使其能夠和謂詞邏輯代數l
\mathcal
l和環代數r
\mathcal
r都能存在同態關係,定義如下:
我們現在來驗證以上代數結構即可以表徵命題邏輯代數、又符合環的定義;
對邏輯代數同態性的驗證
考慮謂詞邏輯代數(l,
∨,∧,
→)(\mathcal,\lor,\land,\rightarrow)
(l,∨,∧
,→)的蘊含公理集、等價公理集;驗證如下(視⊕
\oplus
⊕為∨\lor
∨,⊗\otimes
⊗為∧\land
∧,∣|
∣為→\rightarrow
→):容易驗證其它的定理比如de morgan律也滿足;
對環代數同態性的驗證
我們再證明泛代數(s,
⊕,⊗)
(\mathcal,\oplus,\otimes)
(s,⊕,⊗
)是乙個環;驗證如下:
並且易知乘法也滿**換律,因此泛代數(s,
⊕,⊗)
(\mathcal,\oplus,\otimes)
(s,⊕,⊗
)是乙個交換環;
我們已經證明泛代數(s,
⊕,⊗)
(\mathcal,\oplus,\otimes)
(s,⊕,⊗
)是乙個環且可以保持和命題邏輯代數的同態;以下是一些額外的說明:
以下是幾個隨想:
從 命題邏輯 到 一階邏輯 的過渡
數學就是不斷抽象的過程。我們來看個例子 所有的人都比 madao756 帥,你是人,所以你比我帥 在之前的 命題邏輯 中,我們只能把它抽成三個 簡單命題 符號化以後就變成 單從結果來看,其實損失了一些關鍵資訊 比如 所有人 於是數學家們想出了乙個更好的,更完美的方法,表示上述命題,我們把它叫做 一階...
約瑟夫環的一種簡單解法
首先還是描述一下約瑟夫環問題吧 n個人圍成乙個圈,從第乙個人開始數數 從1開始數 每數到3 當然這個數字可以隨便定 數到3的那個人就退出,接著,他的下乙個人又從1開始數.迴圈不斷,剩下的k個人就是勝利者 當人,這個人數也可以隨便定 接下來的 是利用乙個陣列模擬環,對該陣列進行相應的操作,如果數到3,...
邏輯回歸演算法的一種實現
邏輯回歸演算法的一種實現 1 import numpy as np import matplotlib.pyplot as plt 載入資料集,將資料集中兩列資料分別儲存到datamat和labelmat def loaddataset datamat labelmat fr open home j...