2008年2月24日 星期日

Multi-dimensional Logic Computing Model 多維邏輯運算模型的廣義構想

Standard
為了弄出一些空硬碟,我整理一些舊資料想燒出來,無意間發現過去的一些有趣想法〔笑〕。這是我高中時期的一個構想,原本是針對思考現今程式邏輯的不足,所提出的另一種邏輯原型。當時純粹只是為了解決線性邏輯的單方向性,所以僅僅在解決新模型的結構問題。過程以簡單的幾何方式來緒述初步架構,並未思考到實際的應用,當然也缺少許多實際的數學推導。但是由於長期接觸資料庫的應用和系統的規劃,後來在高三時的一些空閒時間,有嘗試運用和簡化該模型使用在資料庫處裡的系統上,雖有些初步成果,但也還不到實用階段。

簡單來說,對邏輯要就是 off(false) 不然就是 on(true),這是 0 與 1 的基本概念。但進一步的邏輯是線性的, 0 與 1 決定了兩條向前走的路,如果每碰到一個 0 與 1 的判斷算是一個 Node ,那每個 Node 連起來最終會形成一條直線,且這條直線上有一個 Node 會是我們要的答案,至於是哪一個呢?就是由程式設計師決定了。線性邏輯已經被全世界的數學家、哲學家、科學家和 Hacker 發揮到淋離盡緻,它的確可以稱為今日的科技之母,當然,Multi-dimensional Logic Computing Model 也是架構在這上面。

只不過線性邏輯總是無法處理意外(exception) 的狀況,解決兩個選擇以外的組合,需要靠更多的 Node 去解決。我們必需先用人腦判斷是否有意外發生,再去針對意外設計 Node 解決,這也是為什麼當今 Artificial Intelligence 遲遲無重大突破的原因。雖然出現很多模糊理論、基因演算法、神經網路理論,但也不過是想辦法將 exception 當成訓練因子,歸納收斂成一個運算的方向,再用固定形式去求出答案。

在這種狀況下,線性邏輯顯然不夠用。從幾何的角度切入,一直線可以有無盡的 Node;從數學方程式來看,若是等號兩邊相等,一條線最終的 Node 必等於第一個 Node。從此假設可以發現,邏輯線被繞成一個圈,但是在應用面來說,這個圈沒有答案、沒有意義。為了解決這問題,於是想到種方法,若使用兩條邏輯線,必會產生兩個互相交集的點,這也代表答案將可能出現在這兩個點上面〔也就是停住有解答〕。

現在假設邏輯線可能很多且不論是否有交集:若每條線相同長度,無窮的圓周線將有可能變成一個球體狀,但事實上不同的邏輯不可能同樣長,這造成了形狀應該是一個類似太陽系的樣貌,上面有無窮個不同的行星軌道繞著太陽在轉。

回到真實狀況,如果有一條邏輯線很長,但它可能連續兩個 Node 與另一條線有交集,那麼依照目前的結構,顯然是不可能的。原因是:

  1. 每條邏輯線皆圍繞相同圓心
  2. 相同長度的邏輯線才可能相交
  3. 若交集,必有兩點相交或完全相同

用人類真實狀況舉例,你可能因為 A 事影響你下一步的 B 想法,這 A 可能有好幾種 factors 會影響 B ,也可能完全會影響 B 的流程,若依照現在的模型是無法詮釋的。

解決辦法,就是令邏輯線不規則,且不一定要有同樣的圓心。此時整個模形遠看就像一個有凹凹凸凸表面的月球一般,每個 Node 都有可能與其它線上的 Nodes 自成一條新的 Line。如此,錯縱複雜的邏輯線,大致上應該能表達各種邏輯運算,只是有個問題,我們該如何駕御它?〔畢竟決定無窮條邏輯線的起源是不可能的〕

這問題也令我思考很久,不能拿來應用的模型等於『廢物』一樣〔這是 jserv 常說的 :P〕!後來在高三的時候,就想出種應用的方式,可以用在資料庫的搜尋系統上。當時我暫時為這方法取名為『表面法』,如同字面意義,從表面來建構這邏輯的片面。

這方法是以五邊形為單位,中心有一個 Node,且被 5 Sub-Node 所圍繞,但 Sub-Node 同時也是中心,也有被其它 Sub-Node 所圍繞,用這方式可確保任何不規則的邏輯表面能被詮釋,在過去畫的 Freemind 心智圖中有清楚的表示。



圖中有分別說明 Node 和 Node 間的關係、 Search 時的 Rules、Input 的 Rules,還有當某個 Node 毀掉、狀況不明確時的自我細胞和資訊修復,其中的 Cache 設計更是完備整個流程的關鍵〔不只是加速而已〕。用在 Database Cluster 上,應該能有無比的速度才是〔大概吧 :P〕!最重要是有機會完成精準的圖形、聲音的辨識系統。由於 Node 和 Node 之間的互動會自成新的邏輯線,如果再加上無限迴圈、突變 Node 等設計,應該也能讓程式自我成長發展〔也就是程式可隨時自己改寫自己每一段邏輯〕。

不過相較於人腦每秒數以億計的腦細胞同時在跑,當今的 CPU 在單位時間內跑多少 Node 呢?

後記

惡搞一通還要為這想法弄個應用方法,我想我真的是瘋掉了。