這次開一個小腦洞。
因為是腦洞,所以是有水分的,很多定義是模糊的,推理過程也并不要求嚴格。
話題先從標(biāo)題的最后一項開始說起。
什么是不可壓縮信息?
這個具體可以看這篇文章,大意來說,便是在選定了通用圖靈機后,可以用于生成指定字符串的所有圖靈機中長度最短的圖靈機的長度,就是指定字符串的K氏長度。而如果一個字符串的長度不大于它的K氏長度,那么這個字符串被稱為“不可壓縮”的。
因此,很顯然,如果我們構(gòu)造出一個集合S是“所有字符串構(gòu)成的集合”,然后構(gòu)造一個映射K,將S中的元素映射到其對應(yīng)的不可壓縮形式(即如果字符串A可以通過字符串B對應(yīng)的圖靈機來給出,而B的長度等于A的K氏長度,那么我們就說B是A的不可壓縮形式),那么很顯然S肯定存在一個子集U,U是S中所有不可壓縮形式字符串的集合。
PS:當(dāng)然我們這里不得不指出的是,上述所提到的K是不可計算的,也是不完備的,相關(guān)證明可以看上面所給的那篇參考文章。
U具有一個很美好的性質(zhì),便是U中任意兩個字符串對應(yīng)的圖靈機都不可能生成相同的字符串。同時,U中的每個元素都可以代表S中的一個軌道,即S中所有那些與U中元素u生成相同字符串的字符串集{s},與u是一一對應(yīng)的,且u就在{s}中。這樣的字符串集{s}記為S(u)。因此很顯然,對于任意ui和uj,S(ui)與S(uj)的交集都為空集,且所有S(u)的并等于S。
所幸這樣的集合顯然是離散的,否則我們可以很有興趣地追問在這樣的集合上是否存在塔斯基怪異分解……
從本質(zhì)上來說,U中的元素都是無須輸入的圖靈機,所需的所有素材都包含于自身之中。
我們事實上可以定義s的“邏輯深度”,即如果u是s的不可壓縮表示,那么從u開始執(zhí)行,總共需要執(zhí)行多少步才能最終停機并輸出s,這個執(zhí)行步驟數(shù)就是s的邏輯深度。
既然是圖靈機,那么我們自然會考慮這么一個問題:這些圖靈機之間是否存在一些邏輯上相似的結(jié)構(gòu)呢?比如兩個u采用了相同的邏輯,只不過其中部分常數(shù)的不同,導(dǎo)致了相同的邏輯輸出了不同的結(jié)果。
基于這種想法,我們開始做一些不一樣的嘗試。
選擇一組圖靈機{Ti},其共同特點是以一個字符串作為輸入,然后以一個字符串作為輸出。
同時,這組圖靈機可以實現(xiàn)對任意字符串集S的覆蓋:對于任意S中的元素s,總存在S中的一個元素s'以及該圖靈機集中的一個圖靈機T,使得T(s')=s。
這樣的圖靈機集可以成為S上的一個圖靈覆蓋。
很顯然,最平庸的這種圖靈覆蓋只需要一個圖靈機,那便是“復(fù)寫者”,將輸入原封不動地作為輸出。
有了上述覆蓋后,我們可以重新定義“壓縮”:
如果字符串s可以由圖靈覆蓋中的一組圖靈機生成,即存在子集{Ti}使得s=Ti(si),那么這組si中長度最小的那個,稱為s在圖靈機覆蓋{T}中的不可壓縮表示,其長度稱為s在覆蓋{T}中的本征長度,對應(yīng)的圖靈機Ti為s的生成機——如果從同一個si可以通過多個圖靈機生成s,那么就選擇邏輯深度最淺的那個作為生成機;如果還有多個圖靈機連邏輯深度都一樣,那么就選擇本身長度最短的。這樣得到的二元組<S,{T}>就成為一張“圖”——一張有向圖。
很顯然,與上面一段定義的K氏長度只依賴于通用圖靈機的選擇(而且只依賴到差一個常數(shù)長度差的程度)截然不同,這里的不可壓縮形式以及不可壓縮長度在很大程度上都依賴于圖靈覆蓋的選擇——或者我們也可以這么說,當(dāng)圖靈覆蓋是所有可能的圖靈機構(gòu)成的集合時,上述定義就回歸到了K氏復(fù)雜度的情況中了。而,與此同時,由于可選的圖靈機由圖靈覆蓋給定,而我們可以選擇一個有限的或者無限但足夠特殊的圖靈覆蓋,使任意字符串的不可壓縮表示以及本征長度都是可計算的。這也是現(xiàn)在<u>這個系統(tǒng)與K氏復(fù)雜度問題的最大不同之處</u>。
PS:事實上,這種處理方案只要確保圖靈覆蓋本身不構(gòu)成自指即可。當(dāng)我們選擇“所有可能的圖靈機”作為圖靈覆蓋時,總是可以構(gòu)造一個特定的圖靈機,它可以通過“所有可能的圖靈機”來引用自身,從而構(gòu)成自指結(jié)構(gòu),但這樣的過程在選擇圖靈覆蓋可以選擇和控制時就可以有效避免。
現(xiàn)在,對S做一個恰當(dāng)?shù)娜趸猄不再是所有字符串構(gòu)成的集合,而是一個任意的字符串集。對于非所有字符串構(gòu)成的集合S,圖靈覆蓋的要求就比之前的要嚴格,一般而言“復(fù)述者”圖靈機總是存在的,這樣才能確保S中的每個字符串都能有不可壓縮表示。
S中的任意字符串s都可以分解為一個不可壓縮表示與生成機這兩個元素構(gòu)成的一個二元組[ws,ts],其中ws為s的不可壓縮表示(也是一個字符串),而ts則是圖靈機覆蓋集中的一個圖靈機,也就是s的生成機。這種形式的分解是唯一的,即對于任意s,只有唯一的二元組[ws,ts]與之匹配。
因此,S被分解為了若干子集St,每個子集的任意元素s,都可以寫成[ws,t]的形式,其中t就是該子集的特征生成機。這些子集之間彼此沒有交集,這是由定義所保證的。
又由于每個子集St中的元素s都可以寫成[ws,t]的形式,從而顯然集合{ws}是St的不可壓縮表示,前者可以通過生成機t生成后者,后者每個元素的不可壓縮表示構(gòu)成的集合便是前者。
而,一個有趣的問題就出現(xiàn)了:不同的St之間雖然沒有交集,但它們的不可壓縮表示集之間卻是可以有交集的——同一個w,在兩個不同的圖靈機的作用下,是可以生成兩個不同的字符串s的。
進一步來說,這里的問題實質(zhì)上是這樣的:
字符串a(chǎn)通過圖靈機t生成了字符串b,即b=t(a),而后b通過圖靈機r生成了字符串c,即c=r(b),那么我們當(dāng)然有c=r(t(a))。但,如果聯(lián)合函數(shù)r·t并不是圖靈機覆蓋集{T}的元素的話,那么雖然c=r(t(a)),但a依然不能直接生成c,從而a不是c的不可壓縮表示。
從圖的角度來說,a與b之間存在最短連線,b與c之間也存在最短連線,而a與c的距離最短,但卻不存在連線將a與c直接相連,那么此時即便a比b更接近c,c的最近相連的鄰點也只能是b而不是c。
因此,現(xiàn)在我們有了一個很有趣的局面:S的不可壓縮表示未必在S內(nèi),且兩個相交為空的字符集的不可壓縮表示可以相交。
進一步,如果選擇恰當(dāng)?shù)膱D靈覆蓋,那么可能產(chǎn)生這樣的局面:字符串S的不可壓縮表示為s1,而s1的不可壓縮表示為s2,且s1不等于s2。這樣的鏈條可以一直進行下去,直到出現(xiàn)某個字符串的不可壓縮表示在鏈條內(nèi)出現(xiàn)過為止。這樣的鏈條被稱為壓縮鏈,而鏈條的長度就被稱為一個字符串的壓縮深度,而鏈條的第n+1位(這里原字符串被設(shè)為鏈條的第一位)稱為字符串的第n層壓縮。同時,從全局來看,邏輯深度最深的節(jié)點的邏輯深度,成為整張圖S的邏輯深度,記為DeepS。
PS:這里有一個很有趣的問題,就是我們對于壓縮鏈的停止的定義為:直到出現(xiàn)某個字符串的不可壓縮表示在鏈條內(nèi)出現(xiàn)過為止,這其實就是說,存在這么一種情況,某個字符串的不可壓縮表示是它自己,或者在若干次壓縮后,回到了自己。比如s0的不可壓縮表示是s1,而s0的不可壓縮表示是s2,s2的不可壓縮表示卻是s0。由于現(xiàn)在壓縮的本質(zhì)是利用圖靈覆蓋中的圖靈機從一個字符串來生成指定字符串,因此不排除這種循環(huán)的情況出現(xiàn)。這也表示一點:在特殊選擇的圖靈覆蓋下,字符串s的不可壓縮表示,是有可能比s自身還要長的,尤其當(dāng)圖靈覆蓋中不包含復(fù)述者圖靈機的時候。
以此為基礎(chǔ),當(dāng)我們選定字符集S和圖靈覆蓋{T}后,我們當(dāng)然可以找出S中所有壓縮深度為1的字符串,記為RootS,而所有別的字符串都可以通過一條壓縮鏈從RootS中派生出去。
我們可以腦補一下,當(dāng)我們選擇一個“所有可能的且不含有自指結(jié)構(gòu)的圖靈機”作為圖靈覆蓋的時候,那么很可能所有字符串就都是壓縮深度為1的Root節(jié)點了。因此,Root的分布與S和{T}的選擇是密切相關(guān)的,那么到底能有多相關(guān)呢?
由于現(xiàn)在一個字符串可能通過若干個生成機成為若干個字符串的不可壓縮表示,所以很顯然的是,上述壓縮鏈在某些節(jié)點上必然會合并到一起,從而整條壓縮鏈及其所有與之相連的壓縮鏈在形式上構(gòu)成了一種樹狀結(jié)構(gòu)——壓縮樹。而圖G中所有壓縮樹就構(gòu)成了G的壓縮林。
這也就是說,如果定義<u>“a的不可壓縮表示是b”的逆關(guān)系為b“最簡生成”a</u>,那么我們就可以定義字符串s的“子代”為所有s最簡生成的字符串的集合,而s就成為所有這些子代的“父節(jié)點”,當(dāng)然也就是它們的不可壓縮表示了。顯然子代和壓縮鏈?zhǔn)悄骊P(guān)系。
接著,就如壓縮鏈的終點是Root集,總會存在一些字符串的子代為空集,這些字符串便構(gòu)成了S上的葉節(jié)點集,記為LeafS。而非Leaf的節(jié)點則可以定義其寬度,為其子代的元素數(shù),從而葉節(jié)點就是寬度為零的節(jié)點。
因此,現(xiàn)在隨著不可壓縮表示而來的,就是壓縮鏈與子代,以及深度與寬度,Root和Leaf。
在上述結(jié)構(gòu)下,一個很有趣的問題是:到底哪些節(jié)點更“重要”?
雖然Root生成了整張圖,但若論重要性,Root卻未必是最重要的那些節(jié)點——一個Root節(jié)點被移除后,其子代完全有可能被別的節(jié)點給生成出來,那么這個Root節(jié)點的重要性就非常有限了。
比如整張圖中最寬的節(jié)點,如果它被去掉,那么就可能導(dǎo)致大量節(jié)點的深度被迫加深,甚至于可能使得整張圖斷裂(即存在不連通的至少兩個區(qū)域,參考這篇文章)。但,最寬的節(jié)點卻未必是最重要的,比如圖上一個最寬的節(jié)點的所有子代都是Leaf,那么這個節(jié)點本身的重要性就很有限了。
那么,如何定義這個重要性就成了一個很關(guān)鍵的問題。
這里,先來定義一個節(jié)點的“價值”:
這樣定義的價值可以分解為兩部分:節(jié)點自身的價值,以及節(jié)點從子代身上繼承而來的價值。因此,一個節(jié)點的重要性不單單在于它自己作為一個字符串而體現(xiàn)出的價值,更表現(xiàn)在它可以派生出的節(jié)點的價值上。一個節(jié)點自身可能沒什么重要的,但是它所派生出去的那些分支卻可能非常重要,從而也就能體現(xiàn)出它本身的重要性來。
而,很顯然的,Leaf的價值永遠只有1。
在上式中我們可以給從子代繼承而來的部分乘上一個合理的介于0到1之間的常值系數(shù)即“繼承因子”,從而調(diào)節(jié)繼承的作用:
因為可想而知,如果這個系數(shù)為1,也就是現(xiàn)在所定義的這樣,那么Leaf的價值將被它所在的整條壓縮鏈上的每個節(jié)點所繼承,那么這個Leaf的邏輯深度越深,它的實際貢獻也就越大。但這點本身卻未必合理,因為這將導(dǎo)致一個邏輯深度很淺的多個Branch交匯的節(jié)點的價值沒有一個邏輯深度很深的Leaf的價值高,這有點不合常理。
因此,我們這里暫時將V設(shè)為0.5,這樣一個Leaf的邏輯深度再深,影響也將是有限的。
從另一個角度來說,一個節(jié)點的價值有一部分是繼承自其子代的,因此如果這個集成系數(shù)為1的話,就表示它的子系(所有包含該節(jié)點的壓縮鏈上該節(jié)點之后的所有節(jié)點構(gòu)成的集合)的每個節(jié)點都為它做出了貢獻,這樣的節(jié)點顯然越靠近Root就越有價值,但這點并不合理,因為這些節(jié)點本身可能僅僅支持起到了一個“傳遞者”的作用——它們的寬度都只有1,從而只是將上一個節(jié)點連接到下一個節(jié)點而已。這樣的節(jié)點理應(yīng)是不重要的,但在繼承因子為1的時候,卻可能變得很有價值起來。因此,選擇一個小于1的繼承因子是非常重要的。
比如下面這張圖:
可以看到,這里價值最高的節(jié)點是主干頂端分叉五個Branch出去的那個節(jié)點,這也和我們直覺的理解相吻合。
下面再看另一張圖:
在這張圖中,每個節(jié)點的價值也基本是符合我們的直覺預(yù)期的,其中最重要的點分別是Root、邏輯深度為1的三個Branch交匯的節(jié)點、右側(cè)兩個Leaf一個Branch交匯的節(jié)點、以及該節(jié)點之后的兩個Branch交匯的節(jié)點,其中后三個的重要性不言而喻。
通過這兩個例子,不難發(fā)現(xiàn),這樣定義的節(jié)點的價值與重要性之間,還是比較匹配的,但總還是有些偏差,因此下面我們引入另一個更重要的指標(biāo):節(jié)點的影響力。
要計算節(jié)點的影響力,我們先來計算一下整張圖G的總價值,其定義相當(dāng)直白:
也即,圖G的總價值,就是圖中所有節(jié)點的價值的總和。比如說,上面兩張圖的總價值就分別是35.5和32.625。
接著,我們考慮將G中的某個節(jié)點移除的話,會得到什么樣的圖。
由于G中的節(jié)點之間的連線是通過不可壓縮表示來給出的,如果一個節(jié)點被移除的話,那么對于它的父節(jié)點而言,無非就是這個不可壓縮表示被取消了,但對于它的子節(jié)點而言情況就比較復(fù)雜了,因為這個節(jié)點被移除,無非就是表示原本的不可壓縮表示關(guān)系被取消,但節(jié)點依然可以有別的不可壓縮表示。因此,對于被移除節(jié)點s的子節(jié)點,現(xiàn)在可能是別的節(jié)點的最簡表示,也可能不是任何節(jié)點的最簡表示從而變?yōu)镽oot節(jié)點。
因此,原圖G中一個節(jié)點s被移除后,其對應(yīng)的壓縮林相對于原始的壓縮林,所出現(xiàn)的就是s的部分子節(jié)點變成了Root,而部分子節(jié)點所處的Branch則整個被嫁接到了別的節(jié)點上。
從而,我們自然可以計算這么一個問題:G的壓縮林的總價值,和G被移除節(jié)點s后的壓縮林的總價值,它們的該變量是多少?
這個該變量便被定義為節(jié)點s的“影響力”:
因此,一個節(jié)點真正的“價值”,就體現(xiàn)為有它和沒有它為整個體系所帶來的改變。
比如,上面的那兩張圖,現(xiàn)在可以分別求出所有點的影響力為:
可以發(fā)現(xiàn),這里影響力的分布與價值的分布基本是相匹配的,在某些節(jié)點(比如第二張圖的Root節(jié)點)上比只看價值更好。
同時,我們也可以發(fā)現(xiàn)一件有趣的實——去掉節(jié)點s后的圖,相對原來的圖,其總價值未必始終是減少的。存在這么一種可能性,s的子代由于s的消失,集體被嫁接到了另一個或者另一批節(jié)點上,反而使得新圖的總價值升高。這樣的情況在復(fù)雜的圖中是有可能出現(xiàn)的,我們會在后面進行分析。
對于這樣的負影響力的節(jié)點,一般表示它肯定可以被“更恰當(dāng)”地歸類為別的節(jié)點的最簡生成。比如通過添加圖靈機的方式修改圖靈覆蓋,那么就可能達到這樣的目的。
這同時也表明了:連接兩個節(jié)點的連線l,現(xiàn)在也是可以判斷其影響力的:
只不過,我們可以知道,壓縮林中圖靈覆蓋里的一臺圖靈機t所對應(yīng)的,并不只是圖中的一條邊,而可能是一組邊,從而在可以賦予每條邊一個影響力的同時,也可以通過移除一個圖靈機t來計算出t的影響力。
從而現(xiàn)在圖G中的每個節(jié)點和每條邊都被賦予了一個影響力值,而字符串集與圖靈覆蓋中的每個字符串與圖靈機,也被賦予了一個價值。
雖然我們已經(jīng)有了一張圖<S,{T}>中每個節(jié)點與每條邊的價值,但我們依然可以考慮更加寬泛的一個問題,那就是圖G除了壓縮林這一種屬性與結(jié)構(gòu)外,還有什么別的結(jié)構(gòu)與性質(zhì)么?
這就是下一個問題了——
在之前的一段中,我們通過給定圖靈覆蓋后的不可壓縮表示來構(gòu)造連接兩個字符串的關(guān)系,使得一個是另一個的不可壓縮表示,而反過來后者是前者的最簡生成。這樣的關(guān)系沿著不可壓縮表示可以建立一條壓縮鏈,而反過來則可以給出一棵子代樹,從而整個空間<S, {T}>就成了一張每個節(jié)點和每條邊都被賦予一個影響力值的林狀圖。
但,我們都知道,不可壓縮表示是兩個字符串節(jié)點的所有可能關(guān)系中最“密切”的一種關(guān)系,從而限制性很大。我們現(xiàn)在來尋求比壓縮林更豐富的結(jié)構(gòu)。
容易知道,任何一個字符串s都可能有這么兩類“親屬”。
第一類親屬,其中的元素都可以通過圖靈覆蓋中的某臺圖靈機來生成s,稱為s的父代;而另一類親屬的元素則都可以由s通過圖靈覆蓋中的某臺圖靈機來生成,成為s的子代。
由于圖靈覆蓋中的圖靈機只要求以一個字符串為輸入然后輸出一個字符串,但并不要求對于任意字符串都可以接受并停機且有輸出,從而這里的圖靈機實際上是S上的一個<u>偏函數(shù)</u>而非函數(shù),因此就存在一些字符串不能作為特定圖靈機的輸入,甚至于一些字符串不能成為圖靈覆蓋中任何一臺圖靈機的輸入。
因此,現(xiàn)在我們實際上就可以通過生成與被生成的關(guān)系,而非之前不可壓縮表示與最簡生成的關(guān)系,來構(gòu)造出一個全新的網(wǎng)絡(luò)結(jié)構(gòu)——生成云。
生成云顯然是有向圖,且和壓縮林不同,生成云不是林狀的,而是網(wǎng)狀的。
壓縮林的任意兩棵樹之間沒有交集,甚至同一個節(jié)點派生出的兩個Branch之間也是沒有交集的,且任意節(jié)點都只有唯一一個父節(jié)點。但生成云中一個節(jié)點可能是若干個節(jié)點的子節(jié)點,也可以是若干個節(jié)點的父節(jié)點。
一個節(jié)點在壓縮林中的父代必然是其在生成云中的父代,而它在壓縮林中的子代也必然是其在生成云中的子代,反之則未必。
在定義了生成云后,我們可以定義“生成鏈”,類似于壓縮林中的壓縮鏈。生成鏈也是有向的,從字符串a(chǎn)指向字符串b,且a為生成鏈的第一個元素,b為最后一個元素,a可以通過某臺圖靈機生成下一個元素,然后再通過某臺圖靈機生成第三個元素,直到生成b為止。因此一條生成鏈的兩個元素節(jié)點之間通過一臺圖靈機相連,而兩根生成鏈即便元素節(jié)點全同,也可以是不同的生成鏈,因為連接兩相鄰節(jié)點的圖靈機可以不同,這是生成鏈與壓縮鏈最大的不同,因為壓縮鏈中相鄰元素之間的生成機是唯一的。
這同時也就說明,如果b是由a生成的,那么從a到b的連線可以不止一條,因為可以有不止一臺圖靈覆蓋中的圖靈機由a生成b。
生成鏈的節(jié)點數(shù)(不考慮連接兩相鄰字符串節(jié)點的圖靈機)稱為生成鏈的長度,而其圖靈機在生成過程中的總邏輯步驟數(shù)稱為該生成鏈的邏輯深度。
接下來,定義從a到b的所有生成鏈中長度最短的那條生成鏈的長度減1(從而也就是生成鏈中的圖靈機的數(shù)量),為從a到b的有向距離(也可以簡稱為從a到b的距離),記為da,b;而從a到b的所有生成鏈中邏輯深度最短的生成鏈的邏輯深度,為從a到b的邏輯距離,記為Da,b。顯然,從a到b的有向距離距離對應(yīng)的生成鏈與邏輯距離對應(yīng)的生成鏈,未必是同一根生成鏈。
PS:這種有趣的情況不由地讓人想到了Finsler流形上,“直線”(自平行曲線)與“最短線”(長度極值曲線)可以不是同一根線這么一個很奇妙的情況。
值得注意的是,未必一定存在一根生成鏈連接指定的字符串a(chǎn)與b,在這種情況下,稱從a到b是不相連的或者斷裂的,其有向距離與邏輯距離都為無窮大。而從a到b是斷裂的,未必從b到a就一定也是斷裂的。
顯然,字符串s的父代到s的距離必然是1,但反過來,s到它的父代的距離則未必是1,有時候甚至可能是斷裂的。
繼續(xù)參考壓縮林,我們當(dāng)然會去思考關(guān)于生成云中Root與Leaf是否存在這樣的問題,但壓縮林中由于不可壓縮表示的約束非常強,以至于任意一張這樣的圖<S, {T}>總會有Root也總能找到Leaf,但對于弱得多的生成云,則很難說必然存在Root或者必然存在Leaf。
我們可以定義不能作為任何一臺圖靈機的輸入的字符串為生成云中的Leaf,但這對于圖靈覆蓋的選擇就有了一定的要求,因為比如只要給圖靈覆蓋一個可以將任意字符串作為輸入的圖靈機,那么這樣的Leaf就不存在了——但這卻不會使得壓縮林中的Leaf消失。
我們當(dāng)然也可以直接將壓縮林中的Root與Leaf作為生成云中的Root與Leaf來用,但這樣的做法不免太過人為與強制,并沒有什么深刻的意義。
可以說,生成云與壓縮林另一個重要的不同,就是兩者雖然都是有向圖,但生成云幾乎無法定義一個明確的層級結(jié)構(gòu),而壓縮林在這方面的結(jié)構(gòu)卻是非常顯而易見。
我們當(dāng)然也希望可以計算生成云中每個節(jié)點的重要程度,比如壓縮林中的價值與影響力,總是希望可以找到其在生成云中的對應(yīng)的。但由于現(xiàn)在一個節(jié)點的子代可能與其父代重疊,因此壓縮林中定義價值時的迭代定義的方式就會遭遇自己求和自己的困境。
為此,我們先來看子代與父代的推廣。
前面我們已經(jīng)給出了節(jié)點之間生成鏈的定義,這里就可以利用生成鏈來給出一個節(jié)點的兩個重要的“領(lǐng)域”——
所有存在一根生成鏈從節(jié)點s連接到其的除了s自身的節(jié)點構(gòu)成的集合,稱為s的影響域,記為Fs。而所有存在一根生成鏈從其連接到s的除了s自身的節(jié)點構(gòu)成的集合,稱為s的被影響域,記為Ps。定義中強調(diào)了“除了s自身”,是因為s本身可以和自身相連,從而自己通過有限步生生自己,故而在影響域與被影響域的定義中要扣除s自身,所以本質(zhì)上這兩個都是去心域。在一個足夠混亂的生成云中,節(jié)點的這兩個域可以全等。
在這兩個域中,我們都可以定義其“大小”與“深度”:用FSize表示Fs的元素個數(shù),而用PSize表示Ps中的元素個數(shù)。而FDeep表示s到Fs中元素的有向距離的最大值,而PDeep表示Ps中元素到s的有向距離的最大值。
接著,我們可以利用F和P來定義節(jié)點s的“混亂度”與“有序度”:
因此,很顯然壓縮林的混亂度為0有序度為1,但在生成云中則未必,說不定會很接近于混亂度為1的狀態(tài)。
如果一張圖的每個節(jié)點的有序度都為1,那么就稱這張圖為全序圖。顯然壓縮林就是一張全序圖。
之所以要定義節(jié)點s的影響域,就在于壓縮林中的價值的定義,可以被用影響域等價地定義出來:
這里V就是之前在壓縮林中所定義的繼承因子,一般選為0.5。
由于我們利用有向距離來作為計算因子,而兩個節(jié)點之間的有向距離是唯一的定值,所以這樣的定義方式可以有效地避免此前提到的價值與影響力計算中可能出現(xiàn)不斷指向自己的麻煩。
但直接套用上式來計算生成云節(jié)點的價值卻是不合適的,會得到很多奇怪的反直覺的結(jié)論。其根本在于,壓縮林中任意節(jié)點的父元素只有一個(除了Root沒有父元素),但在生成云中這點卻是未必。因此,我們需要對上面的定義做出修改,并且可以直覺地給出如下形式的結(jié)果:
其中ps表示節(jié)點s的父元素的數(shù)量(相應(yīng)的cs就是s的子元素的數(shù)量了。
但這樣的定義依然是有一定問題的,因為隨著連接結(jié)構(gòu)的日趨復(fù)雜,簡單地將一個節(jié)點的“共享”分攤到父節(jié)點上一次來作為統(tǒng)計中的計算項顯然會無法符合要求,我們需要更加有力的工具。
在前面生成云的問題中,我們最核心的難點有兩個:
- 無法簡單地給出生成與被生成的關(guān)系,因為一個節(jié)點的影響域與被影響域可能重疊,從而自己可以通過圖靈覆蓋中的圖靈機的迭代作用生成自己,這就導(dǎo)致了生成與被生成關(guān)系的混亂不清。
- 由于父節(jié)點的非唯一性,簡單統(tǒng)計父節(jié)點數(shù)也是無法滿足需求的。
第一個問題使得我們無法使用迭代的方式求節(jié)點的價值,因為那樣會無限迭代到自身;而第二個問題使得我們無法使用簡單加權(quán)求和的方式來求節(jié)點價值,因為父級結(jié)構(gòu)將無法被考慮在內(nèi)。
為此,我們需要一種全新的工具——有別于壓縮林,可以更好地反映生成云,但同時又比生成云簡潔,最好可以給出類似壓縮林那樣的明確的層級結(jié)構(gòu)。
為此,下面將在生成云上引入一種等價關(guān)系,并利用這種等價關(guān)系將生成云簡化為擁有良好層級結(jié)構(gòu)的新的有向圖:等價網(wǎng)。
我們都知道,生成云中連接兩個節(jié)點的,是兩個節(jié)點a與b之間的生成關(guān)系——如果存在圖靈覆蓋{T}中的圖靈機t使得b=t(a),那么就說a可以生成b。
那么,讓我們來考慮這么一個問題:假如a可以生成b,而b又可以生成a,那么這兩個節(jié)點之間會是一種什么樣的關(guān)系?是不是可以認為a和b“足夠相似”?
因此,我們引入一種“等價關(guān)系”:
<u>如果存在從a到b的生成鏈,同時也存在從b到a的生成鏈,則稱a和b等價。</u>
所有與a等價的節(jié)點構(gòu)成了a的等價類,而且如果考慮這個等價類作為集合配上當(dāng)前圖的圖靈覆蓋,那么生成的這張生成云子圖很顯然具有1的混亂度即0的有序度。
很顯然,等價類C中任意節(jié)點s的等價類都必然是C自身。
進一步,讓我們來定義兩個等價類之間的生成與被生成的關(guān)系:
如果存在等價類A中的節(jié)點a與等價類B中的節(jié)點b,且滿足a生成b,那么我們就說等價類A生成等價類B。
很顯然,在兩個等價類之間的生成關(guān)系必然是單向的,即當(dāng)A生成B的同時,不可能存在A中的節(jié)點c與B中的節(jié)點d使得d生成c這個關(guān)系成立,因為如果這樣的關(guān)系存在,那么B中任意節(jié)點必然可以通過一條生成鏈進入A中,然后再回到B中最后終結(jié)于自己,從而A和B這兩個等價類等價。
有了這樣的等價關(guān)系后,原來的圖G中的節(jié)點的關(guān)系就可以被大幅地簡化。
我們用等價類取代G中的節(jié)點,從而構(gòu)造出一個圖G模掉等價關(guān)系后的等價圖G',進而考慮G'的生成云,它被稱為原圖G的“等價網(wǎng)”。
等價網(wǎng)中任意兩個節(jié)點之間要么沒有有向箭頭連接,要么只有一根單向的箭頭連接,而且更重要的是,任意節(jié)點的被影響域與影響域沒有交集,從而是一張全序圖。
既然是全序的,那么我們自然可以找到兩類節(jié)點,一類節(jié)點不被任何別的節(jié)點生成,即為Root節(jié)點,而另一類節(jié)點則不生成任何別的節(jié)點,即為Leaf節(jié)點。這點與壓縮林中的情況完全相同。
Root節(jié)點到任意一個指定節(jié)點的有向距離的最小值(因為等價網(wǎng)本身是生成云,所以生成云中的定義在等價網(wǎng)中可以直接使用),被稱為該節(jié)點的邏輯深度,而它到Leaf節(jié)點的有向距離的最小值則被稱為邏輯淺度(實在不知道叫什么名字好了……),而不同Leaf節(jié)點的邏輯深度可能不同,不同Root節(jié)點的邏輯淺度也可能不同。Root節(jié)點的淺度的最大值,同時也是Leaf節(jié)點深度的最大值,被稱為等價網(wǎng)的厚度H。
將邏輯深度相等都為n的節(jié)點構(gòu)成的集合稱為等價網(wǎng)的等高面n,那么我們可以發(fā)現(xiàn),邏輯深度為n的節(jié)點可以生成的點,未必都坐落在等高面n+1上,它既可以生成等高面n上的點,也可以生成等高面n+1上的點,或者等高面n-1上的點,甚至別的各層上的點。等價關(guān)系只能保證任意生成鏈不自相交,任意節(jié)點的影響域與被影響域不相交,卻無法保證任意生成鏈只能從低等高面往高等高面延伸。
接下來,我們來構(gòu)造等價網(wǎng)上節(jié)點的價值:
其中,Num(c)給出了節(jié)點等價類c中的元素數(shù)。和壓縮林中的情況一樣,我們現(xiàn)在又可以使用迭代的方式來定義節(jié)點的價值了——這邊是全序網(wǎng)的一大優(yōu)點。
接著,通過和壓縮林中相同的方式,我們可以定義整個等價網(wǎng)的總價值,進而給出每個節(jié)點(包括每個等價類的價值和每個原圖G中節(jié)點的價值)、每條邊、每臺圖靈機的影響力。
如此一來,通過等價網(wǎng),我們終于完成了在生成云中無法實現(xiàn)的計算。只不過現(xiàn)在價值的計算還算簡單,但影響力的計算,就要求在計算每個G中節(jié)點的影響力的時候,重新生成等價網(wǎng),從而在實際情況中的計算量是非常巨大的。
可以看出,由于圖靈覆蓋的特殊性,完全可能存在這樣的情況,即在生成云中同屬同一個等價類的不同節(jié)點,有些在移除后對整個等價網(wǎng)完全不構(gòu)成形變,而有些則可能使得等價類中的節(jié)點彼此之間不再等價,而有些則可能使得不同等價類之間的鏈接關(guān)系發(fā)生改變。
顯然,第一類節(jié)點(完全不改變等價網(wǎng))雖然和別的幾類節(jié)點共享相同的價值,但影響力卻是微乎其微的;而第二類節(jié)點則對等價網(wǎng)整體的改變最顯著,將一個等價類完全拆散了,從而具有極大的影響力;第三類節(jié)點則還算是較普通的情況,與壓縮林中的節(jié)點擁有相同的行為特性。
當(dāng)然,等價網(wǎng)也是可以有一些壓縮林中所幾乎不會擁有的性質(zhì)的。比如,我們可以討論一個節(jié)點的“不可替代度”。
不可替代度可以被視為反映一個節(jié)點不可替代性的標(biāo)準(zhǔn),而為了獲得唯一性,我們需要介紹節(jié)點s的影響域中一個非常重要的子集——
如果以節(jié)點a為終點的所有生成鏈都必然還有節(jié)點s,那么就稱a為s的專屬子節(jié)點。s的所有專屬子節(jié)點構(gòu)成了s的專屬子域Us。
容易證明,s的專屬子節(jié)點的子節(jié)點未必依然是s的專屬子節(jié)點,但s的專屬子節(jié)點的父節(jié)點則必然是s的專屬子節(jié)點。
從而,節(jié)點s的不可替代度U(s)就是s的專屬子域節(jié)點數(shù)與全網(wǎng)節(jié)點數(shù)的比。
很顯然,不可替代度越高的節(jié)點,在整個網(wǎng)中的重要性是不言而喻地重要的。它的缺失將導(dǎo)致整個網(wǎng)絡(luò)的極大改變。
我們可以計算s及其專屬子域的總價值以及總影響力——后者的計算是將s與Us的所有節(jié)點全部移除后的圖的總價值與原圖總價值的差——它們被稱為s的不可替代價值與不可替代影響力。
在壓縮林中,一個節(jié)點的專屬子域就是它的子元素為開端的所有Branch的總和,所以顯然Root的不可替代影響力是無與倫比的。但在生成云與等價網(wǎng)中,情況就完全不是這樣了,變得非常撲朔迷離。
至此,通過等價關(guān)系的引入從而從圖G中構(gòu)造出等價網(wǎng)并利用登記網(wǎng)來計算原圖G中生成云中節(jié)點的價值與影響力的方案,就算告一段落了。
這部分我們先做一些簡單的計算。
我們知道,在壓縮林中節(jié)點的價值被定義為:
從而可以被等價地從迭代形式改寫為求和形式:
現(xiàn)在我們對等高面n(以下記為Ln)上的價值求和,由于壓縮林中不同節(jié)點的影響域無交集,以及從Ln到其距離為1的節(jié)點必然都落在Ln+1上,從而這個求和可以直接給出非常簡潔的形式:
其中Nn表示Ln上的節(jié)點數(shù)。這么一來圖G的總價值也就很好計算了:
也就是說,總價值等于每一層節(jié)點數(shù)的加權(quán)總和,而權(quán)重就是(1-Vn)/(1-V)(當(dāng)然如果V取1的話就是n)。
從這里也可以看出,邏輯深度越深的節(jié)點,對整張圖總價值的作用當(dāng)然是越大。
當(dāng)一個節(jié)點被從圖中移除后,假如說不改變每一層的節(jié)點數(shù),比如它的所有子節(jié)點都被從一等高面上的別的點繼承,那么除了該節(jié)點所在等高面上的節(jié)點少了一個,別的等高面上的節(jié)點數(shù)不便,那么新圖和舊圖之間的總價值差就只是這個等高面n上的統(tǒng)一權(quán)重因子。
事實上,邏輯深度為n的節(jié)點s的影響力現(xiàn)在已經(jīng)可以做這樣的簡化計算了:
其中ma是s影響域內(nèi)節(jié)點a原來的邏輯深度,而m'a是隨著s的被移除而改變位置后的邏輯深度。
由此可以看出,對于節(jié)點自身的被移除來說,n越大,影響力越大;而考慮上s的影響域中的節(jié)點后,由于V是小于1的正數(shù),所以越往深度淺的層走的話會為節(jié)點s貢獻正的影響力。
因此,假如一個節(jié)點的影響域足夠大,而它本身的邏輯深度又足夠小,它被移除后它的影響域都會成為邏輯深度足夠大的節(jié)點的子節(jié)點,那么這個節(jié)點的影響力就有可能是負數(shù)——這便是在之前的章節(jié)中所提到的內(nèi)容。
上述這種美好的性質(zhì)我們當(dāng)然希望可以一直延續(xù)到對等價網(wǎng)中等價類節(jié)點的價值的計算中,從而可以簡單地獲得關(guān)于這張網(wǎng)中每個等價類的影響力的信息。
但簡單的分析卻發(fā)現(xiàn)這樣的計算是很難完成的。
在壓縮林中,這樣的計算之所以有效,是因為整個網(wǎng)絡(luò)是分層的,而且壓縮鏈就是逐漸從一層走到后一層,依次向邏輯深度越來越深的方向走。但在等價網(wǎng)中,雖然我們通過等價關(guān)系使得生成鏈具有從Root到Leaf且不自相交的性質(zhì),但卻無法保證生成鏈中每個節(jié)點都比之前的節(jié)點的邏輯深度更深。
事實上,對于等價網(wǎng)中的生成鏈,我們大約只能保證這么幾點:
- 每根生成鏈的起點都是Root節(jié)點,終點都是Leaf節(jié)點;
- 生成鏈中除了起點與終點,別的位置不可能是Root或Leaf節(jié)點;
- 每根生成鏈都不自相交,即生成鏈中的元素不會出現(xiàn)第二次;
- 生成鏈中第n個節(jié)點的邏輯深度不大于n。
因此,在等價網(wǎng)中,一個等高面i的節(jié)點可以生成比等高面i更低的節(jié)點,也可以生成比等高面i更高的節(jié)點,或者等高面i內(nèi)的節(jié)點。這樣導(dǎo)致的一個問題,就是我們在壓縮林中所采用的求和方法在這里幾乎肯定無法使用——一旦我們對等高面i求和,那么就會發(fā)現(xiàn)其中所涉及到的對子代的求和部分將無法自然地表達為某個確定的等高面的求和,從而壓縮林中的求和方案無效。
歸根到底,壓縮林除了是一張全序圖,同時還是可分層的,但等價網(wǎng)雖然是全序的,卻不是可分層的。
對于一張可分層的等價網(wǎng)——即等高面i中的節(jié)點所生成的所有子元素都是等高面i+1的節(jié)點,那么我們才有可能將壓縮林中的計算方案用到這里,而此時計算的結(jié)果也將變得非常Trivial,和壓縮林中的總價值具有相同的形式——這也就是說,在不改變每一層節(jié)點數(shù)的情況下,無論如何修改等價網(wǎng)中節(jié)點之間的連線結(jié)構(gòu),都不會改變整張網(wǎng)的總價值。
但,可分層等價網(wǎng)只是等價網(wǎng)中一個極罕見的特例,在更多的情況下我們并不能簡單地獲得如上結(jié)論,所以關(guān)于節(jié)點價值以及圖總價值的計算就陷入了困境。
比如,讓我們來看一個例子:
這是一張可分層全序圖,節(jié)點旁所標(biāo)注的分別是節(jié)點的價值與影響力,左側(cè)是Root,右側(cè)是Leaf,連線都是從Root端指向Leaf端。同時我們可以很容易地看出圖中只有三個節(jié)點擁有非空的專屬子域,分別是第二層最下方的點、第三層中間的點以及第四層最上面的點,其中第二層的那個節(jié)點擁有三個專屬子節(jié)點,其重要性可見一斑。
這里的兩張圖是在第一張圖的基礎(chǔ)上做了一定的修改。
上面的一張是添加了從L2指向L3的一根連線,但圖依然是可分層全序圖,所以對每一層等高面的總價值都不發(fā)生改變,自然也就不會改變?nèi)珗D總價值了。在L3以上的等高面上的節(jié)點的價值與影響力都保持不變,而只有在該層及以下的等高面上,價值與影響力才會發(fā)生同一層內(nèi)的再分布調(diào)整。
而下面那張圖則是添加了L3內(nèi)的一根層內(nèi)連線,從而使得整張圖不再是可分層全序圖,雖然依然是全序圖。由于這條連線的出現(xiàn),全圖的總價值升高,每一層的總價值也發(fā)生了變化,且在前面一種形變下不發(fā)生改變的L4與L5的節(jié)點的影響力現(xiàn)在也發(fā)生了調(diào)整。
這張圖中,是增加了L3中點與L4上點之間的連線,只不過這兩張圖中連線的方向相反,從而左側(cè)的圖不再是可分層全序圖,右側(cè)的圖依然是可分層全序圖。
可以看到,左側(cè)的圖中發(fā)生的變化比較大,尤其是L2下點的影響力發(fā)生了巨大的下降,這是因為本來L3中點是只有它可以生成的,但現(xiàn)在這個唯一性被破壞。這條連線也使得L4上點的價值與影響力大幅提升。
由此可見,不可分層的全序網(wǎng),也就是最一般的等價網(wǎng),有著很不一般的特性哦。
上面的計算部分僅僅是一個簡單的助興,下面開始考慮一些更加復(fù)雜,但卻更加有用的結(jié)構(gòu)。
在我們最開始的討論中,圖靈覆蓋的一個限制條件就是:它的所有圖靈機都是將一個字符串輸入而輸出一個字符串的,從而是一個單進單出的結(jié)構(gòu)。
現(xiàn)在讓我們對這個條件進行拓展——允許圖靈覆蓋中的圖靈機是多進單出的結(jié)構(gòu),即使多個字符串可以一同作為輸入,而最終輸出一個字符串。
在這個情況下,我們依然可以討論不可壓縮表示與最簡生成,只不過此時不可壓縮表示的衡量標(biāo)準(zhǔn)中的“最短字符串”改成了“最短字符串總長”。生成關(guān)系當(dāng)然也可以被保留。
這種多對一的關(guān)系其實可以分解為兩個步驟,第一步是將多個字符串“無腦”粘合為一個字符串,而第二步則是將這個新的字符串作為輸入輸入到之前定義的單進單出的圖靈機中。
因此,現(xiàn)在我們只不過是允許“粘合機”出現(xiàn)在整個圖中罷了。
它會帶來什么樣的結(jié)果呢?
可以看到,由于這種多對一關(guān)系的出現(xiàn),即便考慮的是壓縮鏈的情況,在此前壓縮鏈只在朝著Leaf的方向分叉而在朝著Root的方向歸一,但現(xiàn)在卻在朝著Root的方向也會是分叉的。
因此,原本的壓縮林,現(xiàn)在會變成一張壓縮網(wǎng),而且這張網(wǎng)很有可能不再是可分層的——因為既然是利用兩個節(jié)點來生成下一個節(jié)點,那這兩個節(jié)點就未必恰好位于同一個等高面上。
由于節(jié)點的父節(jié)點現(xiàn)在不唯一,所以從一個節(jié)點開始的尋找不可壓縮表示的過程也將變得開始分叉起來。當(dāng)然,雖然現(xiàn)在原本以不可壓縮表示構(gòu)筑起來的鏈?zhǔn)浇Y(jié)構(gòu)消失了,但不斷尋找不可壓縮表示的過程至少還是肯定有終點的,雖然這種特性現(xiàn)在看來已經(jīng)變得有點過于微弱了。
壓縮林到壓縮網(wǎng)的改變使得很多原本壓縮林具有的基于父節(jié)點的唯一性而來的美好形式都失去了,而這對于等價網(wǎng)來說自然就帶來了更多的變化。
由于多對一連接的出現(xiàn),在考慮節(jié)點的父代的時候,這種Link將只作為一根連線來考慮,而在考慮子代的時候,則不再作為一根連線,而是要考慮上一個配分權(quán)重。
因此,多對一的連接除了改變節(jié)點之間的連接關(guān)系,還將有一個重要的性質(zhì),那就是作為輸入的多個節(jié)點之間的配分權(quán)重,權(quán)重在每個節(jié)點上都是0到1之間的常值,而其總和為1。在對節(jié)點的價值的計算過程中的對子節(jié)點價值的求和,也會發(fā)生變化:
可見,當(dāng)Num(s)為1的時候就從等價類回到了生成云;當(dāng)從s指向a的連接的權(quán)重因子Weight(s,a)為1的時候,這個連接自然就是一對一的連接,從而問題就回到了等價網(wǎng)的時候;當(dāng)pa為1的時候,問題就回到了壓縮網(wǎng),如果進一步要求Weight為1,那就回到了壓縮林。
從另一個角度來說,我們事實上也可以將現(xiàn)在多對一的連接給看做依然是一根根一對一的連接,只不過現(xiàn)在所有的連接都被賦予了一個0到1之間的權(quán)重因子,且被分成了若干組,每一組一對一的連接都擁有一個共同的終點,而同一組的連接的權(quán)重因子的總和為1。
所以說,顯而易見,等價網(wǎng)才是討論這類問題的最終工具啊。
前面啰里吧嗦說了這么多數(shù)學(xué)結(jié)構(gòu)方面的內(nèi)容,其實都只是鋪墊——對,長達一萬三千字的鋪墊。
其核心內(nèi)容,無非兩部分:
- 給定字符串集S與圖靈機集合T,并且T中圖靈機可以賦予S中的字符串“生成”的關(guān)系,從而構(gòu)成一張復(fù)雜的相互關(guān)聯(lián)的網(wǎng)絡(luò);
- 利用有向圖這一工具,在給定等價關(guān)系后構(gòu)造出等價網(wǎng),并計算這張網(wǎng)中不同節(jié)點的價值與影響力。
而這么做的目的,卻是非常顯而易見的:找出S中哪些字符串比別的字符串更重要,以及哪些圖靈機比別的圖靈機更重要。
單個字符串或者單個圖靈機本身的屬性,我們都是比較熟悉的。
比如對于字符串來說,最重要的幾個屬性當(dāng)然就是字符串的長度,以及K氏復(fù)雜度與邏輯深度(忘了的朋友可以看這篇文章);而圖靈機的幾個重要的屬性則包括長度、可接受字符串、執(zhí)行深度以及K氏復(fù)雜度和邏輯深度(在給定通用圖靈機后,任意圖靈機其實都是以字符串的形式存在的)。
但這些性質(zhì)都是將字符串與圖靈機從整個所處的環(huán)境中剝離后單獨看來的。當(dāng)一個字符串或者一臺圖靈機融入到一個體系中以后,它的作用就完全不同了。
而分析在這樣的一個環(huán)境中一個字符串與一臺圖靈機的作用,就比較有趣了。
而且,在實際情況中,由于圖靈機本身也是字符串,因此實際情況下在上述體系中,一個生成云中的節(jié)點本身還可能對應(yīng)了一大類節(jié)點之間的連線,從而這個情況就會變得非常復(fù)雜。
事實上,如果我們考慮現(xiàn)在這個網(wǎng)絡(luò)上的一個動態(tài)生長過程——在復(fù)雜網(wǎng)絡(luò)的研究中這是一個非常普遍的課題,即在給定一組生長規(guī)則后,來看整個網(wǎng)絡(luò)隨著時間會如何演變,尤其是度分布的變化。當(dāng)然了生長也未必都是“長”,也可以有破壞的過程,比如隨機破壞等,從而在這類動態(tài)過程中我們也會研究網(wǎng)絡(luò)的斷裂等等問題。
當(dāng)我們考慮字符集的一個動態(tài)增加的過程時,我們自然也就在考慮圖靈覆蓋的動態(tài)增加過程,從而此時每個節(jié)點的重要性就有了更進一步的涵義——一個節(jié)點,包括Leaf,在新增一個Leaf后對整個網(wǎng)絡(luò)能帶來什么樣的總價值變化呢?因此,這或許可以幫助我們來決定這么一個動態(tài)規(guī)劃領(lǐng)域的問題:到底哪些字符串或圖靈機是更值得去研究它們可以生成哪些新節(jié)點的。
因此,在給出了等價網(wǎng)(依賴于生成云與等價關(guān)系)后,我們依然有很多內(nèi)容可以研究。
事實上,這樣的工具與視角本身卻并不只局限在字符串與圖靈機這一組關(guān)系中——這里吐槽我自己一下,一萬三千字的鋪墊之后說字符串和圖靈機的怎么這么少啊喂這到底是怎么回事!!!
我們都知道,圖靈機和形式理論之間的關(guān)系是非常密切的,因此上面的這組關(guān)系事實上也可以被移植到形式理論這個大系統(tǒng)中。
理論可以認為是有公理與命題通過邏輯構(gòu)筑出來的一座大廈。
公理,是理論的基石,而且一般而言幾乎是無法被證明其正確還是錯誤的,只能選擇相信它們是正確的。
比如說,沒人會說幾何學(xué)的第五公設(shè)到底是正確的還是錯誤的,你能做的只是去選擇接受它或者不接受它——接受第五公設(shè),我們可以得到平直的歐幾里得幾何學(xué),而如果選擇不接受第五公設(shè),那么你可以得到彎曲的黎曼幾何學(xué)。
在自然科學(xué)領(lǐng)域,人們總可以通過實驗這一手段在一定程度上幫助人們決定到底是相信還是不相信某些基本假設(shè),但很多時候并不能做到100%判定某個基礎(chǔ)假設(shè)是正確的還是錯誤的——比如最近十多年大熱的超對稱,在LHC的實驗數(shù)據(jù)下,雖然人們悲觀,但卻不能說超對稱肯定就是錯的。同樣的,關(guān)于時空到底是平直的還是彎曲的(從而大致來說對應(yīng)了力綱領(lǐng)與幾何綱領(lǐng)),雖然我們都知道現(xiàn)在實驗基本上都是支持彎曲時空的,但理論上來說我們依然可以構(gòu)造出基于平直時空觀的物理理論并且能在實驗上做到和實驗數(shù)據(jù)吻合——只不過這樣的理論的數(shù)學(xué)表達往往是非常丑陋的。
而,在非自然科學(xué)領(lǐng)域,由于沒有實驗這一重要的幫忙篩選的手段,我們就更加無法判斷一個基礎(chǔ)假設(shè)到底是對的還是錯的了——世界到底是絕對唯物的還是我們都是某位紅心國王做的一場夢里的虛幻角色?這沒人能說清。
在這個層面上,基礎(chǔ)假設(shè)無法被證明或者證偽,你能做的只是去相信罷了。
而,公理可以通過邏輯推理推導(dǎo)出命題,命題也可以通過邏輯推理推導(dǎo)出別的命題,因此公理與命題構(gòu)成的整個集合之間,可以通過邏輯推理構(gòu)造出一系列的有向箭頭,從而構(gòu)成一張有向圖。
為何是有向箭頭?因為一個命題可以推導(dǎo)出另一個命題,不表示反過來的推導(dǎo)關(guān)系也成立,比如下面這兩個命題:
命題1:自然數(shù)的乘法等于連續(xù)加法,其中被加數(shù)與加數(shù)都為被乘數(shù)而連加次數(shù)為乘數(shù)。
命題2:如果兩個數(shù)字之和為3、之積為2,那么這兩個數(shù)字一個是1一個是2。
很顯然,第一條可以推導(dǎo)出第二條,而第二條卻無論如何無法推導(dǎo)出第一條。
因此,將所有的公理與命題作為一個離散集合,而將邏輯作為圖靈覆蓋,命題長度作為判斷不可壓縮的標(biāo)準(zhǔn),那么我們就可以很自然地得到之前所給出的那些東西:壓縮林、生成云、等價網(wǎng)。
進而,我們現(xiàn)在可以得到一個選定的公理、命題集中每個命題的價值、影響力、不可替代價值與不可替代影響力,從而來判斷哪些命題、公理是真正重要的東西。
即便引入兩個命題一起來獲得別的命題這種經(jīng)典邏輯的三段論的形式,我們依然可以利用等價網(wǎng)來做分析,只不過現(xiàn)在需要在整個圖上引入多對一連接,而這也就是我們之前在數(shù)學(xué)模型中最后所分析的那類情況。
而且,和字符集-圖靈機這個體系中的情況不同,現(xiàn)在一些命題、公設(shè)可以更顯然地呈現(xiàn)出負影響力,因為命題就和圖靈機一樣,現(xiàn)在既是節(jié)點也是連線,而命題和圖靈機不同的是,它不但可以生成,也可以破壞。
比如由于第五公設(shè)的存在,許多非平直幾何中的結(jié)論會變得Trivial甚至消失,從而在存在第五公設(shè)這個節(jié)點的情況下,很多原本可能存在的不同節(jié)點之間的連線現(xiàn)在反而消失了,因此第五公設(shè)的影響力便是一個顯而易見的負值。
在物理領(lǐng)域也存在這樣的負值節(jié)點,比如牛頓的絕對時空觀,以太,甚至于,能量守恒與主能量條件。
我們可以想到,如果宇宙不要求能量守恒,或者宇宙沒有主能量條件,那該會出現(xiàn)多么絢爛多姿的內(nèi)容啊!
PS:由于主能量條件的存在,宇宙時空將幾乎鐵定不可能有時間機器,也不可能有讓人瞬間移動的蟲洞,折疊引擎也幾乎沒可能。
從整個理論體系的發(fā)展來看,那些負影響力的節(jié)點如何調(diào)整,大概可以算作是提高整個理論價值的重要環(huán)節(jié)。
另一方面,有很多時候某些被當(dāng)做Root節(jié)點而存在的假設(shè),卻可能在某些領(lǐng)域的研究獲得突破后,被發(fā)現(xiàn)其實是那些領(lǐng)域的Leaf節(jié)點的理論的衍生品,那么這樣的研究自然會將整個理論體系的價值提升不少——在此前壓縮林的分析中我們就發(fā)現(xiàn),越是靠近Leaf的節(jié)點的價值越高,在等價網(wǎng)的情況下雖然由于可分層性的卻是而沒有如此明確的結(jié)論,但大致趨勢還是類似的。
這樣的情況在唯象理論的形式化與體系化的過程中是非常常見的,原本一些唯象理論只能建立在某些知其然不知其所以然的假設(shè)上,在形式化體系化后卻可能發(fā)現(xiàn)這些假設(shè)實際上是某些更基本理論的自然導(dǎo)出。
在理論體系中,我們除了可以通過這樣的工具來分析每個理論、每條命題的價值與影響力(無論是否是不可替代的)更重要的是我們也許可以通過這樣的工具來分析不同理論(在現(xiàn)在的圖景下一個理論就是一個點集)之間的相互關(guān)系。
比如,兩個不同理論之間的節(jié)點是否存在等價關(guān)系?如果存在的話,那么這兩個理論顯然在很多方面是非常相似的。比如純理論數(shù)學(xué)與理論物理最前沿的某些領(lǐng)域恐怕就會存在這樣的相似性,比如范疇與代數(shù)幾何。
而后,是否一個理論完全可以由另一個理論導(dǎo)出?比如物理與化學(xué)的關(guān)系。
或者,分析不同理論的Root節(jié)點的數(shù)量也是非常有意思的,比如不同數(shù)學(xué)領(lǐng)域的最基礎(chǔ)假設(shè)有哪些?物理理論呢?特別是在物理領(lǐng)域往往針對同一個現(xiàn)象我們有大量不同的理論,比如當(dāng)下綿延數(shù)年的String與Loop的爭論,那么我們自然可以分析者兩個理論的生成云的結(jié)構(gòu),尤其是它們都必須在低能近似下回歸到我們已有的理論,從而就是說這兩類點集在Leaf端都會連接到同一組節(jié)點上,那么由這組節(jié)點的價值來推算這兩個點集本身的價值與影響力,大概會很有意思吧。
甚至于,我們還可以考慮如果更換一套“邏輯”,整個理論會如何——我們都知道,在形式理論系統(tǒng)中,人們都使用一套沿用數(shù)百年的邏輯,但,如果換一套邏輯推理方法呢?比如說,我們拋棄排中律,引入類似模糊邏輯的非確定性邏輯體系,除了絕對的對與絕對的錯,還有一個對錯百分比甚至不可判定對錯,那么各不同命題之間的關(guān)系恐怕就會發(fā)生大變樣了。
或者,我們放棄形式邏輯,使用非形式邏輯來作為理論構(gòu)建的基礎(chǔ)(這一混搭好奇葩啊……有一種出租車司機大叔的即視感……),會如何呢?
除此之外,這種生成與推導(dǎo)的關(guān)系,除了在字符串-圖靈機系統(tǒng)以及理論系統(tǒng)中可以用之外,還可以繼續(xù)外推。
將各種不同的理論與技術(shù)作為節(jié)點,我們當(dāng)然也可以分析它們之間的有向網(wǎng)絡(luò)結(jié)構(gòu)的性質(zhì)。
甚至于,我們也可以將“資源”與“產(chǎn)品”納入考慮,從而現(xiàn)在就有了資源、理論、技術(shù)與產(chǎn)品這四大類的節(jié)點。
很顯然,理論產(chǎn)生技術(shù),技術(shù)也產(chǎn)生技術(shù),技術(shù)還可以與資源結(jié)合生成產(chǎn)品,并和產(chǎn)品結(jié)合生成新的產(chǎn)品,所以資源與產(chǎn)品是純節(jié)點,而理論與技術(shù)則既是節(jié)點又是有向箭頭。
當(dāng)然,在這種情況下,原本在價值定義中除了繼承部分之外的那個常數(shù)1(在等價網(wǎng)中就是節(jié)點等價類s的元素個數(shù)Num(s)),就可以用一些更能反映節(jié)點所對應(yīng)的資源或者技術(shù)或者產(chǎn)品的值來代替。
這樣的系統(tǒng)構(gòu)筑成一張宏大的網(wǎng),可以將人類社會的大部分活動都包括進去,比如下面這一簡單的案例——
讓我們來考慮卡坦島(囧囧囧囧囧)。
卡坦島的所有節(jié)點可以顯而易見地分為三層。
第一層是出產(chǎn)資源的格點,當(dāng)然主要是格點的數(shù)字——從2到12,除了7(我們這里不考慮海盜與強盜)。
第二層是每個數(shù)字出產(chǎn)的資源:羊毛、小麥、木材、磚頭、鐵礦石。
第三層則是這些資源所能生產(chǎn)的建筑:道路、村落、堡壘(不考慮技能卡)。
顯然,第一層是Root,第一層的節(jié)點與第二層的節(jié)點之間是多對多的關(guān)系,第二層節(jié)點到第三層節(jié)點也是多對多的關(guān)系,而第三層之間還有生成關(guān)系,真正的Leaf只有一個,那就是堡壘。
比如這么一個極端的情況:數(shù)字2和3只生產(chǎn)羊毛,數(shù)字4和5只生產(chǎn)小麥,數(shù)字6和8只生產(chǎn)木材,數(shù)字9和10只生產(chǎn)磚頭,數(shù)字11和12只生產(chǎn)鐵礦石。這是有卡坦島的地圖布局隨機決定的,這里不糾結(jié)細節(jié)。
而后資源與建筑的關(guān)系是游戲規(guī)則決定的:木材與磚頭生成道路,每個的權(quán)重都是0.5;羊毛、小麥、木材、磚頭、道路生成村落,四個資源的權(quán)重為六分之一,而道路的權(quán)重為三分之一;小麥、鐵礦石、村落生成城堡,小麥的權(quán)重為三分之一,鐵礦石的權(quán)重為二分之一,村落的權(quán)重為六分之一。
此外,城堡本身分值為2,而村落的分值為1,別的節(jié)點的分值都為0,這也是游戲規(guī)則所確定的。
而整個網(wǎng)絡(luò)本身其實也是動態(tài)的:一開始大家只能造村落,而后隨著村落的出現(xiàn)就可以造城堡,所以可以分為兩個階段。
于是,整個網(wǎng)絡(luò)在這兩個階段中每個節(jié)點的價值為(這里繼承因子選為1):
<big>前期</big>
Item | Value |
---|---|
數(shù)字 | |
2,3 | 1/12 |
4,5 | 1/12 |
6,8 | 1/6 |
9,10 | 1/6 |
11,12 | 0 |
資源 | |
羊毛 | 1/6 |
小麥 | 1/6 |
木材 | 1/3 |
磚頭 | 1/3 |
礦石 | 0 |
建筑 | |
道路 | 1/3 |
村落 | 1 |
<big>后期</big>
Item | Value |
---|---|
數(shù)字 | |
2,3 | 1/9 |
4,5 | 4/9 |
6,8 | 2/9 |
9,10 | 2/9 |
11,12 | 1/2 |
資源 | |
羊毛 | 2/9 |
小麥 | 8/9 |
木材 | 4/9 |
磚頭 | 4/9 |
礦石 | 1 |
建筑 | |
道路 | 4/9 |
村落 | 4/3 |
城堡 | 2 |
這么一來,什么樣的資源最重要,什么樣的數(shù)字最重要(當(dāng)然,在實際游戲中還要考慮不同數(shù)字出現(xiàn)的概率),就比較直觀了。
當(dāng)然,這里忽略了游戲中的一些額外因素,比如幾個獎勵方案,交易,技能卡,等等。
是不是很有意思?
當(dāng)然,在此前的分析中,有一些情況還是值得商榷的。
比如,我們可以為每個節(jié)點s賦予一個特定的“固有價值”Vs,取代原本固定的1。
在選1作為固有價值的時候,這是基于該節(jié)點可以生成一條字符串或者一條定理/命題而言的,但對于更加具體的情況中,我們卻可以認為這個值并不是固定為1。
因此,在這種情況下,等價網(wǎng)中節(jié)點(為等價類)c的價值就可以由下式給出:
這樣,在卡坦島例子中城堡的價值2與村落的價值1以及別的節(jié)點的價值0就有了合理的源頭——整套游戲的規(guī)則。
與此同時,當(dāng)我們認為每個節(jié)點可以具有非1的固有價值的同時,我們也可以考慮另一個問題:當(dāng)有多個Root的時候,每個Root可能會有截然不同的權(quán)重,那么此時整張等價網(wǎng)中節(jié)點的影響力又要如何計算呢?
為此,我們引入節(jié)點s上的“流量”Flow(s):
其中Root節(jié)點的Flow(r)則是通過其余的邊界條件來給定,比如在字符串-圖靈機體系中可以認為就是Root節(jié)點數(shù)的倒數(shù)。
對于壓縮林,顯然這是一個常量,而且在單株壓縮樹的情況下可以認為這個常值就是1。
從而,我們可以利用節(jié)點上的價值與流量定義節(jié)點的“局部影響力”:
進一步,節(jié)點的影響力則可以通過比對移除節(jié)點前后圖的總局部影響力來獲得。
對于壓縮林的情況,顯然這樣給出的影響力的定義與之前是等價的,但對于更加復(fù)雜的等價網(wǎng),則會給出更多更豐富的內(nèi)容。
因此,最終判斷一個節(jié)點影響力的,應(yīng)該就是基于局部影響力的節(jié)點的不可替代影響力Us了吧。
本質(zhì)上來說,這套工具所處理的對象,基本都滿足如下特性:
- 節(jié)點之間存在生產(chǎn)與被生產(chǎn)的關(guān)系;
- 有些節(jié)點本身決定了上述生產(chǎn)與被生產(chǎn)的關(guān)系;
- 越是上層的節(jié)點,單點價值可能更重要,但實際影響力卻未必;
- 越是底層的節(jié)點,不可替代的影響力往往也越大。
同時,就和字符串-圖靈機這個體系中每個節(jié)點都有長度、邏輯深度與K氏復(fù)雜度這些屬性一樣,如果我們?yōu)檫@套系統(tǒng)所能處理的問題中的每個節(jié)點都引入一套評價方式,比如某種本征屬性值——以字符串的長度為例——那么,一個很有趣的問題就出現(xiàn)了,那就是隨著節(jié)點越來越遠離Root,這一本征屬性是如何改變的?
在字符串-圖靈機系統(tǒng)中,我們基本可以認為,深度值越大的節(jié)點的長度也越大,因此隨著壓縮鏈從Leaf往Root走,這基本可以看做是一個在有效信息量不變的限制下字符串的壓縮程度越來越高的這么一個過程。而且,越是“濃縮”的信息可能越是只能成為更少的圖靈機可接受的內(nèi)容。因此,壓縮的過程事實上也是一個不斷剝奪被多重解釋的可能性的過程,即一個子節(jié)點數(shù)越來越少的過程。
同樣的過程也發(fā)生在理論體系中。在這里推導(dǎo)鏈越是靠近Root端,節(jié)點對應(yīng)的理論/命題就越基本。而越是基本的命題/定理,其能直接衍生出的子命題/定理恐怕也就越少,必須隨著命題/定理的越來越多,“邏輯深度”越來越大,才能更多地引發(fā)出新的命題/定理來。
在資源的問題中也是如此。Root節(jié)點對應(yīng)的可以看做是未開采的那些礦石,比如貴重金屬、稀有金屬、石油與煤炭,而隨著邏輯深度的提高,這些基礎(chǔ)資源不斷派生出更多種類的資源,比如從石油中我們可以提煉出柴油、汽油、塑料、人造纖維,等等等等,這些邏輯深度更大,從而更“次一級”的資源,才能具有比直接給你一灘石油更大的發(fā)展可能,可以衍生出更多的新產(chǎn)品,新資源。
這樣的現(xiàn)象可以被歸類為“創(chuàng)造力指數(shù)定律”,或者更應(yīng)該說是一種猜想。
與開始的純粹的數(shù)學(xué)工具不同,在那套工具中,這樣的現(xiàn)象是非必須的。但在實際情況中,卻是存在這這樣的可能性。
從另一個角度來說,由于上述系統(tǒng)的一大特征就是節(jié)點本身同時也代表了連線,從而隨著節(jié)點的增多,可用的連線也就更多,那么子節(jié)點數(shù)當(dāng)然會增加,這本身就是一種必然的現(xiàn)象。
但這種現(xiàn)象是隨著動態(tài)過程中新增加的子節(jié)點的分布而來的,是時域上的指數(shù)型,卻也并不是創(chuàng)造力指數(shù)定律所要求的空域上的指數(shù)型。
因此,越是遠離Root區(qū)的節(jié)點就具有更高的被開發(fā)利用并進而衍生出新節(jié)點的可能性,這樣的結(jié)果本身大概可以看做是資源-技術(shù)、命題-定理、字符串-圖靈機這些系統(tǒng)的一個根本屬性吧。
嗯,這次的腦洞基本上就開到這里,打完收工!
本文遵守創(chuàng)作共享CC BY-NC-SA 4.0協(xié)議
通過本協(xié)議,您可以分享并修改本文內(nèi)容,只要你遵守以下授權(quán)條款規(guī)定:姓名標(biāo)示 、非商業(yè)性、相同方式分享。
具體內(nèi)容請查閱上述協(xié)議聲明。
本文禁止一切紙媒,即印刷于紙張之上的一切組織,包括但不限于轉(zhuǎn)載、摘編的任何應(yīng)用和衍生。網(wǎng)絡(luò)平臺如需轉(zhuǎn)載必須與本人聯(lián)系確認。
如果喜歡簡書,想要下載簡書App的話,輕戳這里~~
<small>私人推薦訂閱專題:《有意思的文章》、《嚴肅碼匠圈》</small>