向量邏輯

**向量邏輯**是一種建基於矩陣代數的邏輯模型。它假設邏輯真值可成為一種向量，而一元和二元謂詞演算皆以矩陣的算法進行。

## 歷史
向量邏輯是人們在研究人工神經網絡模型所涉及的多維矩陣及向量時受到啟發而發展出來的理論系統。它把邏輯代數以矩陣和向量的形式表示。這種邏輯形式被用來發展一種以複數進行運算的模糊邏輯。另外，以矩陣和向量作為媒介的邏輯運算亦應用於量子物理、計算機科學及光學。皮爾士及柯比是最早嘗試使用線性代數來演繹邏輯運算的數學家之一。印度生物物理學家G.N.拉馬錢德蘭曾經提出一種以矩陣及向量來演繹一種古典耆那教邏輯運算。該邏輯系統要求每個命題各自有獨立的證明，而不能以二值邏輯的互補性質進行論證。

## 概觀
傳統的二值邏輯僅使用少量數學函數演算一個或兩個邏輯變量。在古典邏輯，值 1 被賦為「真」，而值 0 則被賦為「假」。相對地，一個二值的向量邏輯需要為「真」、「假」二值賦予兩個由實數組成的 *q-*維單位列向量 *s* 及* n*，亦即：
: t\mapsto s&nbsp;&nbsp;&nbsp; and &nbsp;&nbsp;&nbsp;f\mapsto n
(其中  q \geq 2 為一任意自然數，而「單位」的意思是兩個向量的範數為 1。又，*s *、*n* 二者通常互相正交)。由這種關係可衍生出一個內含各邏輯值的向量空間*V*2&nbsp;=&nbsp;{*s*,*n*}。使用這些邏輯值推演的邏輯運算子則為矩陣運算子。

向量邏輯的運算建基於以上 *q-*維列向量的數量積u^Tv=\langle u,v\rangle。由於 *s* 及 *n* 相互正交，假如 u = v，則\langle u,v\rangle=1 ，而如果 u \ne v，則 \langle u,v\rangle=0 。

### 一元謂詞運算子
向量邏輯的一元謂詞運算子是運用Mon: V_2 \to V_2的成果，而相關的矩陣有 *q* 行及 *q* 列。在上面提及的向量邏輯系統中，兩個基本的一元謂詞運算子分別是「恆等」及「否定」： 
* **恆等**：邏輯恆等函數 ID(p) 可以矩陣 I=ss^T + nn^T 表達。該矩陣的操作方式為：*Ip*&nbsp;=&nbsp;*p*, *p*&nbsp;∈&nbsp;*V*2；由於 s 對於 n 而言是正交的，我們可以得到：Is=ss^Ts+nn^Ts=s\langle s,s\rangle+n\langle n,s\rangle=s，反之 In=n.

* **否定**：邏輯否定函數 ¬p 可以矩陣 N=ns^T + sn^T 表示。由此推論，*Ns*&nbsp;=&nbsp;*n* 且 *Nn*&nbsp;=&nbsp;*s*。由於否定函數有對合性，即 ¬(¬*p*) 等於 *p *（對應於 *N*2&nbsp;=&nbsp;*I*）。Is 應予注意的是，以上的邏輯恆等矩陣**並非**矩陣代數中的單位矩陣。

### 二元謂詞運算子
每個向量邏輯系統都會有16個二元謂詞運算子，對應於Dyad: V_2 \otimes V_2\to V_2類型的函數；這些二元謂詞運算矩陣有 *q* 行及 *q*2 列，並且根據克羅內克積的其中兩種特性而演算出來：

* **混合律**：如果 A、B、C、D 是四個可以構成 AC 及 BD 兩個乘積的矩陣，則
:: (A \otimes B)(C \otimes D) = AC \otimes BD 
* **轉置分配律**：涉及轉置的乘積可以分配：
::(A\otimes B)^T = A^T \otimes B^T.

根據以上特性，可以演算出以下向量邏輯運算子：
* **[[逻辑与|與]]**：在向量邏輯中，兩個邏輯值的「與」 (p∧q) 是由一個應用於兩個向量值的矩陣 C(u\otimes v) 表示。此矩陣透過以下算式實現古典邏輯與的真值表：
::C=s(s\otimes s)^T + n(s\otimes n)^T + n(n\otimes s)^T + n(n\otimes n)^T 

此矩陣應當滿足
:: C(s\otimes s)=s, 及
:: C(s\otimes n)=C(n\otimes s)=C(n\otimes n)=n. 

* 或：兩個邏輯值的「或」 (p∨q) 由以下矩陣運算：
:: D=s(s\otimes s)^T+s(s\otimes n)^T+s(n\otimes s)^T+n(n\otimes n)^T,，而且
:: D(s\otimes s)=D(s\otimes n)=D(n\otimes s)=s 及
:: D(n\otimes n)=n. 
* **[[蕴涵|蘊涵]]**：古典邏輯的「蘊涵」對應於邏輯式 p&nbsp;→&nbsp;q&nbsp;≡&nbsp;¬p&nbsp;∨&nbsp;q。向量邏輯亦定義相對應的矩陣去表示該關係：L=D(N\otimes I)。較直接的表達式則為
:: L=s(s\otimes s)^T+n(s\otimes n)^T+s(n\otimes s)^T+n(n\otimes n)^T,
:: 該矩陣應當滿足
:: L(s\otimes s)=L(n\otimes s)=L(n\otimes n)=s 及
:: L(s\otimes n)=n.

* **[[逻辑等价|等價值]]與[[逻辑异或|異或]]**。在向量邏輯中，等價值表達式 p≡q 由以下矩陣表示：
:: E=s(s\otimes s)^T+n(s\otimes n)^T+n(n\otimes s)^T+s(n\otimes n)^T而且

:: E(s\otimes s)=E(n\otimes n)=s 及

:: E(s\otimes n)=E(n\otimes s)=n. 

:: 至於異或則是等價值的否定：¬(p≡q)，因此有關矩陣可由 X=NE 給出，亦即：

:: X=n(s\otimes s)^T+s(s\otimes n)^T+s(n\otimes s)^T+n(n\otimes n)^T,

:: 而且 X(s\otimes s)=X(n\otimes n)=n 及

:: X(s\otimes n)=X(n\otimes s)=s. 
* **[[谢费尔竖线|與非]]及[[逻辑或非|或非]]**
矩陣 *S* 及 *P* 分別對應古典邏輯的謝費爾（即「與非」）及皮爾士（即「或非」）操作：
:: S=NC 
:: P=ND 

### 德摩根定律
古典邏輯中的「與」、「或」兩個操作皆滿足德摩根定律，即 p∧q≡¬(¬p∨¬q) 以及其對偶 p∨q≡¬(¬p∧¬q))。向量邏輯的相關操作亦可被證實為滿足德摩根定律：
:: C(u\otimes v)=ND(Nu\otimes Nv)，其中 *u* 及 *v*  皆為邏輯向量。
基於克羅內克積的特性，以下的因式分解成立：
:: C(u\otimes v)=ND(N\otimes N)(u\otimes v). 
由此可以證明，在二維的向量邏輯中，德摩根定律不僅與邏輯操作有關，亦適用於有關的邏輯運算子：
:: C=ND(N\otimes N) 

### 對位定律
在古典命題運算中，對位定律 *p*&nbsp;→&nbsp;*q*&nbsp;≡&nbsp;¬*q*&nbsp;→&nbsp;¬*p* 是由於有關等價值算式對於任何真值 *p*、*q *皆成立而獲得證明。但是，在向量邏輯範疇，對位定律是由一系列的等價值及克羅內克積運算而得出：
::  D(NNv\otimes Nu)=D(N\otimes I)(Nv\otimes Nu)=L(Nv\otimes Nu)
這是建基於向量邏輯的「或」運算矩陣 *D* 滿足交換律的特性。

## 二維多值邏輯
多值邏輯的學說體系由多位研究者協力發展（尤其是波蘭數學家揚·武卡謝維奇）。它容許涉及不確定值的邏輯運算。在二值向量邏輯範疇中，不確定值可由 *s* 、*n* 兩個基本真值以概率比重混合而成。

假設存在一個不確定值 f=\epsilon s + \delta n（其中 \epsilon, \delta \in [0,1], \epsilon + \delta = 1）。向量邏輯的多值性可以由對這種不確定值的運算獲得證明。

### 向量輸出值的純量投影
多值向量邏輯的輸出值可以被投影為純量函數，並且能衍生一系列與賴欣巴哈式多值邏輯相似的概率邏輯。當有兩個已知的邏輯向量 u=\alpha s + \beta n 、 v=\alpha's + \beta'n ，以及一個二元邏輯運算矩陣 G，則通過加入特定向量&nbsp;*s*，可以得出一個純量概率邏輯算式：
:: Val(純量)  = s^TG(向量)
根據以上投影式可得出以下主要結果：
:: NOT(\alpha)=s^TNu=1-\alpha 
:: OR(\alpha,\alpha')=s^TD(u\otimes v)=\alpha + \alpha' - \alpha\alpha' 
:: AND(\alpha,\alpha')=s^TC(u\otimes v)=\alpha\alpha' 
:: IMPL(\alpha,\alpha')=s^TL(u\otimes v)=1-\alpha(1-\alpha') 
:: XOR(\alpha,\alpha')=s^TX(u\otimes v)=\alpha+\alpha'-2\alpha\alpha' 
相關的否定式如下：
:: NOR(\alpha,\alpha')=1-OR(\alpha,\alpha') 
:: NAND(\alpha,\alpha')=1-AND(\alpha,\alpha') 
:: EQUI(\alpha,\alpha')=1-XOR(\alpha,\alpha') 
如果滿足該等算式的值屬於集合 {0, ½, 1}，則有關的純量算式與武卡謝維奇提出的三值邏輯系統大致脗合。另外，數學家亦證明了如果將一元和二元向量邏輯運算子施加於該集合屬下的概率向量，則其輸出值亦必屬於該集合。

## 布爾多項式
喬治·布爾確立了以多項式演繹邏輯運算的學說發展。一元邏輯運算子（例如恆等或否定）的布爾多項式可用以下的方式表示：
:: f(x) = f(1)x + f(0)(1-x)  
根據二值邏輯的值，可以得出四個一元邏輯運算式：恆等式要求 *f*(1)&nbsp;=&nbsp;1 、*f*(0)&nbsp;=&nbsp;0，否定式則要求 *f*(1)&nbsp;=&nbsp;0、*f*(0)&nbsp;=&nbsp;1。至於16個二元邏輯運算子的布爾多項式可由以下算式求出：
:: f(x,y) = f(1,1)xy + f(1,0)x(1-y) +f(0,1)(1-x)y + f(0,0)(1-x)(1-y) 
如果從相對應的真值表抽取相應的係數 *f*，二元邏輯運算子可以轉譯成多項式。例如要建立一個與非邏輯的布爾多項式，係數 *f* 的值如下：
::  f(1,1)=0    及    f(1,0)=f(0,1)=f(0,0)=1。
這些布爾多項式可以即時被擴充為包括任意數目的未知值，創造出大量的潛在邏輯運算子。向量邏輯的矩陣-向量結構即為這種運算的線性邏輯演繹，其中上文設立的向量 *s *和 *n* 可以對應上列多項式中的 *x* 、*y* 和*1-x、1-y*。 In 以「與非」為例，*f(1,1)=n* 而且 *f(1,0)=f(0,1)=f(0,0)=s*，從而演算出以下矩陣：
:: S=n(s\otimes s)^T + s[(s\otimes n)^T+(n\otimes s)^T+(n\otimes n)^T] 

## 延伸
* 向量邏輯理論能夠容納多種真值的運算，其中關鍵在於向量空間維度越大，能夠造出相互正交的真值就越多，同時亦能造出適用於這些真值的邏輯運算矩陣。
* 向量邏輯能夠全面地表達模態邏輯，其中遞歸運算過程是由神經元模型啟發所得。
* 一些邏輯運算認知問題（尤其是涉及遞歸運算的問題）可以透過向量邏輯作出分析。傳統邏輯運算通常以樹狀結構表達，向量邏輯同樣能夠表達之，而這種特性被部份應用於用以研究自然語言分支結構的神經元模型上。
* 一些運用可逆操作（如弗雷堅閘）的邏輯運算可以透過向量邏輯實現。這種實現方式直接提供能夠定義輸入參數值格式以及篩選輸出值的矩陣運算子。
* 基本細胞自動機可以經由向量邏輯的運算子結構進行分析。這種分析能夠把細胞自動機的行動規律進行特徵分解。

## 參看

* 模糊邏輯
* 
* 邏輯代數
* 命題邏輯
* 喬治·布爾
* 揚·武卡謝維奇

## 參考資料